hestia-earth-models 0.70.2__py3-none-any.whl → 0.70.4__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.
Files changed (35) hide show
  1. hestia_earth/models/config/Cycle.json +8 -0
  2. hestia_earth/models/cycle/practice/landCover.py +181 -0
  3. hestia_earth/models/emepEea2019/nh3ToAirExcreta.py +1 -1
  4. hestia_earth/models/geospatialDatabase/altitude.py +1 -0
  5. hestia_earth/models/geospatialDatabase/clayContent.py +3 -3
  6. hestia_earth/models/geospatialDatabase/sandContent.py +3 -3
  7. hestia_earth/models/geospatialDatabase/utils.py +1 -2
  8. hestia_earth/models/hestia/landCover.py +25 -12
  9. hestia_earth/models/hestia/management.py +11 -107
  10. hestia_earth/models/ipcc2019/ch4ToAirOrganicSoilCultivation.py +7 -7
  11. hestia_earth/models/ipcc2019/co2ToAirOrganicSoilCultivation.py +5 -4
  12. hestia_earth/models/ipcc2019/n2OToAirOrganicSoilCultivationDirect.py +7 -7
  13. hestia_earth/models/ipcc2019/no3ToGroundwaterExcreta.py +1 -1
  14. hestia_earth/models/ipcc2019/organicCarbonPerHa_tier_1.py +2 -2
  15. hestia_earth/models/ipcc2019/organicCarbonPerHa_tier_2.py +15 -4
  16. hestia_earth/models/ipcc2019/organicSoilCultivation_utils.py +11 -3
  17. hestia_earth/models/mocking/search-results.json +1295 -1309
  18. hestia_earth/models/pooreNemecek2018/excretaKgN.py +3 -1
  19. hestia_earth/models/utils/blank_node.py +2 -2
  20. hestia_earth/models/utils/excretaManagement.py +2 -2
  21. hestia_earth/models/utils/property.py +14 -9
  22. hestia_earth/models/utils/site.py +2 -1
  23. hestia_earth/models/version.py +1 -1
  24. {hestia_earth_models-0.70.2.dist-info → hestia_earth_models-0.70.4.dist-info}/METADATA +2 -2
  25. {hestia_earth_models-0.70.2.dist-info → hestia_earth_models-0.70.4.dist-info}/RECORD +35 -33
  26. tests/models/cycle/practice/test_landCover.py +27 -0
  27. tests/models/hestia/test_landCover.py +24 -1
  28. tests/models/ipcc2019/test_ch4ToAirEntericFermentation.py +2 -2
  29. tests/models/ipcc2019/test_ch4ToAirOrganicSoilCultivation.py +2 -1
  30. tests/models/ipcc2019/test_co2ToAirOrganicSoilCultivation.py +2 -1
  31. tests/models/ipcc2019/test_n2OToAirOrganicSoilCultivationDirect.py +2 -1
  32. tests/models/ipcc2019/test_organicCarbonPerHa_tier_1.py +8 -3
  33. {hestia_earth_models-0.70.2.dist-info → hestia_earth_models-0.70.4.dist-info}/LICENSE +0 -0
  34. {hestia_earth_models-0.70.2.dist-info → hestia_earth_models-0.70.4.dist-info}/WHEEL +0 -0
  35. {hestia_earth_models-0.70.2.dist-info → hestia_earth_models-0.70.4.dist-info}/top_level.txt +0 -0
@@ -129,7 +129,9 @@ def _should_run(cycle: dict):
129
129
  logRequirements(cycle, model=MODEL, term=term_id, model_key=MODEL_KEY,
130
130
  is_liveAquaticSpecies=is_liveAquaticSpecies,
131
131
  product_value=product_value,
132
- nitrogen_content=nitrogen_content)
132
+ nitrogen_content=nitrogen_content,
133
+ inputs_n=inputs_n,
134
+ products_n=products_n)
133
135
 
134
136
  else:
135
137
  logRequirements(cycle, model=MODEL, term=term_id, model_key=MODEL_KEY,
@@ -434,11 +434,11 @@ def convert_to_nitrogen(node: dict, model: str, blank_nodes: list, **log_args):
434
434
  missing_nitrogen_property = [i.get('term', {}).get('@id') for i, value in values if not value]
435
435
 
436
436
  debugValues(node, model=model,
437
- convertion_details=log_as_table([
437
+ conversion_details=log_as_table([
438
438
  {
439
439
  'id': i.get('term', {}).get('@id'),
440
440
  'value': list_sum(i.get('value', [])),
441
- 'conversion-factor': value
441
+ 'nitrogenContent': value
442
442
  }
443
443
  for i, value in values
444
444
  ]),
@@ -22,7 +22,7 @@ def _get_nh3_factor(lookup_name: str, term_id: str, input: dict, **log_args):
22
22
  return safe_parse_float(value, None)
23
23
 
24
24
 
25
- def get_excreta_inputs_with_factor(cycle: dict, lookup_name: str, excreta_convertion_func, **log_args):
25
+ def get_excreta_inputs_with_factor(cycle: dict, lookup_name: str, excreta_conversion_func, **log_args):
26
26
  practices = filter_list_term_type(cycle.get('practices', []), TermTermType.EXCRETAMANAGEMENT)
27
27
  practice_id = practices[0].get('term', {}).get('@id') if len(practices) > 0 else None
28
28
 
@@ -32,7 +32,7 @@ def get_excreta_inputs_with_factor(cycle: dict, lookup_name: str, excreta_conver
32
32
  excreta_values = [
33
33
  (
34
34
  i.get('term', {}).get('@id'),
35
- excreta_convertion_func([i]),
35
+ excreta_conversion_func([i]),
36
36
  _get_nh3_factor(lookup_name, practice_id, i, **log_args)
37
37
  ) for i in excreta_inputs
38
38
  ]
@@ -77,14 +77,16 @@ def get_node_property(
77
77
  Returns
78
78
  -------
79
79
  dict
80
- The property if found, `None` otherwise.
80
+ The property if found, `{}` otherwise.
81
81
  """
82
- prop = find_term_match(node.get('properties', []), property, None)
83
- return find_term_property(node.get('term', {}), property, {}) if all([
84
- find_default_property,
85
- prop is None
86
- ]) else (
87
- prop or ({'term': download_term(property, TermTermType.PROPERTY)} if download_from_hestia else {})
82
+ return (
83
+ (
84
+ find_term_match(node.get('properties', []), property, None)
85
+ ) or (
86
+ find_term_property(node.get('term', {}), property, None) if find_default_property else None
87
+ ) or (
88
+ {'term': download_term(property, TermTermType.PROPERTY)} if download_from_hestia else None
89
+ ) or {}
88
90
  )
89
91
 
90
92
 
@@ -113,9 +115,12 @@ def node_property_lookup_value(model: str, node_term: dict, prop_id: str, defaul
113
115
 
114
116
  def get_node_property_value(model: str, node: dict, prop_id: str, default=None, handle_percents=True, **log_args):
115
117
  prop = get_node_property(node, prop_id, download_from_hestia=True)
116
- term = (prop or {}).get('term')
118
+ term = prop.get('term')
117
119
  units = (term or {}).get('units')
118
- value = prop.get('value') if prop else node_property_lookup_value(model, node.get('term', {}), prop_id, **log_args)
120
+ value = (
121
+ prop['value'] if 'value' in prop else
122
+ node_property_lookup_value(model, node.get('term', {}), prop_id, **log_args)
123
+ )
119
124
  return default if value is None else (value / 100 if units == '%' and handle_percents else value)
120
125
 
121
126
 
@@ -97,7 +97,8 @@ def related_cycles(site: dict, cycles_mapping: Optional[dict[str, dict]] = None)
97
97
 
98
98
 
99
99
  def related_years(site: dict):
100
- return cached_value(site, CACHE_YEARS_KEY) or years_from_cycles(related_cycles(site))
100
+ years = cached_value(site, CACHE_YEARS_KEY) or years_from_cycles(related_cycles(site))
101
+ return sorted(years) if years else []
101
102
 
102
103
 
103
104
  def related_months(site: dict):
@@ -1 +1 @@
1
- VERSION = '0.70.2'
1
+ VERSION = '0.70.4'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: hestia-earth-models
3
- Version: 0.70.2
3
+ Version: 0.70.4
4
4
  Summary: HESTIA's set of modules for filling gaps in the activity data using external datasets (e.g. populating soil properties with a geospatial dataset using provided coordinates) and internal lookups (e.g. populating machinery use from fuel use). Includes rules for when gaps should be filled versus not (e.g. never gap fill yield, gap fill crop residue if yield provided etc.).
5
5
  Home-page: https://gitlab.com/hestia-earth/hestia-engine-models
6
6
  Author: HESTIA Team
@@ -11,7 +11,7 @@ Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
11
11
  Classifier: Programming Language :: Python :: 3.6
12
12
  Description-Content-Type: text/markdown
13
13
  License-File: LICENSE
14
- Requires-Dist: hestia-earth-schema==31.*
14
+ Requires-Dist: hestia-earth-schema==32.*
15
15
  Requires-Dist: hestia-earth-utils>=0.14.1
16
16
  Requires-Dist: python-dateutil>=2.8.1
17
17
  Requires-Dist: CurrencyConverter==0.16.8
@@ -4,7 +4,7 @@ hestia_earth/models/cache_sites.py,sha256=BOhLkkdVWLJ-4Z7kxfQ8swqrYgZ43sACn1uzxY
4
4
  hestia_earth/models/log.py,sha256=eRuH86v7Thuw-QXdKqaqVmA_MkwnOCo0UBEwtuDq4Oc,3554
5
5
  hestia_earth/models/preload_requests.py,sha256=vK_G1UzhNMhYy7ymnCtHUz_vv3cfApCSKqv29VREEBQ,1943
6
6
  hestia_earth/models/requirements.py,sha256=eU4yT443fx7BnaokhrLB_PCizJI7Y6m4auyo8vQauNg,17363
7
- hestia_earth/models/version.py,sha256=FXrFGVyUGmPydZ629i9Ewt-kg-xGSch4AgpWPfJW1KM,19
7
+ hestia_earth/models/version.py,sha256=7q8eaZImIkwl8HS2xJTe4a8IOQPn1y4oCngs2Qu-BuM,19
8
8
  hestia_earth/models/agribalyse2016/__init__.py,sha256=WvK0qCQbnYtg9oZxrACd1wGormZyXibPtpCnIQeDqbw,415
9
9
  hestia_earth/models/agribalyse2016/fuelElectricity.py,sha256=1ngl8pdxeNhlVV8keAeWRwGorr_1uFXM9EoPUWx-uSc,4382
10
10
  hestia_earth/models/agribalyse2016/machineryInfrastructureDepreciatedAmountPerCycle.py,sha256=queToXuzq0tQ9_XuUJ2pJgSywXmbt9uX3ZoIKgqkROM,2660
@@ -33,7 +33,7 @@ hestia_earth/models/cml2001Baseline/terrestrialAcidificationPotentialIncludingFa
33
33
  hestia_earth/models/cml2001NonBaseline/__init__.py,sha256=vI8wp8Og_e8DiJqYYvp33YoI3t4ffAC31LWlnV20JTg,419
34
34
  hestia_earth/models/cml2001NonBaseline/eutrophicationPotentialIncludingFateAverageEurope.py,sha256=lcgyRHY08KCBFPERJNqV4DYGEJCvyHBDnJXD0kEkVqM,1097
35
35
  hestia_earth/models/cml2001NonBaseline/terrestrialAcidificationPotentialExcludingFate.py,sha256=xcrxfs9UoV_EWvV-XzMt35oPWCUsTzqg2SGA3j2MFIw,1091
36
- hestia_earth/models/config/Cycle.json,sha256=AfkdbmDl0rZxl_2Wk8nMKx1QHiOSacemVubBhcvPobQ,58758
36
+ hestia_earth/models/config/Cycle.json,sha256=fJmIc9GK16Ob3m3Qv_jqD7Po5vB1C2R6hPJ9yDfEDCM,58937
37
37
  hestia_earth/models/config/ImpactAssessment.json,sha256=R22Pa6Szl05s13xFGKmrVZ4EgKD4UyUrruxxVujsJt4,56201
38
38
  hestia_earth/models/config/Site.json,sha256=vOjDsstMWe4i6PDDfpJ236Qb7gif5I0MMmscK1-LgKM,13866
39
39
  hestia_earth/models/config/__init__.py,sha256=l1WqL7ezlank86ABP4zUia_hIvM9ba-sOE3z6wNrea8,2333
@@ -75,6 +75,7 @@ hestia_earth/models/cycle/post_checks/cache.py,sha256=UNWR3IxZyv7GvBUZOkdj1HqMDa
75
75
  hestia_earth/models/cycle/post_checks/otherSites.py,sha256=lDiMPWduqpeYn5Z59AgcUH4ffiyLe5B6mg3tIe61hEs,694
76
76
  hestia_earth/models/cycle/post_checks/site.py,sha256=Z6lWAG_R5vTL2tiD5EAHwz2j_bvn-51iG1dq60-62ec,551
77
77
  hestia_earth/models/cycle/practice/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
78
+ hestia_earth/models/cycle/practice/landCover.py,sha256=QDXEaY3Rin9wsXEuoHoCeh7q_1fUM8UAWYYbRoeb-x0,5989
78
79
  hestia_earth/models/cycle/practice/value.py,sha256=WtMLlJLX3O6K2V2EMNp0zgKprYD0iIVzCsYxhg6zWJ0,1773
79
80
  hestia_earth/models/cycle/pre_checks/__init__.py,sha256=T8NfEXznq7Q1VUxqBOBP7Rz_DwoYvWYoYqe-Txznu24,352
80
81
  hestia_earth/models/cycle/pre_checks/cache_sources.py,sha256=fbWmlI0q6z9iVF1YNUOwBl0GeEYDgszozl3NkTxx6GI,184
@@ -108,7 +109,7 @@ hestia_earth/models/edip2003/ozoneDepletionPotential.py,sha256=YkBct4eDUidGukaVd
108
109
  hestia_earth/models/emepEea2019/__init__.py,sha256=l90-pWrqIzt1ap1WNk0gF4iZeF5_TSG62hE83bIi4rQ,412
109
110
  hestia_earth/models/emepEea2019/co2ToAirFuelCombustion.py,sha256=ib_xzEbIg-iQwvW2L4BosD9lV6EYOXAiIs8gYhSD9GE,1431
110
111
  hestia_earth/models/emepEea2019/n2OToAirFuelCombustionDirect.py,sha256=H4dgGqDuvYN4S7TRxYsX3hms1xMWr8clR2gkyyO8T18,1438
111
- hestia_earth/models/emepEea2019/nh3ToAirExcreta.py,sha256=t1qdd6B8DOFOpkdan0kW2PVo7dIgWbsWtOXg8XukD08,2153
112
+ hestia_earth/models/emepEea2019/nh3ToAirExcreta.py,sha256=DssSjl_Kug9jE5laqJs9X4xOdOrJBnsXSnk-uA_anyE,2153
112
113
  hestia_earth/models/emepEea2019/nh3ToAirInorganicFertiliser.py,sha256=7G0_S0G6X9slTykxs6CDb68DvtXB7yfq1iSKg0ReXS8,6036
113
114
  hestia_earth/models/emepEea2019/noxToAirFuelCombustion.py,sha256=2--8lI6C6WaYtd9LQe-WZnhvW1eUsjBVAgzT8jclcsc,1431
114
115
  hestia_earth/models/emepEea2019/pm10ToAirAnimalHousing.py,sha256=7LhOEQokWMWEPspYSQO3PtsmWkygbVAonj_Nq6JAL6c,1384
@@ -144,9 +145,9 @@ hestia_earth/models/faostat2018/product/price.py,sha256=EdshQnQLYLnRawsDYEBKr1Ki
144
145
  hestia_earth/models/frischknechtEtAl2000/__init__.py,sha256=Fixyy9UwoCGP5-MHyJu_ctS40SQ2imfvZo8a547029U,421
145
146
  hestia_earth/models/frischknechtEtAl2000/ionisingRadiationKbqU235Eq.py,sha256=W2R5rjnorfWhderyDy3iGpcIZdL3rYvRh5wh0wlvI0k,4430
146
147
  hestia_earth/models/geospatialDatabase/__init__.py,sha256=TH-FW3aoL7r1GquRChr7rde7uQonKQRDR00udG8tDrQ,957
147
- hestia_earth/models/geospatialDatabase/altitude.py,sha256=TDo9_8fmvRsI2GvvdX63HFDndPnvLykeJexBmcp-P4Q,1960
148
+ hestia_earth/models/geospatialDatabase/altitude.py,sha256=Y0XOZLnmfpEPh_fGnHdWDM190T1ZaC1yp-VH-90k9G4,1983
148
149
  hestia_earth/models/geospatialDatabase/awareWaterBasinId.py,sha256=_4HFoZR5PQrEYZegMjj33rjUFR_kktt69D4J_moZXHo,1249
149
- hestia_earth/models/geospatialDatabase/clayContent.py,sha256=u8SQKx-zu3vhMQ-XOJgqyUn-tlCCIy-VG7zpl5AyjtY,3386
150
+ hestia_earth/models/geospatialDatabase/clayContent.py,sha256=Rre3QpoYXViJEZv8XqDdiC7_86LjYNt9DwQmhlLd0a4,3398
150
151
  hestia_earth/models/geospatialDatabase/croppingIntensity.py,sha256=d1WIrxO4rFj5Oj-k8f1eaVIOR6sfke2CYH8lwtuE_BM,2565
151
152
  hestia_earth/models/geospatialDatabase/drainageClass.py,sha256=CVagB2wxLnHgQQauDyYCJCfJw21OPB7Ry8BVyt2uPak,1883
152
153
  hestia_earth/models/geospatialDatabase/ecoClimateZone.py,sha256=WBeaYmzer3CeviHnnfK0xIn_3inpkDKqxszFluz0xPQ,2658
@@ -164,7 +165,7 @@ hestia_earth/models/geospatialDatabase/precipitationAnnual.py,sha256=VMrz4z4FmA0
164
165
  hestia_earth/models/geospatialDatabase/precipitationLongTermAnnualMean.py,sha256=wZ_QprRT9ILSNpiUhPdKtTERUsGofQT1kqUaHuJjDOs,2390
165
166
  hestia_earth/models/geospatialDatabase/precipitationMonthly.py,sha256=jQ3XLN8Zh7q2LZgLmybzvwR0X2vdi6IDz301EUVbAmE,3261
166
167
  hestia_earth/models/geospatialDatabase/region.py,sha256=55tjxaffUaQnJ_kqWd-eejhLMs-5N2CjUQd9FU1wWoU,1448
167
- hestia_earth/models/geospatialDatabase/sandContent.py,sha256=dzaefKcnMeBRu7b1X11MG_-I6iDuXkHVCrkdbawB3Tw,3386
168
+ hestia_earth/models/geospatialDatabase/sandContent.py,sha256=qOMmL6MRMyVYm3PXy94Sp0ILm8iFicKB_7t57vHOyA8,3398
168
169
  hestia_earth/models/geospatialDatabase/siltContent.py,sha256=rFUlQ3SlwCJFcMYQd5F6t3bnDMjcRilsXk2rShoa5Tk,3786
169
170
  hestia_earth/models/geospatialDatabase/slope.py,sha256=g1SpuYks60injv2w-CMjESNfu8KM1JsiYnRT9XZfSuY,1859
170
171
  hestia_earth/models/geospatialDatabase/slopeLength.py,sha256=6pGr1qR0EiiUKkeflpYut7eI6UsnXAzHDoHhAzXKFJk,1864
@@ -174,7 +175,7 @@ hestia_earth/models/geospatialDatabase/temperatureLongTermAnnualMean.py,sha256=y
174
175
  hestia_earth/models/geospatialDatabase/temperatureMonthly.py,sha256=E2k2kkhVDtmeFEB4_AZhhq5od57lRDMWu6AqaurgqvQ,3194
175
176
  hestia_earth/models/geospatialDatabase/totalNitrogenPerKgSoil.py,sha256=DrjiPyakM1SJ1XO-arhvjLDj2qb3M-i58gJ1kFFM6kI,2821
176
177
  hestia_earth/models/geospatialDatabase/totalPhosphorusPerKgSoil.py,sha256=5oasLMYgfnPwSse0D8EEe_pV57AMusac853BgVSUh5E,2070
177
- hestia_earth/models/geospatialDatabase/utils.py,sha256=tQW1r_0xSFY8IVnptz3PljXPonmceFUY8Amh2kJLfW8,6744
178
+ hestia_earth/models/geospatialDatabase/utils.py,sha256=IYLJbnGJSHpsb1eoKR9usgaWctr44fmPN7WmR4ydsjw,6714
178
179
  hestia_earth/models/geospatialDatabase/waterDepth.py,sha256=Xy2UxwAJrgdOkcw59NetEHMt5vgRYE6qg4fgXb1ptlU,1643
179
180
  hestia_earth/models/globalCropWaterModel2008/__init__.py,sha256=vQxexzFCl2Uv2RiIJfcppkRi9RgzBsJ68yhVDK4GvAU,425
180
181
  hestia_earth/models/globalCropWaterModel2008/rootingDepth.py,sha256=5HXiZHk5iFOhOIB-0OnatgJ4PHJVvV0gH47U3EvQ6Y0,4081
@@ -199,12 +200,12 @@ hestia_earth/models/hestia/flowingWater.py,sha256=Iy5PCWun7GMrr0zszd0zpp9lKADpXe
199
200
  hestia_earth/models/hestia/freshWater.py,sha256=EHUWNFmgIqr9y7DTcn1_HcpJdI7WP1cv4LMrkpaf8zQ,1262
200
201
  hestia_earth/models/hestia/inorganicFertiliser.py,sha256=SQv5X4vkgmvUIUV79dJ71Y9u2EW3T5Scu2GoTr3K0Yw,8930
201
202
  hestia_earth/models/hestia/irrigatedTypeUnspecified.py,sha256=VdYzfYxcRzWv21qxRkDn9HBid7-Bt_CgIv4iyXJH03g,1929
202
- hestia_earth/models/hestia/landCover.py,sha256=S72I3GhQdrW_FcJc0s49l14T3LMyWgjNEZSIYjbI_Js,31742
203
+ hestia_earth/models/hestia/landCover.py,sha256=Bt7zQzp8gS0oL8ljsXLYPBG5cQzxOkFaJnKwrcTDlxQ,32360
203
204
  hestia_earth/models/hestia/landTransformation100YearAverageDuringCycle.py,sha256=7KWgpAo2gILzsxdgnO8gI3tAf3tF0IhyGkneYI6PEDc,1018
204
205
  hestia_earth/models/hestia/landTransformation20YearAverageDuringCycle.py,sha256=1StzrYhMsX-hdwBTeLnLMZWl5EEnCoEYpGPRkqy8a-A,1016
205
206
  hestia_earth/models/hestia/liveAnimal.py,sha256=95HfqgFA_qRhdIeR2X5MJ9zzIm4nMHDvJ0BCnuTYe5Q,3860
206
207
  hestia_earth/models/hestia/longFallowRatio.py,sha256=LkJaER1VNDI5351-oC8tru-LgiPK3sNMg0NhB5ic9RE,1690
207
- hestia_earth/models/hestia/management.py,sha256=qkYAlCwuyrfmgoDx0R23MA6ZXzH9Glf__74SxraUbqM,14758
208
+ hestia_earth/models/hestia/management.py,sha256=e1horZLE0th9hazG1sGod_yWs8Hk8FiHFYzJXLNTzFA,10975
208
209
  hestia_earth/models/hestia/materialAndSubstrate.py,sha256=abmM_7FOY5yaNb2yZEm-ncI4wFFcbzaebtnG9XWEA6M,5130
209
210
  hestia_earth/models/hestia/milkYield.py,sha256=__3AdxRTUTWwS_GsqxFpPGklmTnnpADiN0khlRCMAss,5541
210
211
  hestia_earth/models/hestia/netPrimaryProduction.py,sha256=uU4AZ7X6tbtWgR5YClA_aLpYWtlivq9lPQGZgt3-qoQ,1856
@@ -289,12 +290,12 @@ hestia_earth/models/ipcc2019/ch4ToAirAquacultureSystems.py,sha256=q6yyEiYQhHJ2Vy
289
290
  hestia_earth/models/ipcc2019/ch4ToAirEntericFermentation.py,sha256=8w78X5nJkPmoXuTy1WMxSGj-D5ubajNeqnyBknSqEtA,12477
290
291
  hestia_earth/models/ipcc2019/ch4ToAirExcreta.py,sha256=UTTx7US4mGTGW9dX6OAgbhDSwtHfsbWJ5d0iF0TGMpE,6564
291
292
  hestia_earth/models/ipcc2019/ch4ToAirFloodedRice.py,sha256=26WZtckmb7b3sbUN7hpshEdaSdvJpL3-Oer60III_KU,10225
292
- hestia_earth/models/ipcc2019/ch4ToAirOrganicSoilCultivation.py,sha256=zLQklxpdgP2I_vuzUmUGfjXzXCnYkjogUltdtxtfva8,9509
293
+ hestia_earth/models/ipcc2019/ch4ToAirOrganicSoilCultivation.py,sha256=Asv-IafB12smWg4MALIbGlEHxHPdoE1qpwPHRkah4WU,9568
293
294
  hestia_earth/models/ipcc2019/co2ToAirAboveGroundBiomassStockChange.py,sha256=YRNjJgi_aBKwi-nDd0b20w3ebQ33vNgdf4zCLyTFcBw,6516
294
295
  hestia_earth/models/ipcc2019/co2ToAirBelowGroundBiomassStockChange.py,sha256=5HdFdHkvMdwmA4ppSqbrAoASQaSX-Znq7WZqAaekqjk,6564
295
296
  hestia_earth/models/ipcc2019/co2ToAirCarbonStockChange_utils.py,sha256=pJCdb8hysUbG9t8lOB4Nd2xGdlac_6Tg74k2CMU078o,58533
296
297
  hestia_earth/models/ipcc2019/co2ToAirLimeHydrolysis.py,sha256=X3-M4Mn3fdGsUR7ZGjBXXWrPFBGD1ipV8_4O94lB7Z8,2487
297
- hestia_earth/models/ipcc2019/co2ToAirOrganicSoilCultivation.py,sha256=xTN9Vy62bmzuPqSt7VS3tSVNnHYHtycDoi87UV8NfdQ,7568
298
+ hestia_earth/models/ipcc2019/co2ToAirOrganicSoilCultivation.py,sha256=e-hUmPMv_UxUM5otGkwToa8GheHzNbmYOlG9A8Lbw7M,7633
298
299
  hestia_earth/models/ipcc2019/co2ToAirSoilOrganicCarbonStockChange.py,sha256=4aRBzNpDNSw20IKNzz7zOq28sorrJUB5gxmHemgOZT0,6576
299
300
  hestia_earth/models/ipcc2019/co2ToAirUreaHydrolysis.py,sha256=3TXZa2zuj-Df54qAPz3CUcml5T3MpAvGH8vDPIGha_c,3738
300
301
  hestia_earth/models/ipcc2019/croppingDuration.py,sha256=wgXzEHsl2demqzKnZK6Ak7UKUu_CVU41ZsmwxG2uiOg,3055
@@ -307,22 +308,22 @@ hestia_earth/models/ipcc2019/n2OToAirInorganicFertiliserDirect.py,sha256=vmUhlNG
307
308
  hestia_earth/models/ipcc2019/n2OToAirInorganicFertiliserIndirect.py,sha256=ilc6D3cgmvmdkmPbdbxS-SzsG2RQRNKaQooxbeLl43w,3714
308
309
  hestia_earth/models/ipcc2019/n2OToAirOrganicFertiliserDirect.py,sha256=Tq0lw-zGqA6S9ZWi2OTSWXA7nVp_STJeNT4X8Cra2rU,4358
309
310
  hestia_earth/models/ipcc2019/n2OToAirOrganicFertiliserIndirect.py,sha256=g2ssg9GEH2ShuNtY4g4R5GUIHf85u1azx4c264Hdoag,3700
310
- hestia_earth/models/ipcc2019/n2OToAirOrganicSoilCultivationDirect.py,sha256=6H9mIJI-g0M6LeLaHxWM3yIBObAUL6uDBuVJCEfQ3Qg,5881
311
+ hestia_earth/models/ipcc2019/n2OToAirOrganicSoilCultivationDirect.py,sha256=msMxD6m1OuVLj5eXPzD3UA-trM_W185Oy1iSvuYZkPM,5976
311
312
  hestia_earth/models/ipcc2019/nh3ToAirInorganicFertiliser.py,sha256=gvfv4VBHmEkppEMoHUIicAelYICdOjKxKBUw5f3meiQ,4480
312
313
  hestia_earth/models/ipcc2019/nh3ToAirOrganicFertiliser.py,sha256=Oih-34cGl7AZ_sIYWXktOWrzmj3_onvk3EW5f8-7QKI,4152
313
314
  hestia_earth/models/ipcc2019/nitrogenContent.py,sha256=YxlcDF0D9F79rYHTeuhl5kEtmb01UcspFInKi6I_zKM,7209
314
315
  hestia_earth/models/ipcc2019/no3ToGroundwaterCropResidueDecomposition.py,sha256=8NOjbqJuQ-wnLz3bYmwaygSzKBdaF3N7hoELGNnO4YQ,3115
315
- hestia_earth/models/ipcc2019/no3ToGroundwaterExcreta.py,sha256=07Eb9XmziJjYymyXQowESZklbKbqvjP_ookZKi4_GX0,4517
316
+ hestia_earth/models/ipcc2019/no3ToGroundwaterExcreta.py,sha256=kf8KzTALAQ_pRVNEfpAG-aM94UgP6Q9T47UrXfOp_go,4517
316
317
  hestia_earth/models/ipcc2019/no3ToGroundwaterInorganicFertiliser.py,sha256=eyPfyIi8EqigOTsEA0BSyoUePyy_AjMlQNJ6Z8yyJ_Q,3413
317
318
  hestia_earth/models/ipcc2019/no3ToGroundwaterOrganicFertiliser.py,sha256=px2SN-uaus2cftXzlsYCUAxLuon6BnDXmaFI9xhQrgU,3347
318
319
  hestia_earth/models/ipcc2019/nonCo2EmissionsToAirNaturalVegetationBurning.py,sha256=vvq-GAzFtPw9BTKs7RnwRJwzZJDmU3vPVAzIC7WxrhM,34600
319
320
  hestia_earth/models/ipcc2019/noxToAirInorganicFertiliser.py,sha256=fmmFgjtvOD2TrrLY03jYly_KvDnCsAXqhL_tmZQQt-A,4480
320
321
  hestia_earth/models/ipcc2019/noxToAirOrganicFertiliser.py,sha256=9dx_MRTwJGxJRq6mj2EJQMdQ2w6j7lw0fQk0If_cIGc,4152
321
322
  hestia_earth/models/ipcc2019/organicCarbonPerHa.py,sha256=D8Lph5clGjXb5F7sk-jlnqE30C2lokhqndpA0hUMwTk,7791
322
- hestia_earth/models/ipcc2019/organicCarbonPerHa_tier_1.py,sha256=8g1kJbxCnXAOFUdbB9zzMsuDOzMgvVy7A5MwtJvGUaY,78547
323
- hestia_earth/models/ipcc2019/organicCarbonPerHa_tier_2.py,sha256=UVf85mcq-cNqkNEldg7h6RY5qa0RAtlXVKeb-GaFmAA,68913
323
+ hestia_earth/models/ipcc2019/organicCarbonPerHa_tier_1.py,sha256=bG2djvq4_C1mxkuLIL2DNmNU1Fk8tTmPJfGnS85JVlQ,78565
324
+ hestia_earth/models/ipcc2019/organicCarbonPerHa_tier_2.py,sha256=5_AltohTyRMBT8dFdULOdTS79Ydpbb2CaYZGlYQEFQY,69244
324
325
  hestia_earth/models/ipcc2019/organicCarbonPerHa_utils.py,sha256=s_F3fyHhPuqragrHxluqdK0GCGnEor17jGlGKue0UsA,9867
325
- hestia_earth/models/ipcc2019/organicSoilCultivation_utils.py,sha256=hRMzbGqscOcIO1MvD_31mbgxhVcPsvHtjJRcOCkEOhI,5405
326
+ hestia_earth/models/ipcc2019/organicSoilCultivation_utils.py,sha256=mJCKYZxqk5vFknckjIjGw478BjZbvKC_xQ-zYpvJ8xM,5628
326
327
  hestia_earth/models/ipcc2019/pastureGrass.py,sha256=_EwlAooSfrkcSy4rl_rk4PpeX1pcIiQcb7HE2lQkyn8,9847
327
328
  hestia_earth/models/ipcc2019/pastureGrass_utils.py,sha256=KvjIQ3xwbq1rk3thHlkGgQaWKgh0hCkNnzC53JW9634,14178
328
329
  hestia_earth/models/ipcc2019/utils.py,sha256=MSDMu15D9DnilFUgi4_6jYXC0FaKso3OODauGTMB6hs,6229
@@ -443,12 +444,12 @@ hestia_earth/models/linkedImpactAssessment/utils.py,sha256=S1zlux02gU2Lajrtoq-zQ
443
444
  hestia_earth/models/mocking/__init__.py,sha256=9VX50c-grz-snfd-7MBS0KfF7AadtbKuj7kK6PqtsgE,687
444
445
  hestia_earth/models/mocking/build_mock_search.py,sha256=p15ccEUmkmLp1RiGNznxMz3OFHbI8P1-29ExuohiQN8,1355
445
446
  hestia_earth/models/mocking/mock_search.py,sha256=ccFe_WrI73JElFmxp4hPNLCX7eeU--lBC1JFR901KJY,1069
446
- hestia_earth/models/mocking/search-results.json,sha256=lDhLUw6th-m6HxfUcTO3kDsCECtQ4qWK2OcwgGrXPek,162881
447
+ hestia_earth/models/mocking/search-results.json,sha256=F6U3nD8mxFGo1q8NNatlR0mkjOYL4kjvaN2eXLN_xH0,162465
447
448
  hestia_earth/models/pooreNemecek2018/__init__.py,sha256=nPboL7ULJzL5nJD5q7q9VOZt_fxbKVm8fmn1Az5YkVY,417
448
449
  hestia_earth/models/pooreNemecek2018/aboveGroundCropResidueTotal.py,sha256=Qt-mel4dkhK6N5uUOutNOinCTFjbjtGzITaaI0LvYc4,2396
449
450
  hestia_earth/models/pooreNemecek2018/belowGroundCropResidue.py,sha256=JT0RybbvWVlo01FO8K0Yj41HrEaJT3Kj1xfayr2X-xw,2315
450
451
  hestia_earth/models/pooreNemecek2018/ch4ToAirAquacultureSystems.py,sha256=k_dB5iwOg6swQWb4fvfMCZ1dm1PnRff8Rpm1aclKOqA,6517
451
- hestia_earth/models/pooreNemecek2018/excretaKgN.py,sha256=RstXknuNCB-BeCOIV0LHf3QRwOG2gQlxLzaGXWKG4hc,5858
452
+ hestia_earth/models/pooreNemecek2018/excretaKgN.py,sha256=EKVQK_wfDGRvj3lsSYp4xCjVEobOVt04fNhiZZXXfDk,5956
452
453
  hestia_earth/models/pooreNemecek2018/excretaKgVs.py,sha256=eIiiZPWjLya0ZOqiYXFKH10K693cAKFygP2p-WPcLyg,9278
453
454
  hestia_earth/models/pooreNemecek2018/freshwaterWithdrawalsDuringCycle.py,sha256=QWWS9P_q_mPruvCYm4PJ0PNcYJJ8QS3WEV7HN-6MneY,3920
454
455
  hestia_earth/models/pooreNemecek2018/landOccupationDuringCycle.py,sha256=gSUzPuzzLwQsBiX_Tgx6mWJ4pEB5qhlKoOtaEdmDGQ4,3431
@@ -590,7 +591,7 @@ hestia_earth/models/utils/animalProduct.py,sha256=M5IunAKGY6oZv3j1Ascl34ywyeLWAp
590
591
  hestia_earth/models/utils/aquacultureManagement.py,sha256=dxrbC1Xf140cohxTbSw6TxLAnAASWTdNZwBBam4yQnw,171
591
592
  hestia_earth/models/utils/array_builders.py,sha256=ko1pDZKaUudZqxOZ99vJamKAdoR6ND4ZmxVrYH6YjPc,19498
592
593
  hestia_earth/models/utils/background_emissions.py,sha256=R0tCA63q1_2DaZ87oI7FFjZsxAZ4Zds3Rr4fDf9KhkM,1850
593
- hestia_earth/models/utils/blank_node.py,sha256=AveekcsdZz7UNgLPQXrcFq30CjKA7H-WyWB3GbgwffQ,55963
594
+ hestia_earth/models/utils/blank_node.py,sha256=KZizahEIqZafxJ_OXL0za7QILc4AledEnHDQoxyaNI8,55961
594
595
  hestia_earth/models/utils/cache_sources.py,sha256=MBkrPpjwNiC4ApDjeYVHZjWBbpvAerXRDrMHpjasAZ0,377
595
596
  hestia_earth/models/utils/completeness.py,sha256=iRG4uviOAQQ4T2Nr4LlelPVTS_F1felGZNJYxek_JG8,1239
596
597
  hestia_earth/models/utils/constant.py,sha256=DmB3VVuoh7Pz2QDBJqiUG6yAML2i0fOy1BPuPHmhT1w,3442
@@ -602,7 +603,7 @@ hestia_earth/models/utils/cycle.py,sha256=Lx085Eonp2W7EOi9BSlLWqtwY0ocZ5F1KY9dDG
602
603
  hestia_earth/models/utils/descriptive_stats.py,sha256=EMVwFvg2OnZgKRAfireAoWY2EbrSvqR0V0bK9B53p28,1583
603
604
  hestia_earth/models/utils/ecoClimateZone.py,sha256=etsWsAQeYHCnDJJi-ezTrzjoaFILC1e3SMfSNsdRnPs,4241
604
605
  hestia_earth/models/utils/emission.py,sha256=vzQQ4eKiC8KlmwFqT00lSV1V2dmTGMSzddOYNgFyka8,3636
605
- hestia_earth/models/utils/excretaManagement.py,sha256=U8OeSILHMfCGR5x7Pw8R2tpzCv3C_AfSAX8As8WDVlM,2257
606
+ hestia_earth/models/utils/excretaManagement.py,sha256=cez_Rm69n8CzXuoil0fhi8XSOIEh2yfJzYFzhf9T5EM,2257
606
607
  hestia_earth/models/utils/feedipedia.py,sha256=mfGd3EaTQGh9aZaF9pxVJRH_vLEIqktwbwTKQWHv7hs,3967
607
608
  hestia_earth/models/utils/fertiliser.py,sha256=DBO4OBNgnQJ0fCQMDkIk_ZGZX-uKGaTFZCEXfAnJciY,690
608
609
  hestia_earth/models/utils/fuel.py,sha256=XzOELV3dn506PkMKjFQ_ZKVZInd2lL2x6PKdsa6Po4M,1429
@@ -621,8 +622,8 @@ hestia_earth/models/utils/pesticideAI.py,sha256=_mlhKnA1TxF-x39CPNnOGXk6754SoSQq
621
622
  hestia_earth/models/utils/practice.py,sha256=GEu2G2yMPbcIHldOzgv5OFp8bQ1Jt9OFgj0c_0F_kUc,372
622
623
  hestia_earth/models/utils/product.py,sha256=Oha4lMvediC1Lc5DksA6sAUT94Q1Cs9F4LFVe_uaqP4,11177
623
624
  hestia_earth/models/utils/productivity.py,sha256=rTJX_nemxHpOcPN7jiM2hFHknoLUIW8y-hFxVxIkg70,593
624
- hestia_earth/models/utils/property.py,sha256=3jeA__YBHZvIOqcfDmbV1IOLfqtU1pA74aVrEVcHsNE,5340
625
- hestia_earth/models/utils/site.py,sha256=ZYCxaBXZ3Zh4judbzOM_E5SNROiMH-S2LEkkklN5HK4,4041
625
+ hestia_earth/models/utils/property.py,sha256=oz3x-sJkNmORlDwb4o1q5I-azj0hteriUSZBP7S5idc,5390
626
+ hestia_earth/models/utils/site.py,sha256=88b30OI2rly_2YJTps7x4JrAg4TuoqlzcG5-w2F-J5c,4084
626
627
  hestia_earth/models/utils/source.py,sha256=D_QlW7Ul_NV1iOucMNE3szT64b1RdSdecIEm6OukYhw,2459
627
628
  hestia_earth/models/utils/stats.py,sha256=-0vvhSDAhp4ZYXD1l6sO2hdok8_HgUM6OjCSYGSTHqU,15291
628
629
  hestia_earth/models/utils/temperature.py,sha256=ljlG4-yCgFFb6LRZweb18cZKLrr7K2mqd4E4Hz_D1f8,476
@@ -719,6 +720,7 @@ tests/models/cycle/post_checks/test_cache.py,sha256=5QD8Yk9HbDePHSIXOJUM_ptZCroO
719
720
  tests/models/cycle/post_checks/test_otherSites.py,sha256=SHCA82MvWy-CsuquvLgmiwAhIKJQONIc07z51QH5RpQ,359
720
721
  tests/models/cycle/post_checks/test_site.py,sha256=In0Q0Tw3w_hV8_uAnOcL_iS2FoI_75lsq7MdoWLa5js,621
721
722
  tests/models/cycle/practice/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
723
+ tests/models/cycle/practice/test_landCover.py,sha256=3Fi-p0-ArgTbrBPnm02vikpFrInIFQuXx7VVpPtjmVI,955
722
724
  tests/models/cycle/practice/test_value.py,sha256=sYPoTkllrEt2oB92uA2q37FFtOjSX49749Nv1pUvqdw,1315
723
725
  tests/models/cycle/pre_checks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
724
726
  tests/models/cycle/pre_checks/test_otherSites.py,sha256=IEWvG2hwmladHctZUy6jTg01ZnCvWJUtPgD4GHKcumQ,502
@@ -834,7 +836,7 @@ tests/models/hestia/test_flowingWater.py,sha256=0-70Iyr0HKQHHC5jFEF9LUQQZ23spOo5
834
836
  tests/models/hestia/test_freshWater.py,sha256=v2UD69csKrniKP3MXkOEHxQeE6O3-lvIViCvLA7Zgws,984
835
837
  tests/models/hestia/test_inorganicFertiliser.py,sha256=v2Zs1Ig-ChOaq9gXuurcBt12izkH2bRUUuzW6rh3rqQ,643
836
838
  tests/models/hestia/test_irrigatedTypeUnspecified.py,sha256=bluZADFagxfXW4QyI0CIJzG97D2V33w333Z9Vwjqo0M,2015
837
- tests/models/hestia/test_landCover.py,sha256=I1ASRtGgLK02VQqHWrDdo9S19ID5ZMgKoBo_uptV8aY,6775
839
+ tests/models/hestia/test_landCover.py,sha256=XwzHCbJQt-jBpCnXcWLumTREyMNEEkUAuM2GViJl3iU,7492
838
840
  tests/models/hestia/test_landTransformation100YearAverageDuringCycle.py,sha256=3qa4rWUFqP1VM5-vm_182rhiBYJDxPqJwWtBqJ5K028,956
839
841
  tests/models/hestia/test_landTransformation20YearAverageDuringCycle.py,sha256=bUByojQuVeuCfko1_2YtNJi1PT9yktHlcbPi_p-MPvk,1001
840
842
  tests/models/hestia/test_liveAnimal.py,sha256=3K9cL1fwr6LlBl1_D8zIaeCOuiExqkDEU7BXx1JK_dk,2139
@@ -914,15 +916,15 @@ tests/models/ipcc2019/test_belowGroundCropResidue.py,sha256=no71pfxgOhn_tEWc_Ewu
914
916
  tests/models/ipcc2019/test_biomass_utils.py,sha256=I2q4pDGAD0aY_kpZCMPJoC-KbRYxdzY1rhr4xtJFWIA,3592
915
917
  tests/models/ipcc2019/test_carbonContent.py,sha256=_GWF5nGy-PxiqBZ5V7W_sHMz75YRzmxr79R-sZZg7yk,4146
916
918
  tests/models/ipcc2019/test_ch4ToAirAquacultureSystems.py,sha256=o7bHOS4JkwexRrDhLzpfr8nyYCctgRL32YZbam5RBrI,1891
917
- tests/models/ipcc2019/test_ch4ToAirEntericFermentation.py,sha256=7v0a5CcdpHixRbe4jhhIH2t4hlNsZInlEoHuipUBseg,8571
919
+ tests/models/ipcc2019/test_ch4ToAirEntericFermentation.py,sha256=nmmxxJFX_VFOgvNxmj4q825vVEtEq-B61DVNo3inirs,8567
918
920
  tests/models/ipcc2019/test_ch4ToAirExcreta.py,sha256=e58NXmBW2SNVLUqQO9A66Xq6jiGTyhdFZDZk51JApF8,2902
919
921
  tests/models/ipcc2019/test_ch4ToAirFloodedRice.py,sha256=YRyxNaGPAgsCJBRXhwhEsZ6r44dawHMSN-Qmi-yS0xI,1025
920
- tests/models/ipcc2019/test_ch4ToAirOrganicSoilCultivation.py,sha256=HJNE-M38eXCvjTDfOj70XlevSQgXut8w5EDzj1HKeyY,1703
922
+ tests/models/ipcc2019/test_ch4ToAirOrganicSoilCultivation.py,sha256=7AzKbCrNa3C2miC98ALCtlkIBMV12cOTSIvxxHjLSgw,1759
921
923
  tests/models/ipcc2019/test_co2ToAirAboveGroundBiomassStockChange.py,sha256=1lei99xqneCU3a_2fOTcnAmRKKN6_mYU7uOyfLhXqJ4,4546
922
924
  tests/models/ipcc2019/test_co2ToAirBelowGroundBiomassStockChange.py,sha256=ZoxBDNmNXutv5MUfKzoASCeBTEavjRC75ZSI0irWSG0,4481
923
925
  tests/models/ipcc2019/test_co2ToAirCarbonStockChange_utils.py,sha256=wCEtrbMl6zef8V-n_Ci_rtlQAlfuKm3khUVltr8eAcc,2173
924
926
  tests/models/ipcc2019/test_co2ToAirLimeHydrolysis.py,sha256=r7QmCH0YURS41JZxH2mFAC0J29WqmdkKG9EoEgv27AA,1350
925
- tests/models/ipcc2019/test_co2ToAirOrganicSoilCultivation.py,sha256=7LVoMpEP_byDXlaHARUJsjJA1JJ9btF0CU4rX3v8Y3w,1705
927
+ tests/models/ipcc2019/test_co2ToAirOrganicSoilCultivation.py,sha256=w4MBn2bYwyiv001xEU2RI9Q8L2Eu9lFC0CoxBcOzkWU,1761
926
928
  tests/models/ipcc2019/test_co2ToAirSoilOrganicCarbonStockChange.py,sha256=gPT_yyQBRoISSizW-7qE32VEeFXxsc55K3-3eZMJlOU,5688
927
929
  tests/models/ipcc2019/test_co2ToAirUreaHydrolysis.py,sha256=MmtEME0xjsa3KojFk_fxOLK6RZM_6p5HIpY2DOFHVu4,1530
928
930
  tests/models/ipcc2019/test_croppingDuration.py,sha256=1oRW1QaEwQvBadyVhaDi-jlkjuNqodyAinl88TdPmiY,1879
@@ -935,7 +937,7 @@ tests/models/ipcc2019/test_n2OToAirInorganicFertiliserDirect.py,sha256=uSdklDRTx
935
937
  tests/models/ipcc2019/test_n2OToAirInorganicFertiliserIndirect.py,sha256=RnU8CkUCYBBO1bgJALnoVgjTHLL1L1sja2nsyeVA_cg,2113
936
938
  tests/models/ipcc2019/test_n2OToAirOrganicFertiliserDirect.py,sha256=ofEcYrwvvXfoZHRWaaMtKMK2NbEtX_67laDeu_lDTXg,2714
937
939
  tests/models/ipcc2019/test_n2OToAirOrganicFertiliserIndirect.py,sha256=hW84sTlhB8mKRSFJX_iQS4gYo74zCtY-9zr1VHLC5GU,2111
938
- tests/models/ipcc2019/test_n2OToAirOrganicSoilCultivationDirect.py,sha256=cuBSXRDJSjwsHtMTIVFyjFpWpivG0ZwLXKOMHaLDDWY,1710
940
+ tests/models/ipcc2019/test_n2OToAirOrganicSoilCultivationDirect.py,sha256=VrBvbs9AVrRDwjGQAYfr_5rpB-fas0QQBGwQJBEax0o,1766
939
941
  tests/models/ipcc2019/test_nh3ToAirInorganicFertiliser.py,sha256=xmRHSTmyh--EZX29Z5NHD4LqEZl7Lkc5HntBCXlIRHE,1537
940
942
  tests/models/ipcc2019/test_nh3ToAirOrganicFertiliser.py,sha256=Z4a20I2UnZdzm6FqHnlHRXXVCY993_SHT7nG-zAhx-c,1104
941
943
  tests/models/ipcc2019/test_nitrogenContent.py,sha256=rKl_05PCC0OSsAhG0cHJOqnt9LsCaFnRpJorkm1TShA,3704
@@ -947,7 +949,7 @@ tests/models/ipcc2019/test_nonCo2EmissionsToAirNaturalVegetationBurning.py,sha25
947
949
  tests/models/ipcc2019/test_noxToAirInorganicFertiliser.py,sha256=NZBSBJLM_j2PEpHRON2ysgKNF8x5sHfQVoAKQdGsfzk,1537
948
950
  tests/models/ipcc2019/test_noxToAirOrganicFertiliser.py,sha256=LR5pjV5vRbgSSQAw8kYRp_ij4CHInzgaDS6EggQuBiw,1104
949
951
  tests/models/ipcc2019/test_organicCarbonPerHa.py,sha256=g_uOqzj6EiyvoAZRpd4PakMYQ7Vfn0QiDGLCTVz92A8,15607
950
- tests/models/ipcc2019/test_organicCarbonPerHa_tier_1.py,sha256=7ISfBTgFqZLyU7l_UW3Hxpx8dNi1X3UurNS5I7DhH-U,20432
952
+ tests/models/ipcc2019/test_organicCarbonPerHa_tier_1.py,sha256=7vmjes9efXPCUcRDZ6HuW8CNFGXnbpmyfXdgBPGbZEE,20621
951
953
  tests/models/ipcc2019/test_organicCarbonPerHa_tier_2.py,sha256=OKkISE_gcF1yrEHzHowk65MbDRdgy-ILdzGWIy6X8JU,5502
952
954
  tests/models/ipcc2019/test_organicCarbonPerHa_utils.py,sha256=Zd2QlN_Q3k9djuByOH62A00tryVzlvNtsd46N79TTeU,1778
953
955
  tests/models/ipcc2019/test_pastureGrass.py,sha256=6B8ZmuI1w4rA4wGduWx0l6e0BgGz8b2knTUIcT0GDOg,2725
@@ -1241,8 +1243,8 @@ tests/orchestrator/strategies/run/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeR
1241
1243
  tests/orchestrator/strategies/run/test_add_blank_node_if_missing.py,sha256=K4xg4UAXfNhSaLyknKVPO7MGBF44Z_gD7CuZ_pe28gU,3512
1242
1244
  tests/orchestrator/strategies/run/test_add_key_if_missing.py,sha256=hKwvk1ohcBVnQUCTiDhRW99J0xEa29BpwFi1KC0yWLE,329
1243
1245
  tests/orchestrator/strategies/run/test_always.py,sha256=w5-Dhp6yLzgZGAeMRz3OrqZbbAed9gZ1O266a3z9k7w,134
1244
- hestia_earth_models-0.70.2.dist-info/LICENSE,sha256=TD25LoiRJsA5CPUNrcyt1PXlGcbUGFMAeZoBcfCrCNE,1154
1245
- hestia_earth_models-0.70.2.dist-info/METADATA,sha256=vzarmK_NB5tg_ymkLsxwangcpt6RyzbBcGrm81A39BQ,4045
1246
- hestia_earth_models-0.70.2.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
1247
- hestia_earth_models-0.70.2.dist-info/top_level.txt,sha256=1dqA9TqpOLTEgpqa-YBsmbCmmNU1y56AtfFGEceZ2A0,19
1248
- hestia_earth_models-0.70.2.dist-info/RECORD,,
1246
+ hestia_earth_models-0.70.4.dist-info/LICENSE,sha256=TD25LoiRJsA5CPUNrcyt1PXlGcbUGFMAeZoBcfCrCNE,1154
1247
+ hestia_earth_models-0.70.4.dist-info/METADATA,sha256=HEELN8DDxe3Qa6j7Ach7OnNlGpjQnMIVXWkW6dUVyNo,4045
1248
+ hestia_earth_models-0.70.4.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
1249
+ hestia_earth_models-0.70.4.dist-info/top_level.txt,sha256=1dqA9TqpOLTEgpqa-YBsmbCmmNU1y56AtfFGEceZ2A0,19
1250
+ hestia_earth_models-0.70.4.dist-info/RECORD,,
@@ -0,0 +1,27 @@
1
+ import os
2
+ import json
3
+ import pytest
4
+ from unittest.mock import Mock, patch
5
+
6
+ from tests.utils import fixtures_path, fake_new_practice
7
+ from hestia_earth.models.cycle.practice.landCover import MODEL, MODEL_KEY, run
8
+
9
+ class_path = f"hestia_earth.models.{MODEL}.practice.{MODEL_KEY}"
10
+ fixtures_folder = os.path.join(fixtures_path, MODEL, 'practice', MODEL_KEY)
11
+
12
+ _folders = [d for d in os.listdir(fixtures_folder) if os.path.isdir(os.path.join(fixtures_folder, d))]
13
+
14
+
15
+ @pytest.mark.parametrize('folder', _folders)
16
+ @patch(f"{class_path}._new_practice", side_effect=fake_new_practice)
17
+ def test_run(mock_new_practice: Mock, folder: str):
18
+ fixture_path = os.path.join(fixtures_folder, folder)
19
+
20
+ with open(f"{fixture_path}/cycle.jsonld", encoding='utf-8') as f:
21
+ cycle = json.load(f)
22
+
23
+ with open(f"{fixture_path}/result.jsonld", encoding='utf-8') as f:
24
+ expected = json.load(f)
25
+
26
+ result = run(cycle)
27
+ assert result == expected, fixture_path
@@ -7,7 +7,8 @@ from tests.utils import fixtures_path, fake_new_management
7
7
  from hestia_earth.models.faostat2018.utils import MODEL as FAOSTAT_MODEL
8
8
  from hestia_earth.models.hestia.landCover import (
9
9
  MODEL, MODEL_KEY, get_changes, _estimate_maximum_forest_change,
10
- run, site_area_sum_to_100, _get_sums_of_crop_expansion, _get_sum_for_land_category, scale_values_to_one
10
+ run, site_area_sum_to_100, _get_sums_of_crop_expansion, _get_sum_for_land_category, scale_values_to_one,
11
+ _get_most_common_or_alphabetically_first
11
12
  )
12
13
 
13
14
  CLASS_PATH = f"hestia_earth.models.{MODEL}.{MODEL_KEY}"
@@ -42,6 +43,28 @@ BRAZIL_SITE = {
42
43
  }
43
44
 
44
45
 
46
+ @pytest.mark.parametrize(
47
+ "terms,expected_output",
48
+ [
49
+ ( # Only term
50
+ ["Annual crops", "Annual crops"],
51
+ "Annual crops"
52
+ ),
53
+ ( # Most common
54
+ ["Perennial crops", "Perennial crops", "Annual crops"],
55
+ "Perennial crops"
56
+ ),
57
+ ( # Tied frequency, Alphabetically first
58
+ ["Perennial crops", "Perennial crops", "Annual crops", "Annual crops"],
59
+ "Annual crops"
60
+ )
61
+ ]
62
+ )
63
+ def test_get_most_common_or_alphabetically_first(terms, expected_output):
64
+ actual_result = _get_most_common_or_alphabetically_first(terms)
65
+ assert actual_result == expected_output
66
+
67
+
45
68
  def test_get_changes():
46
69
  result, missing_values = get_changes(
47
70
  country_id="GADM-AFG",
@@ -55,7 +55,7 @@ def test_should_run(mock_feed, mock_lookup_value, *args):
55
55
  @patch(f"hestia_earth.models.{MODEL}.utils.get_milkYield_terms", return_value=[])
56
56
  @patch("hestia_earth.models.utils.property.download_term", side_effect=fake_download_term)
57
57
  # patch get_node_property to read value from lookups only
58
- @patch('hestia_earth.models.utils.property.get_node_property', return_value=None)
58
+ @patch('hestia_earth.models.utils.property.get_node_property', return_value={})
59
59
  @patch(f"{class_path}._new_emission", side_effect=fake_new_emission)
60
60
  def test_run(*args):
61
61
  with open(f"{fixtures_folder}/cycle.jsonld", encoding="utf-8") as f:
@@ -72,7 +72,7 @@ def test_run(*args):
72
72
  @patch(f"hestia_earth.models.{MODEL}.utils.get_milkYield_terms", return_value=[])
73
73
  @patch("hestia_earth.models.utils.property.download_term", side_effect=fake_download_term)
74
74
  # patch get_node_property to read value from lookups only
75
- @patch('hestia_earth.models.utils.property.get_node_property', return_value=None)
75
+ @patch('hestia_earth.models.utils.property.get_node_property', return_value={})
76
76
  @patch(f"{class_path}._new_emission", side_effect=fake_new_emission)
77
77
  def test_run_dairy(*args):
78
78
  with open(f"{fixtures_folder}/dairy-buffalo-cows/cycle.jsonld", encoding="utf-8") as f:
@@ -21,7 +21,8 @@ PARAMS_SHOULD_RUN = [
21
21
  ("polar", False),
22
22
  ("mineral-soil", True),
23
23
  ("unknown-soil", False),
24
- ("unknown-land-occupation", False)
24
+ ("unknown-land-occupation", False),
25
+ ("unknown-eco-climate-zone", False) # Closes 1233
25
26
  ]
26
27
  IDS_SHOULD_RUN = [p[0] for p in PARAMS_SHOULD_RUN]
27
28
 
@@ -22,7 +22,8 @@ PARAMS_SHOULD_RUN = [
22
22
  ("polar", False),
23
23
  ("mineral-soil", True),
24
24
  ("unknown-soil", False),
25
- ("unknown-land-occupation", False)
25
+ ("unknown-land-occupation", False),
26
+ ("unknown-eco-climate-zone", False) # Closes 1233
26
27
  ]
27
28
  IDS_SHOULD_RUN = [p[0] for p in PARAMS_SHOULD_RUN]
28
29
 
@@ -21,7 +21,8 @@ PARAMS_SHOULD_RUN = [
21
21
  ("polar", False),
22
22
  ("mineral-soil", True),
23
23
  ("unknown-soil", False),
24
- ("unknown-land-occupation", False)
24
+ ("unknown-land-occupation", False),
25
+ ("unknown-eco-climate-zone", False) # Closes 1233
25
26
  ]
26
27
  IDS_SHOULD_RUN = [p[0] for p in PARAMS_SHOULD_RUN]
27
28
 
@@ -196,13 +196,18 @@ MANAGEMENT_CATEGORY_PARAMS = [
196
196
  ("high-intensity-grazing", IpccLandUseCategory.GRASSLAND, IpccManagementCategory.HIGH_INTENSITY_GRAZING),
197
197
  ("improved-grassland", IpccLandUseCategory.GRASSLAND, IpccManagementCategory.IMPROVED_GRASSLAND),
198
198
  ("no-tillage", IpccLandUseCategory.ANNUAL_CROPS, IpccManagementCategory.NO_TILLAGE),
199
- ("nominally-managed", IpccLandUseCategory.GRASSLAND, IpccManagementCategory.NOMINALLY_MANAGED),
199
+ ("nominally-managed/native-pasture", IpccLandUseCategory.GRASSLAND, IpccManagementCategory.NOMINALLY_MANAGED),
200
+ (
201
+ "nominally-managed/nominally-managed-pasture",
202
+ IpccLandUseCategory.GRASSLAND,
203
+ IpccManagementCategory.NOMINALLY_MANAGED
204
+ ),
205
+ ("nominally-managed/unknown", IpccLandUseCategory.GRASSLAND, IpccManagementCategory.NOMINALLY_MANAGED),
200
206
  ("not-relevant", IpccLandUseCategory.OTHER, IpccManagementCategory.NOT_RELEVANT),
201
207
  ("reduced-tillage", IpccLandUseCategory.ANNUAL_CROPS, IpccManagementCategory.REDUCED_TILLAGE),
202
208
  ("severely-degraded", IpccLandUseCategory.GRASSLAND, IpccManagementCategory.SEVERELY_DEGRADED),
203
209
  ("unknown/annual-crops", IpccLandUseCategory.ANNUAL_CROPS, IpccManagementCategory.UNKNOWN),
204
- ("unknown/annual-crops-wet", IpccLandUseCategory.ANNUAL_CROPS_WET, IpccManagementCategory.UNKNOWN),
205
- ("unknown/grassland", IpccLandUseCategory.GRASSLAND, IpccManagementCategory.UNKNOWN)
210
+ ("unknown/annual-crops-wet", IpccLandUseCategory.ANNUAL_CROPS_WET, IpccManagementCategory.UNKNOWN)
206
211
  ]
207
212
 
208
213