GISarabia.org
PostGIS › الدليل الرسمي › 12. إضافات PostGIS › 12.2. مُرمِّز Tiger الجغرافي (Tiger Geocoder)
PostGIS 3.6 · Official Manual · ترجمة عربية

Loader_Generate_Census_Script

الصفحة الأصلية بالإنجليزية postgis.net ↗

الاسم

Loader_Generate_Census_Script — تولّد سكربت shell للمنصة المحددة وللولايات المحددة ينزّل جداول بيانات Tiger الإحصائية tract وbg وtabblocks للولاية، ويجهّزها ويحمّلها في المخطط tiger_data. يُعاد سكربت كل ولاية كسجل منفصل.

المختصر

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

الوصف

تولّد سكربت shell للمنصة المحددة وللولايات المحددة ينزّل جداول بيانات Tiger الإحصائية للولاية: المناطق الإحصائية tract، ومجموعات الكتل bg، وtabblocks، ويجهّزها ويحمّلها في المخطط tiger_data. يُعاد سكربت كل ولاية كسجل منفصل.

تستخدم unzip على Linux (و7-zip على Windows افتراضيًا) وwget للتنزيل. وتستخدم قسم 4.7.2, “استخدام مُحمِّل Shapefile” لتحميل البيانات. لاحظ أن أصغر وحدة تعالجها هي ولاية كاملة. ولن تعالج إلا الملفات الموجودة في مجلدي التجهيز (staging) والملفات المؤقتة (temp).

تستخدم جداول التحكم التالية للتحكم في العملية وفي اختلافات صياغة shell بين أنظمة التشغيل.

  1. loader_variables يتتبّع متغيرات مختلفة مثل موقع مكتب الإحصاء والسنة ومخططَي البيانات والتجهيز

  2. loader_platform ملفات تعريف لمنصات مختلفة ومواقع الملفات التنفيذية المختلفة. يأتي مع windows وlinux، ويمكن إضافة المزيد.

  3. loader_lookuptables يعرّف كل سجل فيه نوعًا من الجداول (state، county)، وما إذا كانت سجلاته ستُعالج وكيفية تحميلها. ويعرّف لكل منها خطوات استيراد البيانات وتجهيزها وإضافة الأعمدة والفهارس والقيود وإزالتها. ويُسبق اسم كل جدول بالولاية ويرث من جدول في المخطط tiger. مثلًا يُنشئ tiger_data.ma_faces الذي يرث من tiger.faces

متاحة منذ: 2.0.0

[ملاحظة]

Loader_Generate_Script تتضمن هذا المنطق، لكن إذا كنت قد ثبّتّ مُرمِّز tiger الجغرافي قبل PostGIS 2.0.0 alpha5، فستحتاج إلى تشغيل هذا على الولايات التي سبق أن حمّلتها للحصول على هذه الجداول الإضافية.

أمثلة

توليد سكربت لتحميل بيانات ولايات مختارة بصيغة سكربت shell لنظام Windows.

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