A mí me funciona

El blog de Ignacio Cruz
Motor vehicle pollution abstract concept vector illustration.

Calcula tu huella de carbono con la API de Climatiq

3 dic. 2021
·
  • REST API
·
  • Climatiq
  • emisiones
  • OEDB
  • REST API

[Imagen destacada Infographic vector created by vectorjuice – www.freepik.com]

Hace dos meses que me uní al equipo de Climatiq para crear entre otras cosas la API que permite calcular la huella de carbono de, bueno, de cualquier cosa. Todavía estamos en beta así que faltan cosas pero creo que vamos por buen camino.

Como base para el cálculo utilizamos un listado de factores de emisión. Cada uno de ellos representa una entidad más o menos pequeña de emisión de carbono: Avión, coche o tren pero también cosas tan dispares como noches de hotel o tratamiento de aguas. Si quieres ver todo lo que se puede calcular, aquí tenemos un explorador de factores de emisión.

El origen de los datos y de los factores proceden de distintas publicaciones oficiales y son revisadas por nuestro equipo de científicos. Esta base de datos son los cimientos sobre los que trabajamos a la hora de realizar cálculos y es totalmente abierta y Open Source, con lo que la base de datos está abierta a colaboraciones externas. Esperamos que con el tiempo crezca con aportaciones fuera de Climatiq (por si te quieres animar).

Autenticación de la REST API

A día de hoy, en beta v2, la autenticación no es más que un Bearer Token en la cabecera que incluye una API Key tal que así

Authorization: Bearer <API_KEY>

Si estás interesado en calcular tu huella, puedes obtener una API Key para tus cositas registrándote desde aquí. Una vez registrado puedes ir al escritorio de nuestro Dashboard y obtener una desde allí.

Listado de factores de emisión

Además del explorador antes mencionado, también podemos obtener la misma lista de factores a través de la API mediante una llamada GETal endpoint/emission-factors

curl --request GET \
    --url 'https://beta2.api.climatiq.io/emission-factors' \
    --header 'Authorization: Bearer API_KEY' \
    --header 'Content-Type: application/json'

Esto devuelve un array con el listado completo (todavía no hay paginación así que llegan muchísimos resultados) y cada uno de los resultados es un factor distinto como:

