Name

Loader_Generate_Census_Script — 为指定states的指定平台生成 shell 脚本,该脚本将下载 Tiger 人口普查state区、bg 和 tabblocks 数据表、暂存并加载到 Tiger_data 架构中。 每个状态脚本都作为单独的记录返回。

Synopsis

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

描述

生成一个用于指定平台和指定州的 shell 脚本,该脚本将下载 Tiger 数据中的人口普查州 tract、分组区块 bgtabblocks 数据表,然后将这些数据表分阶段加载到 tiger_data 模式中。每个州的脚本将作为一个单独的记录返回。

它在 Linux 上使用 unzip(默认情况下在 Windows 上使用 7-zip),并使用 wget 进行下载。它使用 Section 4.7.2, “使用Shapefile加载器” 来加载数据。请注意,它的最小处理单元是整个州。它只会处理暂存和临时文件夹中的文件。

它使用以下控制表来控制进程和不同的操作系统 shell 语法变化。

  1. loader_variables 跟踪各种变量,例如人口普查站点、年份、数据和暂存模式

  2. loader_platform 各种平台的配置文件以及各种可执行文件所在的位置。 自带windows和linux。 还可以添加更多。

  3. loader_lookuptables 每条记录定义一种表(州、县)、是否处理其中的记录以及如何加载它们。定义每个记录的导入数据、暂存数据、添加、删除列、索引和约束的步骤。 每个表都以状态为前缀,并继承自 Tiger 模式中的表。 例如 创建从tiger.faces继承的tiger_data.ma_faces

可用性: 2.0.0

[Note]

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
:
: 

相关信息

Loader_Generate_Script