Tengo más de cien capas de datos en formato shapefile que quiero subir a una base de datos PostGIS. Todos están en la misma proyección, pero representan diferentes capas de datos, por lo que no tienen el mismo esquema.
¿Cuál es la forma más efectiva en el tiempo de convertir en masa todos estos archivos en mi base de datos PostGIS (en el sistema operativo Windows 7)?
ACTUALIZACIÓN: La importación masiva en pgAdmin3 "PostGIS shapefile uploader" (como se indica a continuación) ahora está disponible de forma predeterminada con PostGIS 2.0 .
Respuestas:
Si desea apegarse a una GUI, la versión más nueva de pgAdmin tiene Shapefile Loader que se puede usar como carga masiva
fuente
Si tiene una computadora con Windows, puede usar good 'ol
CMD.EXE
con unos pocos bucles for esotéricos. Asegúrese de hacer esto en un directorio "contenido" con solo los archivos shp / sql que necesita cargar.Primer paso, cree los archivos del cargador SQL (también asumí que tiene datos WGS84 Lat / Long con 4326 .. actualice esto a su SRS):
Luego verifique sus archivos SQL para asegurarse de que se vean bien, luego haga un ciclo similar:
El
bash
equivalente para la gente POSIX (Linux, Mac OS X, etc.) es algo como:luego
o ambas partes canalizadas en un solo bucle, si no necesita mantener los
.sql
archivos provisionales :fuente
for f in *.shp do shp2pgsql -s 4326 %f public.'basename $f .shp' > 'basename $f .shp'.sql | psql -h myserver -d mydb -U myuser done
>
parte de redireccionamiento, ya que esto rompe la|
parte de la tubería), siempre que esté seguro de que el SQL pasado a psql es correcto. Yo diría que esto no es mejor, ya que no hay registro de los datos en formato SQL.También puede usar este comando único que ayuda a hacer un bucle mucho más fácil y no necesita crear .sql por separado,
fuente
También es posible que desee ver SPIT , que es un complemento de cargador PostGIS para QGIS
fuente