{ “id”: “freight_vehicle-vehicle_type_commercial_truck-fuel_source_na-vehicle_weight_na-percentage_load_na”, “name”: “Road freight truck average value”, “category”: “Road Transport”, “sector”: “Transport”, “source”: “MfE”, “source_link”: “https://environment.govt.nz/publications/measuring-emissions-detailed-guide-2020/&#8221;, “uncertainty”: null, “year”: “2020”, “region”: “NZ”, “region_name”: “New Zealand”, “description”: “Emission intensity of goods transported by road freight truck. Average value. Only fuel combustion LCA activity is included. Published by the Ministry for the Environment of New Zealand in 2020.”, “unit_type”: [ “WeightOverDistance” ], “unit”: “kg-CO2e/tkm”, “factor”: 0.135 },

Con información sobre su identificador, la fuente y su enlace, a qué año corresponde dicho factor, descripción, etc. Para esta entrada sólo nos interesa destacar unit_type, que es el tipo de unidad que dicho factor acepta a la hora de hacer los cálculos. Dependiendo del tipo de unidad que el factor de emisión acepte, tendremos que estructurar la petición del cáculo de emisión de manera diferente.

Cálculo de la huella de carbono de un viaje a Berlín

Si yo quisiera ir a ver a mis compañeros de trabajo a Berlín, que es donde está la mayoría de ellos, quizás quiera calcular qué impacto en cuanto a huella de carbono puede tener mi viaje en distintos medios de transporte. Lo más importante y difícil para esto es elegir bien un factor de emisión, y es donde he empleado más tiempo.

Como veremos, requiere ciertos conocimientos sobre las fuentes y metodología a la hora de elegirlos con lo que el uso de la API no exactamente para particulares pero siempre se puede utilizar para realizar algunas estimaciones si le ponemos un poco de ganas.

Para realizar el cálculo, una vez elegido el factor, tenemos que hacer una llamada POST al endpoint/estimate con una serie de parámetros que dependerá del tipo de unidad que acepta el factor de emisión.

Opciones de viaje

Para este viaje voy a obtener tres cálculos distintos para luego realizar una comparativa. Los tres tienen el mismo origen y destino, Málaga – Berlín:

Opción 1: Viaje en coche

Para viajar en coche, he buscado los factores de emisión de los últimos años de un coche diesel: https://explorer.climatiq.io/?search=diesel&category=Road+Travel. y creo que el primero de esta lista nos podría valer. De acuerdo a la documentación , si utilizamos dicha unidad, necesitamos pasarle una distancia en km y el número de pasajeros y según Google Maps, este viaje lleva unos 2800km:

{
		"emission_factor": "passenger_vehicle-vehicle_type_car-fuel_source_diesel-distance_na-engine_size_medium",
		"parameters":{
				"distance": 2800,
				"distance_unit": "km",
				"passengers": 1
		}
}

Y nos devuelve 518 Kg de CO2:

{ “co2e”: 518.0, “co2e_unit”: “kg”, “id”: “passenger_vehicle-vehicle_type_car-fuel_source_diesel-distance_na-engine_size_medium”, “source”: “UBA”, “year”: “2020”, “region”: “DE”, “category”: “Road Travel” }

Opción 2: Viaje en avión

Creo que un buen factor sería el primero en esta lista: https://explorer.climatiq.io/?source=BEIS&search=passenger_flight-route_type_domestic-aircraft_type_na-distance_na-class_na-contrails_included&year=2021&category=Air+Travel apropiado para la distancia que busco y además incluye el impacto de los contrails (la estela de condensación que dejan los aviones y que también dejan gases de efecto invernadero).

Acepta dos tipos de unidades: Passenger Over Distance y Flight Distance. Voy a utilizar la primera, que da un poco más de flexibilidad si quisiera calcular varios pasajeros y los parámetros son los mismos que con el cálculo anterior. En este caso la distancia en línea más o menos recta es de unos 2300km y la llamada quedaría de esta forma:

{
		"emission_factor": "passenger_flight-route_type_international-aircraft_type_na-distance_na-class_na-contrails_na",
		"parameters":{
				"distance": 2300,
				"distance_unit": "km",
				"passengers": 1
		},
}'

Y obtenemos esta respuesta:

{ “co2e”: 565.501, “co2e_unit”: “kg”, “id”: “passenger_flight-route_type_domestic-aircraft_type_na-distance_na-class_na-contrails_included”, “source”: “BEIS”, “year”: “2021”, “region”: “GB”, “category”: “Air Travel” }

Es decir, unos 565 Kg de CO2 que estaríamos emitiendo con un solo pasajero.

El caso del avión tiene una particularidad y es que al llegar hay que llegar a la ciudad mediante transporte público y el aeropuerto suele estar lejos del centro de la ciudad. Sería un pequeño añadido que habría que hacer, aunque no lo vamos a desgranar aquí.

Viaje en tren

El viaje en tren es un poco más complicado de calcular porque el viaje atraviesa tres países distintos con una generación de energía diferente por lo que tendremos que elegir tres factores distintos, uno por país.

Los factores que voy a utilizar son los primeros de esta lista: https://explorer.climatiq.io/?source=ADEME&year=2021&year=2020&category=Rail+Travel&region=ES&region=FR&region=DE, si nos fijamos, comparten el mismo ID pero para países distintos. Esto se debe a que comparten la misma fuente de datos y metodología pero cada país tendrá un impacto distinto dependiendo de las fuentes de energía que usen. Para seleccionar el país concreto al hacer la estimación tendremos que usar un selector más concreto. Aquí tendríamos las tres peticiones:

// Tren por España
{
			"emission_factor": {
				"id": "passenger_train-route_type_na-fuel_source_electricity",
				"region": "ES"
			},
			"parameters":{
					"distance": 1179,
					"distance_unit": "km"
			}
	}

// Tren por Francia
	{
			"emission_factor": {
				"id": "passenger_train-route_type_na-fuel_source_electricity",
				"region": "FR"
			},
			"parameters":{
					"distance": 983,
					"distance_unit": "km"
			}
	}

// Tren por Alemania
	{
			"emission_factor": {
				"id": "passenger_train-route_type_na-fuel_source_electricity",
				"region": "DE"
			},
			"parameters":{
					"distance": 754,
					"distance_unit": "km"
			}
	}

He usado el kilometraje que recorrería en tren en cada país (aproximadamente con una ruta Málaga – Perpiñán – Estrasburgo – Berlín) y el total de CO2 que sale en total es de unos 283kg.

Comparativa final

CriterioDistanciaCO2 Total
passenger_train-route_type_na-fuel_source_electricity / ADEME / 2020 / Spain1179 km60.6006 kg
passenger_train-route_type_na-fuel_source_electricity / ADEME / 2020 / France983 km183.821 kg
passenger_train-route_type_na-fuel_source_electricity / ADEME / 2020 / Germany754 km50.3672 kg
passenger_vehicle-vehicle_type_car-fuel_source_diesel-distance_na-engine_size_medium / UBA / 2020 / DE2800 km518.0 kg
passenger_flight-route_type_domestic-aircraft_type_na-distance_na-class_na-contrails_included / BEIS / 2021 / GB2300 km565.501 kg

Algunas notas

Como conclusión podríamos decir que el viaje en coche es el menos recomendable en cuanto impacto de huella de carbono, sin embargo, este cálculo tiene en cuenta sólo una persona por lo que si el coche va lleno, incluso gastando algo más de gasolina, el impacto por persona será mucho menor.

El tren, al contrario, es de lejos el más recomendable siempre que te apetezca pasar 24 horas viajando para llegar a Berlín.