CalebBell / chemicals

chemicals: Chemical database of Chemical Engineering Design Library (ChEDL)
MIT License
186 stars 36 forks source link

Include IPCC 5th assessment report GWPs #34

Closed yoelcortes closed 2 years ago

yoelcortes commented 2 years ago

Hi Caleb,

As discussed in #23, this pull adds data for the IPCC 5th assessment report. The year is added as an argument to the GWP function to access different reports. I believe this may be a good solution for adding future reports more easily. There are a couple things still left to do:

  1. Finish adding CASRNs. I used the old GWP file to get CASRNs, then used CAS_from_any for the remaining chemical names. I did not use formulas as this would lead to wrong CASRNs. There are still many compounds without CASRN.
  2. The <1 values are returned as None values. We may want to add a "default" parameter to let the user decide what value to use instead of <1, or simply return "<1".

Thanks!

CalebBell commented 2 years ago

Hi Yoel,

I have found further CAS numbers now, attached to this comment. Still not done. It's boring for sure. The following paper has been helpful: Hodnebrog, Ø., B. Aamaas, J. S. Fuglestvedt, G. Marston, G. Myhre, C. J. Nielsen, M. Sandstad, K. P. Shine, and T. J. Wallington. “Updated Global Warming Potentials and Radiative Efficiencies of Halocarbons and Other Weak Atmospheric Absorbers.” Reviews of Geophysics 58, no. 3 (2020): e2019RG000691. https://doi.org/10.1029/2019RG000691.

I like the idea of adding more data more easily. However, I had a slightly different implementation in mind - sticking with the method string itself having the year in it. This is preferable to me because switching to the per-year bit makes it harder to include GWPs from different sources, such as from the above document. As well, if the IPCC updates its own values more than once a year chemicals wouldn't be able to support it anymore.

The ratio of AGWP in W m^2 yr/kg to GWP is constant. I believe we can use that to calculate to maybe 2 significant figures the GWP, GTP, etc for the places where the table says they are under 1. If that doesn't make any sense to you I'm cool doing that later after leaving those values as missing.

Official Global Warming Potentials 2013.csv

Caleb

yoelcortes commented 2 years ago

Thanks for the detailed comments! I didn't thought about IPCC updating values more than once a year. We can have the years in the string. Your last note on GWP from AGWP makes sense. I'll try to get this done over this upcoming weekend.

CalebBell commented 2 years ago

Hi Yoel,

At last, I finished adding the CAS numbers and getting the missing GWPs. I ended up simplifying some of your code to be more explicit; and to avoid breaking as much backwards compatibility as possible. The only thing which is different is that the method 'IPCC (2007) 100yr-SAR' was renamed to 'IPCC (1995) 100yr' because the old name was misleading and confusing. If anyone complains I will add a translation for it.

Thank you for all your hard work on this PR! Adding new data can be a frustratingly slow process but I don't remember it being this slow. I'm getting out of practice.

I hope to add a new function GTP which uses the global temperature potentials in the future! I believe those are more relevant these days, but most users will be told by a specific regulator which set of values to use.

Cheers, Caleb

yoelcortes commented 2 years ago

Excellent! Thanks for completing this and improving the code! Yeah, adding data can be pretty slow and I got a little busy with other stuff. Happy to contribute :)

Thanks!