Name

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

Synopsis

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

描述

为指定平台的指定状态生成 shell 脚本,该脚本将下载 Tiger 数据、暂存并加载到 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支持Tiger 2010结构化数据并加载人口普查区(tract)、区块组(bg)和区块(tabblocks)表。

[Note]

如果您使用 pgAdmin 3,请注意默认情况下 pgAdmin 3 会截断长文本。 要修复此问题,请更改文件File -> Options ->Query Tool -> Query Editor ->Max.每列字符数大于 50000 个字符。

示例

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

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

生成脚本以加载 Windows shell 脚本格式的 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}/*.*
:
: