Pintando las bandas del calentamiento (warming stripes) con Seaborn y Matplotlib en Python

Es evidente que estamos en una fase de calentamiento global provocado por causas antropogénicas.

El consenso es muy claro:

“Scientific evidence for warming of the climate system is unequivocal.”

Intergovernmental Panel on Climate Change

El cambio climático es un problema global extremadamente complejo con muchas interacciones entre muchos sistemas distintos y hay veces en las cuales es complicado poder enviar un mensaje claro, informativo e inequívoco.

Pero, gracias a que existen excelentes divulgadores, podemos recurrir a algunas herramientas que nos permitan lanzar ese mensaje claro, informativo e inequívoco.

Lo que vamos a ver hoy es como calcular las warming stripes o bandas del calentamiento usando Matplotlib, Seaborn y Python.

Pero…

¿Qué son las bandas del calentamiento?

Las bandas del calentamiento fueron ideadas por el climatólogo Ed Hawkins, trabajador del MetOffice, para poder explicar de forma visual el calentamiento global al público en general sin tener que entrar en términos técnicos y de forma extremadamente
visual.

Dibujando las warming stripes

Deberéis tener instalado xarray, netcdf4, pandas, seaborn y todas sus dependencias (numpy, matplotlib,…).

Los datos

Las bandas de calentamiento muestran anomalías de temperatura en la superficie del planeta. Los datos de temperaturas en todo el globo con registros que se extienden más allá de un siglo se pueden obtener de varias fuentes y todas ellas muestran similares tendencias. Podríais usar la información generada por, por ejemplo, grandes centros de investigación como:

En este caso voy a usar los de la NOAA. Para descargarlos podemos hacer lo siguiente:

El codigo anterior quizá es un poco complejo pero tiene una razón de ser. Si visitais la url definida por URL veréis que hay un enlace a un fichero NetCDF pero este fichero se va actualizando (cada mes) al igual que el nombre del mismo. Para que el código funcione cuando alguien visite este artículo en el futuro he escrito un código un poco más complejo que parsea la página web para buscar el enlace y devuelve el enlace correcto. La función download_noaa hace uso de la clase MyParser para descargar el fichero NetCDF con el nombre contenido en FILENAME.

Lectura de los datos

Una vez que hemos conseguido unos datos debemos leerlos. Genial, vamos a generar código para hacer lo anterior:

La primera función, read_noaa, es simplemente una abstracción de la lectura del fichero NetCDF leido con ayuda de xarray. Como nunca he hablado de xarray en el blog he preferido dejarlo de esa forma.

La segunda función sirve para extraer la serie temporal de anomalías de temperatura más cercana a la posición definida mediante lon y lat (logitud y latitud geográficas).

Creando el gráfico

Descargados los datos y sabiendo como obtener una serie temporal en una localización ya lo tenemos todo para crear el gráfico. Vamos a ello:

La nueva función creará el gráfico que deseábamos y lo guardará con el nombre warming_stripes.png.

Resultado final

Voy a obtener el gráfico para la serie temporal más cercana a la posición (longitud, latitud) = (2.5º, 39.5º), cercana a Mallorca. Para ello solo tengo que usar las funciones anteriores de la siguiente forma:

Si todo ha funcionado correctamente el resultado final debería ser algo como lo siguiente:

¿Quieres conocer más sobre el cambio climático?

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

91 − eighty six =