GeoParquet: El nuevo formato más rápido y más pequeño

Apache Parquet es un potente formato de datos de código abierto orientado a columnas, creado desde cero como una alternativa moderna a los archivos CSV. GeoParquet es un estándar en incubación del Open Geospatial Consortium (OGC) que agrega tipos geoespaciales interoperables (punto, línea, polígono) a Parquet.

Beneficios del uso de Parquet

  1. Está bien comprimido por lo que reduce los costes de almacenamiento en la nube.
  2. La omisión de datos y las estadísticas de campo pueden ayudar a mejorar el rendimiento del procesamiento de datos al cargar porciones más pequeñas de datos.
  3. Diseñado para almacenar big data de cualquier tipo.

Parquet es un excelente formato de datos para almacenar enormes cantidades de datos complejos, pero como carece de soporte geoespacial, de ahí surgió la idea de GeoParquet.

También debemos mencionar la parte negativa ¿de qué adolece GeoParquet? El asunto más importante es que no es una buena opción para interacciones con mucha escritura. Un formato basado en filas funcionará mucho mejor si respalda un sistema que actualiza constantemente los datos y agrega nuevos datos.

Objetivos de GeoParquet

  • Establecer un formato de datos en columnas geoespaciales, que aumente la eficiencia en casos de uso basados en análisis. Los formatos de datos actuales, como el shapefile, no se pueden dividir ni procesar fácilmente en muchas máquinas.
  • Crear un formato de datos unificado y fácil de intercambiar que se pueda usar indistintamente en sistemas de análisis modernos como BigQuery, Snowflake, Apache Spark o Redshift.
  • Conservar datos geoespaciales de Apache Arrow.

Ventajas frente a GeoJSON o GeoPackage

GeoJSON puede almacenar campos anidados pero no está distribuido. Hubo un enfoque para almacenar GeoJSON como líneas separadas para permitir la distribución de estos archivos. Sin embargo, no está comprimido ni almacenado como texto plano, por lo que, su tamaño es enorme. Además, un GeoJSON solo le permite almacenar un campo de geometría a la vez y no admite índices espaciales.

Geopackage es un contenedor SQLLite, su tamaño es menor que el de un shapefile y es relativamente nuevo, pero no está diseñado para sistemas distribuidos.

Más rápido y más pequeño. La razón principal por la que se está convirtiendo en el formato favorito de todos es que es simplemente más rápido y más pequeño que la competencia:

chart showing the GeoParquet file sizes are typically smaller than shp, gpkg, or fgb
Fuente: https://cloudnativegeo.org/blog/2023/09/geoparquet-1.0.0-released

¿Quiénes participan en GeoParquet?

  • Element 84.
  • CARTO.
  • Foursquare.
  • GeoPandas.
  • GeoTrellis.
  • Microsoft.
  • Planet.
  • Apache Sedona.
  • GDAL.
  • Voltron Data.
  • Wherobots.
  • Google BigQuery.
  • Databrick.
  • Amazon Redshift.
  • Snowflake.
  • Overture Maps.

Los datos de Overture Maps están disponibles en el formato Parquet (nativo de la nube) y almacenado en AWS y Azure. Los usuarios pueden seleccionar los datos de su interés y descargarlos siguiendo el proceso descrito aquí.

Herramientas disponibles

  • Conversor online GeoParquet <-> GeoJSON: con la tecnología de la librería GPQ, podemos convertir de GeoJSON a GeoParquet y viceversa, directamente desde nuestro navegador.
  • GeoPandas (Python) extiende los tipos de datos usados por pandas para permitir operaciones espaciales sobre tipos geométricos y soporta la lectura y escritura de GeoParquet.
  • QGIS en Windows y en Linux ya incluye soporte a GeoParquet. En Mac puede funcionar instalando con conda (desde la terminal con conda activada, ejecutando ‘conda install qgis libgdal-arrow-parquet’ y luego simplemente escribiendo ‘qgis’ en la terminal).
  • Scribble Maps es una aplicación web con todas las funciones, admite tanto la importación como la exportación de GeoParquet.
  • BigQuery Converter proporciona scripts de Python para leer y escribir archivos de GeoParquet con Google BigQuery.
  • CARTO es una conocida plataforma geoespacial en la nube que soporta la importación de GeoParquet.
  • gpq proporciona una interfaz de línea de comandos para validar y describir cualquier archivo GeoParquet.
  • stac-geoparquet convierte el catálogo STAC en GeoParquet.
  • Apache Sedona es un sistema informático de clúster para procesar datos espaciales a gran escala que amplía los sistemas informáticos de clúster existentes como Apache Spark y Apache Flink. Puede cargar y guardar GeoParquet con Scala, Java, Python o R.
  • ArcGIS GeoAnalytics Engine ofrece análisis espacial a su big data ampliando Apache Spark con funciones SQL y herramientas de análisis listas para usar. Puede cargar o guardar GeoParquet con la biblioteca Python o el complemento Spark; consulta la página web sobre GeoParquet para más información.
  • FME: by Safe Software es una plataforma sin código que integra fácilmente sus datos, incluida la compatibilidad con lectura y escritura a partir de la versión 23.1.

Para más información, esta publicación de blog es imprescindible: Presentamos el formato de datos de GeoParquet.

En el blog: https://cloudnativegeo.org/blog/2023/09/geoparquet-1.0.0-released