Встановіть дані PostGIS та TIGER в Ubuntu 12.04


9

Чи може хтось написати короткий, хоч і схильний керівництво ідіотів щодо встановлення постгітів та завантаження національних даних про тигра на ubuntu? Я спробував декілька посібників, а саме http://wiki.bitnami.com/@api/deki/pages/302/pdf , але мені не пощастило. Прошу вибачення за відкритий характер цього питання.


Яку версію PostGIS ви використовуєте? Це версія, упакована з 12.04, або ви модернізували? Якщо ви можете запустити останню версію PostGIS, 2.1.1. Геокодер TIGER, який постачається з цією версією, набагато кращий, ніж версія, яка працює з PostGIS 1.5.
HeyOverThere

Я дійсно використовую 2.1.1. У мене включені всі необхідні розширення (fuzzystrmatch, postgis, postgi_tiger_geocoder, postgis_topology) та схема тигра. Тепер мені просто потрібно завантажити дані національного перепису.
stat_novice

Відповіді:


12

Оскільки у вас є PostGIS 2.1.1, ви випереджаєте гру. Переконайтеся, що у вас встановлений wget, саме це завантажить дані з FTP-сайту перепису.

Створіть каталог gisdata за допомогою:

sudo mkdir /gisdata

Використовуйте команди chown та chgrp, щоб змінити право власності та групу / gisdata, щоб ваш звичайний користувач міг читати та писати в / gisdata.

Запустіть psql та підключіться до вашої бази даних. Після використання psql

\a

і

\t

щоб результати запиту були відформатовані правильно.

Я забув цю частину спочатку! Перш ніж використовувати сценарій завантажувача, вам потрібно зробити прибирання будинку. Перше - переконатися, що схема тигра знаходиться у вашому шляху пошуку . Далі перевіряйте значення в tiger.loader_platform та tiger.loader_variables. Ці дві таблиці керують змінними для сценарію завантажувача, як ваше ім'я користувача та пароль. Я зазвичай просто редагую їх у PGAdmin. Далі вам потрібно буде запустити сценарій, який заповнює таблиці пошуку та інші шматочки фонової корисності, які знадобиться геокодеру. Спочатку встановіть вихідний файл:

\o nation_generator.sh

потім запустіть:

SELECT loader_generate_nation_script('sh'); 

Потім вийдіть з psql і запустіть файл:

sh ./nation_generator.sh

Потім поверніться в psql і введіть:

\o loader_script.sh

для виведення результатів запиту в текстовий файл під назвою loader_script.sql. Потім виконайте функцію, яка генерує сценарій завантажувача:

SELECT loader_generate_script(ARRAY['DC','RI'], 'sh');

Це запит, вихід якого буде переспрямований на loader_script.sql. Замініть "DC" та "RI" двома літерами абревіатури станів, які ви хочете завантажити.

Вийдіть з psql і запустіть скрипт за допомогою цієї команди:

sh ./loader_script.sh

Це завантажить файли для вибраного стану, розпакуйте їх та імпортуйте дані у вашу базу даних PostGIS.


HeyOverThere: Дякую за детальну відповідь. Поки в psql, введення "\ o loader_script.sql" призводить до заяви, відхиленого в дозволі. Будь-яка ідея, чому? Я ввійшов як postgres користувача.
stat_novice

Вибачте! Я забув, що більшість людей не використовують свої звичайні облікові записи користувачів для запуску psql. Вам потрібно буде зберегти скрипт десь, щоб ваш користувач postgres мав дозвіл на запис. Найпростіше - використовувати \ o /tmp/loader_script.sql, який збереже файл у / tmp. Потім для запуску файлу буде sh ./tmp/loader_script.sql.
HeyOverThere

Це спрацювало! Хоча зараз я отримую це повідомлення про помилку: "Жодна функція не відповідає вказаному типу імен та аргументів. при виконанні запиту для сценарію завантажувача. Крім того, якщо я пам'ятаю правильно, мені доведеться редагувати цей файл, правильно додати своє ім’я користувача та db?
stat_novice

Подвійне вибачення! Я про це теж забув! Перше, що потрібно перевірити, буде шлях пошуку у вашій базі даних, переконайтеся, що там є схема тигра. Друге, що потрібно перевірити, у схемі тигра є таблиці, tiger.loader_platform та tiger.loader_variables, які повідомляють вашим сценаріям ваш пароль та іншу інформацію. Використовуйте PGAdmin для їх редагування. Нарешті, перед запуском сценарію завантажувача запустіть функцію loader_generate_nation, щоб налаштувати всі таблиці, необхідні геокодеру. Я відредагую свою відповідь, щоб заповнити ці пробіли.
HeyOverThere

