9 votos

El uso de shp2pgsql en lugar de ogr2ogr importar shapefile a PostGIS?

Yo podría muy bien estar haciendo algo mal aquí, pero:

Si puedo importar algunos shapefile a una base de datos PostGIS utilizando shp2pgsql, tengo que primero averiguar el SRID/EPSG de que shapefile. Creo que este es, como mínimo, un proceso de dos pasos. En primer lugar me consulta el archivo de forma como esta:

>ogrinfo -al -so someshapefile.shp

que devuelve el conocido texto (wkt) proyección de la información, pero es un poco detallado y algo opaco [a mí]. Algo así como:

GEOGCS["NAD83",
DATUM["North_American_Datum_1983",
    SPHEROID["GRS 1980",6378137,298.257222101,
        AUTHORITY["EPSG","7019"]],
    AUTHORITY["EPSG","6269"]],
PRIMEM["Greenwich",0,
    AUTHORITY["EPSG","8901"]],
UNIT["degree",0.01745329251994328,
    AUTHORITY["EPSG","9122"]],
AUTHORITY["EPSG","4269"]]

Entonces me suelen ejecutar el wkt información a través de una herramienta de conversión como Prj2EPSG para encontrar la EPSG/SRID.

En este punto, no puede importar el archivo de forma utilizando:

>shp2pgsql -I -s 4269 someshapefile.shp <schema>.<table> | psql -U <user> -d <dbname> -h <hostaddress> -p 5432

Nota, puedo especificar el SRID con la -s bandera.

Si, puedo ejecutar shp2pgsql sin especificar el SRID, ninguna proyección es el conjunto y creo que la geometría de la columna tiene manualmente ser actualizado para incluir una proyección.

Como alternativa, puedo omitir la búsqueda, y sólo tiene que utilizar ogr2ogr:

>ogr2ogr -f "PostgreSQL" "PG:host=<hostaddress> user=<user> dbname=<dbname> password=<password>" "C:/shapefile.shp" -nln <schema>.<table>

los que, aparentemente, se establece la proyección de la multa, presumiblemente extraer automáticamente desde el origen de shapefile/prj.

Pregunta

Así que ¿cuál es la desventaja de usar ogr2ogr? Hay de hecho una bandera tan shp2pgsql extrae automáticamente y establece el derecho de proyección también? Si no, ¿por qué no?


Anexo

Hay una muy interesante, quizás un poco anticuado, el análisis comparativo de la utilización de ogr2ogr vs shp2pgsql disponible en naturalgis.pt. Se demuestra por su particular datos de la muestra, que ogr2ogr funciona mucho mejor en pequeños conjuntos de datos, pero que shp2pgsql realiza un poco mejor en grandes conjuntos de datos.

No siento que esto proporciona una respuesta definitiva. Los códigos base puede haber evolucionado, mejorando el rendimiento de cada uno. Ellos sólo he probado un conjunto muy pequeño de la muestra de datos. El representante de los "grandes" del conjunto de datos no es realmente grande. También, se debe principalmente a debatir cuestiones de rendimiento, lo que sin duda afecta a la usabilidad, pero la pregunta original está más interesado en la usabilidad relacionados con la entrada del usuario requisitos.

4voto

Joe Puntos 16

Sin hablar con el shp2pgsql desarrolladores mi respuesta es de opinión, pero al menos shp2pgsql es mucho más fácil sin detección automática de la proyección. La parte principal del código fuente es de alrededor de 1800 líneas http://postgis.net/docs/doxygen/2.2/d8/da3/shp2pgsql-core_8c_source.html y hace lo que es esencial: convierte las geometrías y los atributos de los shapefiles en PostGIS.

En GDAL fuentes el código que sólo se ocupa de la interpretación de los ESRI .archivos prj es de 2700 líneas https://github.com/OSGeo/gdal/blob/master/gdal/ogr/ogr_srs_esri.cpp.

Pros y contras:

Para los usuarios el punto de vista de las principales ventajas de shp2pgsql son:

Principal desventaja de shp2pgsql es que sólo admite archivos de forma.

GDAL y ogr2ogr dar las mismas funcionalidades para los shapefiles de shp2pgsql pero GDAL puede manejar decenas de diferentes formatos vectoriales https://gdal.org/ogr_formats.html y es que da mucho más opciones para la selección y el procesamiento de datos durante la conversión. Sin embargo, con GDAL

  • El usuario debe instalar GDAL
  • El usuario debe aprender a usar GDAL, especialmente ogr2ogr y las muchas opciones del driver de PostGIS
  • ogr2ogr es la utilidad de línea de comandos sin interfaz gráfica de usuario

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X