Alternativas a Shapefiles como tipos de conjuntos de datos multiplataforma de código abierto [cerrado]

20

Estoy trabajando en un software que está muy orientado a ESRI, pero una versión futura probablemente no utilizará el software de ESRI. Utiliza Shapefiles y Geodatabases. Estoy planeando llevar todos mis datos a Shapefiles en anticipación para futuras versiones del software que probablemente estarán en Android y otros dispositivos móviles. Parece que los Shapefiles son el tipo de datos más común para las funciones en el mundo SIG de código abierto, pero ¿cuáles son los demás y qué beneficios aportan? Estoy familiarizado con GeoJSON y KML, pero estoy seguro de que hay otros.

Me gustaría conocer todas las opciones, pero estoy particularmente interesado en los tipos de conjuntos de datos más adecuados para almacenar en dispositivos móviles (los datos deben ser accesibles sin una conexión a Internet).

Curtidor
fuente
1
Esa pregunta de 2011 se hizo antes de que existiera GeoPackage y las respuestas, naturalmente, no incluyen esa alternativa.
user30184
2
La geodatabase de archivos de Esri tiene una longitud máxima de campo de caracteres que rivalizaría con el contenido de texto de la mayoría de las bibliotecas pequeñas, Esri Personal Geodatabase también admite campos de texto muy largos. Se puede acceder a ambos a través de QGIS y, por supuesto, Esri ArcGIS, pero el soporte para estos tipos de datos está limitado fuera de estos paquetes. Sin embargo, tenga cuidado con la versión, intentaría crear 9.3 compatible ya que la mayoría del software de Esri con el que se encontrará será mayor de 10 y las API de geodatabase para QGIS deberían admitir esta versión. GeoJSON y KML también pueden admitir grandes campos de texto, pero no son tan legibles universalmente.
Michael Stimson
1
Umm, 9.3 no es un buen plan para la compatibilidad de geodatabase de archivos: la API FGDB no es compatible con el estilo 9.x .gdb.
Vince
1
Los archivos de forma @ElioDiaz todavía existen, a pesar de sus limitaciones, ya que son los medios de transferencia de características más universales: casi todos los paquetes SIG se abren o pueden importar archivos de forma Esri. El formato es un estándar abierto para que cualquiera pueda leerlo e implementarlo a su manera. Sin duda, existen formatos de características SIG superiores, pero no son tan universalmente adoptados ... este tema se ha discutido muchas veces en GIS.SE. Por mucho que nos gustaría, de lo contrario, los archivos de forma probablemente sean el mínimo común denominador de las características durante algún tiempo, por lo que solo tenemos que sonreír y soportarlo.
Michael Stimson

Respuestas:

18

Como dice @ user890, esto depende en gran medida de cómo se utilizarán los datos. Principalmente hay dos formas de acceder a los datos:

  1. Al cargarlo todo en la memoria de una vez y luego acceder / consultar los datos en la memoria.
  2. Al consultar características específicas, cuadros delimitadores, etc.

Los formatos como GeoJSON y KML son los más adecuados para casos en los que desea cargar todo de una vez. Los beneficios son que los datos pueden estructurarse de una manera más adecuada para su aplicación. Los inconvenientes: tamaños de archivo más grandes (ya que están basados ​​en texto) y la imposibilidad de realizar consultas eficientes directamente desde el archivo.

SQLite / Spatialite es mejor para las consultas (SQL), pero es más difícil estructurar los datos: debe aplanar todo en tablas de base de datos y luego unir (lo que puede ser costoso) al realizar consultas.

Realmente no hay un formato de archivo perfecto que cubra todo (pero, de nuevo, los archivos de forma están lejos, lejos de ser perfectos). Una alternativa a considerar es crear su propio formato específico de aplicación, pero esto solo funciona si no necesita compartir los datos con el mundo exterior.

Igor Brejc
fuente
14

Creo que la lista de formatos vectoriales de OGR (enlace actualizado) identifica casi todos los formatos de código abierto de los que he oído hablar, y muchos más. Cada uno de esos formatos tiene sus propias ventajas / desventajas, por lo que es difícil decir cuál es el "mejor". Para las aplicaciones móviles, imagino que el tamaño del archivo será uno de los factores decisivos más importantes.

