Name

Loader_Generate_Script — 설정한 플랫폼에 대해 설정한 주(州)를 위한, TIGER 데이터를 다운로드해서 tiger_data 스키마에 단계별로 로드하는 셸 스크립트를 생성합니다. 각 주(州)의 스크립트를 개별 레코드로 반환합니다. 최신 버전은 TIGER 2010 구조 변경 사항을 지원하며, 인구조사 구역, 블록 그룹, 블록 테이블도 로드합니다.

Synopsis

setof text loader_generate_script(text[] param_states, text os);

설명

설정한 플랫폼에 대해 설정한 주(州)를 위한, TIGER 데이터를 다운로드해서 tiger_data 스키마에 단계별로 로드하는 셸 스크립트를 생성합니다. 각 주(州)의 스크립트를 개별 레코드로 반환합니다.

리눅스 상에서 unzip을 (윈도우 상에서는 기본적으로 7-zip을) 사용하고, 다운로드를 위해 wget을 씁니다. 데이터를 로드하는 데 Section 4.7.2, “shp2pgsql: ESRI shapefile 로더 이용하기” 를 이용합니다. 이 함수가 작업에 이용하는 가장 작은 단위가 주(州) 전체라는 점에 주의하십시오. 다만 사용자가 직접 파일들을 다운로드해서 이 단위를 덮어 쓸 수 있습니다. 이 함수는 "staging" 및 "temp" 폴더에 있는 파일들만 처리할 것입니다.

처리 과정 및 서로 다른 OS 셸 문법 변수들을 제어하기 위해 다음 제어 테이블들을 이용합니다.

  1. loader_variables - 인구조사 현장, 연도, 데이터 및 단계별(staging) 스키마들과 같은 여러 변수들을 추적합니다.

  2. loader_platform - 여러 플랫폼 및 여러 실행 파일들의 위치에 대한 개요를 작성합니다. 기본적으로 윈도우와 리눅스를 가지고 있습니다. 더 많은 플랫폼을 추가할 수 있습니다.

  3. loader_lookuptables - 각 레코드가 테이블 유형(주, 군), 테이블에서 레코드를 처리할지 여부, 테이블에 레코드를 로드하는 방법을 정의합니다. 각 단계별로 데이터를 임포트하고 준비하며, 각 단계에 대해 열, 인덱스, 제약조건을 추가하고 제거하는 단계들을 정의합니다. 각 테이블의 접두사는 주명(州名)이며, TIGER 스키마 안의 테이블을 승계합니다. 예: tiger.faces 를 승계하는 tiger_data.ma_faces 테이블을 생성하십시오.

2.0.0 버전부터 사용할 수 있습니다. TIGER 2010 데이터 구조를 지원하며 인구조사 구역(tract), 블록 그룹(bg), 블록(tabblock) 테이블을 로드합니다.

[Note]

If you are using pgAdmin 3, be warned that by default pgAdmin 3 truncates long text. To fix, change File -> Options -> Query Tool -> Query Editor - > Max. characters per column to larger than 50000 characters.

예시

Using psql where gistest is your database and /gisdata/data_load.sh is the file to create with the shell commands to run.

psql -U postgres -h localhost -d gistest -A -t \
 -c "SELECT Loader_Generate_Script(ARRAY['MA'], 'gistest')" 
> /gisdata/data_load.sh;

주(州) 2곳을 위한 데이터를 윈도우 셸 스크립트 형식으로 로드하는 스크립트를 생성합니다.

SELECT loader_generate_script(ARRAY['MA','RI'], 'windows') AS result;
-- result --
set TMPDIR=\gisdata\temp\
set UNZIPTOOL="C:\Program Files\7-Zip\7z.exe"
set WGETTOOL="C:\wget\wget.exe"
set PGBIN=C:\Program Files\PostgreSQL\9.4\bin\
set PGPORT=5432
set PGHOST=localhost
set PGUSER=postgres
set PGPASSWORD=yourpasswordhere
set PGDATABASE=geocoder
set PSQL="%PGBIN%psql"
set SHP2PGSQL="%PGBIN%shp2pgsql"
cd \gisdata

cd \gisdata
%WGETTOOL% ftp://ftp2.census.gov/geo/tiger/TIGER2015/PLACE/tl_*_25_* --no-parent --relative --recursive --level=2 --accept=zip --mirror --reject=html
cd \gisdata/ftp2.census.gov/geo/tiger/TIGER2015/PLACE
:
:

.sh 스크립트를 생성합니다.

SELECT loader_generate_script(ARRAY['MA','RI'], 'sh') AS result;
-- result --
TMPDIR="/gisdata/temp/"
UNZIPTOOL=unzip
WGETTOOL="/usr/bin/wget"
export PGBIN=/usr/lib/postgresql/9.4/bin
-- variables used by psql: https://www.postgresql.org/docs/current/static/libpq-envars.html
export PGPORT=5432
export PGHOST=localhost
export PGUSER=postgres
export PGPASSWORD=yourpasswordhere
export PGDATABASE=geocoder
PSQL=${PGBIN}/psql
SHP2PGSQL=${PGBIN}/shp2pgsql
cd /gisdata

cd /gisdata
wget ftp://ftp2.census.gov/geo/tiger/TIGER2015/PLACE/tl_*_25_* --no-parent --relative --recursive --level=2 --accept=zip --mirror --reject=html
cd /gisdata/ftp2.census.gov/geo/tiger/TIGER2015/PLACE
rm -f ${TMPDIR}/*.*
:
:

참고

Section 2.4.1, “Tiger Geocoder Enabling your PostGIS database”, Pprint_Addy, ST_AsText