GeoCSV, GeoPackage y GeoJSON: ¿alternativas al shapefile?

Durante décadas, el shapefile de ESRI era el formato de datos geográficos más extendido y popular entre la comunidad GIS, y es admitido en todos los programas de SIG. Un shapefile puede contener información espacial y alfanumérica de puntos, líneas o poligonos y era el estandar de facto para intercambiar información vectorial. 

Sin embargo, el shapefile tiene un elevado número de inconvenientes, sobre todo si lo comparamos con los nuevos formatos que han ido surgiendo en los últimos años. En este artículo analizamos otros formatos que sirven para almacenar datos espaciales y veremos si realmente son una alternativa al shapefile.

Algunos formatos vectoriales que se han presentado como alternativas al shapefile son: GeoCSV, GeoPackage, GeoJSON o Geobuf.

geocsv vs geojson vs geopackage: ¿alternativas al shapefile?

¿Qué es GeoCSV?

GeoCSV es una especificación que data del año 2015 y tiene formato de archivo tabular CSV (Comma-separated values) con una extensión opcional de geometría.

Tiene dos variantes: la opción Punto X/Y o la opción WKT.

  • La opción WKT es la preferida, ya que se almacena en una única columna de tipo String el constructor, por ejemplo «POINT (-4.5454 45.2211)», lo que significa -4.5454 oeste y 45.2211 norte (longitud/latitud). Esta opción soporta los tipos de geometría Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon e incluso GeometryCollection y ARCos.

Un archivo .csv espacial tendría un aspecto como este:

id;name;amount;city;geom 
1;Andrés;2.1;Londres;POINT(8.8249 47.2274) 
2;Laura;2.2;Berlín;POINT(8.5435 47.3768) 
3;"Roberto;Bob";2.3;León;POINT(7.4397 46.9487)
  • La opción «Point(X/Y)» solo puede almacenar puntos. Este tipo de geometría puntual se almacena en dos columnas: longitud, latitud (x/y). Ejemplo para dos columnas de coordenadas lon y lat es «8,8249; 47.2274».

En cualquier caso el sistema de coordenadas por defecto es WGS84 (EPSG:4326) y la codificación de caracteres UTF8.

Es posible abrir un GeoCSV con QGIS. Pero, para cargar, editar o guardar GeoCSV en QGIS, es necesario utilizar el plugin GeoCSV.

Este complemento crea una capa vectorial a partir del archivo csv cargado para que esté disponible para editar.

  1. Agregar capa de texto delimitado a través de Capa→ Agregar capa → Agregar capa de texto delimitado…
  2. Abra la ventana del complemento GeoCSV a través de Complementos → GeoCSV.
  3. Seleccione una capa de texto delimitado que desee transformar en una capa vectorial temporal.
  4. Haga clic en «Aceptar».

Otras aplicaciones genéricas que trabajan con GeoCSV son LibreOffice, Excel, Kettle o Python.

La ventaja es que estos ficheros es que ocupan poco espacio y es fácil compartirlos.

¿Realmente GeoCSV es una opción de futuro?

Aunque tiene más capacidad que un shapefile, es un formato un poco espartano y con poca capacidad para datos de gran tamaño. Además solo puede almacenar una capa por archivo.

Al igual que el shapefile puede ir acompañado de archivos auxiliares, como CSVT (CSV types, contiene la información del tipo de campo: el esquema), PRJ (contiene la información sobre el Sistema de Referencia Espacial), CSVZ (formato de compresión en formato ZIP).

¿Qué es GeoPackage?

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

Es abierto, basado en estándares de la OGC, independiente de plataformas o aplicaciones y se trata un formato compacto. Se ha construido sobre la base de SQLite, por lo que necesitarás saber SQL para utilizar GeoPackage en cualquier sistema operativo de escritorio o móvil.

La especificación GeoPackage describe un conjunto de convenciones para el almacenamiento en una base de datos SQLite de:

  • Entidades vectoriales.
  • Un conjunto de matriz de teselas de imágenes y mapas raster a diferentes escalas.
  • Esquema.
  • Metadatos.
  • Extensiones.

Como es una base datos, 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.

¿Qué programas abren y editan GeoPackage?

Prácticamente todos. El GeoPackage es el formato de almacenamiento nativo de QGIS:

