hestia-earth-models 0.51.0__py3-none-any.whl → 0.51.1__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 (44) hide show
  1. hestia_earth/models/agribalyse2016/machineryInfrastructureDepreciatedAmountPerCycle.py +14 -5
  2. hestia_earth/models/emepEea2019/co2ToAirFuelCombustion.py +5 -2
  3. hestia_earth/models/emepEea2019/n2OToAirFuelCombustionDirect.py +5 -2
  4. hestia_earth/models/emepEea2019/nh3ToAirExcreta.py +6 -2
  5. hestia_earth/models/emepEea2019/noxToAirFuelCombustion.py +5 -2
  6. hestia_earth/models/emepEea2019/so2ToAirFuelCombustion.py +5 -2
  7. hestia_earth/models/emepEea2019/utils.py +22 -3
  8. hestia_earth/models/geospatialDatabase/aware.py +5 -4
  9. hestia_earth/models/geospatialDatabase/ecoregion.py +5 -4
  10. hestia_earth/models/geospatialDatabase/region.py +7 -11
  11. hestia_earth/models/geospatialDatabase/utils.py +39 -25
  12. hestia_earth/models/geospatialDatabase/waterDepth.py +5 -4
  13. hestia_earth/models/impact_assessment/__init__.py +3 -3
  14. hestia_earth/models/ipcc2019/croppingDuration.py +1 -1
  15. hestia_earth/models/ipcc2019/n2OToAirInorganicFertiliserIndirect.py +106 -0
  16. hestia_earth/models/ipcc2019/n2OToAirOrganicFertiliserIndirect.py +108 -0
  17. hestia_earth/models/ipcc2019/utils.py +37 -0
  18. hestia_earth/models/jarvisAndPain1994/__init__.py +13 -0
  19. hestia_earth/models/jarvisAndPain1994/n2ToAirExcreta.py +53 -0
  20. hestia_earth/models/koble2014/aboveGroundCropResidue.py +44 -21
  21. hestia_earth/models/koble2014/utils.py +5 -1
  22. hestia_earth/models/mocking/search-results.json +298 -261
  23. hestia_earth/models/pooreNemecek2018/aboveGroundCropResidueTotal.py +15 -8
  24. hestia_earth/models/schmidt2007/__init__.py +13 -0
  25. hestia_earth/models/schmidt2007/ch4ToAirWasteTreatment.py +60 -0
  26. hestia_earth/models/schmidt2007/utils.py +16 -0
  27. hestia_earth/models/utils/term.py +6 -0
  28. hestia_earth/models/version.py +1 -1
  29. {hestia_earth_models-0.51.0.dist-info → hestia_earth_models-0.51.1.dist-info}/METADATA +1 -1
  30. {hestia_earth_models-0.51.0.dist-info → hestia_earth_models-0.51.1.dist-info}/RECORD +44 -30
  31. tests/models/emepEea2019/test_utils.py +17 -3
  32. tests/models/geospatialDatabase/test_region.py +4 -5
  33. tests/models/geospatialDatabase/test_utils.py +10 -1
  34. tests/models/ipcc2019/test_n2OToAirInorganicFertiliserIndirect.py +48 -0
  35. tests/models/ipcc2019/test_n2OToAirOrganicFertiliserIndirect.py +48 -0
  36. tests/models/jarvisAndPain1994/__init__.py +0 -0
  37. tests/models/jarvisAndPain1994/test_n2ToAirExcreta.py +37 -0
  38. tests/models/koble2014/test_aboveGroundCropResidue.py +13 -0
  39. tests/models/schmidt2007/__init__.py +0 -0
  40. tests/models/schmidt2007/test_ch4ToAirWasteTreatment.py +45 -0
  41. tests/models/schmidt2007/test_utils.py +39 -0
  42. {hestia_earth_models-0.51.0.dist-info → hestia_earth_models-0.51.1.dist-info}/LICENSE +0 -0
  43. {hestia_earth_models-0.51.0.dist-info → hestia_earth_models-0.51.1.dist-info}/WHEEL +0 -0
  44. {hestia_earth_models-0.51.0.dist-info → hestia_earth_models-0.51.1.dist-info}/top_level.txt +0 -0
@@ -2,7 +2,7 @@ from hestia_earth.schema import ProductStatsDefinition, TermTermType
2
2
  from hestia_earth.utils.model import filter_list_term_type
3
3
  from hestia_earth.utils.tools import list_sum, safe_parse_float
4
4
 
5
- from hestia_earth.models.log import logRequirements, logShouldRun
5
+ from hestia_earth.models.log import logRequirements, logShouldRun, log_as_table
6
6
  from hestia_earth.models.utils.completeness import _is_term_type_incomplete
7
7
  from hestia_earth.models.utils.product import _new_product
8
8
  from hestia_earth.models.utils.crop import get_crop_lookup_value
@@ -41,20 +41,27 @@ def _run(product: dict):
41
41
  return [_product(value)]
42
42
 
43
43
 
44
- def _should_run_product(product: dict):
45
- value = list_sum(product.get('value', [0]))
46
- lookup_value = _get_lookup_value(product)
47
- return value > 0 and lookup_value is not None
48
-
49
-
50
44
  def _should_run(cycle: dict):
51
45
  # filter crop products with matching data in the lookup
52
46
  products = filter_list_term_type(cycle.get('products', []), TermTermType.CROP)
53
- products = list(filter(_should_run_product, products))
47
+ product_values = [
48
+ (product, list_sum(product.get('value', [0])), _get_lookup_value(product)) for product in products
49
+ ]
50
+ product_logs = log_as_table([
51
+ {
52
+ 'id': product.get('term', {}).get('@id'),
53
+ 'value': value,
54
+ 'lookup': lookup_value
55
+ } for product, value, lookup_value in product_values
56
+ ])
57
+ products = [
58
+ product for product, value, lookup_value in product_values if all([value > 0, lookup_value is not None])
59
+ ]
54
60
  single_crop_product = len(products) == 1
55
61
  term_type_incomplete = _is_term_type_incomplete(cycle, TERM_ID)
56
62
 
57
63
  logRequirements(cycle, model=MODEL, term=TERM_ID,
64
+ product_details=product_logs,
58
65
  single_crop_product=single_crop_product,
59
66
  term_type_cropResidue_incomplete=term_type_incomplete)
60
67
 