HeyOverThere: Ти бог серед чоловіків / жінок. Це майже працює. І національний, і державний сценарії запускаються, і вони FTPing веб-сайту перепису, і здається, витягують файли, але після завершення вони видають деякі з наступних заяв про помилки: "loader_script.sql: 408: loader_script.sql: / usr / pgsql- 9,0 / bin / psql: не знайдено ". Більше того, у схемі tiger_data немає даних. Чи потрібно мені редагувати файли, зокрема цей рядок: "експортувати PGBIN = / usr / pgsql-9.0 / bin"?
stat_novice

0

На цьому сайті є кілька відповідей, які стосуються встановлення PostGIS. Ось один , і рішення Ніка Готьє також відмінне. Щоб ще раз зазначити в ньому достатньо порад ...

Установка PostGIS стала набагато простішою в Ubuntu 12.04 та пізніших версіях. Як правило, це можна зробити двома способами: встановлення з PPA та побудова з джерела. Далі - загальні сценарії оболонки, які я використовую для кожного випадку.

Встановлення з PPA ... Я використовую ubuntugis-unstablePPA.

# Add Ubuntu GIS PPA and update, upgrade
sudo add-apt-repository ppa:ubuntugis/ubuntugis-unstable -y && sudo apt-get update && sudo apt-get upgrade

# Install PostGIS
sudo apt-get install postgis

# Recommends: sudo apt-get install postgresql-9.1-postgis-2.0

# Configure template database
POSTGIS_TEMPLATE=postgis-2.0.1
POSTGRESQL_VER=9.1
sudo su -c "createdb $POSTGIS_TEMPLATE" - postgres 
sudo -u postgres psql -d postgres -c "UPDATE pg_database SET datistemplate='true' WHERE datname='$POSTGIS_TEMPLATE';" 
sudo -u postgres psql -d $POSTGIS_TEMPLATE -f /usr/share/postgresql/$POSTGRESQL_VER/contrib/postgis-2.0/postgis.sql
sudo -u postgres psql -d $POSTGIS_TEMPLATE -c "GRANT ALL ON geometry_columns TO PUBLIC;"
sudo -u postgres psql -d $POSTGIS_TEMPLATE -c "GRANT SELECT ON spatial_ref_sys TO PUBLIC;"

Побудова з джерела ... Це передбачає PostGIS 2.1 та PostgreSQL 9.1, але може бути будь-яка остання версія обох; змінити за необхідності.

cd /usr/local/ && sudo mkdir postgis && sudo chown [username] postgis && cd postgis
wget http://download.osgeo.org/postgis/source/postgis-2.1.0.tar.gz
tar -xzvf postgis-2.1.0.tar.gz && rm postgis-2.1.0.tar.gz && cd postgis-2.1.0
sudo ./configure --with-projdir=/usr/local/proj/v4.7.0/
make
sudo make install

# Configure template database
POSTGIS_TEMPLATE=postgis-2.1.0
POSTGRESQL_VER=9.1
sudo su -c "createdb $POSTGIS_TEMPLATE" - postgres 
sudo -u postgres psql -d postgres -c "UPDATE pg_database SET datistemplate='true' WHERE datname='$POSTGIS_TEMPLATE';" 
sudo -u postgres psql -d $POSTGIS_TEMPLATE -f /usr/share/postgresql/$POSTGRESQL_VER/contrib/postgis-2.0/postgis.sql
sudo -u postgres psql -d $POSTGIS_TEMPLATE -c "GRANT ALL ON geometry_columns TO PUBLIC;"
sudo -u postgres psql -d $POSTGIS_TEMPLATE -c "GRANT SELECT ON spatial_ref_sys TO PUBLIC;"

Ви помітите тему між ними; ще потрібно створити базу даних шаблонів і заповнити spatial_ref_sysтаблицю.

Що стосується налаштування за допомогою TIGER , дотримуйтесь інструкцій щодо завантаження даних TIGER у документацію PostGIS 2.x, глава 2 .


Артур: У мене встановлений PostGIS 2.1, а postgis.sql не існує в наступному каталозі: /usr/share/postgresql/9.3/contrib/postgis-2.1
stat_novice
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.