Ubuntu 12.04에 PostGIS 및 TIGER 데이터 설치


9

누군가 postgis를 설치하고 우분투에 대한 Tiger 데이터를로드하는 것에 대한 바보 가이드를 바보라고 쓸 수 있을까요? 나는 몇 가지 가이드, 즉 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)과 tiger 스키마가 있습니다. 이제 국세 조사 데이터 만 업로드하면됩니다.
stat_novice

답변:


12

PostGIS 2.1.1이 있으므로 게임보다 앞서 있습니다. wget이 설치되어 있는지 확인하십시오. Census 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 사용자에게 쓰기 권한이있는 위치에 스크립트를 저장해야합니다. 가장 쉬운 방법은 파일을 / tmp에 저장하는 \ o /tmp/loader_script.sql을 사용하는 것입니다. 그런 다음 파일을 실행하려면 sh ./tmp/loader_script.sql이됩니다.
HeyOverThere

작동했습니다! 그래도이 오류 메시지가 나타납니다. "주어진 이름 및 인수 유형과 일치하는 함수가 없습니다. 명시 적 유형 캐스트를 추가해야 할 수도 있습니다." 로더 스크립트에 대한 쿼리를 실행할 때 또한, 내가 정확하게 기억한다면, 사용자 이름과 db를 추가하기 위해 해당 파일을 편집해야합니까?
stat_novice

미안 해요! 나도 잊었다! 가장 먼저 확인해야 할 것은 데이터베이스의 검색 경로입니다. Tiger 스키마가 있는지 확인하십시오. 두 번째로 확인해야 할 것은 tiger 스키마에는 tiger.loader_platform 및 tiger.loader_variables 테이블이 있으며 스크립트에 암호 및 기타 정보를 알려줍니다. PGAdmin을 사용하여 편집하십시오. 마지막으로, 로더 스크립트를 실행하기 전에 loader_generate_nation 함수를 실행하여 지오 코더에 필요한 모든 테이블을 설정하십시오. 이 빈칸을 채우도록 답변을 편집하겠습니다.
HeyOverThere

HeyOverThere : 당신은 남자 / 여자 사이에서 신입니다. 이것은 거의 작동합니다. 국가 및 주 스크립트가 모두 실행되고 센서스 웹 사이트를 FTP로 전송하고 파일을 검색하는 것처럼 보이지만 둘 다 완료된 후 다음과 같은 오류 문장이 표시됩니다. "loader_script.sql : 408 : loader_script.sql : / usr / pgsql- 9.0 / bin / psql : 찾을 수 없음 " 또한 tiger_data 스키마에는 데이터가 없습니다. 파일, 특히 "export PGBIN = / usr / pgsql-9.0 / bin"을 편집해야합니까?
stat_novice

0

이 사이트에는 PostGIS 설치를 다루는 여러 가지 답변이 있습니다. 여기에 하나의 , 그리고 닉 고티에의 솔루션은 또한 우수합니다. 충분한 조언을 반복하기 위해 ...

Ubuntu 12.04 이상에서 PostGIS 설치가 훨씬 쉬워졌습니다. 일반적으로 PPA에서 설치 및 소스에서 빌드하는 두 가지 방법이 있습니다. 다음은 각 경우에 사용하는 일반적인 쉘 스크립트입니다.

PPA에서 설치 중 ... PPA를 사용하고 ubuntugis-unstable있습니다.

# 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 설정 에 대해서는 PostGIS 2.x 설명서의 2 장에있는 TIGER 데이터로드 지침을 따르십시오 .


Arthur : PostGIS 2.1이 설치되어 있고 postgis.sql이 다음 디렉토리에 없습니다. /usr/share/postgresql/9.3/contrib/postgis-2.1
stat_novice
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.