Loader_Generate_Script — 为指定平台的指定州生成 shell 脚本,该脚本将下载 Tiger 数据,暂存并加载到 tiger_data 模式中。每个州脚本都作为单独的记录返回。最新版本支持 Tiger 2010 的结构更改,并加载人口普查区、街区组和街区表。
setof text loader_generate_script(text[] param_states, text os);
为指定平台的指定州生成 shell 脚本,该脚本将下载 Tiger 数据,暂存并加载到 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 版本支持 Tiger 2010 结构化数据并加载人口普查区 (tract)、街区组 (bg) 和街区 (tabblocks) 表格。
|
|
|
如果您使用的是 pgAdmin 3,请注意,默认情况下 pgAdmin 3 会截断长文本。要修复此问题,请将文件 -> 选项 -> 查询工具 -> 查询编辑器 -> 每列最大字符数更改为大于 50000 个字符。 |
使用 psql,其中 gistest 是您的数据库,而 /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://postgresql.ac.cn/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}/*.*
:
: