Geo Big Data con Datos Censales

Introducción

En este artículo mostrare un ejemplo de análisis geográfico de todas las manzanas de México, mediante un grid hexagonal a nivel nacional. Usaremos los datos del Censo 2010 del proyecto SCINCE del INEGI (Oficina Nacional de Estadística y Geografía de México). y por supuesto vamos preparando la artillería para analizar los datos del próximo censo 2020 que será publicada la próxima semana: https://censo2020.mx/censo/.

Tradicionalmente este análisis se realizaría usando una herramienta de análisis geográfico como lo puede ser QGis o alguna otra herramienta comercial. Una estrategia mas sofisticada usaría una base de datos con extensiones geográficas como PostgreSQL + PostGIS (https://postgis.net/).

Sin embargo las soluciones anteriores están fuertemente limitadas en el aspecto de escalabilidad horizontal. Pues es complejo extenderlas a un clúster distribuido.

Desde hace algunos años existe una tecnología que ofrece capacidades de procesamiento paralelo y distribuido, llamada Apache Spark (https://spark.apache.org/), que ha tardado en incorporar las capacidades geográficas a su ecosistema. Poco a poco esto ha ido cambiando y es el tema de este tutorial. Apache Spark en su conjunto ha ido madurando incorporando a Python y R como lenguajes de trabajo pues originalmente solamente funcionaba con Scala/Java. Incluso hoy día Spark es un motor optimizado paralelo y distribuido de SQL estándar. Lo cual abre las posibilidades para el procesamiento de datos por un público extenso, pues SQL es un lenguaje estructurad y relativamente sencillo para la explotación de datos. Y en combinación con Apache Spark, SQL se convierte en un lenguaje de procesamiento paralelo y distribuido! (https://spark.apache.org/sql/).

En combinación con Apache Sedona antes GeoSpark (https://sedona.apache.org/) y gracias a la actualización liberada hace algunos meses, ahora podemos usar funciones geográficas en Apache Spark mediante el lenguaje Python aprovechando librerías como Geopandas como medio de acceso a los formatos geográficos tradicionales por ejemplo Shapefiles. Y por si fuera poco podemos usar SQL con extensiones Geográficas en el entorno de Apache Spark.

Ahora bien, instalar y configurar los entornos de Big Data puede ser retador, por lo que en este tutorial usamos la tecnología de contenedores llamada docker (https://www.docker.com/). Docker facilita el uso de ambientes complejos gracias a que ya existen muchos…

Abel Alejandro Coronado Iruegas, Ph.D.

Father-Husband-Data Scientist-Philosopher-Entrepreneur-Professor in Data Science-MSc Stats #Scala #SatelliteImagery #Python https://www.a2bigdata.com.mx/