Name

Loader_Generate_Script — 为指定状态的指定平台生成外壳脚本,该脚本将下载Tiger数据、暂存并加载到 tiger_data 架构。每个状态脚本都作为单独的记录返回。最新版本支持Tiger 2010结构变化,还加载人口普查区域、区块组和区块表。

Synopsis

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

描述

为指定状态的指定平台生成外壳脚本,该脚本将下载Tiger数据、暂存并加载到 tiger_data 架构。每个状态脚本都作为单独的记录返回。

它在Linux上使用unzip(在Windows上默认使用7-Zip),并使用wget进行下载。它用 Section 4.7.2, “使用Shapefile加载器” 以加载数据。注意,它所做的最小单位是整个状态,但您可以通过自己下载文件来覆盖它。它将仅处理临时文件夹和临时文件夹中的文件。

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

  1. loader_variables 跟踪各种变量,如普查地点、年份、数据和分段方案

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

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

可用性:2.0.0以支持Tiger 2010结构化数据并加载人口普查区域(TRAIL)、块组(BG)和块(选项卡块)表。

[Note]

如果您使用的是pgAdmin 3,请注意,默认情况下,pgAdmin 3会截断长文本。要修复,就得改变 文件- > 选项- > 查询工具- > 查询编辑器- > 麦克斯。每列字符数 超过50000个字符。

示例

使用psql,其中gistest是您的数据库, /gisdata/data_load.sh 是使用要运行的外壳命令创建的文件。

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

生成脚本,以Windows外壳脚本格式加载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, “启用PostGIS数据库的Tiger地理编码器:使用扩展模块”, Loader_Generate_Nation_Script, Drop_State_Tables_Generate_Script