Di no al Shapefile y sí al GeoPackage

El Shapefile de ESRI es un formato de archivo para almacenar datos espaciales vectoriales. Ha existido desde principios de la década de 1990 y aún sigue siendo el formato de intercambio de datos vectorial más comúnmente utilizado, pese al elevado número de desventajas y limitaciones que tiene.

Ventajas de los shapefiles

  1. Aunque es un formato propiedad de ESRI, es difícil encontrar un SIG que no lea este sistema de archivos.
  2. Mientras que el formato es propietario, la especificación es abierta.
  3. Para muchos casos de uso, este sistema de almacenamiento de archivos puede ser suficiente.
  4. El indice interno (al archivo .shx) acelera la lectura de estos archivos.
  5. Es un formato relativamente eficiente en términos de tamaño de archivo. El archivo resultante, incluso sin comprimir, es relativamente pequeño en comparación con otros formatos (principalmente basados en texto como csv).

Razones por las que debemos evitar trabajar con shapefiles

¿Por qué el Shapefile es tan malo? Aquí hay varias razones por las que Shapefile es un formato incorrecto y debemos evitar su uso:

  1. Un shapefile 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. Sin definición de sistema de referencia de coordenadas. Por defecto no hay definición del sistema de referencia de coordenadas utilizado. Se puede usar, por ejemplo, el archivo .prj, pero no es una parte estándar de la especificación
  3. Los nombres de atributos están limitados a 10 caracteres y con restricciones (tildes, ñ, etc)
  4. Solo 255 atributos. El archivo DBF no le permite almacenar más de 255 campos de atributos.
  5. Tipos de datos limitados. Los tipos de datos están limitados a float, integer, date y text con un máximo de 254 caracteres. No hay soporte para campos de datos más avanzados como blobs, imágenes o arrays.
  6. Conjunto de caracteres desconocido. No hay forma de especificar el conjunto de caracteres utilizado en la base de datos. Muchas aplicaciones están usando las viejas codificaciones de datos de Windows – * o ISO- *, mientras que hoy en día estamos tendiendo a usar UTF-8. Todavía no hay forma de especificar esto en el encabezado del archivo. El soporte para caracteres Unicode también es muy limitado.
  7. Está limitado a 2 GB de tamaño de archivo. Aunque algunas herramientas pueden superar este límite, nunca pueden superar los 4 GB de datos.
  8. Sin topología en los datos. No hay forma de describir las relaciones topológicas en el formato.
  9.  Solamente puede almacenar una geometría por archivo. No hay forma de guardar geometrías mixtas.
  10. Las estructuras de datos más complicadas son imposibles de salvar. Es un formato de «tabla plana».
  11. El soporte 3D es muy limitado. No hay forma de almacenar datos 3D con texturas o aspectos como las definiciones de materiales.

¿Qué altenativas hay al shapefile?

En los últimos años han surgido varias alternativas, pero ningún formato ha derrotado todavía la hegemonía del Shapefile. Algunos formatos apenas se utilizan (GeoCSV) y otros casi toman el relevo (KML, GML, GeoJSON) pero su uso se limita a casos de uso determinados:

  • KML. La popularidad de KML fue alta hace años, pero desde 2015 su popularidad ha disminuido. Como está basado en XML, no es eficiente para almacenar conjuntos de datos grandes. Un KML combina la cartografía junto con la geometría de los datos en un solo archivo, lo cual es problemático cuando los datos tienen el potencial de ser utilizados de múltiples maneras. Dado que oficialmente solo admite el sistema de referencia de coordenadas (WGS-84), no es adecuado para una serie de aplicaciones.
  • GeoJSON. En el caso de GeoJSON, el problema es que no se pueden representar todas las geometrías y los sistemas avanzados de referencia de coordenadas no son del todo compatibles. Recomendamos utilizar GeoJSON para el intercambio de datos particularmente para servicios web y visores webmapping.
  • GML es un candidato para el reemplazo de Shapefile para el intercambio de datos en situaciones donde los datos son demasiado complejos para ser representados por GeoJSON. Sin embargo, una desventaja importante de GML es que es un estándar increíblemente complejo. Pocos paquetes de software admiten todo el estándar y el soporte para partes individuales del estándar varía ampliamente. Sin embargo, para la gran mayoría de los conjuntos de datos GML es excesivo.
  • La geodatabase de ESRI. Con ArcGIS Pro no es posible crear un nuevo archivo shapefile, por lo que con este SIG cuando comencemos un proyecto desde cero, ya trabajaremos con geodatabases. Es un candidato en un entorno de ESRI, pero con muchas limitaciones fuera de este entorno.

