hestia-earth-models 0.61.7__py3-none-any.whl → 0.61.8__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of hestia-earth-models might be problematic. Click here for more details.

Files changed (43) hide show
  1. hestia_earth/models/cycle/completeness/electricityFuel.py +56 -0
  2. hestia_earth/models/emepEea2019/nh3ToAirInorganicFertiliser.py +44 -59
  3. hestia_earth/models/geospatialDatabase/histosol.py +4 -0
  4. hestia_earth/models/ipcc2006/co2ToAirOrganicSoilCultivation.py +4 -2
  5. hestia_earth/models/ipcc2006/n2OToAirOrganicSoilCultivationDirect.py +1 -1
  6. hestia_earth/models/ipcc2019/aboveGroundCropResidueTotal.py +1 -1
  7. hestia_earth/models/ipcc2019/belowGroundCropResidue.py +1 -1
  8. hestia_earth/models/ipcc2019/ch4ToAirExcreta.py +1 -1
  9. hestia_earth/models/ipcc2019/co2ToAirSoilOrganicCarbonStockChangeManagementChange.py +511 -458
  10. hestia_earth/models/ipcc2019/co2ToAirUreaHydrolysis.py +5 -1
  11. hestia_earth/models/ipcc2019/organicCarbonPerHa.py +117 -3881
  12. hestia_earth/models/ipcc2019/organicCarbonPerHa_tier_1_utils.py +2060 -0
  13. hestia_earth/models/ipcc2019/organicCarbonPerHa_tier_2_utils.py +1630 -0
  14. hestia_earth/models/ipcc2019/organicCarbonPerHa_utils.py +324 -0
  15. hestia_earth/models/mocking/search-results.json +252 -252
  16. hestia_earth/models/site/organicCarbonPerHa.py +58 -44
  17. hestia_earth/models/site/soilMeasurement.py +18 -13
  18. hestia_earth/models/utils/__init__.py +28 -0
  19. hestia_earth/models/utils/array_builders.py +578 -0
  20. hestia_earth/models/utils/blank_node.py +2 -3
  21. hestia_earth/models/utils/descriptive_stats.py +285 -0
  22. hestia_earth/models/utils/emission.py +73 -2
  23. hestia_earth/models/utils/inorganicFertiliser.py +2 -2
  24. hestia_earth/models/utils/measurement.py +118 -4
  25. hestia_earth/models/version.py +1 -1
  26. {hestia_earth_models-0.61.7.dist-info → hestia_earth_models-0.61.8.dist-info}/METADATA +1 -1
  27. {hestia_earth_models-0.61.7.dist-info → hestia_earth_models-0.61.8.dist-info}/RECORD +43 -31
  28. tests/models/cycle/completeness/test_electricityFuel.py +21 -0
  29. tests/models/emepEea2019/test_nh3ToAirInorganicFertiliser.py +2 -2
  30. tests/models/ipcc2019/test_co2ToAirSoilOrganicCarbonStockChangeManagementChange.py +54 -165
  31. tests/models/ipcc2019/test_organicCarbonPerHa.py +219 -460
  32. tests/models/ipcc2019/test_organicCarbonPerHa_tier_1_utils.py +471 -0
  33. tests/models/ipcc2019/test_organicCarbonPerHa_tier_2_utils.py +208 -0
  34. tests/models/ipcc2019/test_organicCarbonPerHa_utils.py +75 -0
  35. tests/models/site/test_organicCarbonPerHa.py +3 -12
  36. tests/models/site/test_soilMeasurement.py +3 -18
  37. tests/models/utils/test_array_builders.py +253 -0
  38. tests/models/utils/test_descriptive_stats.py +134 -0
  39. tests/models/utils/test_emission.py +51 -1
  40. tests/models/utils/test_measurement.py +54 -2
  41. {hestia_earth_models-0.61.7.dist-info → hestia_earth_models-0.61.8.dist-info}/LICENSE +0 -0
  42. {hestia_earth_models-0.61.7.dist-info → hestia_earth_models-0.61.8.dist-info}/WHEEL +0 -0
  43. {hestia_earth_models-0.61.7.dist-info → hestia_earth_models-0.61.8.dist-info}/top_level.txt +0 -0
@@ -4,7 +4,7 @@ hestia_earth/models/cache_sites.py,sha256=KQp9cUKE-aIcYJoMWEtKFYS8gBFfsx5LKQhqoW
4
4
  hestia_earth/models/log.py,sha256=b63I3qyTtQs17xxbq8RI0Fv2lvZ1oDZ9k0njhxqiFFk,3459
5
5
  hestia_earth/models/preload_requests.py,sha256=elhYQTxBVuFlZROWvZ3yErDzzMLdMUIjBhmpdaTUSi8,1012
6
6
  hestia_earth/models/requirements.py,sha256=znNZJAhwX2iYiKcAQXPftY7z_1MsNa0QxCXkXyHm_U0,17363
7
- hestia_earth/models/version.py,sha256=6Nws4L3uBOwihJSLvy9rIuRjo77dHISAduPpMkcqB_Y,19
7
+ hestia_earth/models/version.py,sha256=Gmx1Mzumxee0MDRwhnW69WRndkZUHweMwKOy4mZhmno,19
8
8
  hestia_earth/models/agribalyse2016/__init__.py,sha256=WvK0qCQbnYtg9oZxrACd1wGormZyXibPtpCnIQeDqbw,415
9
9
  hestia_earth/models/agribalyse2016/fuelElectricity.py,sha256=mrh8seYSYdTgcMDCETLiknuPeJehg071YoG4UiyW0yU,4404
10
10
  hestia_earth/models/agribalyse2016/machineryInfrastructureDepreciatedAmountPerCycle.py,sha256=_Rbngu0DzHKa62JwBl58ZC_ui1zLF2que_nB7ukhOQc,3392
@@ -69,6 +69,7 @@ hestia_earth/models/cycle/animal/input/properties.py,sha256=2bKyyclrt0O7zvtD1Ij7
69
69
  hestia_earth/models/cycle/completeness/__init__.py,sha256=rkwGtxIay_AleJCT7al_ngnix_xRqySVie7qvHXMQI0,1517
70
70
  hestia_earth/models/cycle/completeness/animalFeed.py,sha256=8Fo1TqwSuiPudvd2vJ-LVxSyOdD8mDCOZMvjuj5W2uo,1012
71
71
  hestia_earth/models/cycle/completeness/cropResidue.py,sha256=zSiu9h0NxEBDUWlaKBh1QcX4jDIklrs0BC2NWMCQQ80,2549
72
+ hestia_earth/models/cycle/completeness/electricityFuel.py,sha256=fmBll9hQCUSVI5anQGHu3dcIauUseu4ZZQRYx6Cpu4w,1757
72
73
  hestia_earth/models/cycle/completeness/excreta.py,sha256=2yVxcuWjAh4hoEukaMJ90VZpkCL7SfpwIgzigbjVaF4,996
73
74
  hestia_earth/models/cycle/completeness/material.py,sha256=UQH2oRnUY-Q-_MVuOlTAYqQxc7wWDM5mi_iFmp9PlIQ,1362
74
75
  hestia_earth/models/cycle/completeness/seed.py,sha256=g4GOzRx249pEfr2beU9n5tzBiWA3hhxnqyiGri7QbEI,1662
@@ -113,7 +114,7 @@ hestia_earth/models/emepEea2019/__init__.py,sha256=l90-pWrqIzt1ap1WNk0gF4iZeF5_T
113
114
  hestia_earth/models/emepEea2019/co2ToAirFuelCombustion.py,sha256=DfoGlB5HjA1gafO0OutJjfsA6yPP_PsAd-p16evwCiQ,1609
114
115
  hestia_earth/models/emepEea2019/n2OToAirFuelCombustionDirect.py,sha256=R3lRF5-Md4Jd7irvTe8WJZJPc9-wa1pD6UWVk7lnGtQ,1616
115
116
  hestia_earth/models/emepEea2019/nh3ToAirExcreta.py,sha256=lWo1AaorIk4HtTCQAND3RFbCHO-em1DbA5ZOxv0Ldn8,3750
