Shapefiles vs bases de datos espaciales

Zemanta Related Posts ThumbnailDebido a su simplicidad, los shapefiles han sido la forma estándar de almacenar e interactuar con los datos espaciales desde que el software GIS apareció por primera vez.

El shapefile es el formato de datos vectorial más popular y extendido entre la comunidad GIS.

Sin embargo, estos archivos tienen una serie de desventajas:

Desventajas de los shapefiles

1.- Un shapefile no es un único archivo, se compone de varios archivos que un cliente SIG lee como uno único. El mínimo requerido es de tres:

  • .shp – almacena las entidades geométricas de los objetos.
  • .shx – almacena el índice de las entidades geométricas y el
  • .dbf – tabla dBASE donde se almacenan los atributos de los elementos geométricos.

Opcionalmente puede tener un .prj, .sbn, .sbx, .fbn, .fbx .ain, .aih, .shp.xml.

shapefile

2.- Está diseñado para almacenar datos sencillos. El tamaño máximo permitido del archivo está restringido a 2GB (dbf).

3.- Carece de capacidad para almacenar información topológica.

4.- Un shapefile no permite nombres de campo con más de 10 caracteres y con restricciones.

5.- Solamente puede almacenar una geometría por tabla.

6.- No pueden almacenar valores nulos, redondean números, tienen poca compatibilidad con las cadenas de caracteres Unicode. No pueden almacenar fecha y hora en un campo.

7.- Usuarios concurrentes pueden causar la corrupción de los shapefiles. Si bien es posible escribir código adicional para asegurarse de que varias escrituras en el mismo archivo no dañen los datos, cuando se haya resuelto este problema y también el del rendimiento asociado, habrás escrito una buena parte de una base de datos.

Extraído de la web de ESRI:

Los datos geográficos no son simplemente las entidades y los atributos que puede almacenar un shapefile. Por ejemplo, hay anotaciones, relaciones con atributos, relaciones de topología, dominios y subtipos de atributos, precisión y resolución de coordenadas, y numerosas capacidades que son compatibles con las geodatabases, pero no con los shapefiles

Los shapefiles utilizan el formato de archivo dBASE (archivo .dbf) para almacenar atributos. dBASE es un formato que no es de Esri que se desarrolló a comienzos de 1980 y era, en ese momento, el formato más popular para almacenar tablas de atributos. Sin embargo, con el tiempo fueron quedando desactualizados, y hubo una cantidad de mejoras en la representación de datos, como el estándar Unicode, para admitir la mayoría de los sistemas de escritura del mundo. Este es uno de los motivos por los cuales los shapefiles no son convenientes para almacenar información en otro idioma que no sea el inglés.

Estos problemas (y más) significan que los shapefiles son una opción extremadamente deficiente para la administración de bases de datos activas. No manejan el ciclo de vida actual de la creación, edición, versión y archivado de datos.

Una vez conocidas todas las desventajas que tiene este sistema de almacenamiento de información espacial, podemos optar por utilizar una sistema gestor de bases de datos espaciales, ¿por qué?

¿Por qué utilizar una base de datos espacial?

1.- Los archivos requieren un software especial para su lectura y escritura. SQL es una abstracción para el acceso a los datos y el análisis. Sin esa abstracción, necesitaríamos escribir todo el código de acceso y análisis nosotros.

2.- Operaciones y cálculos complejos requieren un software complejo para las respuestas. Operaciones complejas e interesantes como los joins espaciales, agregaciones, etc, se pueden expresar en una sola línea de SQL, pero ocupa cientos de líneas de código especializado a la hora de programar contra shapefiles. La mayoría de los usuarios de PostGIS instalan sistemas en los que múltiples aplicaciones acceden a los datos, así que tener un método estándar de acceso a SQL simplifica la implementación y el desarrollo. Algunos usuarios trabajan con grandes conjuntos de datos; con archivos, pueden ser segmentados en varios archivos, pero en una base de datos se puede almacenar como una única tabla.

3.- Una base de datos espacial soporta tipos de datos espaciales, índices espaciales y tiene cientos de funciones espaciales.

Muchas y muy variadas organizaciones de todo el mundo usan bases de datos espaciales (por ejemplo PostGIS), incluyendo agencias gubernamentales de riesgos adversos y organizaciones que almacenan terabytes de datos y sirven millones de peticiones web al día.

Bonus: por qué utilizar GeoPackage o GeoJSON

GeoPackage es un formato de archivo universal para compartir y transferir datos espaciales vectoriales y raster. Es por tanto la alternativa moderna (nace en 2014) a formatos como el GeoTIFF y especialmente al shapefile.

GeoJSON (Javascript Object Notation) es un formato de texto que es muy rápido de analizar en máquinas virtuales Javascript.

Es un formato de intercambio de datos geoespaciales basado en JSON. Este formato apareció en 2008 y puede representar una geometría, un fenómeno o una colección de fenómenos. Es un formato muy popular en las aplicaciones web mapping que hace que nos ahorremos la parte de la base de datos y el servidor.

Los formatos GeoPackage o GeoJSON, a diferencia de los shapefile, se basan en estándares de la OGC, se han diseñado para almacenar datos complejos y voluminosos. Además los atributos de las geometrías pueden contener nombre muy largos.