Fuente: http://switchfromshapefile.org/

El momento de GeoPackage

GeoPackage es uno de los formatos SIG más prometedores, diseñado para las aplicaciones modernas de hoy en día. GeoPackage es publicado como estándar por el Open Geospatial Consortium y se ha construido sobre la base de SQLite.

¿Por qué debemos escoger GeoPackage?

  1. Es un formato compacto, abierto, basado en estándares de la OGC, e independiente de plataformas o aplicaciones. Los archivos GeoPackages que cumplan los requisitos de la norma y que no implementen otras extensiones específicas de proveedores externos son interoperables en todos los entornos empresariales y de computación personal.
  2. Dispone de índices espaciales. Se recomienda el uso de índices espaciales cuando el número de registros excede del millar. El uso de índices espaciales incrementa la velocidad de búsquedas espaciales y su visualización en los SIG de escritorio.
  3. Se trata de un único archivo .gpkg, por lo que es ideal para transferir información geoespacial.
  4. Podemos almacenar multitud de tipos de geometrías en un mismo archivo .gpkg: Point, Line, Polygon, MultiPoint, MultiLine, MultiPolygon, CompoundCurve, CurvedPolygon, MultiCurve y MultiSurface.
  5. Soporta el uso directo, lo que significa que podemos acceder y actualizar sus datos en un formato de almacenamiento nativo sin necesidad de conversiones intermedias. Podemos acceder a los datos de GeoPackage de forma «nativa» sin traducciones de formato intermedio.
  6. GeoPackage destaca por su flexibilidad y se puede utilizar de muchas maneras, por lo que puede reemplazar al formato shapefile. GeoPackage, a diferencia de un shapefile, se ha diseñado para almacenar datos complejos y voluminosos (hasta 140 TB). Además los atributos de  las geometrías pueden contener nombre muy largos.
  7. GDAL soporta entidades de GeoPackage. Esta librería de código abierto escrita en C sirve para convertir formatos de datos. GDAL es la librería más ampliamente utilizada. 100 programas de GIS utilizan la librería GDAL internamente en sus procesos espaciales, lo que nos lleva al siguiente punto:
  8. Casi todos los software GIS de referencia son capaces de leer archivos GeoPackage. Por ejemplo ArcGIS o QGIS pueden leer y escribir. Y se pueden utilizar en ArcGIS Pro, GeoServer (importando y sirviendo los datos como estándar web de la OGC), o Leaflet. Otros programas que soportan GeoPackage son: GeoTools, OpenJUMP PLUS, Skyline, Luciad, Envitia MapLink, SpatiaLite, FME Desktop y FME Server, TerraGO. Es decir, no vamos a tener problema para compartir nuestros datos con otros colegas de trabajo.
  9. Los GeoPackages son particularmente útiles en dispositivos móviles y en entornos de comunicación en los que hay conectividad y ancho de banda limitados.

Una desventaja de GeoPackage es que la base de datos SQLite subyacente es un formato binario complejo.

En esta entrada te explicamos su uso en los principales SIG.

¿Adios al shapefile?

El GeoPackage reemplazará al Shapefile en escenarios donde el destinatario querrá consultar o editar los datos localmente.

En QGIS 2.x, el shapefile ha sido el formato de archivo predeterminado para la exportación de datos.

Ahora, tanto GRASS, como QGIS 3.x, el formato de salida estándar es el GeoPackage.

En GeoServer 2.13 el rendimiento en cuanto a la lectura y representación de GeoPackage ha mejorado de forma significativa. Es hasta dos veces más rápido en extracciones completas de grandes conjuntos de datos y un 50% más rápido en búsquedas de recuadros delimitadores pequeños, lo que equipara a GeoPackage con PostGISHoja de cálculo de Google con más detalles.

