electricitymaps / bloom-contrib

Making carbon footprint data available to everyone.
https://www.bloomclimate.com
MIT License
435 stars 104 forks source link

Improve hotel model #247

Open martincollignon opened 4 years ago

martincollignon commented 4 years ago

Model per country available here: https://docs.google.com/spreadsheets/d/1f1j9EeVn9czOZBJKLXvgPwnmldakxuJ7/edit#gid=439900614

Could be converted to a factor by country

Magalii commented 4 years ago

Hello! I would be very happy to work on that issue. Just to be sure of what is expected, the goal of this issue is to improve the document footprint.yml by adding more precise values to the category Hotel, right? For example, by adding different intensityKilograms values for different types of hotel and different countries?

martincollignon commented 4 years ago

Hi @Magalii, the idea would be to improve the model in https://github.com/tmrowco/tmrowapp-contrib/blob/master/co2eq/lodging.js to incorporate a factor (0.3x for example) per night hotel based on a country. I believe the original model in https://github.com/tmrowco/tmrowapp-contrib/blob/master/co2eq/lodging.js is from Switzerland :)

An example on how we've used factors is to look at https://github.com/tmrowco/tmrowapp-contrib/blob/master/co2eq/flights/index.js

martincollignon commented 4 years ago

Hi @Magalii are you still interested in helping out? :)

Magalii commented 4 years ago

Hello! Yes, I am still very intersting in working on that issue. I have been incredibly busy those past two weeks and more than I expected, I am sorry I didn't react earlier. I have a bit more time now so I will be able to tackle it. :)

Magalii commented 4 years ago

Hello @martincollignon ! Looking at the data available, I think it is more appropriate to have a hotel model per country and not per hotel class. There is a wider range of values (from 6.9 to 119.3) per countries and we only have reliable informations per hotel class for Switzerland. If we want to create a coefficient per country and apply it to the different hotel classes, we would need to derive it only based on the informations about Switzerland and I am very afraid it would lead to unreliable results.

This would require to change the lodging activity format since we would need a mandatory location and not a mandatory hotelClass. It would also be easier to have a location by country and not by longitude and latitude, even though it is possible to find the country from those data.

So can I do a model per country or would it break what is already existing?

If we want to add more precision to the model based on how polluting a hotel is within its country category, the website https://www.hotelfootprints.org/ provides informations about the lower quartile and higher quartile. So we could find a way to use that, although we would need to find a way to determine if a certain hotel is closer to the lower quartil, higher quartil or median. (The values provided in the document https://docs.google.com/spreadsheets/d/1f1j9EeVn9czOZBJKLXvgPwnmldakxuJ7/edit#gid=1584958883 seems to be the median with actualized data compared to what is found on that website.) If you go to the website, you may also see that it is possible to select a hotel category, but datas are most often missing.

Another good way to add more granularity to the model would be to consider the number of people sharing a hotel room since the values we have are per occupied room and not per person. We could thus add that number of people to the lodging activity attributes, possibly as an optional attribute.

martincollignon commented 4 years ago

Hi @Magalii ! Sorry for the delay. Feel free to do a model by country. I think right now it would be preferable to have two separate models. The reason being that I trust DEFRA to do the right thing, I trust South Pole to do the right thing, but I looked at the data from hotelfootprints.org (you can find the data here: https://docs.google.com/spreadsheets/d/1IgtL17Z4x7yxovUubWXyWzEeywIYX21gXz8OUk63SY4/edit#gid=0) and to be honest it looks still very biased and as you said I wouldn't feel comfortable merging the two. Hopefully we can still find a nice "class" model that could be applied to countries later on.

You could definitely add a people variable as we have on the transportation.js model.

Magalii commented 4 years ago

I have completed the hotel model based on the countries (without a variable for the number of people for now). Should I adapt the Lodging activity formatting in the README to add a mandatory country field? An optional field to determine which model is to be used could be interesting too. Another option could be to create a new type of activity formatting for that new hotel model that is separate from the lodging activity, but that seems a bit unnecessary to me. If you want to see what I have done so far, you can find it here: https://github.com/Magalii/tmrowapp-contrib I am waiting for your response to create the pull request.

Thank you for the extra data document. How did you find it? I was looking for that kind of format, but I didn't see anything like that on the website. Also, just for information, DEFRA references the hotelfootprints.org website as their main source for the data they provide, but they probably have access to updated and more complete data than what is available for us on the website.

martincollignon commented 4 years ago

I can't remember where I found it! Please do create the PR :-) Also, amazing job!

Magalii commented 4 years ago

There is now a hotel model based on countries that can be found in this file: https://github.com/tmrowco/tmrowapp-contrib/blob/master/co2eq/hotelpercountry.js It uses the values for carbon footprint found in the countries.json file that contains all the existing ISO2 country code and the carbon footprint of a hotel stay when that value is known. (https://github.com/tmrowco/tmrowapp-contrib/blob/master/co2eq/countries.json)

This model is functionnal, but can still be improved. Here are some ideas I had on improving it: