Bien podría estar haciendo algo mal aquí, pero:
Si importo algún shapefile a una base de datos PostGIS usando shp2pgsql , primero tengo que averiguar el SRID / EPSG de ese shapefile. Creo que este es, como mínimo, un proceso de dos pasos. Primero consulto el archivo de forma así:
>ogrinfo -al -so someshapefile.shp
que devuelve la información de proyección de texto (wkt) conocida, pero es un poco detallado y algo opaco [para mí]. Algo 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"]]
Luego, normalmente ejecuto la información de wkt a través de una herramienta de conversión como Prj2EPSG para encontrar el EPSG / SRID.
En este punto, puedo importar el archivo de forma usando:
>shp2pgsql -I -s 4269 someshapefile.shp <schema>.<table> | psql -U <user> -d <dbname> -h <hostaddress> -p 5432
Nota, especifico el SRID con la -s
bandera.
Si ejecuto shp2pgsql sin especificar el SRID, no se establece ninguna proyección y creo que la columna geom debe actualizarse manualmente para incluir una proyección.
Alternativamente, puedo omitir la búsqueda y simplemente usar ogr2ogr :
>ogr2ogr -f "PostgreSQL" "PG:host=<hostaddress> user=<user> dbname=<dbname> password=<password>" "C:/shapefile.shp" -nln <schema>.<table>
que aparentemente establece bien la proyección, presumiblemente extrayéndola automáticamente desde el archivo de forma / prj fuente.
Pregunta
Entonces, ¿cuál es la desventaja de usar ogr2ogr? ¿De hecho hay una bandera para que shp2pgsql extraiga automáticamente y establezca la proyección correcta también? ¿Si no, porque no?
Apéndice
Hay un análisis comparativo interesante, quizás algo anticuado, del uso de ogr2ogr vs shp2pgsql disponible en naturalgis.pt . Demuestra, para sus datos de muestra particulares, que ogr2ogr funciona significativamente mejor en conjuntos de datos pequeños , pero que shp2pgsql funciona ligeramente mejor en conjuntos de datos más grandes .
No creo que esto proporcione una respuesta definitiva. Las bases de código pueden haber evolucionado, mejorando el rendimiento de cada uno. Solo han probado un conjunto muy pequeño de datos de muestra. El conjunto de datos representativo "grande" no es realmente tan grande. Además, se trata principalmente de cuestiones de rendimiento, que ciertamente afectan la usabilidad, pero la pregunta original está más interesada en los requisitos de entrada del usuario relacionados con la usabilidad.