116
- hestia_earth/models/emepEea2019/nh3ToAirInorganicFertiliser.py,sha256=Ypq6Zw0zFRb4-lrIY9FyMsHL8EykfSlzm3iCre_gZSk,6647
117
+ hestia_earth/models/emepEea2019/nh3ToAirInorganicFertiliser.py,sha256=AMZlOpeajrhbjGWIq_mLJJHfOF9RH9GswkbvVyrqop0,6201
117
118
  hestia_earth/models/emepEea2019/noxToAirFuelCombustion.py,sha256=y49RvO5OkrZ4iK7o2Kmx5xW52y8SS9xEKAmlXlTQtWc,1609
118
119
  hestia_earth/models/emepEea2019/so2ToAirFuelCombustion.py,sha256=bo_0mFcwicpOkPsvZRAnL2tDBDRBAQqsPD_Wc5e20K4,1609
119
120
  hestia_earth/models/emepEea2019/utils.py,sha256=ikoZn3JPe9wz-_voVlIqVwh4jBgmnfKi2oyLhi7_7E4,1398
@@ -142,7 +143,7 @@ hestia_earth/models/geospatialDatabase/ecoClimateZone.py,sha256=hzK9Je_4NvbLtgAM
142
143
  hestia_earth/models/geospatialDatabase/ecoregion.py,sha256=awvHn0YEVu-YaW0ZDgBo_zbjSJU2EvydM_qAT_CL78A,1462
143
144
  hestia_earth/models/geospatialDatabase/erodibility.py,sha256=M62CetEcHuExeXl7P7DVKZWWbk9tenjaDFvjMsWbga4,1843
144
145
  hestia_earth/models/geospatialDatabase/heavyWinterPrecipitation.py,sha256=8IC-ceKlwWw6-b6aCTVNaF1wNHPchKnVZcNHZRdLUmY,1996
145
- hestia_earth/models/geospatialDatabase/histosol.py,sha256=ejv1EfNa49gSJDP7FTa1Hio_cN62nIQEUh-DjlnpIgk,2263
146
+ hestia_earth/models/geospatialDatabase/histosol.py,sha256=5zwKdF1t9aOjTzBoear62T0Kzpjco-IJXu4oRYrUFQ8,2387
146
147
  hestia_earth/models/geospatialDatabase/longFallowRatio.py,sha256=VnTW2Y7qpoxlEarOM85SzxhFb1kayNJAiecRXatrEpw,1872
147
148
  hestia_earth/models/geospatialDatabase/nutrientLossToAquaticEnvironment.py,sha256=uEsoYJ1mzgUo6fQhUrcJ-ATcFw1j9oEgqMXKbQuFRxQ,1973
148
149
  hestia_earth/models/geospatialDatabase/organicCarbonPerKgSoil.py,sha256=gt3-crrUN0HPtIKY7Hf9dUteCXkegSICVjO-jufDqas,2196
@@ -197,7 +198,7 @@ hestia_earth/models/ipcc2006/__init__.py,sha256=ReUFPLqIyp16QEOGaiHmz41QbuwYBQYD
197
198
  hestia_earth/models/ipcc2006/aboveGroundCropResidueRemoved.py,sha256=6FDgMH5eiO1mEn20oerYpWty6t9058JS3MCdfVmeY_o,2714
198
199
  hestia_earth/models/ipcc2006/aboveGroundCropResidueTotal.py,sha256=vD_kpvOJmjTOjDEnlqSYBSZxjuPGvzpmCr0JIC84GKE,3431
199
200
  hestia_earth/models/ipcc2006/belowGroundCropResidue.py,sha256=KzeRphJb1IWB_EPVcxa9tbCoNmEe80D9lKxgQOqfKoU,4138
200
- hestia_earth/models/ipcc2006/co2ToAirOrganicSoilCultivation.py,sha256=8AzFuqRprk6o-uyyI3XYsTGl2dP_ALgYJXWCseYEBQ8,3029
201
+ hestia_earth/models/ipcc2006/co2ToAirOrganicSoilCultivation.py,sha256=UqjYsbpcSnNb20zLTZ2qkO_tLfDBL1iJmwndeuuwGYk,3133
201
202
  hestia_earth/models/ipcc2006/n2OToAirCropResidueDecompositionDirect.py,sha256=_2oTngpspikbFwgFTtOWs-SgEVF8LzznvITGITTtol4,2913
202
203
  hestia_earth/models/ipcc2006/n2OToAirCropResidueDecompositionIndirect.py,sha256=kf4WjdMzs6d8h433LFuUH9LJKJ_aMHTqEHDToGY5-Xk,2315
203
204
  hestia_earth/models/ipcc2006/n2OToAirExcretaDirect.py,sha256=VvQTIh58JyhrdPk5FdJQBkjBDr5-Cv7CnGkNEcco3P4,1986
@@ -206,22 +207,22 @@ hestia_earth/models/ipcc2006/n2OToAirInorganicFertiliserDirect.py,sha256=0Lyhqh3
206
207
  hestia_earth/models/ipcc2006/n2OToAirInorganicFertiliserIndirect.py,sha256=s5-pnhzz3fEYkdMZEGGlecp7XlPh_9vxyN78VoOUP2Y,3171
207
208
  hestia_earth/models/ipcc2006/n2OToAirOrganicFertiliserDirect.py,sha256=xB-5jp551knTSWvJeeowO1ERpLCdXrZJKttN7xU_6RY,2396
208
209
  hestia_earth/models/ipcc2006/n2OToAirOrganicFertiliserIndirect.py,sha256=NAdGaG6-5Mrrwe17ED8R_3en-zuMqHFDtrRlqi9USSI,3103
209
- hestia_earth/models/ipcc2006/n2OToAirOrganicSoilCultivationDirect.py,sha256=0J6ntZxYyLg3pUQeSQelDe36fb0nQtbMLjIBtwzHUyc,3038
210
+ hestia_earth/models/ipcc2006/n2OToAirOrganicSoilCultivationDirect.py,sha256=7Y8sT1mTpd_Qu160-nekOdjCNMJsVA51DjpAWzof2nU,3030
210
211
  hestia_earth/models/ipcc2006/utils.py,sha256=flB7HWrynzOorKlmrpbETGD63NMv45H8Wxjj3RCav98,739
211
212
  hestia_earth/models/ipcc2013ExcludingFeedbacks/__init__.py,sha256=v4Qe-X4w3tqIHGJBNnEAK81x4ZuQMwYxQYXRncugmcU,427
212
213
  hestia_earth/models/ipcc2013ExcludingFeedbacks/gwp100.py,sha256=8VRg-Vvzc86_CQmBH-iHNhaSnAFHew2swAMecT0aXW4,979
213
214
  hestia_earth/models/ipcc2013IncludingFeedbacks/__init__.py,sha256=VJ16KIGQQHybzZiTvu3mpZy_3j0xcd06RHHCfPrCMgU,427
214
215
  hestia_earth/models/ipcc2013IncludingFeedbacks/gwp100.py,sha256=PTE0FEV5x7MZgWpA6iu7EtIYaYKl6Udc9icpafkqlEA,979
215
216
  hestia_earth/models/ipcc2019/__init__.py,sha256=LdRpu8KbEc-MroIwXfKDjfj-xbgmfUYgctjKVvtpRfQ,409
216
- hestia_earth/models/ipcc2019/aboveGroundCropResidueTotal.py,sha256=PEuCp8W09GEF1JFnMi5wKsP0627Qkh_awqMyR184QwU,2917
217
- hestia_earth/models/ipcc2019/belowGroundCropResidue.py,sha256=mk4nq40qI4p1A44mrEnPARGyzNqY_6LwFifKmNusfNM,3308
217
+ hestia_earth/models/ipcc2019/aboveGroundCropResidueTotal.py,sha256=KjCPJ-AoEuBQzz9uBq_tQXG0P3KxM1bEKcwF_Jeq4Dg,2932
218
+ hestia_earth/models/ipcc2019/belowGroundCropResidue.py,sha256=DYic7zGSzkDP6kA5f6tRTB5alARCMGWY5ApjPkMU-7c,3323
218
219
  hestia_earth/models/ipcc2019/carbonContent.py,sha256=I76bJaO1OYSrIjwDKxhwY-DZGZJubgVJSxtZHx5jQxY,7237