@@ -0,0 +1,13 @@
1
+ from os.path import dirname, abspath
2
+ import sys
3
+ from importlib import import_module
4
+
5
+ from hestia_earth.models.utils.blank_node import run_if_required
6
+
7
+ CURRENT_DIR = dirname(abspath(__file__)) + '/'
8
+ sys.path.append(CURRENT_DIR)
9
+ MODEL = 'schmidt2007'
10
+ PKG = '.'.join(['hestia_earth', 'models', MODEL])
11
+
12
+
13
+ def run(model: str, data): return run_if_required(MODEL, model, data, import_module(f".{model}", package=PKG))
@@ -0,0 +1,60 @@
1
+ from hestia_earth.schema import EmissionMethodTier, EmissionStatsDefinition
2
+ from hestia_earth.utils.tools import list_sum
3
+
4
+ from hestia_earth.models.log import logRequirements, logShouldRun
5
+ from hestia_earth.models.utils.emission import _new_emission
6
+ from .utils import get_waste_values
7
+ from . import MODEL
8
+
9
+ REQUIREMENTS = {
10
+ "Cycle": {
11
+ "or": {
12
+ "product": [
13
+ {"@type": "Product", "value": "", "term.termType": "waste"}
14
+ ],
15
+ "completeness.waste": ""
16
+ }
17
+ }
18
+ }
19
+ RETURNS = {
20
+ "Emission": [{
21
+ "value": "",
22
+ "methodTier": "tier 1",
23
+ "statsDefinition": "modelled"
24
+ }]
25
+ }
26
+ LOOKUPS = {
27
+ "waste": "ch4EfSchmidt2007"
28
+ }
29
+ TERM_ID = 'ch4ToAirWasteTreatment'
30
+ TIER = EmissionMethodTier.TIER_1.value
31
+
32
+
33
+ def _emission(value: float):
34
+ emission = _new_emission(TERM_ID, MODEL)
35
+ emission['value'] = [value]
36
+ emission['methodTier'] = TIER
37
+ emission['statsDefinition'] = EmissionStatsDefinition.MODELLED.value
38
+ return emission
39
+
40
+
41
+ def _run(waste_values: list):
42
+ value = list_sum(waste_values)
43
+ return [_emission(value)]
44
+
45
+
46
+ def _should_run(cycle: dict):
47
+ waste_values = get_waste_values(TERM_ID, cycle, LOOKUPS['waste'])
48
+ has_waste = len(waste_values) > 0
49
+
50
+ logRequirements(cycle, model=MODEL, term=TERM_ID,
51
+ has_waste=has_waste)
52
+
53
+ should_run = any([has_waste])
54
+ logShouldRun(cycle, MODEL, TERM_ID, should_run, methodTier=TIER)
55
+ return should_run, waste_values
56
+
57
+
58
+ def run(cycle: dict):
59
+ should_run, waste_values = _should_run(cycle)
60
+ return _run(waste_values) if should_run else []
@@ -0,0 +1,16 @@
1
+ from hestia_earth.schema import NodeType, TermTermType
2
+ from hestia_earth.utils.model import filter_list_term_type
3
+ from hestia_earth.utils.tools import non_empty_list
4
+
5
+ from hestia_earth.models.utils.completeness import _is_term_type_complete
6
+ from hestia_earth.models.utils.lookup import factor_value
7
+
8
+
9
+ def get_waste_values(term_id: str, cycle: dict, lookup_col: str):
10
+ products = filter_list_term_type(cycle.get('products', []), TermTermType.WASTE)
11
+ values = non_empty_list(map(factor_value(None, term_id, f"{TermTermType.WASTE.value}.csv", lookup_col), products))
12
+ return [0] if all([
13
+ len(values) == 0,
14
+ _is_term_type_complete(cycle, {'termType': 'waste'}),
15
+ cycle.get('@type', cycle.get('type')) == NodeType.CYCLE.value # ignore adding 0 value for Transformation
16
+ ]) else values
@@ -23,6 +23,7 @@ def get_liquid_fuel_terms():
23
23
  """
24
24
  Find all "liquid" `fuel` terms from the Glossary:
25
25
  - https://hestia.earth/glossary?termType=fuel&query=gasoline
26
+ - https://hestia.earth/glossary?termType=fuel&query=petrol
26
27
  - https://hestia.earth/glossary?termType=fuel&query=diesel
27
28
 
28
29
  Returns
@@ -50,6 +51,11 @@ def get_liquid_fuel_terms():
50
51
  "name": "gasoline*"
51
52
  }
52
53
  },
54
+ {
55
+ "regexp": {
56
+ "name": "petrol*"
57
+ }
58
+ },
53
59
  {
54
60
  "regexp": {
55
61
  "name": "diesel*"
@@ -1 +1 @@
1
- VERSION = '0.51.0'
1
+ VERSION = '0.51.1'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: hestia-earth-models
3
- Version: 0.51.0
3
+ Version: 0.51.1
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
@@ -2,10 +2,10 @@ hestia_earth/__init__.py,sha256=G-d438vPx7m_ks5e9XTtM3u7LDRO5dSSukibukWmyPM,56
2
2
  hestia_earth/models/__init__.py,sha256=qEFeq3yuf3lQKVseALmL8aPM8fpCS54B_5pry00M3hk,76
3
3
  hestia_earth/models/log.py,sha256=kPLBOABkSiiAaPejXYvDJ9g6RbaXQXgtOZP2x9v_FwA,3008
4
4
  hestia_earth/models/requirements.py,sha256=znNZJAhwX2iYiKcAQXPftY7z_1MsNa0QxCXkXyHm_U0,17363
5
- hestia_earth/models/version.py,sha256=Ezz852GGkdfxb2k3u7L1TnxGyY4y72dUXj8UZbAtwrY,19
5
+ hestia_earth/models/version.py,sha256=fRAhsretJm4iLEtE8CfsBZQk5ipiQBc4ay4SR7y7jKc,19
6
6
  hestia_earth/models/agribalyse2016/__init__.py,sha256=WvK0qCQbnYtg9oZxrACd1wGormZyXibPtpCnIQeDqbw,415
7
7
  hestia_earth/models/agribalyse2016/fuelElectricity.py,sha256=ORPd1nWPgKZAF0wtQ9M4ll8bKHElLMExWOdguEYPTaw,4532
8
- hestia_earth/models/agribalyse2016/machineryInfrastructureDepreciatedAmountPerCycle.py,sha256=rxU6nflJ5QisQTjEGsCSbAF9fYfSOtez3cGaRJVKo14,3303
8
+ hestia_earth/models/agribalyse2016/machineryInfrastructureDepreciatedAmountPerCycle.py,sha256=RjKJM64lHqTZ8L8K8ZftIhW2pOoWPjLIU4Xl1iqf8bw,3800
9
9
  hestia_earth/models/akagiEtAl2011AndIpcc2006/__init__.py,sha256=WK7xQwUPX48JGqZeb2S2EKdtXuxMjY7HYyUFHItUqUo,425
10
10
  hestia_earth/models/akagiEtAl2011AndIpcc2006/ch4ToAirCropResidueBurning.py,sha256=JUTkKB9EclLu7OkVQm2tTZpZF5vTTZl4HogaH_S4qrs,1779
11
11
  hestia_earth/models/akagiEtAl2011AndIpcc2006/n2OToAirCropResidueBurningDirect.py,sha256=3LbL2CgE-SQM1VYpQYh3jqJ5pHTPsvRPFq-zN9251eE,1785
@@ -92,13 +92,13 @@ hestia_earth/models/data/ecoinventV3/__init__.py,sha256=oevyurRuioXy_CsQCtG-S_FX
92
92
  hestia_earth/models/deRuijterEtAl2010/__init__.py,sha256=lbH6mB98dmZZlwdZctNYtEmVwAow957l80Dv7JSPDsI,418
93
93
  hestia_earth/models/deRuijterEtAl2010/nh3ToAirCropResidueDecomposition.py,sha256=iFxOC7busuhdO2UOto49r-LeWzzFiYQPavMiflY00bU,3448
94
94
  hestia_earth/models/emepEea2019/__init__.py,sha256=l90-pWrqIzt1ap1WNk0gF4iZeF5_TSG62hE83bIi4rQ,412
95
- hestia_earth/models/emepEea2019/co2ToAirFuelCombustion.py,sha256=fcrm4Kw3TLD802isFfZsLdKfDASI7gmbhPMKa2VCAtQ,1623
96
- hestia_earth/models/emepEea2019/n2OToAirFuelCombustionDirect.py,sha256=nvbZVtQIMs7TAs_OmM_f3g6298-KIFevZUtEUW-GjX4,1629
97
- hestia_earth/models/emepEea2019/nh3ToAirExcreta.py,sha256=Gbt4o27yiTfVyQVvMkhCPVnW5B_nwYWV_e4hnAQOObA,3631
95
+ hestia_earth/models/emepEea2019/co2ToAirFuelCombustion.py,sha256=ULOUte7_o1vLKDQD2sq56B9MEzOL9r7Ib2j0g30DKHE,1746
96
+ hestia_earth/models/emepEea2019/n2OToAirFuelCombustionDirect.py,sha256=DTpvSamSWaJy6uTn3iqk5rgvUw8qUJ527fsyTzDlzW8,1753
97
+ hestia_earth/models/emepEea2019/nh3ToAirExcreta.py,sha256=EvvNA3Qme1PHnRMT2JcokEPebu_--BZ8HqmYW3hHXoM,3879
98
98
  hestia_earth/models/emepEea2019/nh3ToAirInorganicFertiliser.py,sha256=GxIBiz1l5nyTd4_2txbQSsZPg_PJ9f9jlzCSHZwT6gI,6396
99
- hestia_earth/models/emepEea2019/noxToAirFuelCombustion.py,sha256=w-gZBqzKEB7Oa3TLA8hhOQfLjEGhXbL1aWW2w6csbTc,1623
100
- hestia_earth/models/emepEea2019/so2ToAirFuelCombustion.py,sha256=-TwTtd9Po65zekAfDX8Z6QWfsH_QpGw-0IN2hDplHuw,1623
101
- hestia_earth/models/emepEea2019/utils.py,sha256=7YgC-dUndd8Ha25LRZCM92_SYmOQo9tn0V90_EOfzTE,816
99
+ hestia_earth/models/emepEea2019/noxToAirFuelCombustion.py,sha256=3QFuWaRyvsIZC7Kd8L3sFNb081Zy3z1hnujNn0lPFP0,1746
100
+ hestia_earth/models/emepEea2019/so2ToAirFuelCombustion.py,sha256=Xg_z3xJkM2vfZzTXZck6F5DUvW6imDeHCksI_yJz1to,1746
101
+ hestia_earth/models/emepEea2019/utils.py,sha256=rwjH1ezlEdZ2GpVSN0fXItQ_0rgETXxzCtacfnZRCAg,1537
102
102
  hestia_earth/models/emissionNotRelevant/__init__.py,sha256=nIuPIkQR1ghv_T_Ab4Ckq5wmGdWVmgbaOjhtKfIJ-WE,2183
103
103
  hestia_earth/models/environmentalFootprintV3/__init__.py,sha256=lzg9qccwd9tbspw0lQ58YPprnvvSLTn3QV5T2-tPcC4,425
104
104
  hestia_earth/models/environmentalFootprintV3/freshwaterEcotoxicityPotentialCtue.py,sha256=E7xplLzmYxZOSAiHPWbuDJlQxLtftw8Cojry_eS-FLE,912
@@ -116,12 +116,12 @@ hestia_earth/models/faostat2018/utils.py,sha256=Uc8KXYIwwS0YJjA16jm3_v1DHQaIQg8_
116
116
  hestia_earth/models/faostat2018/product/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
117
117
  hestia_earth/models/faostat2018/product/price.py,sha256=vE3rtICxjYqnQdYiUNuR0gyjbVjDuCGqrARUT1HILEA,8058
118
118
  hestia_earth/models/geospatialDatabase/__init__.py,sha256=2Eh6-hjX812Uuf8nxYnC50uXE6uv_8ofFK8iVMwihXA,419
119
- hestia_earth/models/geospatialDatabase/aware.py,sha256=LE2Pwp6urX_QV0DlAn6S4NcKwcg0Y_J8lTfr_LzKlBA,1363
119
+ hestia_earth/models/geospatialDatabase/aware.py,sha256=eyWhTuDaXbJqsGMbHMLBf_7CaV21w2pay3c4eC5JAc0,1377
120
120
  hestia_earth/models/geospatialDatabase/clayContent.py,sha256=SAlHW1TMhOz9S4iUASlC9htuSlydINgk22hXW-v4UDU,2286
121
121
  hestia_earth/models/geospatialDatabase/croppingIntensity.py,sha256=x2uPKe44w-vgyWcx_pZiK_MEOan9WWlxSuhsysGC8rg,2011
122
122
  hestia_earth/models/geospatialDatabase/drainageClass.py,sha256=XnzamiydO3Xk1eJo8d2ddqz23AX-78kE0sOT8Gg9HnM,2117
123
123
  hestia_earth/models/geospatialDatabase/ecoClimateZone.py,sha256=Go447ubRKm5SiPeinwgMiJ7LKO5_NHV_n6LLosBS8FI,3847
124
- hestia_earth/models/geospatialDatabase/ecoregion.py,sha256=Tok0hfpWRL7sj39KES-JtWkmlC3GTjSS1o-jGRuD7TM,1599
124
+ hestia_earth/models/geospatialDatabase/ecoregion.py,sha256=Ro8AXoRkGt8v6FxMdzFsSEU7rEX0oPBSicXr8PHmqvI,1613
125
125
  hestia_earth/models/geospatialDatabase/erodibility.py,sha256=kTYRrqG7G9qaGkSEewyc0Zv_JVsqs404Vz3B7zl_Kaw,2071
126
126
  hestia_earth/models/geospatialDatabase/heavyWinterPrecipitation.py,sha256=DTBYosgttThxzRvuEdoH-9qnFRak-NYAMkojhIN8_NY,2168
127
127
  hestia_earth/models/geospatialDatabase/histosol.py,sha256=99u2Dd2kgXUmgCZ-1L24CZYT8o2kXN-EgL5O3yXVnkc,2486
@@ -132,7 +132,7 @@ hestia_earth/models/geospatialDatabase/potentialEvapotranspirationAnnual.py,sha2
132
132
  hestia_earth/models/geospatialDatabase/potentialEvapotranspirationLongTermAnnualMean.py,sha256=ak6iiDS7Ww_eWeLI0msirMi0Yk6cCbyc52hX30wmOGQ,2375
133
133
  hestia_earth/models/geospatialDatabase/precipitationAnnual.py,sha256=uGtwEDDzUE4fDR9aA9OjzKWkUBXjubxFS5Nd6bGKTzg,3543
134
134
  hestia_earth/models/geospatialDatabase/precipitationLongTermAnnualMean.py,sha256=s52m8Fhm3yQbYaHYyIRqyqLSB9yqV6oVz1jD2dtAhHA,2542
135
- hestia_earth/models/geospatialDatabase/region.py,sha256=RIc6NN4UYJ5vm267rcna1LP_qDwvSKS1FZjNxBmUqrE,2084
135
+ hestia_earth/models/geospatialDatabase/region.py,sha256=_ygDmdzg_6p-Q_6-3gBQGA7oXUjN_-CLC43tZZw9hNo,1820
136
136
  hestia_earth/models/geospatialDatabase/sandContent.py,sha256=6eH0WcQReUyHySf6AHVBwwgCHC3gYdTV7ZoAxBI_Zdo,2286
137
137
  hestia_earth/models/geospatialDatabase/siltContent.py,sha256=min1ig_H2tgagNUOuMf_iH3NGhtT5v1vL36SA5ppYt4,2208
138
138
  hestia_earth/models/geospatialDatabase/slope.py,sha256=eZkFFdqvwZ11nl3WzRlCOdR171OQPyHHiCCo0esIJcQ,2087
@@ -142,8 +142,8 @@ hestia_earth/models/geospatialDatabase/temperatureAnnual.py,sha256=cWFqmGLZNPdQa
142
142
  hestia_earth/models/geospatialDatabase/temperatureLongTermAnnualMean.py,sha256=lHYKGV6IasvyUbhWjaWODzHvxuP5broOY3sAv5Ry1ZY,2417
143
143
  hestia_earth/models/geospatialDatabase/totalNitrogenPerKgSoil.py,sha256=9GQT8Q1ci9n1IIpIMYETdEoJe33ax0qwgXJTsVTGvT4,2237
144
144
  hestia_earth/models/geospatialDatabase/totalPhosphorusPerKgSoil.py,sha256=4eWK4zBmHbAL1cFZlo7qLXKMF0E_K2sdF69EZa0CTDY,2226
145
- hestia_earth/models/geospatialDatabase/utils.py,sha256=bLwCBiF908y_Nh08in3iXqnKBMR7enNHFdgS99w_LLw,7078
146
- hestia_earth/models/geospatialDatabase/waterDepth.py,sha256=1JedDiqoHvPejfoU3wq4rbjuMx9kqAa9uqFAJfq0sv4,1944
145
+ hestia_earth/models/geospatialDatabase/utils.py,sha256=Xo-LlF1xrudiWkcE08RYRmICQLi0yW-Wdol2qujgQ-E,7240
146
+ hestia_earth/models/geospatialDatabase/waterDepth.py,sha256=4syF-tQQAd2ygOrZmbe2lncCEpRvDU32HlueFqYE7kI,1958
147
147
  hestia_earth/models/globalCropWaterModel2008/__init__.py,sha256=vQxexzFCl2Uv2RiIJfcppkRi9RgzBsJ68yhVDK4GvAU,425
148
148
  hestia_earth/models/globalCropWaterModel2008/rootingDepth.py,sha256=k6UeqX-JyXKdB6qcEzKUl2UzSOlX8sH1nnPf9LhtKWY,4254
149
149
  hestia_earth/models/haversineFormula/__init__.py,sha256=o155nR-XI67iCSBVNYIu4sPRIF3C2Y1NnUZ6lfpi0Do,417
@@ -159,7 +159,7 @@ hestia_earth/models/hyde32/landTransformationFromOtherNaturalVegetation20YearAve
159
159
  hestia_earth/models/hyde32/landTransformationFromPermanentPasture100YearAverageDuringCycle.py,sha256=0E6UtW0DpyB6nCFioekbCBvZu10F7LtvyOxbWRPL5oY,2417
160
160
  hestia_earth/models/hyde32/landTransformationFromPermanentPasture20YearAverageDuringCycle.py,sha256=khH8zdALTeaCaIDK6L-3OexD03I7MB8vA_mBOSkwe1M,2408
161
161
  hestia_earth/models/hyde32/utils.py,sha256=j9QavyBZIQ-ZCNjdPLWjOjg2LrxcNlanQ1wPnT0IKX8,3098
162
- hestia_earth/models/impact_assessment/__init__.py,sha256=B6UO8z3NR6JjIycyT7adZbnNKcBC49qnF2bOhVcufy4,355
162
+ hestia_earth/models/impact_assessment/__init__.py,sha256=gTR_PhWps593fPhm-V826VLLrZVH8CNQTqxExB7GGNI,418
163
163
  hestia_earth/models/impact_assessment/emissions.py,sha256=XcHTqyPAZeCz7qPTD8VvccmYMYROqBGrR0zJNpZtmvM,3413
164
164
  hestia_earth/models/impact_assessment/freshwaterWithdrawalsDuringCycle.py,sha256=ljh9vou6jJzNjWCtdLsvozx2S1K9cQvWVxifk6mMWso,3952
165
165
  hestia_earth/models/impact_assessment/freshwaterWithdrawalsInputsProduction.py,sha256=DSLX_aEWaUFcFZRD46bG5lIQ4TtAtIqH-sMkVCJH2Dg,990
@@ -210,25 +210,29 @@ hestia_earth/models/ipcc2019/ch4ToAirExcreta.py,sha256=nw95VfIRhfn7zH9wfZxafVLwn
210
210
  hestia_earth/models/ipcc2019/ch4ToAirFloodedRice.py,sha256=VyF9Z_xtbJXslRk2XDlhivN5f5fpDNF6JChsRcJ21uU,6481
211
211
  hestia_earth/models/ipcc2019/co2ToAirLimeHydrolysis.py,sha256=Q9CGcD1PizZJQ2qdeBQJXn3P_oIpAdbnn02re8HP0D4,2580
212
212
  hestia_earth/models/ipcc2019/co2ToAirUreaHydrolysis.py,sha256=2CnBlsD10wIbG66Amv4S-1QT5MRVNQGrAG2iN-ZH8o8,3819
213
- hestia_earth/models/ipcc2019/croppingDuration.py,sha256=jipKhjF0MdMzU2KoWmbD6XEwOabnCi4xQwdWz5W3Nuo,2979
213
+ hestia_earth/models/ipcc2019/croppingDuration.py,sha256=3aphCnu9jtzUJeCEcC2hY_gY66DliTDhP4zPQ-DAR6E,2983
214
214
  hestia_earth/models/ipcc2019/n2OToAirCropResidueDecompositionDirect.py,sha256=hUGujoGptR8rVjCPucebsFZtmXQrE6m-iZjon4YJrwY,4758
215
215
  hestia_earth/models/ipcc2019/n2OToAirExcretaDirect.py,sha256=gB1NbBKkUQyIFwjy4p8YYJxEEEW35QYWBVhNLduhaJ0,1984
216
+ hestia_earth/models/ipcc2019/n2OToAirInorganicFertiliserIndirect.py,sha256=SRGuWskW6Hn7oRYyozixtnCNtwlRWLD0rOZU7naHEHA,4118
217
+ hestia_earth/models/ipcc2019/n2OToAirOrganicFertiliserIndirect.py,sha256=ufj7cBqHtJiSY4v8txOHVx9Ad7TbnLO4J49Wc5UWCEc,4117
216
218
  hestia_earth/models/ipcc2019/nitrogenContent.py,sha256=5LISfKnCtRm5JE3va3F6CU0bshnFpgSAuzmjH0zpev0,6452
217
219
  hestia_earth/models/ipcc2019/no3ToGroundwaterCropResidueDecomposition.py,sha256=3JOQANIy4rDsFTWBy6pOzJ2NRdAiAL-x--C87gBIZQw,3603
218
220
  hestia_earth/models/ipcc2019/no3ToGroundwaterExcreta.py,sha256=WNfaopS9canZs5zePdijfD2HzTTYfqD1hiainuVfwmk,3004
219
221
  hestia_earth/models/ipcc2019/no3ToGroundwaterInorganicFertiliser.py,sha256=X2WPGOiWi_1cQ5yiyjfrBU_rAm3EDsm4WnRJi8ea6g8,3007
220
222
  hestia_earth/models/ipcc2019/no3ToGroundwaterOrganicFertiliser.py,sha256=Q6XLA-yUEJFQCrk1N4Tq2DiMSACI7XnsW_Mn595V1as,3102
221
223
  hestia_earth/models/ipcc2019/pastureGrass.py,sha256=2WOHlPFprpvDsZguPAlRqJi-oPftXTMUAKkGwYXAH-c,21747
222
- hestia_earth/models/ipcc2019/utils.py,sha256=u-KBk8xVI0Rcn1_jwjGeSXpF83VHpAiNsjGD3DBrUfY,992
224
+ hestia_earth/models/ipcc2019/utils.py,sha256=-7cJc0IdeqfqdAaDMtDyTEv9Ao5SzY9WzYNFNoziUfs,2880
223
225
  hestia_earth/models/ipcc2021/__init__.py,sha256=VTgGFKhwMmk_nuI1RRq0in27fHYVPBonlXlPK00K8no,409
224
226
  hestia_earth/models/ipcc2021/gwp100.py,sha256=HEV4Misbe5h99qCqZeCaKNTs4FkFWmv6RdCty_U2pps,947
227
+ hestia_earth/models/jarvisAndPain1994/__init__.py,sha256=ercUwy29sV7oPIESj8UjsGB5lqiBCss9OZcbjxeeG8E,418
228
+ hestia_earth/models/jarvisAndPain1994/n2ToAirExcreta.py,sha256=QY605kIRIOplMtb9hUP3or68p30YwhxLXIlYZG7kGyw,1588
225
229
  hestia_earth/models/koble2014/__init__.py,sha256=jRciLONEhGHtMLu2rlWXEEVwcJqA-URsfH1cCt-Qti4,410
226
- hestia_earth/models/koble2014/aboveGroundCropResidue.py,sha256=jV1hrzD4VeRtEk7qF1dm_kCu_zrXK3-nwehCh1yzqN0,5919
230
+ hestia_earth/models/koble2014/aboveGroundCropResidue.py,sha256=5jjWPo6feJxJiF3PspbNT7BwuDVXPRaAbFIso_LyuGQ,6516
227
231
  hestia_earth/models/koble2014/cropResidueManagement.py,sha256=22guAEe6pyi7SS6pswz3H3lMzfygefB1Mlg3aL2k6PQ,2973
228
232
  hestia_earth/models/koble2014/residueBurnt.py,sha256=eKvzC4HOj8t7c2-50guVhqQMapTuxcHNBB-_zElHILY,2285
229
233
  hestia_earth/models/koble2014/residueLeftOnField.py,sha256=R3D6-21Za9CylMVFWePSUywL55d7n9ohlBHAJyXAwA4,421
230
234
  hestia_earth/models/koble2014/residueRemoved.py,sha256=NqYXLr5Te7m6EcGMJOEeXTB_DDMFKoJslJuiTIQ16RM,2035
231
- hestia_earth/models/koble2014/utils.py,sha256=Cv-SQZim7uzTC84_cmotQf1y3tqguQ9YT8g5FxK_UO0,2029
235
+ hestia_earth/models/koble2014/utils.py,sha256=O0-6kZdUxo6pprIC1DmeS6BvlCTOHrWhkmIfepG5thk,2238
232
236
  hestia_earth/models/lcImpactAllEffects100Years/__init__.py,sha256=Z15q1K369kIkH4JC3X2mN0PdNHhUn6dscug6g4DvAxc,427
233
237
  hestia_earth/models/lcImpactAllEffects100Years/damageToFreshwaterEcosystemsClimateChange.py,sha256=xKph9CTpqOwr0Ht5BiQouwOVek6z0Y13G5ZCgUNjo6c,1038
234
238
  hestia_earth/models/lcImpactAllEffects100Years/damageToFreshwaterEcosystemsFreshwaterEcotoxicity.py,sha256=0oZr_tW-uIwQ8VR-ac5OPmjNSJ-915m20ICkW74tcQk,953
@@ -318,9 +322,9 @@ hestia_earth/models/lcImpactCertainEffectsInfinite/damageToTerrestrialEcosystems
318
322
  hestia_earth/models/linkedImpactAssessment/__init__.py,sha256=x6xsPu-Rwh-7HKsvHuKmgM1YML6fQy2z9Hsy9_BeO2Y,3565
319
323
  hestia_earth/models/mocking/__init__.py,sha256=Y39V6yj_3M1q8v9ShCHwPeJOstypOVIvb_FldMEbF7g,766
320
324
  hestia_earth/models/mocking/mock_search.py,sha256=ysPhzvMGvsHKqQXKRFi8ZqohcnyKutBlNqT_j0OH8L4,1983
321
- hestia_earth/models/mocking/search-results.json,sha256=krO95gw0Sk5mhdjAXBEghgSmuCyq72maSeGtO-yQKGE,32131
325
+ hestia_earth/models/mocking/search-results.json,sha256=q72dDdhGkTMmnsh6M66k_DWAbgSsqLlpNav0dDzf6-I,32960
322
326
  hestia_earth/models/pooreNemecek2018/__init__.py,sha256=nPboL7ULJzL5nJD5q7q9VOZt_fxbKVm8fmn1Az5YkVY,417
323
- hestia_earth/models/pooreNemecek2018/aboveGroundCropResidueTotal.py,sha256=cJa-2eFuBM0pBAH6tMHUFlpBLhU92rYZzol-JkyDduM,2210
327
+ hestia_earth/models/pooreNemecek2018/aboveGroundCropResidueTotal.py,sha256=wywl3QelciXV9hITH7eJ7xqkrD7N9qOsFMkC23I7Pgs,2530
324
328
  hestia_earth/models/pooreNemecek2018/belowGroundCropResidue.py,sha256=txjMrM6Q2g5Qsq6HhAL-IpMMLOj37wlWD2KnovyEWvw,2205
325
329
  hestia_earth/models/pooreNemecek2018/ch4ToAirAquacultureSystems.py,sha256=aFGXvqP6AM-hgkQvyRTCwdphv9UsfsRtn68YkuDODXY,6727
326
330
  hestia_earth/models/pooreNemecek2018/excretaKgN.py,sha256=iDZ9Ge9VfulLvlVT44_bYAGC-xEUDucLtkrjKbGAfiQ,5622
@@ -405,6 +409,9 @@ hestia_earth/models/schererPfister2015/pToDrainageWaterSoilFlux.py,sha256=XzzyoQ
405
409
  hestia_earth/models/schererPfister2015/pToGroundwaterSoilFlux.py,sha256=Gt3YdTCu7uGz4rugpGza6H0XkCU7hs3rk1UYKDVkfPg,2109
406
410
  hestia_earth/models/schererPfister2015/pToSurfaceWaterSoilFlux.py,sha256=bzgtCAtX0D5cRqoL24Ukg2IDr00Up7Ji4m1QQ9fJ-9w,2741
407
411
  hestia_earth/models/schererPfister2015/utils.py,sha256=LEvz9guqto0kuF5rXcQjgYsD3CvEmORvJQqRA1f7uMI,3130
412
+ hestia_earth/models/schmidt2007/__init__.py,sha256=xheSN6LOGXpWx7Hnv83onhe60Xk1_jk1PJg1nH_aZOQ,412
413
+ hestia_earth/models/schmidt2007/ch4ToAirWasteTreatment.py,sha256=GG9rXb3a1aa3Svs80cFo16M_E4MvlfQ0UonfZMR7MQo,1611
414
+ hestia_earth/models/schmidt2007/utils.py,sha256=NGG5iJI5F1PFSscW2u2Z4clj6UFXVfCewqRnXB5Pv48,815
408
415
  hestia_earth/models/site/__init__.py,sha256=aVuLLhq0OQVm-_MZoq4JAKMidqexUWJBg_7mmojmDzc,405
409
416
  hestia_earth/models/site/cationExchangeCapacityPerKgSoil.py,sha256=kQWABi_TWOYKgAkBnMEc0O1VgNOSbJuNkLaeNFMzeEI,3693
410
417
  hestia_earth/models/site/flowingWater.py,sha256=ZPeXd2tNYgG24kYOGQZM9lrUzCi9nZsabvHJsaH0hy4,1796
@@ -484,7 +491,7 @@ hestia_earth/models/utils/productivity.py,sha256=bUBVCZInGqHuHZvHDSYPQkjWXQxOtTj
484
491
  hestia_earth/models/utils/property.py,sha256=6JiELxqqs9sqFPv-xQHewdtmalJHhk61t09b57UiHAY,4469
485
492
  hestia_earth/models/utils/site.py,sha256=Nxf4_ANN1_QcxQEwlaL1tFyR-lDUypOBezBJcGmztL4,2725
486
493
  hestia_earth/models/utils/temperature.py,sha256=ljlG4-yCgFFb6LRZweb18cZKLrr7K2mqd4E4Hz_D1f8,476
487
- hestia_earth/models/utils/term.py,sha256=Es4AMaD-sFL9-FxTDB9OSLd-xno-ZMHSorDKsUzTr2E,12095
494
+ hestia_earth/models/utils/term.py,sha256=Qkc2UodF6Ok4i8odL9ynjtqKdu4r5dbeJn3PNEoz4eA,12291
488
495
  hestia_earth/models/utils/transformation.py,sha256=nyT5Mz4_VgFwhkL8JoNX9kxxow0zuxzsYl3W8xOu2p0,370
489
496
  hestia_earth/models/webbEtAl2012AndSintermannEtAl2012/__init__.py,sha256=Niv7ZFMBCwThlbCKGOwA17QdkpOUDFrqrFItGNqnZAA,434
490
497
  hestia_earth/models/webbEtAl2012AndSintermannEtAl2012/nh3ToAirOrganicFertiliser.py,sha256=fcqomqaWp4BNh937FdC5M-WrhBovtoH-pdUlCnkz7TU,4061
@@ -580,7 +587,7 @@ tests/models/emepEea2019/test_nh3ToAirExcreta.py,sha256=VtZFVWaHjqlxdge1Qir-OghN
580
587
  tests/models/emepEea2019/test_nh3ToAirInorganicFertiliser.py,sha256=tIaekBTAeiaXPRBaYrogKsxlDcEbcX3MlIZMjSqea4o,1674
581
588
  tests/models/emepEea2019/test_noxToAirFuelCombustion.py,sha256=drCeoaGo6Ag3fdEDDSC3D880OXxzillzHk7rPYcVwmE,1450
582
589
  tests/models/emepEea2019/test_so2ToAirFuelCombustion.py,sha256=CNaT_z02DHDpBJ2IIkG0K7ra87WBg_iDkhx9QGAjk00,1450
583
- tests/models/emepEea2019/test_utils.py,sha256=UvwhQnBpxgvDRrB7eSJME65a8r6QBaDyE9luw449b6Y,1383
590
+ tests/models/emepEea2019/test_utils.py,sha256=8izzxUtam9703-MnN6F-Wi0byRitMSidCx9aX7_ktL4,1968
584
591
  tests/models/environmentalFootprintV3/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
585
592
  tests/models/environmentalFootprintV3/test_freshwaterEcotoxicityPotentialCtue.py,sha256=lIgsdGh_0eDi-rPcCOrSSjVYNiET2GCSRkAHdugAkDk,851
586
593
  tests/models/epa2014/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -612,7 +619,7 @@ tests/models/geospatialDatabase/test_potentialEvapotranspirationAnnual.py,sha256
612
619
  tests/models/geospatialDatabase/test_potentialEvapotranspirationLongTermAnnualMean.py,sha256=6jn2TsDRvLtmwMdepYOIo23UqGeh-fTDPiOsp4ZZbt0,1072
613
620
  tests/models/geospatialDatabase/test_precipitationAnnual.py,sha256=wKNON8808fSb0RZuO1h9nsflnIysaX_o7yGB_x_nkJU,832
614
621
  tests/models/geospatialDatabase/test_precipitationLongTermAnnualMean.py,sha256=9WHknL9o5lYxXHMViF_tAmdOYtRDPVrP7Z94tXE8EwY,1050
615
- tests/models/geospatialDatabase/test_region.py,sha256=i6ZQ_-thrOdguUsa23yDaCNHolemzeVSctMsFMonsas,959
622
+ tests/models/geospatialDatabase/test_region.py,sha256=_VZ9aWZEpgbwLh_E739TkLoTthtcWmMpyX2ssD2b6dk,884
616
623
  tests/models/geospatialDatabase/test_sandContent.py,sha256=LZUr8t0il1naqP8U4-XlfQE9luiJgcugXDkVfgj-smI,1030
617
624
  tests/models/geospatialDatabase/test_siltContent.py,sha256=STUpMTN0iQRUyDY1EMd3WA6Rqt9rRzDG10g7z_IvXi0,1072
618
625
  tests/models/geospatialDatabase/test_slope.py,sha256=DHCbds1jPqELVLhZ0pzXOzvEzveUxIP9fQEibyqzOuU,1024
@@ -622,7 +629,7 @@ tests/models/geospatialDatabase/test_temperatureAnnual.py,sha256=tRaptqQAQthYraF
622
629
  tests/models/geospatialDatabase/test_temperatureLongTermAnnualMean.py,sha256=JhgAgCzkEImg0Tsdq6bio27xOr0ph29xhB1cQLsEVEY,1048
623
630
  tests/models/geospatialDatabase/test_totalNitrogenPerKgSoil.py,sha256=qIzj4gd6ERW87ho03Kl9X6_Rm3pE5RdGo6V1zvkyFTE,1041
624
631
  tests/models/geospatialDatabase/test_totalPhosphorusPerKgSoil.py,sha256=VmzuP_MdX8__LSlGbQ2wDswtYIcuDDNJuxfEj4BvvuI,1043
625
- tests/models/geospatialDatabase/test_utils.py,sha256=COKAlj_Gvy5cij4R3wrPivY81V0WD5WTxFpvw7RXlZk,307
632
+ tests/models/geospatialDatabase/test_utils.py,sha256=z6kZu-XtxZ_9gmc_Ck3yhlglIn75WNlbjhpZY6zZaXw,558
626
633
  tests/models/geospatialDatabase/test_waterDepth.py,sha256=AoCKQBcuNURfR12bHrXALjrK3Wzo5nu4fe5KNJuDfFM,1023
627
634
  tests/models/globalCropWaterModel2008/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
628
635
  tests/models/globalCropWaterModel2008/test_rootingDepth.py,sha256=dyhojeVM9ge1XOuuiUVSkNeLy--A2xW81hqGELNvEWY,2468
@@ -692,6 +699,8 @@ tests/models/ipcc2019/test_co2ToAirUreaHydrolysis.py,sha256=MmtEME0xjsa3KojFk_fx
692
699
  tests/models/ipcc2019/test_croppingDuration.py,sha256=gLRXeR6Tqa7ciD9KTRfsIflSeIIWT2iOpZMdcxAQla4,1871
693
700
  tests/models/ipcc2019/test_n2OToAirCropResidueDecompositionDirect.py,sha256=PW-FvpX4KD-X2wMhR9o6c_FVaR7xAd1YSinNPsap6fY,2015
694
701
  tests/models/ipcc2019/test_n2OToAirExcretaDirect.py,sha256=JYvBK4edcqfHrMPwgBFXF6km51ew9RISUcfQ_RNf2RY,1216
702
+ tests/models/ipcc2019/test_n2OToAirInorganicFertiliserIndirect.py,sha256=X61AE9Eb0Lqwy4AkfKKaHKU-p4C5JZIo326t8BT6ALs,1613
703
+ tests/models/ipcc2019/test_n2OToAirOrganicFertiliserIndirect.py,sha256=cPXdknWmXJig9i_AR19oX4g3GjTcEo8455DsD2w8M10,1609
695
704
  tests/models/ipcc2019/test_nitrogenContent.py,sha256=vCAg9hgFAnXaNst92VZYMsd-gZOxzGZlCOmv1sMSRgo,3592
696
705
  tests/models/ipcc2019/test_no3ToGroundwaterCropResidueDecomposition.py,sha256=l9LRPS2ReB1c-cmClef86LWL6FmURvDxUXAzMbKFJis,1624
697
706
  tests/models/ipcc2019/test_no3ToGroundwaterExcreta.py,sha256=Z-pCBQvlUf0ttmCERgezW-6e3KlX45YEVccOwthf5lU,1588
@@ -700,8 +709,10 @@ tests/models/ipcc2019/test_no3ToGroundwaterOrganicFertiliser.py,sha256=e1ZViD12q
700
709
  tests/models/ipcc2019/test_pastureGrass.py,sha256=fs_og0NM_XiJuFgL8UXegjOvKj7bL2koxXeOionbebs,1912
701
710
  tests/models/ipcc2021/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
702
711
  tests/models/ipcc2021/test_gwp100.py,sha256=r3pDw_TUcOrNlNRWtFAN3CBWfG5FCkHExypVqg0sZVk,857
712
+ tests/models/jarvisAndPain1994/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
713
+ tests/models/jarvisAndPain1994/test_n2ToAirExcreta.py,sha256=aMCuR9fmGDmum7VqLb1oBOsTCjBz5O9XQn2DWtP8HVM,1057
703
714
  tests/models/koble2014/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
704
- tests/models/koble2014/test_aboveGroundCropResidue.py,sha256=kzGKf4ZthaPocbU44s79iGwGRaBqx5MiNsVM4eASylU,1188
715
+ tests/models/koble2014/test_aboveGroundCropResidue.py,sha256=ZqBQK3_Z5PA0__Dgz_chPi7TtrWND8-9LjL0Px-zHEw,1635
705
716
  tests/models/koble2014/test_cropResidueManagement.py,sha256=QwmMcVpOoW7Pedowldd0GFdnvE6lesGEfWGGMO2TQbQ,621
706
717
  tests/models/koble2014/test_residueBurnt.py,sha256=4XJBiqQcxRlbUYjP6uSvBviqJq5UhIjTexKhQArGRgA,811
707
718
  tests/models/koble2014/test_residueLeftOnField.py,sha256=9pFFYldqBrzr45Ia_1bu-6uv-_rBl3h1rZjb_NGwt-U,858
@@ -876,6 +887,9 @@ tests/models/schererPfister2015/test_pErosionSoilFlux.py,sha256=YbQEZGQjdppamcUm
876
887
  tests/models/schererPfister2015/test_pToDrainageWaterSoilFlux.py,sha256=57MVRyiEU0g8pp6uRQiVo6l2w3OgBPyfv6oqdSIyrZ0,1060
877
888
  tests/models/schererPfister2015/test_pToGroundwaterSoilFlux.py,sha256=lOTL-ue6hEbQsKIss6VsN7bJME5UCB3pTbqbLtMp9rk,1064
878
889
  tests/models/schererPfister2015/test_pToSurfaceWaterSoilFlux.py,sha256=1VJo9q-Kb2OboK2RMp3-bkP6lXfkFbqMz1ACJC75FWw,1441
890
+ tests/models/schmidt2007/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
891
+ tests/models/schmidt2007/test_ch4ToAirWasteTreatment.py,sha256=5VSxT6sEbNp6c4Y07WzJGFDwVnjJbziG9HmbJNF6r6A,1454
892
+ tests/models/schmidt2007/test_utils.py,sha256=rmtOV3xiFynjgx8lQNGsJqquG8HDxz3LDmh1efN8AkI,1278
879
893
  tests/models/site/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
880
894
  tests/models/site/test_cationExchangeCapacityPerKgSoil.py,sha256=ZbIt-mQohYE-8xd4zoqDTVj3VC-Dg9wnOTY4ppULsCY,1023
881
895
  tests/models/site/test_flowingWater.py,sha256=q7ktHV7sffIUBf0SgIhbkL_U_c7RTHYv6oWhXY4A6io,1274
@@ -944,8 +958,8 @@ tests/models/utils/test_site.py,sha256=cSKrkLeerymMLZAwCnbQce38NwgxXojQHAVm9DPUT
944
958
  tests/models/utils/test_term.py,sha256=-Wn2C1jyOLfkvhcKmKWT-Jms7yqLwx5ok91gYJNcGWc,2028
945
959
  tests/models/webbEtAl2012AndSintermannEtAl2012/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
946
960
  tests/models/webbEtAl2012AndSintermannEtAl2012/test_nh3ToAirOrganicFertiliser.py,sha256=qi2FNXS5Af2WDtm7nq_FsprH3BfCF0XxnE0XHmC4aIY,2244
947
- hestia_earth_models-0.51.0.dist-info/LICENSE,sha256=EFSZhfUdZCTsCIYdHzTGewMKfRfp7X9t1s2aaKxm8O0,1154
948
- hestia_earth_models-0.51.0.dist-info/METADATA,sha256=rC2wapJDyfDGxiaJeFZkJZc7No-1kNZRGaMEN_Al0IA,3178
949
- hestia_earth_models-0.51.0.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
950
- hestia_earth_models-0.51.0.dist-info/top_level.txt,sha256=1dqA9TqpOLTEgpqa-YBsmbCmmNU1y56AtfFGEceZ2A0,19
951
- hestia_earth_models-0.51.0.dist-info/RECORD,,
961
+ hestia_earth_models-0.51.1.dist-info/LICENSE,sha256=EFSZhfUdZCTsCIYdHzTGewMKfRfp7X9t1s2aaKxm8O0,1154
962
+ hestia_earth_models-0.51.1.dist-info/METADATA,sha256=pau-UYw6oKiDHVlx76p2Mq0pDvBvEL5DboUI74Pin0g,3178
963
+ hestia_earth_models-0.51.1.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
964
+ hestia_earth_models-0.51.1.dist-info/top_level.txt,sha256=1dqA9TqpOLTEgpqa-YBsmbCmmNU1y56AtfFGEceZ2A0,19
965
+ hestia_earth_models-0.51.1.dist-info/RECORD,,
@@ -5,7 +5,7 @@ from hestia_earth.models.emepEea2019.utils import get_fuel_values
5
5
  class_path = 'hestia_earth.models.emepEea2019.utils'
6
6
  TERMS = [
7
7
  'diesel',
8
- 'gasoline'
8
+ 'petrol'
9
9
  ]
10
10
 
11
11
 
@@ -36,9 +36,23 @@ def test_get_fuel_values(*args):
36
36
  'value': [100]
37
37
  },
38
38
  {
39
- 'term': {'@id': 'gasoline', 'termType': 'fuel'},
39
+
40
+ 'term': {'@id': 'diesel', 'termType': 'fuel'},
41
+ 'operation': {'@id': 'crushingWoodMachineUnspecified', 'termType': 'operation'},
42
+ 'value': [200]
43
+ },
44
+ {
45
+
46
+ 'term': {'@id': 'diesel', 'termType': 'fuel'},
47
+ 'operation': {'@id': 'helicopterUseOperationUnspecified', 'termType': 'operation'},
48
+ 'value': [150]
49
+ },
50
+ {
51
+ 'term': {'@id': 'marineGasOil', 'termType': 'fuel'},
52
+ 'operation': {'@id': 'crushingWoodMachineUnspecified', 'termType': 'operation'},
40
53
  'value': [50]
41
54
  }
42
55
  ]
43
56
  }
44
- assert get_fuel_values('co2ToAirFuelCombustion', cycle, 'co2ToAirFuelCombustionEmepEea2019') == [317.0]
57
+ result = get_fuel_values('co2ToAirFuelCombustion', cycle, 'co2ToAirFuelCombustionEmepEea2019')
58
+ assert result == [317.0, 632.0, 475.5, 158.5]
@@ -8,13 +8,12 @@ class_path = f"hestia_earth.models.{MODEL}.{MODEL_KEY}"
8
8
  fixtures_folder = f"{fixtures_path}/{MODEL}/{MODEL_KEY}"
9
9
 
10
10
 
11
- @patch(f"{class_path}.should_download", return_value=True)
12
- @patch(f"{class_path}.has_geospatial_data")
13
- def test_should_run(mock_has_geospatial_data, *args):
14
- mock_has_geospatial_data.return_value = True
11
+ @patch(f"{class_path}.has_coordinates")
12
+ def test_should_run(mock_has_coordinates, *args):
13
+ mock_has_coordinates.return_value = True
15
14
  assert _should_run({}) is True
16
15
 
17
- mock_has_geospatial_data.return_value = False
16
+ mock_has_coordinates.return_value = False
18
17
  assert not _should_run({})
19
18
 
20
19
 
@@ -1,8 +1,17 @@
1
1
  from hestia_earth.schema import TermTermType
2
2
 
3
- from hestia_earth.models.geospatialDatabase.utils import get_region_factor
3
+ from hestia_earth.models.geospatialDatabase.utils import get_region_factor, _get_area_size
4
4
 
5
5
 
6
6
  def test_get_region_factor():
7
7
  site = {'country': {'@id': 'GADM-ALB'}}
8
8
  assert get_region_factor('croppingIntensity', site, TermTermType.LANDUSEMANAGEMENT) == 0.9999775685587958
9
+
10
+
11
+ def test_get_area_size():
12
+ site = {'country': {'@id': 'GADM-ALB'}}
13
+ assert _get_area_size(site) == 28735.42144
14
+
15
+ site['boundary'] = {'type': 'Polygon'}
16
+ site['boundaryArea'] = 1000
17
+ assert _get_area_size(site) == 1000
@@ -0,0 +1,48 @@
1
+ from unittest.mock import patch
2
+ import json
3
+ from tests.utils import fixtures_path, fake_new_emission
4
+
5
+ from hestia_earth.models.ipcc2019.n2OToAirInorganicFertiliserIndirect import MODEL, TERM_ID, run, _should_run
6
+
7
+ class_path = f"hestia_earth.models.{MODEL}.{TERM_ID}"
8
+ fixtures_folder = f"{fixtures_path}/{MODEL}/{TERM_ID}"
9
+
10
+
11
+ @patch(f"{class_path}.get_ecoClimateZone", return_value=2)
12
+ @patch(f"{class_path}._is_term_type_complete", return_value=False)
13
+ @patch(f"{class_path}.get_inorganic_fertiliser_N_total", return_value=0)
14
+ def test_should_run(mock_N_total, mock_complete, *args):
15
+ # no N => no run
16
+ assert not _should_run({})
17
+
18
+ # with N => no run
19
+ mock_N_total.return_value = 10
20
+ assert not _should_run({})
21
+
22
+ # is complete => run
23
+ mock_complete.return_value = True
24
+ assert _should_run({}) is True
25
+
26
+
27
+ @patch(f"{class_path}._new_emission", side_effect=fake_new_emission)
28
+ def test_run_wet(*args):
29
+ with open(f"{fixtures_folder}/ecoClimateZone-wet/cycle.jsonld", encoding='utf-8') as f:
30
+ cycle = json.load(f)
31
+
32
+ with open(f"{fixtures_folder}/ecoClimateZone-wet/result.jsonld", encoding='utf-8') as f:
33
+ expected = json.load(f)
34
+
35
+ value = run(cycle)
36
+ assert value == expected
37
+
38
+
39
+ @patch(f"{class_path}._new_emission", side_effect=fake_new_emission)
40
+ def test_run_dry(*args):
41
+ with open(f"{fixtures_folder}/ecoClimateZone-dry/cycle.jsonld", encoding='utf-8') as f:
42
+ cycle = json.load(f)
43
+
44
+ with open(f"{fixtures_folder}/ecoClimateZone-dry/result.jsonld", encoding='utf-8') as f:
45
+ expected = json.load(f)
46
+
47
+ value = run(cycle)
48
+ assert value == expected
@@ -0,0 +1,48 @@
1
+ from unittest.mock import patch
2
+ import json
3
+ from tests.utils import fixtures_path, fake_new_emission
4
+
5
+ from hestia_earth.models.ipcc2019.n2OToAirOrganicFertiliserIndirect import MODEL, TERM_ID, run, _should_run
6
+
7
+ class_path = f"hestia_earth.models.{MODEL}.{TERM_ID}"
8
+ fixtures_folder = f"{fixtures_path}/{MODEL}/{TERM_ID}"
9
+
10
+
11
+ @patch(f"{class_path}.get_ecoClimateZone", return_value=2)
12
+ @patch(f"{class_path}._is_term_type_complete", return_value=False)
13
+ @patch(f"{class_path}.get_organic_fertiliser_N_total", return_value=0)
14
+ def test_should_run(mock_N_total, mock_complete, *args):
15
+ # no N => no run
16
+ assert not _should_run({})
17
+
18
+ # with N => no run
19
+ mock_N_total.return_value = 10
20
+ assert not _should_run({})
21
+
22
+ # is complete => run
23
+ mock_complete.return_value = True
24
+ assert _should_run({}) is True
25
+
26
+
27
+ @patch(f"{class_path}._new_emission", side_effect=fake_new_emission)
28
+ def test_run_wet(*args):
29
+ with open(f"{fixtures_folder}/ecoClimateZone-wet/cycle.jsonld", encoding='utf-8') as f:
30
+ cycle = json.load(f)
31
+
32
+ with open(f"{fixtures_folder}/ecoClimateZone-wet/result.jsonld", encoding='utf-8') as f:
33
+ expected = json.load(f)
34
+
35
+ value = run(cycle)
36
+ assert value == expected
37
+
38
+
39
+ @patch(f"{class_path}._new_emission", side_effect=fake_new_emission)
40
+ def test_run_dry(*args):
41
+ with open(f"{fixtures_folder}/ecoClimateZone-dry/cycle.jsonld", encoding='utf-8') as f:
42
+ cycle = json.load(f)
43
+
44
+ with open(f"{fixtures_folder}/ecoClimateZone-dry/result.jsonld", encoding='utf-8') as f:
45
+ expected = json.load(f)
46
+
47
+ value = run(cycle)
48
+ assert value == expected
File without changes
@@ -0,0 +1,37 @@
1
+ from unittest.mock import patch
2
+ import json
3
+ from tests.utils import fixtures_path, fake_new_emission
4
+
5
+ from hestia_earth.models.jarvisAndPain1994.n2ToAirExcreta import MODEL, TERM_ID, run, _should_run
6
+
7
+ class_path = f"hestia_earth.models.{MODEL}.{TERM_ID}"
8
+ fixtures_folder = f"{fixtures_path}/{MODEL}/{TERM_ID}"
9
+
10
+
11
+ def test_should_run(*args):
12
+ # no emissions => no run
13
+ cycle = {'emissions': []}
14
+ should_run, *args = _should_run(cycle)
15
+ assert not should_run
16
+
17
+ # with n2o emission => run
18
+ cycle['emissions'] = [{
19
+ 'term': {
20
+ '@id': 'n2OToAirExcretaDirect'
21
+ },
22
+ 'value': [100]
23
+ }]
24
+ should_run, *args = _should_run(cycle)
25
+ assert should_run is True
26
+
27
+
28
+ @patch(f"{class_path}._new_emission", side_effect=fake_new_emission)
29
+ def test_run(*args):
30
+ with open(f"{fixtures_folder}/cycle.jsonld", encoding='utf-8') as f:
31
+ cycle = json.load(f)
32
+
33
+ with open(f"{fixtures_folder}/result.jsonld", encoding='utf-8') as f:
34
+ expected = json.load(f)
35
+
36
+ value = run(cycle)
37
+ assert value == expected
@@ -34,3 +34,16 @@ def test_run(*args):
34
34
 
35
35
  value = run(cycle)
36
36
  assert value == expected
37
+
38
+
39
+ @patch(f"{class_path}._is_term_type_incomplete", return_value=True)
40
+ @patch(f"{class_path}._new_product", side_effect=fake_new_product)
41
+ def test_run_no_total(*args):
42
+ with open(f"{fixtures_folder}/no-total/cycle.jsonld", encoding='utf-8') as f:
43
+ cycle = json.load(f)
44
+
45
+ with open(f"{fixtures_folder}/no-total/result.jsonld", encoding='utf-8') as f:
46
+ expected = json.load(f)
47
+
48
+ value = run(cycle)
49
+ assert value == expected
File without changes