Loader_Generate_Census_Script — 為指定的平台和指定的州生成一個 shell 腳本,該腳本將下載 Tiger 人口普查的州、行政區 (bg) 和分區數據表,並將其暫存並載入到 tiger_data
綱要中。每個州的腳本都將作為單獨的記錄返回。
setof text loader_generate_census_script(
text[] param_states, text os)
;
為指定的平台和指定的州生成一個 shell 腳本,該腳本將下載 Tiger 數據的人口普查州 tract
、區塊群組 bg
和 tabblocks
數據表,並將其暫存並載入到 tiger_data
綱要中。每個州的腳本都將作為單獨的記錄返回。
它在 Linux 上使用 unzip(預設在 Windows 上使用 7-zip)和 wget 進行下載。它使用第 4.7.2 節,「使用 Shapefile 載入器」來載入數據。請注意,它處理的最小單位是一個完整的州。它只會處理暫存和臨時資料夾中的檔案。
它使用以下控制表來控制流程和不同的作業系統 shell 語法變化。
loader_variables
追蹤各種變數,例如人口普查站點、年份、數據和暫存綱要。
loader_platform
各種平台的設定檔以及各種可執行檔案的位置。內建 Windows 和 Linux。可以添加更多。
loader_lookuptables
每條記錄定義一種表格(州、縣)、是否處理其中的記錄以及如何載入它們。定義導入數據、暫存數據、添加、刪除列、索引和每個表格的約束的步驟。每個表格都以州為前綴,並繼承自 tiger 綱要中的表格。例如,創建 tiger_data.ma_faces
,它繼承自 tiger.faces
。
可用性:2.0.0
![]() |
|
Loader_Generate_Script 包含此邏輯,但如果您在 PostGIS 2.0.0 alpha5 之前安裝了 Tiger 地理編碼器,您需要在您已經完成的州上運行此腳本以獲取這些額外的表格。 |
產生在 Windows shell 腳本格式中載入選定州數據的腳本。
SELECT loader_generate_census_script(ARRAY['MA'], 'windows'); -- result -- set STATEDIR="\gisdata\www2.census.gov\geo\pvs\tiger2010st\25_Massachusetts" set TMPDIR=\gisdata\temp\ set UNZIPTOOL="C:\Program Files\7-Zip\7z.exe" set WGETTOOL="C:\wget\wget.exe" set PGBIN=C:\projects\pg\pg91win\bin\ set PGPORT=5432 set PGHOST=localhost set PGUSER=postgres set PGPASSWORD=yourpasswordhere set PGDATABASE=tiger_postgis20 set PSQL="%PGBIN%psql" set SHP2PGSQL="%PGBIN%shp2pgsql" cd \gisdata %WGETTOOL% http://www2.census.gov/geo/pvs/tiger2010st/25_Massachusetts/25/ --no-parent --relative --accept=*bg10.zip,*tract10.zip,*tabblock10.zip --mirror --reject=html del %TMPDIR%\*.* /Q %PSQL% -c "DROP SCHEMA tiger_staging CASCADE;" %PSQL% -c "CREATE SCHEMA tiger_staging;" cd %STATEDIR% for /r %%z in (*.zip) do %UNZIPTOOL% e %%z -o%TMPDIR% cd %TMPDIR% %PSQL% -c "CREATE TABLE tiger_data.MA_tract(CONSTRAINT pk_MA_tract PRIMARY KEY (tract_id) ) INHERITS(tiger.tract); " %SHP2PGSQL% -c -s 4269 -g the_geom -W "latin1" tl_2010_25_tract10.dbf tiger_staging.ma_tract10 | %PSQL% %PSQL% -c "ALTER TABLE tiger_staging.MA_tract10 RENAME geoid10 TO tract_id; SELECT loader_load_staged_data(lower('MA_tract10'), lower('MA_tract')); " %PSQL% -c "CREATE INDEX tiger_data_MA_tract_the_geom_gist ON tiger_data.MA_tract USING gist(the_geom);" %PSQL% -c "VACUUM ANALYZE tiger_data.MA_tract;" %PSQL% -c "ALTER TABLE tiger_data.MA_tract ADD CONSTRAINT chk_statefp CHECK (statefp = '25');" :
產生 sh 腳本
STATEDIR="/gisdata/www2.census.gov/geo/pvs/tiger2010st/25_Massachusetts" TMPDIR="/gisdata/temp/" UNZIPTOOL=unzip WGETTOOL="/usr/bin/wget" export PGBIN=/usr/pgsql-9.0/bin export PGPORT=5432 export PGHOST=localhost export PGUSER=postgres export PGPASSWORD=yourpasswordhere export PGDATABASE=geocoder PSQL=${PGBIN}/psql SHP2PGSQL=${PGBIN}/shp2pgsql cd /gisdata wget http://www2.census.gov/geo/pvs/tiger2010st/25_Massachusetts/25/ --no-parent --relative --accept=*bg10.zip,*tract10.zip,*tabblock10.zip --mirror --reject=html rm -f ${TMPDIR}/*.* ${PSQL} -c "DROP SCHEMA tiger_staging CASCADE;" ${PSQL} -c "CREATE SCHEMA tiger_staging;" cd $STATEDIR for z in *.zip; do $UNZIPTOOL -o -d $TMPDIR $z; done : :