Es comúnmente conocido que para la elaboración de Estudios de Impacto Ambiental (y otros estudios de carácter medioambiental) se requiere trabajar con información cartografía mediante Sistemas de Información Geográfica o SIG (gvSIG, QGIS o ArcGIS, por citar los más conocidos), consultar innumerables bases de datos y publicaciones que guarden relación con las características ambientales del entorno del proyecto y, en los mejores casos, realizar estudios específicos y detallados para cuestiones como el patrimonio cultural, la geología, la flora, la fauna, el ruido o la calidad y contaminación del suelo, del aire y/o del agua.

Sin embargo, apenas se conoce el trabajo que supone el análisis de los datos que aportan algunos de estos “inputs” citados, dando por sentado que, en muchos casos, simplemente se hace un “copia y pega” de la información consultada.

Pero la realidad es que, cada vez más, el volumen de información del que se dispone (Open Data), y el propio que se genera específicamente para cada uno de los proyectos, hacen que el concepto de Big Data esté cada vez más integrado en el trabajo diario de la consultoría ambiental actual.

Volumen de datos del GBIF

Ejemplo del gran volumen de datos con los que puede ser necesario trabajar, en este caso del GBIF

Por supuesto, este incremento en el volumen, diversidad y calidad de los datos de los que se dispone, hace que sea necesario adaptar las herramientas y flujos de trabajo previamente establecidos.

Herramientas como Excel, o similares, pueden ser suficientes para analizar conjuntos de datos no demasiado extensos, y que no requieran de mucha manipulación, como por ejemplo la representación de pequeñas series temporales, creación de tablas y gráficos dinámicos y ciertos cálculos sencillos. El problema es que el sistema en celdas de los datos, y la gestión de la memoria del programa, hacen que cada cálculo o nueva columna que se genera a partir de los datos originales, vayan duplicando las necesidades de cálculo (procesador) y de memoria necesarios para ello cada vez que se modifica una simple celda, por lo que con conjuntos de datos de miles de registros, comienza a ser frustrante trabajar en hojas de cálculo, y más si se van añadiendo referencias a hojas, fórmulas, filtros, etc.

Ejemplo de tabla Excel con datos meteorológicos resumidos (Euskalmet)

Ejemplo de tabla Excel con datos meteorológicos resumidos (Euskalmet)

Cuando esto ocurre, se hace necesario recurrir a herramientas de análisis de datos que no tengan dichas limitaciones y que estén expresamente orientadas a trabajar “sin despeinarse” con grandes volúmenes de datos, y que además aporten análisis estadísticos en los que apoyar las conclusiones de nuestro trabajo.

Herramientas para Big Data

Entre las de licencia comercial más populares están SAS, SPSS y Matlab; y entre las desarrolladas como Open Source destacan Python, especialmente con sus librerías SciPy y Pandas, y R.

Las licencias de las primeras pueden resultar extremadamente caras, sobre todo si al paquete base se le deben ir añadiendo diferentes librerías o módulos específicos a nuestras necesidades concretas. Por el contrario, Python y R son completamente gratuitos.

¿Y entre éstos cuál es mejor? No hay una respuesta sencilla a esta pregunta, bueno, sí la hay: “depende”.

Ambos son estrictamente lenguajes de programación, pero presentan importantes diferencias. Python, es un lenguaje de programación genérico, es decir, con él se pueden programar funciones y aplicaciones de todo tipo, cualquiera. Aplicaciones como Dropbox, Pinterest, Instagram o numerosas herramientas de la NASA utilizan Python como lenguaje de programación.

R, por el contrario, es un lenguaje de programación diseñado específicamente para el análisis estadístico de los datos y su representación gráfica. Comúnmente se dice que es un lenguaje de programación hecho por estadísticos para estadísticos.

Gráfico de correlación con ggplot en R

Gráfico de correlación con ggplot en R

Con ambas opciones se puede trabajar sobre conjuntos de datos de millones de registros sin errores ni cuelgues del sistema. Aunque la principal ventaja de utilizar un lenguaje de programación como Python o R para el análisis de los datos es que todo se realiza mediante scripts de código, por lo que cada uno de los pasos que se da permite visualizar directamente posibles errores (es muy fácil cometer un error en una celda de Excel y arrastrar dicho error en todos los cálculos y fórmulas que dependan de dicha celda), facilitando también la modificación y adaptación del código y, sobre todo, su reproducibilidad en otros proyectos, estudios o escenarios.

Ejemplo de sencillo código en R para la carga, manipulación y representación de datos sobre biodiversidad:

datos <-read_csv(«E:/biodiv.csv») #cargamos los datos
datos %>%
select(Clase, Nombre.vernáculo, Fecha.del.evento…analizada) %>% #seleccionamos los campos que nos interesan
mutate(Especie = Nombre.vernáculo, Fecha = Fecha.del.evento…analizada) %>% #renombramos ciertos campos
filter(Clase==»Aves») %>% #filtramos los datos para quedarnos con las aves
ggplot(aes(x=Especie)) +
geom_histogram(stat = «count»)+
scale_y_log10() #y representamos en forma de histograma a escala logarítmica la frecuencia de cada especie

Como ya hemos dicho, si tu volumen de datos es reducido, y los cálculos que necesitas hacer son sencillos, incluyendo estadísticos como la media y/o la variación estándar de un pequeño conjunto de datos, o sumas totales o parciales, con una hoja de cálculo como Excel o similares (Calc de OpenOffice o Numbers de MacOS) sería suficiente. Pero si necesitas trabajar sobre un considerable conjunto de datos, en diversos formatos de entrada, combinando diferentes fuentes de datos, filtrando, agrupando y realizando complejos análisis como agrupaciones de datos o clústeres, regresiones múltiples, análisis de dependencia entre múltiples variables, modelización y “Machine Learning” para análisis predictivo, etc., entonces deberías considerar herramientas como Python o R.

Ejemplo de análisis de datos y su representación gráfica en R

Ejemplo de análisis de datos y su representación gráfica en R

En Alburen, a pesar de que trabajamos con QGIS y disponemos de diversos scripts personalizados desarrollados en Python (PyQGIS) para automatizar algunas tareas, tomamos la decisión hace unos años de optar por incorporar a nuestro flujo de trabajo el lenguaje R para el análisis de datos. Los principales motivos para tal decisión han sido:

  • la sencillez del lenguaje de programación en R, estrechamente relacionado con la especificidad de R para esta tarea;
  • la potencia de sus librerías para cargar, manipular, analizar y representar los datos, en especial tidyverse y ggplot;
  • la comunidad online que trabaja con R, con una gran disponibilidad de recursos online (mil personas antes que tú han hecho algo similar a lo que ahora estás tratando de hacer); y
  • la disponibilidad de herramientas como RStudio para facilitar el desarrollo y ejecución de scripts, la manipulación de datos o la salida gráfica de los resultados.

En próximos posts comentaremos también la enorme ventaja que supone la creación de scripts en R, en especial R Markdown, para la automatización de tareas repetitivas en la carga, manipulación, análisis y representación de datos.