219
220
  hestia_earth/models/ipcc2019/ch4ToAirEntericFermentation.py,sha256=khX90NjkmlvosyRZ77QxgwTKwg42Z_ftOWTTAanHViw,11420
220
- hestia_earth/models/ipcc2019/ch4ToAirExcreta.py,sha256=IzYHdnzT8Z-WQGoZIt9-O98VqriA5rKr38He_TbYadk,6723
221
+ hestia_earth/models/ipcc2019/ch4ToAirExcreta.py,sha256=jEGgEUhMr0JHq_-lPJioKHOQGQXrQvblU51AppXKvB0,6719
221
222
  hestia_earth/models/ipcc2019/ch4ToAirFloodedRice.py,sha256=TJ4J7VA5n4RPrJYZQeR3lc3ZoCw7T1E5Cb1XJewr834,7331
222
223
  hestia_earth/models/ipcc2019/co2ToAirLimeHydrolysis.py,sha256=7z0zdqiiWQwkyJCgSNMoK2mft3cJkTRlqwKrMuSKdWI,2454
223
- hestia_earth/models/ipcc2019/co2ToAirSoilOrganicCarbonStockChangeManagementChange.py,sha256=X-pUmOa7oy6uvgr0cMDeKRLVIQvh-4bjjrronvd0F3k,25370
224
- hestia_earth/models/ipcc2019/co2ToAirUreaHydrolysis.py,sha256=071H3ykjzJFW2K5PKvbAaeIj0aL8LTzMiG_pIeYEpEc,3520
224
+ hestia_earth/models/ipcc2019/co2ToAirSoilOrganicCarbonStockChangeManagementChange.py,sha256=LiExh87zjrsD6ZOpB8MMTLKtSq1do6LSaUzJGn1mpKY,26901
225
+ hestia_earth/models/ipcc2019/co2ToAirUreaHydrolysis.py,sha256=Ofld5SuRKndcKB3FFFoUdzSgNq-gc4kmiNyyrPKQ3Io,3580
225
226
  hestia_earth/models/ipcc2019/croppingDuration.py,sha256=_jlFrTNDOARH2_g8s4dzuaCoLHSX2BHzSQd3uuQN32Y,3173
226
227
  hestia_earth/models/ipcc2019/ligninContent.py,sha256=wp5EbCthCDAKyvPBfZULS9-uKEY58TQQ8ey1pf-juv8,7267
227
228
  hestia_earth/models/ipcc2019/n2OToAirCropResidueDecompositionDirect.py,sha256=Fand7NbT27unwgFTxi_9NxT024s63vQ7U6-tk9yp3d8,3990
@@ -241,7 +242,10 @@ hestia_earth/models/ipcc2019/no3ToGroundwaterInorganicFertiliser.py,sha256=eyPfy
241
242
  hestia_earth/models/ipcc2019/no3ToGroundwaterOrganicFertiliser.py,sha256=px2SN-uaus2cftXzlsYCUAxLuon6BnDXmaFI9xhQrgU,3347
242
243
  hestia_earth/models/ipcc2019/noxToAirInorganicFertiliser.py,sha256=fmmFgjtvOD2TrrLY03jYly_KvDnCsAXqhL_tmZQQt-A,4480
243
244
  hestia_earth/models/ipcc2019/noxToAirOrganicFertiliser.py,sha256=9dx_MRTwJGxJRq6mj2EJQMdQ2w6j7lw0fQk0If_cIGc,4152
244
- hestia_earth/models/ipcc2019/organicCarbonPerHa.py,sha256=x2U3FwZuM-lVDCzXmj5eCFOt8b3DIszeebnYIFWCeBc,141712
245
+ hestia_earth/models/ipcc2019/organicCarbonPerHa.py,sha256=3TPl6RvUlNHbc7TZiHWoqK-o2fCgAvlcLh2C__MNj8A,8728
246
+ hestia_earth/models/ipcc2019/organicCarbonPerHa_tier_1_utils.py,sha256=YrjsBTmFbOw2DlGgcxf1B0d_NeNhE1Fl_OG4DrCPhLU,82293
247
+ hestia_earth/models/ipcc2019/organicCarbonPerHa_tier_2_utils.py,sha256=W3G0LbrfQp5lnYQj7CvznLtjH_7WVPk7-zBiujgD0yE,57867
248
+ hestia_earth/models/ipcc2019/organicCarbonPerHa_utils.py,sha256=CrQWsDhW--wNQ2HEc_zxdFKuIdBHEwOQnVJGA3HgPpQ,10856
245
249
  hestia_earth/models/ipcc2019/pastureGrass.py,sha256=Q3uX7IcTk0PmzxqEhU3JAcHb5LnUymZbmdRFP9xXsfo,8713
246
250
  hestia_earth/models/ipcc2019/pastureGrass_utils.py,sha256=nUJYYkovzF7QD4LeUqhV5mBYFKdrhxeG4gyPRv0Xpuk,16002
247
251
  hestia_earth/models/ipcc2019/utils.py,sha256=MSDMu15D9DnilFUgi4_6jYXC0FaKso3OODauGTMB6hs,6229
@@ -360,7 +364,7 @@ hestia_earth/models/linkedImpactAssessment/landTransformationFromPermanentPastur
360
364
  hestia_earth/models/linkedImpactAssessment/utils.py,sha256=dGwGc2d-8_WQElTpfyPmz5vQtL-LHQRmiZnCTuPXMDs,1876
361
365
  hestia_earth/models/mocking/__init__.py,sha256=n3Fkkrvh8zHNWiJZmnfQ7WZ91JRzAO9P6pSG1JpwtXo,687
362
366
  hestia_earth/models/mocking/mock_search.py,sha256=dBCDRfbZmbMLKP21u_VYkxyimomqs-zztjX-_ZNKuuM,2036
363
- hestia_earth/models/mocking/search-results.json,sha256=-avKhbyd4WJc1by-WLUYhAjV_adov3NNKLkDYKHa9oY,43544
367
+ hestia_earth/models/mocking/search-results.json,sha256=b2D9kIA18EpfCUl36Fi0L4JL8EuTrm4-VzZoaYw9dOw,43543
364
368
  hestia_earth/models/pooreNemecek2018/__init__.py,sha256=nPboL7ULJzL5nJD5q7q9VOZt_fxbKVm8fmn1Az5YkVY,417
365
369
  hestia_earth/models/pooreNemecek2018/aboveGroundCropResidueTotal.py,sha256=Qt-mel4dkhK6N5uUOutNOinCTFjbjtGzITaaI0LvYc4,2396
366
370
  hestia_earth/models/pooreNemecek2018/belowGroundCropResidue.py,sha256=JT0RybbvWVlo01FO8K0Yj41HrEaJT3Kj1xfayr2X-xw,2315
@@ -461,7 +465,7 @@ hestia_earth/models/site/flowingWater.py,sha256=0ZuSXMr3EUTY3wsy8hdfuXeZcNX-n3D4
461
465
  hestia_earth/models/site/freshWater.py,sha256=z-C_Il0U6UhZUQUPwh72Z0vixmSrUNEmBN5Lz-nl9_w,1254
462
466
  hestia_earth/models/site/management.py,sha256=o9WIvbxip6B-jbQdgko6H2l1neQ0Z5ZpcPJmM5gcYlw,8832
463
467
  hestia_earth/models/site/netPrimaryProduction.py,sha256=UIIQkYd911qVzrWjxBLrC37e-RARIVgDwLdARY9BuLw,1849
464
- hestia_earth/models/site/organicCarbonPerHa.py,sha256=-qQWy1BI4vZJJNMS1RCluZ34dOTqR0lblXSOZLjkhOo,14362
468
+ hestia_earth/models/site/organicCarbonPerHa.py,sha256=O6t4D3Jj1kjMIBOpnIrJ58kzUP_FIlpMUEFKQAeS77c,14916
465
469
  hestia_earth/models/site/organicCarbonPerKgSoil.py,sha256=t--wAshiAKS-JvEKhLFRadGvgSBv5NFZ68jdyms_wh4,1945
466
470
  hestia_earth/models/site/organicCarbonPerM3Soil.py,sha256=pdv5V-ojcfhlGzPwRS9s-vEnxiHZQPZP-ESVcz2pt0g,1945
467
471
  hestia_earth/models/site/organicMatterPerKgSoil.py,sha256=fJpFVkpuCjnrBhgV0RtwKqQHvAJWWtZO9xtmnJnl8O4,1945
@@ -473,7 +477,7 @@ hestia_earth/models/site/precipitationMonthly.py,sha256=yGUbiUCu1Prp3qVHuZodGrcf
473
477
  hestia_earth/models/site/rainfallAnnual.py,sha256=Ix_B8Ny7IIRkJ_3lUvoHOjPgqCyR9I0U3_ADUUtMqsY,2003
474
478
  hestia_earth/models/site/rainfallMonthly.py,sha256=2Uo8F-YxnTK0_txlHmiAyVp1bGfWD4bneRKyg4tdQkI,1881
475
479
  hestia_earth/models/site/salineWater.py,sha256=HO31JcUBw5WQYGu9zHNqbARasBubNFgJ7OxSVrK3D2o,1255
476
- hestia_earth/models/site/soilMeasurement.py,sha256=-yWmvl4vZYguVDd2bKdnGB_P4s1XZO_n9u4_aQ6xPLQ,6953
480
+ hestia_earth/models/site/soilMeasurement.py,sha256=8xUDajU_KzBVFEj7yfwIZxVXJ14C_AKAxEs4uSnFyps,7164
477
481
  hestia_earth/models/site/temperatureAnnual.py,sha256=Q3b1RH2_hpA0JWwOYA5nKgMGcXHjV8-akXT9vB0cbwc,2012
478
482
  hestia_earth/models/site/temperatureMonthly.py,sha256=yXwpFCGT2tUqvVBNedaPyBmN_KlzZqo5yv2TWem1pBk,1890
479
483
  hestia_earth/models/site/totalNitrogenPerKgSoil.py,sha256=8ERrTZpN_yCRUyFg_EYaX4abE9jLcyX3lx3MO4Bi6CE,1938
@@ -517,11 +521,12 @@ hestia_earth/models/transformation/product/__init__.py,sha256=47DEQpj8HBSa-_TImW
517
521
  hestia_earth/models/transformation/product/excreta.py,sha256=Yj9wMF5if-zivb6qbN3vy1X51ZNYxvoyG9f4KPp3Y18,5700
518
522
  hestia_earth/models/usetoxV2/__init__.py,sha256=pK37V3H-KvYcvRKw4Mv8CWrB2N0LFLzmv0jKLdhGGqs,409
519
523
  hestia_earth/models/usetoxV2/freshwaterEcotoxicityPotentialCtue.py,sha256=oYNwThnMXjZymif5buyHiczFiOq_61jOdDMOAyy8vwQ,1018
520
- hestia_earth/models/utils/__init__.py,sha256=5FY8tpFa7QjwAIsMTt2-QLB5_0Gy5AkAKk_BsKjE1CY,4400
524
+ hestia_earth/models/utils/__init__.py,sha256=EIuMvZCFyeUC4yyJi9LSVYpAMkjpAMMtBs1ljqJhVR4,5228
521
525
  hestia_earth/models/utils/aggregated.py,sha256=sz6usleZmo_tC_hIvmGgYsX8-H0dulXmmhHK4EkA5Kg,4946
522
526
  hestia_earth/models/utils/animalProduct.py,sha256=M5IunAKGY6oZv3j1Ascl34ywyeLWApqOIlBzbtlA2FE,721
523
527
  hestia_earth/models/utils/aquacultureManagement.py,sha256=dxrbC1Xf140cohxTbSw6TxLAnAASWTdNZwBBam4yQnw,171
524
- hestia_earth/models/utils/blank_node.py,sha256=VcWvWRG4hlurgQG8PzklIa7SiZnuR6fnhC_TpE_9wuM,41977
528
+ hestia_earth/models/utils/array_builders.py,sha256=0_Ik0gKoh1QBijyb-55odh8_dIs-CWQ3lgUN1Hnc4Y8,18749
529
+ hestia_earth/models/utils/blank_node.py,sha256=PTrjipqY35g0AjlFU_pn9AdZ6I26VBizW7Elr7sF-OY,41908
525
530
  hestia_earth/models/utils/completeness.py,sha256=2-GusD9UycobDZq8y5jar0ZcOjyqnSbzPRT_5XMc4YA,1259
526
531
  hestia_earth/models/utils/constant.py,sha256=5H7odhRwU_LmUhYwf8c1LsdqXSYbLWkuknvtRDqUBTQ,3194
527
532
  hestia_earth/models/utils/crop.py,sha256=kG054fryqPSBpmzvJFBy_CLiOdjrt7RMk5uTItO5ADg,2246
@@ -529,19 +534,20 @@ hestia_earth/models/utils/cropResidue.py,sha256=_0Q35CrliJeo31xGHsPWe8A2oHxijdIs
529
534
  hestia_earth/models/utils/cropResidueManagement.py,sha256=nIDFjf39rDD10UHSVudfDyu-EiL261g8jyrgS-2aDKw,347
530
535
  hestia_earth/models/utils/currency.py,sha256=f_ArJANb--pZq4LL49SXQ1AMX_oKroqwBXKRRQqZwsM,578
531
536
  hestia_earth/models/utils/cycle.py,sha256=QgTmfds-SGEqGJNqEZ5A1iAxCZ54Ac0QPSmqECHPFeg,15927
537
+ hestia_earth/models/utils/descriptive_stats.py,sha256=qOyG8_TpWYmaxZ0h99n9L71gDLLiVMrMf0ChtxnZLjw,8559
532
538
  hestia_earth/models/utils/ecoClimateZone.py,sha256=NHFt-A9EiWXC6tUNIxkgOWUZOjj4I4uwJIP9ddDZegw,1112
533
- hestia_earth/models/utils/emission.py,sha256=AVp-ngrb4VHYT8BG1QA5EEb17edT3cLonsXV3cNm04U,1576
539
+ hestia_earth/models/utils/emission.py,sha256=5Dz8Z4P6QXbYSvOzVcqJy3R_oZMrp77_Iwj5xZsxsKc,3769
534
540
  hestia_earth/models/utils/excretaManagement.py,sha256=NuWPQjFZxMVt9sYgBjcqhGWCFk_OKb3sA9Ovcff3fRQ,428
535
541
  hestia_earth/models/utils/feedipedia.py,sha256=ImUAURcwJDtSvu1s4MDeM1VpbU8mVTp9jh9ENNOB0Mw,3515
536
542
  hestia_earth/models/utils/fertiliser.py,sha256=DBO4OBNgnQJ0fCQMDkIk_ZGZX-uKGaTFZCEXfAnJciY,690
537
543
  hestia_earth/models/utils/fuel.py,sha256=r1MKMMxg-PYiVlRutP83RuvY2rsdCQ1iN6ekSGGQGpA,1379
538
544
  hestia_earth/models/utils/impact_assessment.py,sha256=H1_cvLwC8nb3A5ckS9uvWrLqUDU_9i9BdQiPpn52xIg,6890
539
545
  hestia_earth/models/utils/indicator.py,sha256=fPq38ifd53xWbuOfoiVwiA0Nwa7jVPJLSAPpOMMil8Q,423
540
- hestia_earth/models/utils/inorganicFertiliser.py,sha256=wTQKnr_fPse-G8aP3Dxrj8mzNSQgXvNL9auy_RWzY5Q,1894
546
+ hestia_earth/models/utils/inorganicFertiliser.py,sha256=_dLBY-otGkLr8PobR5dQ89bF2uwc2PB4JPrHFSksMEQ,1900
541
547
  hestia_earth/models/utils/input.py,sha256=YycsAbSBfVDMu6PftDsisMFGnEp87wOj-3rrnHnOgzo,4927
542
548
  hestia_earth/models/utils/liveAnimal.py,sha256=GnajBPZw5d94raf80KtLloaOqlfqGAPwUtP9bRlGWeE,1754
543
549
  hestia_earth/models/utils/lookup.py,sha256=9yAw8JILIeAmnAC0dL1Yi6xB4h9quzV3GJQGUKe8ers,6370
544
- hestia_earth/models/utils/measurement.py,sha256=c0Zkz0a5hWxpYJ83aWsWTeSsukfh-dzjKlCmuj1vCY4,8070
550
+ hestia_earth/models/utils/measurement.py,sha256=rss0nVmgL5uAWE7_aaGWIJAcg7SkWVpDUzgzHpuEpdo,12221
545
551
  hestia_earth/models/utils/organicFertiliser.py,sha256=2HY-a0EBzUw4DkEAXClLMXVCEZTKYf0BwFHBo7lQ5Tg,363
546
552
  hestia_earth/models/utils/pesticideAI.py,sha256=6f8b-dFm3qr-eY049_eOvj_iDk4XBam61csozdDAvyA,2361
547
553
  hestia_earth/models/utils/practice.py,sha256=tNadOzsrNlCEt801B815XaruJXzZ5yPASam7B3sWpXE,1091
@@ -626,6 +632,7 @@ tests/models/cycle/animal/input/test_properties.py,sha256=rp-PfGijk-Sbh1NsV5nkf9
626
632
  tests/models/cycle/completeness/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
627
633
  tests/models/cycle/completeness/test_animalFeed.py,sha256=J52m1kInw8mPE_pwx0j3QGKI8ZpDGeN2TLqUuArn7WA,348
628
634
  tests/models/cycle/completeness/test_cropResidue.py,sha256=TzPrnvAQA5GzmwL-bYOLgR3wjtMdKuPx55wT_HHfJ6c,592
635
+ tests/models/cycle/completeness/test_electricityFuel.py,sha256=TbaSwsx8IIS1xWXhxg798O8xTEQ7MXM4XKlfQBtQBw8,580
629
636
  tests/models/cycle/completeness/test_excretaManagement.py,sha256=GGKQTZZj_F6EkvTOVjunVixFC584HmsCgPP5H6radc8,345
630
637
  tests/models/cycle/completeness/test_material.py,sha256=bA1_32wmtdd77cD8vinkIjspZfheQuyeyum1fm-Ei0k,498
631
638
  tests/models/cycle/completeness/test_seed.py,sha256=txpypNeoX08QC3wPUd92gnWuvPTsVSqT9RJb6Z5AUUE,1018
@@ -658,7 +665,7 @@ tests/models/emepEea2019/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZ
658
665
  tests/models/emepEea2019/test_co2ToAirFuelCombustion.py,sha256=HXQTSIkJzCKsb-9fGStkxtkcK65KS3sJlvShW2F6EaU,1450
659
666
  tests/models/emepEea2019/test_n2OToAirFuelCombustionDirect.py,sha256=vmZAAUkxfJyaRoioEEFmz8EtR3X_MCeaA-0VjjNNmQE,1456
660
667
  tests/models/emepEea2019/test_nh3ToAirExcreta.py,sha256=VtZFVWaHjqlxdge1Qir-OghNZtfsIJvLpg_8UNp0akU,1363
661
- tests/models/emepEea2019/test_nh3ToAirInorganicFertiliser.py,sha256=dFNDCJ_EA8F8faFjBNHwgLOx743UlkdT9HJBpL0ObaQ,2069
668
+ tests/models/emepEea2019/test_nh3ToAirInorganicFertiliser.py,sha256=ZRU-mQiQLGX3xxOIP7r7iv08vCuRa6ElnKJs2AZ7a1E,2060
662
669
  tests/models/emepEea2019/test_noxToAirFuelCombustion.py,sha256=drCeoaGo6Ag3fdEDDSC3D880OXxzillzHk7rPYcVwmE,1450
663
670
  tests/models/emepEea2019/test_so2ToAirFuelCombustion.py,sha256=CNaT_z02DHDpBJ2IIkG0K7ra87WBg_iDkhx9QGAjk00,1450
664
671
  tests/models/emepEea2019/test_utils.py,sha256=jNb4T4yXWowUvY_1d_nxDTOBX-2K8jIG2TZ6SokxYP0,1843
@@ -763,7 +770,7 @@ tests/models/ipcc2019/test_ch4ToAirEntericFermentation.py,sha256=3Hv86L4X_Va2mZL
763
770
  tests/models/ipcc2019/test_ch4ToAirExcreta.py,sha256=e58NXmBW2SNVLUqQO9A66Xq6jiGTyhdFZDZk51JApF8,2902
764
771
  tests/models/ipcc2019/test_ch4ToAirFloodedRice.py,sha256=FAp5b45WdX5Ih4yGUOZ4CmVD8smW1Lw1tnulx9AKVBI,1980
765
772
  tests/models/ipcc2019/test_co2ToAirLimeHydrolysis.py,sha256=e5iuZ-kQNEVih0ZRgRPWqaUtXcLpfkoU7sQypbqA9_Y,1345
766
- tests/models/ipcc2019/test_co2ToAirSoilOrganicCarbonStockChangeManagementChange.py,sha256=NbEADyVQY6AAhpRemmJO9E4j9CzQ-3LK4MHDk3HJHIQ,7131
773
+ tests/models/ipcc2019/test_co2ToAirSoilOrganicCarbonStockChangeManagementChange.py,sha256=cvgUMp3pIyPvyeCuL9-TIDJajIw4FoljN88JKc5GsMI,4166
767
774
  tests/models/ipcc2019/test_co2ToAirUreaHydrolysis.py,sha256=MmtEME0xjsa3KojFk_fxOLK6RZM_6p5HIpY2DOFHVu4,1530
768
775
  tests/models/ipcc2019/test_croppingDuration.py,sha256=gLRXeR6Tqa7ciD9KTRfsIflSeIIWT2iOpZMdcxAQla4,1871
769
776
  tests/models/ipcc2019/test_ligninContent.py,sha256=eIKEN__ab-0R52EhlhPSBiHnmTl6xOf1XbI33O-W9A4,4146
@@ -784,7 +791,10 @@ tests/models/ipcc2019/test_no3ToGroundwaterInorganicFertiliser.py,sha256=e7REnQ9
784
791
  tests/models/ipcc2019/test_no3ToGroundwaterOrganicFertiliser.py,sha256=e1ZViD12qB3bLdH3TJw3GbBP8iqMen-UJbcFkytb3VQ,1609
785
792
  tests/models/ipcc2019/test_noxToAirInorganicFertiliser.py,sha256=NZBSBJLM_j2PEpHRON2ysgKNF8x5sHfQVoAKQdGsfzk,1537
786
793
  tests/models/ipcc2019/test_noxToAirOrganicFertiliser.py,sha256=LR5pjV5vRbgSSQAw8kYRp_ij4CHInzgaDS6EggQuBiw,1104
787
- tests/models/ipcc2019/test_organicCarbonPerHa.py,sha256=TO3ubi8z8-iYEAdf295Z30ft5W1652GPkmaiQCb7QN4,23197
794
+ tests/models/ipcc2019/test_organicCarbonPerHa.py,sha256=CtgRy-7qXBTF7ZnWV6l6hOV_d8b6um0T3grHXUOc9OM,13891
795
+ tests/models/ipcc2019/test_organicCarbonPerHa_tier_1_utils.py,sha256=e5RpK4GlH9tNxbwEyPQkO2lMwYBtGNp8ha8j4bZF9eg,20699
796
+ tests/models/ipcc2019/test_organicCarbonPerHa_tier_2_utils.py,sha256=gHAi0qr9vE2_TtyJOqOc5Wc8ZRIflQz8vKBOcvKTzCE,7020
797
+ tests/models/ipcc2019/test_organicCarbonPerHa_utils.py,sha256=Zd2QlN_Q3k9djuByOH62A00tryVzlvNtsd46N79TTeU,1778
788
798
  tests/models/ipcc2019/test_pastureGrass.py,sha256=hn6tw-ifMTn00_WmYPIjRdm56SMF1w-eqETngVE29ns,3373
789
799
  tests/models/ipcc2019/animal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
790
800
  tests/models/ipcc2019/animal/test_pastureGrass.py,sha256=2ZbeIxxEZ9xaDkfCY2pLripmtOG89iHMTrPqa2-UuQg,1983
@@ -996,7 +1006,7 @@ tests/models/site/test_flowingWater.py,sha256=t_rxvdlmUVDsFBoDF20_zDM-0iiLKkNCV7
996
1006
  tests/models/site/test_freshWater.py,sha256=GOeAxHhPW_2E1wQdQRX4W-r7mnb_LgmiAVLImitoApw,982
997
1007
  tests/models/site/test_management.py,sha256=gVtMv_sgmHdEEA_Xdjg73Z2YrwFtm2pN6jo6ZyJx86U,4825
998
1008
  tests/models/site/test_netPrimaryProduction.py,sha256=JCxG0MODbKVvl3hOqmKzh4FjHYn3Xs9KsVod6LvKQII,1108
999
- tests/models/site/test_organicCarbonPerHa.py,sha256=6Qtc0Xmveir7MmNF4Ekv5YkV92TNp8GfDnURPVg05-4,3471
1009
+ tests/models/site/test_organicCarbonPerHa.py,sha256=XtGrE7ZqthTF0x8lDxJ1slNd_GvYHEyEydcRgA46jEc,3207
1000
1010
  tests/models/site/test_organicCarbonPerKgSoil.py,sha256=0M-NMg_T3UXzGT_VlKOKhSxg4cZ0_zhd3FRgY5Hpj6o,1087
1001
1011
  tests/models/site/test_organicCarbonPerM3Soil.py,sha256=_teZwZKVM7b6YIokWJdqkYbIlSDY8eeOX4vZo7-0Mdo,1087
1002
1012
  tests/models/site/test_organicMatterPerKgSoil.py,sha256=ustKqQcv4GWa-0SdHvLlxJBDlY2zU9kdBCQoUIKO2BI,1087
@@ -1008,7 +1018,7 @@ tests/models/site/test_precipitationMonthly.py,sha256=iccr-_ZrseM_OT3AKZbTNQhRFS
1008
1018
  tests/models/site/test_rainfallAnnual.py,sha256=4YYna66qjJptPJ_URvdcQuRC3dri9SB0xmWP8DFwslM,986
1009
1019
  tests/models/site/test_rainfallMonthly.py,sha256=A3gIe2Yxt9CLtLcAJNCQ0-8aRB49VdfKBLBy-7eDgJw,985
1010
1020
  tests/models/site/test_salineWater.py,sha256=by_goKU4q5Dr-ctqosfrjFPZsG9KeG26Y_xMWEHBhpA,985
1011
- tests/models/site/test_soilMeasurement.py,sha256=AC4wyRlSdxcjRvq--CCmZd0Jxz2bfhFNmrg9SoWbKE0,4917
1021
+ tests/models/site/test_soilMeasurement.py,sha256=hZVgNmN5fgrHyTeXO1HrZ4tPm6Ko0yiTNbBfkDsdrUE,4398
1012
1022
  tests/models/site/test_temperatureAnnual.py,sha256=nOJG9ZJ8NCMM8T47uxxBeloIYLFN6-xtvUBqJsqt8xk,992
1013
1023
  tests/models/site/test_temperatureMonthly.py,sha256=C2lv-lpYqH7VUGOlxNLE6d7k_dFS6NYe8BvMlrJorCw,991
1014
1024
  tests/models/site/test_totalNitrogenPerKgSoil.py,sha256=2ILrA0jQKGniiKwS5FF3ZLtudgUgjcMnzFtrHpJKPTc,1161
@@ -1050,18 +1060,20 @@ tests/models/transformation/product/test_excreta.py,sha256=Q9OQpk8qVPv3alIz2i5XQ
1050
1060
  tests/models/usetoxV2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1051
1061
  tests/models/usetoxV2/test_freshwaterEcotoxicityPotentialCtue.py,sha256=eq7Gcmfya9g0eOKKkuBhz8vq7xi_CmZ_LTSxueBwZt4,835
1052
1062
  tests/models/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1063
+ tests/models/utils/test_array_builders.py,sha256=1zTc5r6Y9fcQ3x67S9Am0G3ip4Kp9_MmiSqIvY-M6yc,6470
1053
1064
  tests/models/utils/test_blank_node.py,sha256=hgom8mJPWqylnf4AfLgVlbYgAHAEcH8DngOdFidFMcw,34343
1054
1065
  tests/models/utils/test_crop.py,sha256=ve_BqT2XuLTWAH-8YOnVY4nzMUSXYYXPB8S-5RtGlf4,463
1055
1066
  tests/models/utils/test_cropResidueManagement.py,sha256=RQt8lexeJzCyxZceIutgDpw7BpcqmjsUB0C0yZC2QpY,930
1056
1067
  tests/models/utils/test_currency.py,sha256=BPsojPsY9QW2aj8vgbjkPQXU8GU6wDwwtPZ3HdC4KTU,277
1057
1068
  tests/models/utils/test_dataCompleteness.py,sha256=mW6rA7ddhtjZsLxwo5xDnvBdxmqTsivy4RTIU-2Lvk0,1713
1058
- tests/models/utils/test_emission.py,sha256=lQczTe39tVHbk3BEanZGU_rq9HDST2uDReKof-SV37Y,829
1069
+ tests/models/utils/test_descriptive_stats.py,sha256=S-N4-JavFw8UQKju7QhvtimsAIe0TI4DjQT-0q_Y-Sk,3988
1070
+ tests/models/utils/test_emission.py,sha256=3KfhQGV5Vh_WXTPt6McvZ2dBp9TVM7eAUTLgRHkBOvU,2146
1059
1071
  tests/models/utils/test_feedipedia.py,sha256=S7c1W4bJ5xWXPh42pPbl3R7lDX_iEeaEtFaPXgB7hgE,906
1060
1072
  tests/models/utils/test_impact_assessment.py,sha256=qEm4Y5txWnkSJKP1puvwgKFXkv06c7vUKmwDyIJxkdc,1114
1061
1073
  tests/models/utils/test_indicator.py,sha256=GwYKV5N_yEPcJWz7FirRnK48rl62ofAn_TkAo0MioIM,639
1062
1074
  tests/models/utils/test_input.py,sha256=bSG6YKmT2ofY2oD5CGbNwR8-To-ihyNyr14Td5-jNRU,585
1063
1075
  tests/models/utils/test_liveAnimal.py,sha256=bntT4vULWsDF2DOigtiMjpS0gJS5ipalPsfrk-JxC-I,986
1064
- tests/models/utils/test_measurement.py,sha256=UGCUzuc3gHltehpuOA7dj0DJJY4xcVrQOJNmgz2vzGY,2673
1076
+ tests/models/utils/test_measurement.py,sha256=8_sdjySFeZOAS9USZg_CxSSmSSxawutfG_zS-lwcnVI,4436
1065
1077
  tests/models/utils/test_practice.py,sha256=ILaxkb3qICor9AquAGYiOtA-YKnq0hppmJQzNC_VNyA,612
1066
1078
  tests/models/utils/test_product.py,sha256=kwvgAeeEoRgkeStX0zQcFd-4DJhoUhX6Apaks0MU2L0,2305
1067
1079
  tests/models/utils/test_property.py,sha256=t2npw86IK7C6G4ypiPtanFi0db4PB7G5VBR1GjRGl34,618
@@ -1070,8 +1082,8 @@ tests/models/utils/test_source.py,sha256=mv3vHZV5cjpoLA2I1109-YUkuzAiuhbRSnv_76_
1070
1082
  tests/models/utils/test_term.py,sha256=M5Sa26v2gzQYbZ4H_fo7DspnaCx__-WtL-MULGapCWk,3509
1071
1083
  tests/models/webbEtAl2012AndSintermannEtAl2012/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1072
1084
  tests/models/webbEtAl2012AndSintermannEtAl2012/test_nh3ToAirOrganicFertiliser.py,sha256=qi2FNXS5Af2WDtm7nq_FsprH3BfCF0XxnE0XHmC4aIY,2244
1073
- hestia_earth_models-0.61.7.dist-info/LICENSE,sha256=AC7h7GAgCZGJK_Tzh6LUCrML9gQEfowWwecEw2w54QM,1154
1074
- hestia_earth_models-0.61.7.dist-info/METADATA,sha256=iynJo-vSse0wSWslH4jZ2jN5MzzWntK8WyH9rDPDtiE,3350
1075
- hestia_earth_models-0.61.7.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
1076
- hestia_earth_models-0.61.7.dist-info/top_level.txt,sha256=1dqA9TqpOLTEgpqa-YBsmbCmmNU1y56AtfFGEceZ2A0,19
1077
- hestia_earth_models-0.61.7.dist-info/RECORD,,
1085
+ hestia_earth_models-0.61.8.dist-info/LICENSE,sha256=AC7h7GAgCZGJK_Tzh6LUCrML9gQEfowWwecEw2w54QM,1154
1086
+ hestia_earth_models-0.61.8.dist-info/METADATA,sha256=IWeDTAdOnEFZ1vddHFUvLfz428gHnUaA3OSm-n0-NG8,3350
1087
+ hestia_earth_models-0.61.8.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
1088
+ hestia_earth_models-0.61.8.dist-info/top_level.txt,sha256=1dqA9TqpOLTEgpqa-YBsmbCmmNU1y56AtfFGEceZ2A0,19
1089
+ hestia_earth_models-0.61.8.dist-info/RECORD,,
@@ -0,0 +1,21 @@
1
+ import json
2
+ from tests.utils import fixtures_path
3
+
4
+ from hestia_earth.models.cycle.completeness.electricityFuel import MODEL, MODEL_KEY, run
5
+
6
+ class_path = f"hestia_earth.models.cycle.{MODEL}.{MODEL_KEY}"
7
+ fixtures_folder = f"{fixtures_path}/cycle/{MODEL}/{MODEL_KEY}"
8
+
9
+
10
+ def test_run():
11
+ with open(f"{fixtures_folder}/cycle.jsonld", encoding='utf-8') as f:
12
+ cycle = json.load(f)
13
+
14
+ assert run(cycle) is True
15
+
16
+
17
+ def test_run_invalid():
18
+ with open(f"{fixtures_folder}/cycle-invalid.jsonld", encoding='utf-8') as f:
19
+ cycle = json.load(f)
20
+
21
+ assert not run(cycle)
@@ -21,8 +21,8 @@ def test_should_run(mock_measurement, *args):
21
21
  should_run, *args = _should_run(cycle)
22
22
  assert not should_run
23
23
 
24
- # with country @id => run
25
- cycle['site'] = {'country': {'@id': 'GADM-AUS'}}
24
+ # is complete => run
25
+ cycle['completeness'] = {'fertiliser': True}
26
26
  should_run, *args = _should_run(cycle)
27
27
  assert should_run is True
28
28
 
@@ -1,27 +1,17 @@
1
1
  from functools import reduce
2
2
  import json
3
+ from os.path import isfile
3
4
  from pytest import mark
4
5
  from unittest.mock import patch
5
6
 
6
- from hestia_earth.schema import MeasurementMethodClassification
7
+ from hestia_earth.schema import EmissionMethodTier, MeasurementMethodClassification
7
8
 
8
9
  from hestia_earth.models.ipcc2019.co2ToAirSoilOrganicCarbonStockChangeManagementChange import (
9
- _calc_soc_stock_change,
10
- _convert_c_to_co2,
11
- _get_max_measurement_method,
12
- _get_min_measurement_method,
13
- _linear_interpolate_soc_stock,
14
- _nodes_to_soc_stock,
15
- MODEL,
16
- run,
17
- SocStock,
18
- TERM_ID
10
+ calc_soc_stock_change, calc_soc_stock_change_emission, convert_c_to_co2, lerp_soc_stocks, MODEL, run, TERM_ID,
11
+ SocStock, SocStockChange, SocStockChangeEmission
19
12
  )
20
13
 
21
- from tests.utils import (
22
- fake_new_emission,
23
- fixtures_path
24
- )
14
+ from tests.utils import fake_new_emission, fixtures_path
25
15
 
26
16
  class_path = f"hestia_earth.models.{MODEL}.{TERM_ID}"
27
17
  fixtures_folder = f"{fixtures_path}/{MODEL}/{TERM_ID}"
@@ -31,10 +21,19 @@ RUN_SCENARIOS = [
31
21
  ("overlapping-cycles", 4),
32
22
  ("complex-overlapping-cycles", 5),
33
23
  ("missing-measurement-dates", 3),
34
- ("no-organic-carbon-measurements", 1) # Closes issue #700
24
+ ("no-organic-carbon-measurements", 1), # Closes issue #700
25
+ ("multiple-method-classifications", 5) # Closes issue #764
35
26
  ]
36
27
  """List of (subfolder: str, num_cycles: int)."""
37
28
 
