IndEcol / pymrio

Multi-Regional Input-Output Analysis in Python.
http://pymrio.readthedocs.io/en/latest/
Other
155 stars 71 forks source link

Understanding the calculation and results of a national green water footprint #46

Closed ghost closed 3 years ago

ghost commented 3 years ago

Hello Konstantin & contributors,

I have a question concerning the calculation of the green water footprint of Germany using PyMrio and Eora26.

eora_storage = ''

eora = pymrio.parse_eora26(year=2015, path=eora_storage)

eora_green = eora.Q.diag_stressor(('WFN: Total water footprint - Green','Total'), name = 'emtype2_diag')
eora.eora_green = eora_green

eora.calc_all() 

source_green = eora.eora_green.D_cba.DEU.sum(axis = 1)
source_green = pd.DataFrame(source_green)

grafik

Looking at the results, only 186 out of 2914 sectors have a green water footprint. Of these 186 sectors 172 are "Agriculture" (the other 14 are mainly electricity and gas production and fishing). The way I understand national footprint calculations is that the results show the sectoral contributions to the total footprint of a country (or another specified final demand; see Kitzes 2013). If my understanding is correct, other sectors which consume products from the agriculture sectors should also have a green water footprint e.g. DEU Food & Beverages, Hotels and Restaurants, Textiles and Wearing Apparel etc.

However with the code above, this is not the case. Do you have an idea why?

I also calculated the green water footprint for Germany manually also under use of the Eora26 database (following Kitzes 2013 and multiplying F with the combined final demand of all final demand subcategories). The total water footprint is the same but the sectoral contributions to the national green water footprint are completly different.

The most contributing sectors (including supply chain) are (top - highest contribution): grafik

I thought my results (displayed in the picture) e.g. Germany Food & Beverages, Agriculture, Hotels and Restaurants etc. are plausible as the contributions by these sectors include agricultural products from other countries via the supply chain. However, when I saw the PyMrio results I got confused.

Any idea why our results are so different? Thank you so much for your time! :)

Kitzes, Justin. 2013. “An Introduction to Environmentally-Extended Input-Output Analysis.” Resources 2 (4): 489–503. https://doi.org/10.3390/resources2040489.

ghost commented 3 years ago

A student of my investigated the differente and reported that, following the notation by Kitzes, my calculation and the PyMrio calculation produce the same results except of the last step where the total intensities (F) are multiplied with the final demand of a country (y). If investigated correctly, I use np.dot() whereas PyMRIO uses *. I didn't find time to look it up myself yet.

https://numpy.org/doc/stable/reference/generated/numpy.dot.html "If a is an N-D array and b is a 1-D array, it is a sum product over the last axis of a and b."

konstantinstadler commented 3 years ago

Hi, When I am correct you are back where you started from with source_green = eora.eora_green.D_cba.DEU.sum(axis = 1) you need to sum over "axis=0". see https://pymrio.readthedocs.io/en/latest/notebooks/buildflowmatrix.html in particular around code cell 9

konstantinstadler commented 3 years ago

Feel free to reopen if it did not solve the issue