Para las aplicaciones móviles, creo que el formato sqlite / spatialite sería el formato lógico para comenzar. Sé que Android proporciona soporte nativo para sqlite. Entonces, suponiendo que pueda cargar las extensiones de spaceialite, tendrá un gis muy potente disponible para usted.

Dependiendo de lo aventurero que seas, parecería que construir gdal para Android no es imposible. Entonces podría tener muchos más formatos a su disposición. Estoy seguro de que muchos usuarios en este sitio estarían interesados ​​si siguieras esta ruta.

usuario890
fuente
13

Un nuevo formato que ha surgido recientemente es el Geopackage . Esta especificación se basa en la base de datos SQLite, por lo que tiene la misma base de un solo archivo, pero con el beneficio adicional de ser un estándar OGC .
En cuanto al tamaño del archivo, es probable que el formato de almacenamiento sea más compacto que el formato .shpy .dbfpara los datos espaciales y de atributos utilizados en el Shapefile. Por lo tanto, es probable que el GeoPackage sea del mismo tamaño, o más pequeño, que la totalidad de las mismas características en un archivo de forma.
Esta foto muestra una red de alcantarillado en San Diego guardada como Shapefile y GeoPackage. Como puede ver, son esencialmente del mismo tamaño. Shapefile vs Geopackage Size
Dado que este formato se basa en SQLite, debe estar listo para dispositivos móviles. Muchas aplicaciones ya usan este formato de base de datos para el almacenamiento, por lo que es una tecnología probada. Se puede usar multiplataforma sin necesidad de traducción.

Consigue espacial
fuente
4

De acuerdo con Lennert, elija el formato correcto para el trabajo.

Sin embargo, he encontrado que Spatialite es un formato bastante versátil. Tiene el archivo único que le brinda la flexibilidad de almacenar y compartir datos como un archivo de forma, pero niega los problemas que menciona con los límites de caracteres; mientras le da la oportunidad de explotar los beneficios de una base de datos espacial.

Desafortunadamente, no es totalmente compatible con ArcGIS (no lo he intentado en un tiempo, así que podría estar equivocado), pero funciona muy bien en QGIS.

Liam G
fuente
4

Hay muchos formatos diferentes y lo mejor depende de su conjunto de datos que tenga, las herramientas que use y las cosas que desea hacer con él.

Algunos de los que uso:

  • Geodatabase de archivos y bases de datos espaciales: una imitación que me gusta usar. Puede contener todo tipo de datos y tener relaciones, indexación ... Utilizo gdb cuando trabajo en un entorno Esri, espacial para cualquier otra cosa.

  • GeoJson: formato fácil de leer que generalmente uso para conjuntos de datos pequeños que no requieren mucho en cuanto a indexación

  • Bases de datos adecuadas: tiendo a usar esto para conjuntos de datos masivos y algoritmos complejos.

Pero también hay toneladas de otros.

Lennert De Feyter
fuente
3

Recomendaría usar la base de datos SQLite / spatiallite. Es un archivo único como geodatabase (una a muchas tablas / capas dentro) y se puede usar en ArcGIS Desktop y QGIS.

artwork21
fuente
Guardé datos de polígonos en sqlite y los cargué con QGIS, y recibí un mensaje que decía "CRS estaba indefinido: por defecto CRS EPSG: 4326 - WGS84". ¿No pierde información sobre la proyección?
Ichiro
¿Con qué software guardó la capa de polígono en sqlite?
artwork21
1

Las opciones realmente dependen del idioma que usará y de cómo se usarán los datos. Es muy probable que Android sea Java. Cada opción será una especie de comparación costo / beneficio basada en esa decisión. Todos los formatos de datos están optimizados para ciertos casos de uso.

La siguiente pregunta es cómo se usarán los datos. ¿La aplicación móvil solo leerá datos espaciales? ¿O será leer y escribir datos con frecuencia? ¿Con qué frecuencia intercambiará datos con otros dispositivos o servidores?

GeospatialPython.com
fuente