Ojo! El Shapefile sigue siendo el rey de las extracciones de conjunto de datos completos y es la fuente de datos más rápida para las consultas puramente espaciales.

Es complicado destronar un formato que leen todos los SIG y que se ha convertido casi en un estandar y es un formato eficiente, sin embargo GeoPackage es un formato más moderno en el que podemos almacenar datos vectoriales y raster, complejos y voluminosos en un único archivo. Animamos a todos a convertir en GeoPackage todos vuestros shapefiles.

¿Cómo convertir un Shapefile en GeoPackage con QGIS?

Es muy sencillo. En primer lugar añadiremos un shapefile en la interfaz y en el menú superior buscaremos  Capa > Guardar como…

Por defecto el formato de salida es Geopackage, por lo que bastará con indicar la ruta de salida y el nombre de la capa.

Más info:

12 comentarios en “Di no al Shapefile y sí al GeoPackage”

  1. Hola
    Estoy descargando un trozo de CORINE del IGN y veo que el archivo zip del GDB es exactamente la mitad (609.76 MB) que el zip de formato GeoPackage (1265.64 MB)
    ¿Entonces, o no exactamente lo mismo (sería raro) o es bastante más eficeniente GDB o qué?
    ¿Alguna idea?

    Graciaa a los que estáis en mappinggis por vuestra ayupa
    Paco

    • Hola Paco, buena apreciación. Es tal y como lo dices, con la misma información, un archivo GPKG pesa más que una geodatabase o que un shapefile, no es porque sea más ineficiente, sino por su estructura interna de archivos. Pero es verdad que es un punto negativo del GeoPackage. Gracias por seguirnos!

  2. Hola Aurelio

    Soy Miguel , Tengo una consulta, estoy trabajando con GeoPackage todo muy bien sin embargo cuando he incluido un raster este ya no puedo eliminarlo con las herramientas de QGIS de base de datos BBDD. Como podria proceder, algunas sugerencias.

    Genial tus aportaciones!!! Un abrazo.

  3. Hola Aurelio

    Tengo pocos meses usando Qgis y estoy fascinado , muy potente esta herramienta. Una consulta con el GeoPackage, tengo problemas para eliminar una capa raster que lo inclui dentro de este formato. Sabes como puedo eliminarlo, intente en mismo qGis con la gestion de BBDD y no pude. Sabes que debo hacer..cualquier sugerencia es bienvenida.

    Saludos
    Miguel

  4. Buen día, mi nombre es José diaz desde colombia. Mi pregunta es que diferencia hay entre ese geo pack Cage y el mpk de arcgis. Y si existe compatibilidade entre ambos en los distintos software (Arcgis y Qgis).

    • Hola Jose, Un paquete de mapas (mpk) no es un formato de archivos, tan solo sirve para compartir. Un mpk contiene tanto el documento de mapa (.mxd) como los datos a los que hacen referencia las capas que éste contiene. QGIS no tiene la capacidad mpk, mientras que ArcGIS sí puede leer el formato GeoPackage. El homologo en QGIS del mpk es QConsolidate. QConsolidate es un plugin de QGIS que permite agrupar un proyecto y todas las capas que se encuentran dentro de él en una única carpeta indicada por el usuario. Saludos!

  5. Buenas tardes: muy interesante la información compartida, ayudan mucho para estar al tanto de los avances tecnológicos referentes al GIS. Voy a poner en práctica y si surgen dudas le haré llegar mis consultas.
    Muchas gracias!
    Saludos desde Paraguay

  6. es interesante todos estos avances, una pregunta es muy complicado convertir los proyectos en shapefiles en GeoPackage?

    • Hola Ali,
      Convertir un Shapefile en geopackage es muy fácil. Podemos utilizar Qgis para ello: añadimos un shapefile en la interfaz y vamos al menú súperior Capa > Guardar como… Por defecto el formato de salida es Geopackage, por lo que basta con indicarla ruta de salida y el nombre de la capa. Saludos

  7. Hola, muchas gracias, tienes un paso a paso de como crear esas capas GeoPackage y como manejarlas de forma adecuada? Muchas gracias

Los comentarios están cerrados.