29
+
30
+ def _load_fixture(path: str, default=None):
31
+ if isfile(path):
32
+ with open(path, encoding="utf-8") as f:
33
+ return json.load(f)
34
+ return default
35
+
36
+
38
37
  RUN_PARAMS = reduce(
39
38
  lambda params, scenario: params + [(scenario[0], scenario[1], i) for i in range(scenario[1])],
40
39
  RUN_SCENARIOS,
@@ -45,163 +44,20 @@ RUN_PARAMS = reduce(
45
44
  RUN_IDS = [f"{param[0]}, cycle{param[2]}" for param in RUN_PARAMS]
46
45
 
47
46
 
48
- def _load_fixture(path: str):
49
- with open(path, encoding="utf-8") as f:
50
- fixture = json.load(f)
51
- return fixture
52
-
53
-
54
- def _get_site_path(subfolder: str) -> str:
55
- return f"{fixtures_folder}/{subfolder}/site.jsonld"
56
-
57
-
58
- def _get_cycle_path(subfolder: str, index: int) -> str:
59
- return f"{fixtures_folder}/{subfolder}/cycle{index}.jsonld"
60
-
61
-
62
- def _get_result_path(subfolder: str, index: int) -> str:
63
- return f"{fixtures_folder}/{subfolder}/result{index}.jsonld"
64
-
65
-
66
- def test_calc_soc_stock_change():
67
- START_SOC_STOCK = SocStock(20000, MeasurementMethodClassification.ON_SITE_PHYSICAL_MEASUREMENT)
68
- END_SOC_STOCK = SocStock(21000, MeasurementMethodClassification.TIER_1_MODEL)
69
- EXPECTED = SocStock(1000, MeasurementMethodClassification.TIER_1_MODEL)
70
-
71
- result = _calc_soc_stock_change(START_SOC_STOCK, END_SOC_STOCK)
72
- assert result == EXPECTED
73
-
74
-
75
- def test_convert_c_to_co2():
76
- KG_C = 1000
77
- EXPECTED = 3663.836163836164
78
-
79
- assert _convert_c_to_co2(KG_C) == EXPECTED
80
-
81
-
82
- def test_get_max_measurement_method():
83
- EXPECTED = MeasurementMethodClassification.ON_SITE_PHYSICAL_MEASUREMENT
84
- result = _get_max_measurement_method(
85
- MeasurementMethodClassification.ON_SITE_PHYSICAL_MEASUREMENT,
86
- MeasurementMethodClassification.TIER_2_MODEL,
87
- MeasurementMethodClassification.TIER_1_MODEL
88
- )
89
- assert result == EXPECTED
90
-
91
-
92
- def test_get_max_measurement_method_list():
93
- EXPECTED = MeasurementMethodClassification.ON_SITE_PHYSICAL_MEASUREMENT
94
- METHODS = [
95
- MeasurementMethodClassification.ON_SITE_PHYSICAL_MEASUREMENT,
96
- MeasurementMethodClassification.TIER_2_MODEL,
97
- MeasurementMethodClassification.TIER_1_MODEL
98
- ]
99
- result = _get_max_measurement_method(METHODS)
100
- assert result == EXPECTED
101
-
102
-
103
- def test_get_max_measurement_method_no_methods():
104
- EXPECTED = MeasurementMethodClassification.ON_SITE_PHYSICAL_MEASUREMENT
105
- result = _get_max_measurement_method()
106
- assert result == EXPECTED
107
-
108
-
109
- def test_get_min_measurement_method():
110
- EXPECTED = MeasurementMethodClassification.TIER_1_MODEL
111
- result = _get_min_measurement_method(
112
- MeasurementMethodClassification.ON_SITE_PHYSICAL_MEASUREMENT,
113
- MeasurementMethodClassification.TIER_2_MODEL,
114
- MeasurementMethodClassification.TIER_1_MODEL
115
- )
116
- assert result == EXPECTED
117
-
118
-
119
- def test_get_min_measurement_method_list():
120
- EXPECTED = MeasurementMethodClassification.TIER_1_MODEL
121
- METHODS = [
122
- MeasurementMethodClassification.ON_SITE_PHYSICAL_MEASUREMENT,
123
- MeasurementMethodClassification.TIER_2_MODEL,
124
- MeasurementMethodClassification.TIER_1_MODEL
125
- ]
126
- result = _get_min_measurement_method(METHODS)
127
- assert result == EXPECTED
128
-
129
-
130
- def test_get_min_measurement_method_no_methods():
131
- EXPECTED = MeasurementMethodClassification.UNSOURCED_ASSUMPTION
132
- result = _get_min_measurement_method()
133
- assert result == EXPECTED
134
-
135
-
136
- def test_linear_interpolate_soc_stock():
137
- START_YEAR = 2000
138
- END_YEAR = 2002
139
- START_SOC_STOCK = SocStock(20000, MeasurementMethodClassification.ON_SITE_PHYSICAL_MEASUREMENT)
140
- END_SOC_STOCK = SocStock(22000, MeasurementMethodClassification.ON_SITE_PHYSICAL_MEASUREMENT)
141
- TARGET_YEAR = 2001
142
- EXPECTED = SocStock(21000, MeasurementMethodClassification.TIER_1_MODEL)
143
-
144
- result = _linear_interpolate_soc_stock(
145
- START_YEAR, END_YEAR, START_SOC_STOCK, END_SOC_STOCK, TARGET_YEAR
146
- )
147
- assert result == EXPECTED
148
-
149
-
150
- def test_nodes_to_soc_stock_diff_dates():
151
- NODES = [
152
- {
153
- "value": [1000],
154
- "dates": ["2020"],
155
- "methodClassification": "modelled using other measurements"
156
- },
157
- {
158
- "value": [12000],
159
- "dates": ["2020-12-31"],
160
- "methodClassification": "tier 1 model"
161
- }
162
- ]
163
- EXPECTED = SocStock(12000, MeasurementMethodClassification.TIER_1_MODEL)
164
-
165
- assert _nodes_to_soc_stock(2020, NODES) == EXPECTED
166
-
167
-
168
- def test_nodes_to_soc_stock_same_dates():
169
- NODES = [
170
- {
171
- "value": [10000],
172
- "dates": ["2020-12-31"],
173
- "methodClassification": "modelled using other measurements"
174
- },
175
- {
176
- "value": [12000],
177
- "dates": ["2020-12-31"],
178
- "methodClassification": "tier 1 model"
179
- },
180
- {
181
- "value": [11000],
182
- "dates": ["2020-06-01"],
183
- "methodClassification": "on-site physical measurement"
184
- }
185
- ]
186
- EXPECTED = SocStock(10000, MeasurementMethodClassification.MODELLED_USING_OTHER_MEASUREMENTS)
187
-
188
- assert _nodes_to_soc_stock(2020, NODES) == EXPECTED
189
-
190
-
191
47
  @mark.parametrize("subfolder, num_cycles, cycle_index", RUN_PARAMS, ids=RUN_IDS)
192
48
  @patch(f"{class_path}._new_emission", side_effect=fake_new_emission)
193
49
  @patch(f"{class_path}.related_cycles")
194
- @patch(f"{class_path}.get_site")
50
+ @patch(f"{class_path}._get_site")
195
51
  def test_run(_get_site_mock, related_cycles_mock, _new_emission_mock, subfolder, num_cycles, cycle_index):
196
52
  """
197
53
  Test `run` function for each cycle in each scenario.
198
54
  """
199
- site = _load_fixture(_get_site_path(subfolder))
200
- cycle = _load_fixture(_get_cycle_path(subfolder, cycle_index))
201
- expected = _load_fixture(_get_result_path(subfolder, cycle_index))
55
+ site = _load_fixture(f"{fixtures_folder}/{subfolder}/site.jsonld")
56
+ cycle = _load_fixture(f"{fixtures_folder}/{subfolder}/cycle{cycle_index}.jsonld")
57
+ expected = _load_fixture(f"{fixtures_folder}/{subfolder}/result{cycle_index}.jsonld", default=[])
202
58
 
203
59
  cycles = [
204
- _load_fixture(_get_cycle_path(subfolder, i)) for i in range(num_cycles)
60
+ _load_fixture(f"{fixtures_folder}/{subfolder}/cycle{i}.jsonld") for i in range(num_cycles)
205
61
  ]
206
62
 
207
63
  _get_site_mock.return_value = site
@@ -213,7 +69,7 @@ def test_run(_get_site_mock, related_cycles_mock, _new_emission_mock, subfolder,
213
69
 
214
70
  @patch(f"{class_path}._new_emission", side_effect=fake_new_emission)
215
71
  @patch(f"{class_path}.related_cycles")
216
- @patch(f"{class_path}.get_site")
72
+ @patch(f"{class_path}._get_site")
217
73
  def test_run_empty(_get_site_mock, related_cycles_mock, _new_emission_mock):
218
74
  """
219
75
  Test `run` function for each cycle in each scenario.
@@ -226,3 +82,36 @@ def test_run_empty(_get_site_mock, related_cycles_mock, _new_emission_mock):
226
82
 
227
83
  result = run(CYCLE)
228
84
  assert result == EXPECTED
85
+
86
+
87
+ def test_convert_c_to_co2():
88
+ KG_C = 1000
89
+ EXPECTED = 3663.836163836164
90
+ assert convert_c_to_co2(KG_C) == EXPECTED
91
+
92
+
93
+ def test_linear_interpolate_soc_stock():
94
+ START = SocStock(20000, "2000-12-31", MeasurementMethodClassification.ON_SITE_PHYSICAL_MEASUREMENT)
95
+ END = SocStock(22000, "2002-12-31", MeasurementMethodClassification.ON_SITE_PHYSICAL_MEASUREMENT)
96
+ TARGET_DATE = "2001-12-31"
97
+ EXPECTED = SocStock(21000, "2001-12-31", MeasurementMethodClassification.ON_SITE_PHYSICAL_MEASUREMENT)
98
+
99
+ result = lerp_soc_stocks(START, END, TARGET_DATE)
100
+ assert result == EXPECTED
101
+
102
+
103
+ def test_calc_soc_stock_change():
104
+ START = SocStock(20000, "2000", MeasurementMethodClassification.ON_SITE_PHYSICAL_MEASUREMENT)
105
+ END = SocStock(21000, "2001", MeasurementMethodClassification.TIER_1_MODEL)
106
+ EXPECTED = SocStockChange(1000, "2000", "2001", MeasurementMethodClassification.TIER_1_MODEL)
107
+
108
+ result = calc_soc_stock_change(START, END)
109
+ assert result == EXPECTED
110
+
111
+
112
+ def test_calc_soc_stock_change_emission():
113
+ SOC_STOCK_CHANGE = SocStockChange(-1000, "2000", "2001", MeasurementMethodClassification.TIER_1_MODEL)
114
+ EXPECTED = SocStockChangeEmission(3663.836163836164, "2000", "2001", EmissionMethodTier.TIER_1)
115
+
116
+ result = calc_soc_stock_change_emission(SOC_STOCK_CHANGE)
117
+ assert result == EXPECTED