Loader_Generate_Census_Script — Génère un script shell pour la plate-forme spécifiée et les états spécifiés qui téléchargera les tables de données Tiger census state tract, bg et tabblocks, les structurera et les chargera dans le schéma tiger_data
. Chaque script d'état est renvoyé sous la forme d'un enregistrement distinct.
setof text loader_generate_census_script(
text[] param_states, text os)
;
Génère un script shell pour la plate-forme spécifiée et les états spécifiés, qui téléchargera les données de recensement Tiger tract
, les tables de données bg
et tabblocks
, les étapes et le chargement dans le schéma tiger_data
. Chaque script d'état est renvoyé sous la forme d'un enregistrement distinct.
Il utilise unzip sous Linux (7-zip sous Windows par défaut) et wget pour effectuer le téléchargement. Il utilise Section 4.7.2, “Utilisation de l'utilitaire qui permet de charger des fichiers Shapefile” pour charger les données. Notez que la plus petite unité qu'il traite est un état entier. Il ne traitera que les fichiers des dossiers staging et temp.
Il utilise les tables de contrôle suivantes pour contrôler le processus et les différentes variations syntaxiques de l'interpréteur de commandes du système d'exploitation.
loader_variables
garde la trace de diverses variables telles que le site de recensement, l'année, les données et les schémas d'étape
loader_platform
profils des différentes plates-formes et de l'emplacement des différents exécutables. Livré avec windows et linux. D'autres peuvent être ajoutés.
loader_lookuptables
chaque enregistrement définit un type de table (state, county), s'il faut y traiter les enregistrements et comment les charger. Définit les étapes d'importation des données, de structuration des données, d'ajout et de suppression de colonnes, d'index et de contraintes pour chaque table. Chaque table est préfixée par l'état et hérite d'une table du schéma tigre. Par exemple, crée tiger_data.ma_faces
qui hérite de tiger.faces
Disponibilité : 2.0.0
Loader_Generate_Script inclut cette logique, mais si vous avez installé tiger geocoder avant PostGIS 2.0.0 alpha5, vous devrez l'exécuter sur les états que vous avez déjà faits pour obtenir ces tables supplémentaires. |
Générer un script pour charger des données pour des états sélectionnés dans le format d'un script 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');" :
Générer le script 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 : :