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 includes this logic, but if you installed the TIGER Geocoder with older scripts, rerun it on the states you have already processed to get these additional tables.

示例

生成脚本以加载 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\pg[version]win\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-[version]/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