Otros programas que soportan GeoPackage son:

  • ArcGIS Pro.
  • GDAL.
  • GeoServer (sirviendo los datos como estándar web de la OGC).
  • GeoTools.
  • OpenJUMP PLUS.
  • Skyline.
  • Luciad.
  • Envitia MapLink.
  • SpatiaLite.
  • FME Desktop.
  • FME Server.
  • TerraGO.
  • MapTiler.
GeoPackage_ArcGIS
Previsualización de un archivo GeoPackage desde ArcCatalog

 

¿GeoPackage tiene futuro?

Casi todos los software GIS de referencia son capaces de leer el formato vectorial y raster de GeoPackage. Poco a poco también serán capaces  de escribir sobre este formato. Además existen versiones para móviles (Android).

GeoPackage destaca por su flexibilidad y se puede utilizar de muchas maneras, por lo que puede reemplazar totalmente al formato shapefile.

Cabe destacar que organizaciones del gobierno de Estados Unidos están explorando formas de distribuir los datos geoespaciales en este formato.

¿Qué es GeoJSON?

GeoJSON es un formato de intercambio de datos geoespaciales basado en JSON (Javascript Object Notation). GeoJSON define la gramática basada en un estándar del OGC (WKT).

Este formato fue el primero en llegar de los tres que comentamos en este artículo: apareció en 2008 y soporta los siguientes tipos de geometría: Point, LineString, Polygon, MultiPoint, MultiLineString, y MultiPolygon. Las listas de geometrías se representan por una GeometryCollection.

Es un formato simple, ligero y sencillo. Muy popular en las aplicaciones webmapping, porque se trata de un formato de texto que es muy rápido de analizar en máquinas virtuales Javascript.

Podemos partir de un shapefile y convertirlo a geoJSON para crear un sencillo mapa web.

¿Realmente GeoJSON tiene futuro?

Más que futuro es ya un presente: desde el año 2008 está implantado y estandarizado en muchas aplicaciones webmapping.

Los navegadores web no impiden el intercambio de datos en formato JSON, por lo que estos formatos son una alternativa al formato GML, y además es más ligero.

TopoJSON es una extensión de GeoJSON que codifica topología. Mucho más ligero aun que un GeoJSON, aunque su estandarización es más complicada, se utiliza sobre todo en visores web mapping construidos con d3.js.

Conclusión

GeoJSON es un sustituto perfectamente adecuado del Shapefile en muchos escenarios (visualización e intercambio de datos). Tanto GeoPackage como GeoJSON superan muchas de las limitaciones de Shapefile. No sucede lo mismo con GeoCSV, un formato que aporta pocas ventajas frente a un shapefile.

GeoPackage es un formato más complejo que GeoJSON, pero proporciona una serie de capacidades adicionales que algunos escenarios demandan: como las capacidades de una base de datos, la interoperabilidad de apps y servicios web en un ambiente móvil o el uso con aplicaciones tanto comerciales como de código abierto.

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.

Muy recomendado: Di no al shapefile y si al Geopackage.

6 comentarios en «GeoCSV, GeoPackage y GeoJSON: ¿alternativas al shapefile?»

  1. Muy buenas he estado revisando ya muchos artículos sobre GIS son muy buenos y cada vez aprendo más cosas. Bueno me gustaría que m ayudarán con algunos sitios, articulos cientificos en sí mucha informacion para construir un GIS web ya que estudio ingenieria de sistemas y mi tema de tesis es la construccion precisamente de un GIS. Agradecería su respuesta y muchas gracias por todo.

  2. Hola … tengo aneado hacer ina herramienta de gestión y edición de datos vectoriales de manera colaborativa con open layers … cual formato de transferencia me recomiendas …

  3. Me gustaría saber tu opinión de Spatial Lite, he leído que también es bien aceptado y ya lleva un buen rato como GeoJson, es mas me gustaria saber como le va contra GeoPackpage.
    Gracias por el post, muy util.

    • Hola Phipex,
      Gracias por comentar.
      Pues es que estamos hablando prácticamente de lo mismo, ya que SpatiaLite, al igual que GeoPackaget, se basa en SQLite. Se puede utilizar SpatiaLite para extender la capacidad espacial de GeoPackage, ya que GeoPackage tiene un núcleo más pequeño… Spatial Lite y PostGIS son dos de las bases de datos más potentes y con capacidades SIG, pero trabajando en ambiente móvil o para intercambio de datos parece mejor trabajar con GeoPackage, además parece que tiene mucho más futuro…

Los comentarios están cerrados.