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

Loader_Generate_Script

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

الاسم

Loader_Generate_Script — تولّد سكربت shell للمنصة المحددة وللولايات المحددة ينزّل بيانات Tiger ويجهّزها ويحمّلها في المخطط tiger_data. يُعاد سكربت كل ولاية كسجل منفصل. يدعم أحدث إصدار التغييرات البنيوية في Tiger 2010، ويحمّل أيضًا جداول المناطق الإحصائية ومجموعات الكتل والكتل.

المختصر

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

الوصف

تولّد سكربت shell للمنصة المحددة وللولايات المحددة ينزّل بيانات Tiger ويجهّزها ويحمّلها في المخطط 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 لدعم بيانات Tiger 2010 المهيكلة وتحميل جداول المناطق الإحصائية (tract) ومجموعات الكتل (bg) والكتل (tabblocks).

[ملاحظة]

إذا كنت تستخدم pgAdmin 3، فانتبه إلى أن pgAdmin 3 يقتطع النصوص الطويلة افتراضيًا. ولإصلاح ذلك، غيّر File -> Options -> Query Tool -> Query Editor - > Max. characters per column إلى أكثر من 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;

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

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}/*.*
:
: