hestia-earth-models 0.64.2__py3-none-any.whl → 0.64.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.

Potentially problematic release.


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

Files changed (57) hide show
  1. hestia_earth/models/agribalyse2016/machineryInfrastructureDepreciatedAmountPerCycle.py +2 -2
  2. hestia_earth/models/cycle/animal/input/hestiaAggregatedData.py +5 -2
  3. hestia_earth/models/cycle/animal/input/properties.py +2 -1
  4. hestia_earth/models/cycle/animal/milkYield.py +2 -1
  5. hestia_earth/models/cycle/concentrateFeed.py +8 -8
  6. hestia_earth/models/cycle/cycleDuration.py +4 -5
  7. hestia_earth/models/cycle/siteDuration.py +15 -5
  8. hestia_earth/models/cycle/startDateDefinition.py +3 -4
  9. hestia_earth/models/cycle/stockingDensityAnimalHousingAverage.py +52 -0
  10. hestia_earth/models/fantkeEtAl2016/__init__.py +13 -0
  11. hestia_earth/models/fantkeEtAl2016/damageToHumanHealthParticulateMatterFormation.py +49 -0
  12. hestia_earth/models/frischknechtEtAl2000/__init__.py +13 -0
  13. hestia_earth/models/frischknechtEtAl2000/ionisingRadiationKbqU235Eq.py +90 -0
  14. hestia_earth/models/ipcc2019/aboveGroundBiomass.py +762 -0
  15. hestia_earth/models/ipcc2019/aboveGroundBiomass_utils.py +180 -0
  16. hestia_earth/models/ipcc2019/animal/liveweightGain.py +89 -0
  17. hestia_earth/models/ipcc2019/animal/liveweightPerHead.py +89 -0
  18. hestia_earth/models/ipcc2019/animal/pastureGrass.py +51 -42
  19. hestia_earth/models/ipcc2019/animal/utils.py +20 -0
  20. hestia_earth/models/ipcc2019/animal/weightAtMaturity.py +15 -19
  21. hestia_earth/models/ipcc2019/ch4ToAirExcreta.py +2 -2
  22. hestia_earth/models/ipcc2019/organicCarbonPerHa_tier_1_utils.py +37 -50
  23. hestia_earth/models/ipcc2019/organicCarbonPerHa_utils.py +0 -19
  24. hestia_earth/models/ipcc2019/pastureGrass.py +44 -31
  25. hestia_earth/models/ipcc2019/pastureGrass_utils.py +38 -22
  26. hestia_earth/models/mocking/search-results.json +228 -228
  27. hestia_earth/models/poschEtAl2008/terrestrialEutrophicationPotentialAccumulatedExceedance.py +40 -0
  28. hestia_earth/models/site/soilMeasurement.py +2 -2
  29. hestia_earth/models/utils/blank_node.py +20 -1
  30. hestia_earth/models/utils/crop.py +4 -0
  31. hestia_earth/models/utils/ecoClimateZone.py +99 -0
  32. hestia_earth/models/utils/emission.py +6 -2
  33. hestia_earth/models/utils/impact_assessment.py +10 -5
  34. hestia_earth/models/utils/lookup.py +5 -3
  35. hestia_earth/models/utils/productivity.py +1 -1
  36. hestia_earth/models/utils/property.py +2 -2
  37. hestia_earth/models/version.py +1 -1
  38. {hestia_earth_models-0.64.2.dist-info → hestia_earth_models-0.64.4.dist-info}/METADATA +1 -1
  39. {hestia_earth_models-0.64.2.dist-info → hestia_earth_models-0.64.4.dist-info}/RECORD +57 -35
  40. tests/models/cycle/test_siteDuration.py +22 -0
  41. tests/models/cycle/test_stockingDensityAnimalHousingAverage.py +42 -0
  42. tests/models/fantkeEtAl2016/__init__.py +0 -0
  43. tests/models/fantkeEtAl2016/test_damageToHumanHealthParticulateMatterFormation.py +20 -0
  44. tests/models/frischknechtEtAl2000/__init__.py +0 -0
  45. tests/models/frischknechtEtAl2000/test_ionisingRadiationKbqU235Eq.py +70 -0
  46. tests/models/ipcc2019/animal/test_liveweightGain.py +20 -0
  47. tests/models/ipcc2019/animal/test_liveweightPerHead.py +20 -0
  48. tests/models/ipcc2019/animal/test_pastureGrass.py +1 -1
  49. tests/models/ipcc2019/test_aboveGroundBiomass.py +182 -0
  50. tests/models/ipcc2019/test_aboveGroundBiomass_utils.py +92 -0
  51. tests/models/ipcc2019/test_organicCarbonPerHa_tier_1_utils.py +3 -2
  52. tests/models/ipcc2019/test_pastureGrass.py +2 -2
  53. tests/models/poschEtAl2008/test_terrestrialEutrophicationPotentialAccumulatedExceedance.py +44 -0
  54. tests/models/utils/test_ecoClimateZone.py +152 -0
  55. {hestia_earth_models-0.64.2.dist-info → hestia_earth_models-0.64.4.dist-info}/LICENSE +0 -0
  56. {hestia_earth_models-0.64.2.dist-info → hestia_earth_models-0.64.4.dist-info}/WHEEL +0 -0
  57. {hestia_earth_models-0.64.2.dist-info → hestia_earth_models-0.64.4.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,40 @@
1
+ from hestia_earth.models.log import logRequirements, logShouldRun
2
+ from hestia_earth.models.utils.impact_assessment import impact_country_value
3
+ from hestia_earth.models.utils.indicator import _new_indicator
4
+ from . import MODEL
5
+
6
+ REQUIREMENTS = {
7
+ "ImpactAssessment": {
8
+ "or": {
9
+ "country": {"@type": "Term", "termType": "region"},
10
+ "site": {
11
+ "@type": "Site",
12
+ "region": {"@type": "Term", "termType": "region"}
13
+ }
14
+ },
15
+ "emissionsResourceUse": [{"@type": "Indicator", "value": "", "term.termType": "emission"}]
16
+ }
17
+ }
18
+ RETURNS = {
19
+ "Indicator": {
20
+ "value": ""
21
+ }
22
+ }
23
+ LOOKUPS = {
24
+ "region-emission-terrestrialEutrophicationPotentialAccumulatedExceedance": ""
25
+ }
26
+ TERM_ID = 'terrestrialEutrophicationPotentialAccumulatedExceedance'
27
+
28
+
29
+ def _indicator(value: float):
30
+ indicator = _new_indicator(TERM_ID, MODEL)
31
+ indicator['value'] = value
32
+ return indicator
33
+
34
+
35
+ def run(impact_assessment: dict):
36
+ value = impact_country_value(MODEL, TERM_ID, impact_assessment, f"{list(LOOKUPS.keys())[0]}.csv")
37
+ logRequirements(impact_assessment, model=MODEL, term=TERM_ID,
38
+ value=value)
39
+ logShouldRun(impact_assessment, MODEL, TERM_ID, True)
40
+ return _indicator(value)
@@ -152,7 +152,6 @@ def _get_depths_from_measurements(measurements: list) -> list:
152
152
 
153
153
 
154
154
  def _should_run(site: dict):
155
- # we only work with measurements with depths
156
155
  measurements = site.get("measurements", [])
157
156
  measurement_sensitivity = {
158
157
  m.get('term', {}).get('@id'): get_lookup_value(
@@ -160,6 +159,7 @@ def _should_run(site: dict):
160
159
  )
161
160
  for m in measurements
162
161
  }
162
+ # we only work with measurements with depths
163
163
  measurements_with_depths = [m for m in measurements if all([
164
164
  not measurement_sensitivity[m.get("term", {}).get('@id')],
165
165
  m.get('value', []),
@@ -175,7 +175,7 @@ def _should_run(site: dict):
175
175
  should_run = has_measurements_with_depths
176
176
  for measurement in measurements_with_depths:
177
177
  term_id = measurement.get("term", {}).get("@id", {})
178
- logShouldRun(site, MODEL, term_id, should_run)
178
+ logShouldRun(site, MODEL, term_id, should_run, model_key=MODEL_KEY)
179
179
  return should_run, measurements_with_depths
180
180
 
181
181
 
@@ -41,6 +41,25 @@ from .lookup import (
41
41
  from .term import get_lookup_value
42
42
 
43
43
 
44
+ def merge_blank_nodes(source: list, new_values: list):
45
+ """
46
+ Merge a list of blank nodes into an existing list of blank nodes.
47
+ Warning: we only consider the `term.@id` here, and not the full list of properties that make the nodes unique.
48
+ This should only be used when merging simple list of nested blank nodes.
49
+ """
50
+ for new_value in non_empty_list(new_values):
51
+ term_id = new_value.get('term', {}).get('@id')
52
+ index = next(
53
+ (i for i, data in enumerate(source) if data.get('term', {}).get('@id') == term_id),
54
+ None
55
+ )
56
+ if index is None:
57
+ source.append(new_value)
58
+ else:
59
+ source[index] = source[index] | new_value
60
+ return source
61
+
62
+
44
63
  def lookups_logs(model: str, blank_nodes: list, lookups_per_termType: dict, **log_args):
45
64
  def mapper(blank_node: dict):
46
65
  term = blank_node.get('term', {})
@@ -69,7 +88,7 @@ def properties_logs(blank_nodes: list, properties: Union[dict, list]):
69
88
  props = props if isinstance(props, list) else [props]
70
89
 
71
90
  def _reduce_properties_logs(logs: dict, prop: str):
72
- value = get_node_property(term, prop).get('value')
91
+ value = get_node_property(blank_node, prop).get('value')
73
92
  return logs | {prop: value}
74
93
 
75
94
  return reduce(_reduce_properties_logs, properties, {'id': term_id})
@@ -37,6 +37,10 @@ def is_plantation(model: str, log_id: str, term_id: str):
37
37
  return get_crop_lookup_value(model, log_id, term_id, 'isPlantation')
38
38
 
39
39
 
40
+ def is_permanent_crop(model: str, log_id: str, term: dict):
41
+ return get_crop_grouping_fao(model, log_id, term) == 'Permanent crops'
42
+
43
+
40
44
  def valid_site_type(cycle: dict, include_permanent_pasture=False):
41
45
  """
42
46
  Check if the `site.siteType` of the cycle is `cropland`.
@@ -1,7 +1,69 @@
1
+ from enum import Enum
2
+ from functools import reduce
3
+ from typing import Any, Optional, Union
4
+
5
+ from hestia_earth.schema import NodeType
6
+
7
+ from hestia_earth.utils.blank_node import get_node_value
1
8
  from hestia_earth.utils.lookup import download_lookup, _get_single_table_value, column_name, extract_grouped_data
9
+ from hestia_earth.utils.model import find_term_match
2
10
  from hestia_earth.utils.tools import safe_parse_float
3
11
 
4
12
 
13
+ class EcoClimateZone(Enum):
14
+ """
15
+ Enum representing eco-climate zones. The value of each member of the Enum correctly corresponds with the values of
16
+ `ecoClimateZone` term and the `ecoClimateZone-lookup.csv`.
17
+ """
18
+ WARM_TEMPERATE_MOIST = 1
19
+ WARM_TEMPERATE_DRY = 2
20
+ COOL_TEMPERATE_MOIST = 3
21
+ COOL_TEMPERATE_DRY = 4
22
+ POLAR_MOIST = 5
23
+ POLAR_DRY = 6
24
+ BOREAL_MOIST = 7
25
+ BOREAL_DRY = 8
26
+ TROPICAL_MONTANE = 9
27
+ TROPICAL_WET = 10
28
+ TROPICAL_MOIST = 11
29
+ TROPICAL_DRY = 12
30
+
31
+
32
+ def get_eco_climate_zone_value(node: dict, as_enum: bool = False) -> Union[int, EcoClimateZone, None]:
33
+ """
34
+ Get the eco-climate zone value from a Site.
35
+
36
+ Parameters
37
+ ----------
38
+ node : dict
39
+ A HESTIA [Site](https://www-staging.hestia.earth/schema/Site) or
40
+ [Cycle](https://www-staging.hestia.earth/schema/Cycle).
41
+
42
+ Returns
43
+ -------
44
+ int | None
45
+ The eco-climate zone value if found, otherwise `None`.
46
+ """
47
+ site = (
48
+ node.get("site", {}) if node.get("@type") == NodeType.CYCLE.value
49
+ else node if node.get("@type") == NodeType.SITE.value
50
+ else {}
51
+ )
52
+ eco_climate_zone = find_term_match(site.get("measurements", []), "ecoClimateZone")
53
+ value = get_node_value(eco_climate_zone, default=None)
54
+ return _eco_climate_zone_node_value_to_enum(value) if as_enum else value
55
+
56
+
57
+ def _eco_climate_zone_node_value_to_enum(value: Optional[int]) -> Optional[EcoClimateZone]:
58
+ """
59
+ Safe conversion between int (`ecoClimateZone` measurement node value) and `EcoClimateZone` enum members.
60
+
61
+ If node value is invalid, return `None`.
62
+ """
63
+ should_run = isinstance(value, int) and 1 <= value <= 12
64
+ return EcoClimateZone(value) if should_run else None
65
+
66
+
5
67
  def get_ecoClimateZone_lookup_value(eco_climate_zone: str, col_name: str, group_name: str = None) -> float:
6
68
  """
7
69
  Get a value from the `ecoClimateZone` lookup table.
@@ -29,3 +91,40 @@ def get_ecoClimateZone_lookup_value(eco_climate_zone: str, col_name: str, group_
29
91
  )
30
92
  except Exception:
31
93
  return 0
94
+
95
+
96
+ def get_ecoClimateZone_lookup_grouped_value(
97
+ eco_climate_zone: str, col_name: str, default: Any = None
98
+ ) -> Optional[dict]:
99
+ """
100
+ Get a grouped value from the `ecoClimateZone` lookup table formatted as a dictionary
101
+
102
+ Parameters
103
+ ----------
104
+ eco_climate_zone : str
105
+ The `ecoClimateZone` as a string.
106
+ col_name : str
107
+ The name of the column in the lookup table.
108
+ default : Any, optional
109
+ The default value to return if no lookup value, or invalid lookup value is retrieved.
110
+
111
+ Returns
112
+ -------
113
+ float
114
+ The value associated with the `ecoClimateZone`.
115
+ """
116
+ try:
117
+ lookup = download_lookup('ecoClimateZone.csv')
118
+ code = int(str(eco_climate_zone))
119
+ data = _get_single_table_value(lookup, column_name('ecoClimateZone'), code, column_name(col_name))
120
+ grouped_data = reduce(
121
+ lambda prev, curr: {
122
+ **prev,
123
+ **{curr.split(':')[0]: safe_parse_float(curr.split(':')[1])}
124
+ },
125
+ data.split(';'),
126
+ {}
127
+ ) if data is not None and isinstance(data, str) and len(data) > 1 else default
128
+ return grouped_data
129
+ except Exception:
130
+ return default
@@ -1,7 +1,6 @@
1
1
  from collections.abc import Iterable
2
2
  from typing import Optional, Union
3
-
4
- from hestia_earth.schema import EmissionMethodTier, SchemaType
3
+ from hestia_earth.schema import EmissionMethodTier, SchemaType, TermTermType
5
4
  from hestia_earth.utils.api import download_hestia
6
5
  from hestia_earth.utils.model import linked_node
7
6
  from hestia_earth.utils.lookup import get_table_value, download_lookup, column_name
@@ -103,3 +102,8 @@ def to_emission_method_tier(method: Union[EmissionMethodTier, str]) -> Optional[
103
102
  else EmissionMethodTier(method) if method in EMISSION_METHOD_TIERS
104
103
  else None
105
104
  )
105
+
106
+
107
+ def filter_emission_inputs(emission: dict, term_type: TermTermType):
108
+ inputs = emission.get('inputs', [])
109
+ return [i for i in inputs if i.get('termType') == term_type.value]
@@ -1,10 +1,12 @@
1
+ from typing import Optional
2
+
1
3
  from hestia_earth.utils.model import find_term_match
2
4
  from hestia_earth.utils.tools import list_sum, safe_parse_date
3
5
 
4
- from ..log import logRequirements
5
6
  from .lookup import factor_value, _term_factor_value, _aware_factor_value
6
7
  from .product import find_by_product
7
8
  from .site import region_level_1_id
9
+ from ..log import logRequirements
8
10
 
9
11
 
10
12
  def impact_end_year(impact_assessment: dict) -> int:
@@ -85,7 +87,8 @@ def get_country_id(impact_assessment: dict) -> str:
85
87
  return impact_assessment.get('country', get_site(impact_assessment).get('country', {})).get('@id')
86
88
 
87
89
 
88
- def impact_lookup_value(model: str, term_id: str, impact: dict, lookup_col: str) -> float:
90
+ def impact_lookup_value(model: str, term_id: str, impact: dict, lookup_col: str,
91
+ grouped_key: Optional[str] = None) -> float:
89
92
  """
90
93
  Calculate the value of the impact based on lookup factors and emissions value.
91
94
 
@@ -95,18 +98,20 @@ def impact_lookup_value(model: str, term_id: str, impact: dict, lookup_col: str)
95
98
  The model to display in the logs only.
96
99
  term_id : str
97
100
  The term to display in the logs only.
98
- impact_assessment : dict
101
+ impact : dict
99
102
  The `ImpactAssessment`.
100
103
  lookup_col : str
101
104
  The lookup column to fetch the factors from.
102
-
105
+ grouped_key : str
106
+ key of grouped data to extract in a lookup table
103
107
  Returns
104
108
  -------
105
109
  int
106
110
  The impact total value.
107
111
  """
108
112
  nodes = impact.get('emissionsResourceUse', [])
109
- factors = list(map(factor_value(model, term_id, 'emission.csv', lookup_col), nodes))
113
+
114
+ factors = list(map(factor_value(model, term_id, 'emission.csv', lookup_col, grouped_key), nodes))
110
115
  values = [value for value in factors if value is not None]
111
116
  return list_sum(values) if len(values) > 0 else None
112
117
 
@@ -1,3 +1,5 @@
1
+ from typing import Optional
2
+
1
3
  from hestia_earth.schema import SchemaType
2
4
  from hestia_earth.utils.lookup import (
3
5
  download_lookup, get_table_value, column_name, extract_grouped_data, _get_single_table_value
@@ -12,17 +14,17 @@ def _node_value(node):
12
14
  return list_sum(value) if isinstance(value, list) else value
13
15
 
14
16
 
15
- def factor_value(model: str, term_id: str, lookup_name: str, lookup_col: str):
17
+ def factor_value(model: str, term_id: str, lookup_name: str, lookup_col: str, grouped_key: Optional[str] = None):
16
18
  lookup = download_lookup(lookup_name)
17
19
 
18
20
  def get_value(data: dict):
19
21
  node_term_id = data.get('term', {}).get('@id')
20
- node_model_id = data.get('methodModel', {}).get('@id')
22
+ grouped_data_key = grouped_key or data.get('methodModel', {}).get('@id')
21
23
  value = _node_value(data)
22
24
  coefficient = get_table_value(lookup, 'termid', node_term_id, column_name(lookup_col))
23
25
  # value is either a number or matching between a model and a value (restrict value to specific model only)
24
26
  coefficient = safe_parse_float(
25
- extract_grouped_data(coefficient, node_model_id), None
27
+ extract_grouped_data(coefficient, grouped_data_key), None
26
28
  ) if ':' in str(coefficient) else safe_parse_float(coefficient, None)
27
29
  if value is not None and coefficient is not None:
28
30
  if model:
@@ -16,6 +16,6 @@ PRODUCTIVITY_KEY = {
16
16
  }
17
17
 
18
18
 
19
- def _get_productivity(country: dict, default: PRODUCTIVITY = PRODUCTIVITY.HIGH):
19
+ def get_productivity(country: dict, default: PRODUCTIVITY = PRODUCTIVITY.HIGH):
20
20
  hdi = safe_parse_float(get_lookup_value(country, 'hdi'), None)
21
21
  return next((key for key in PRODUCTIVITY_KEY if hdi and PRODUCTIVITY_KEY[key](hdi)), default)
@@ -103,12 +103,12 @@ def node_property_lookup_value(model: str, node_term: dict, prop_id: str, defaul
103
103
  return default
104
104
 
105
105
 
106
- def get_node_property_value(model: str, node: dict, prop_id: str, default=None, **log_args):
106
+ def get_node_property_value(model: str, node: dict, prop_id: str, default=None, handle_percents=True, **log_args):
107
107
  prop = get_node_property(node, prop_id)
108
108
  term = (prop or {}).get('term', download_hestia(prop_id))
109
109
  units = (term or {}).get('units')
110
110
  value = prop.get('value') if prop else node_property_lookup_value(model, node.get('term', {}), prop_id, **log_args)
111
- return default if value is None else (value / 100 if units == '%' else value)
111
+ return default if value is None else (value / 100 if units == '%' and handle_percents else value)
112
112
 
113
113
 
114
114
  def get_node_property_value_converted(model: str, node: dict, prop_id: str, default=None, **log_args):
@@ -1 +1 @@
1
- VERSION = '0.64.2'
1
+ VERSION = '0.64.4'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: hestia-earth-models
3
- Version: 0.64.2
3
+ Version: 0.64.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
@@ -4,10 +4,10 @@ hestia_earth/models/cache_sites.py,sha256=KQp9cUKE-aIcYJoMWEtKFYS8gBFfsx5LKQhqoW
4
4
  hestia_earth/models/log.py,sha256=DbfNcGzaC5hzkuMDxQqW6XYoNBI4Uxw4SIoOYoZA6og,3474
5
5
  hestia_earth/models/preload_requests.py,sha256=Ibx-YOhR_1yuyFBxsLUbvJHVK7PLyMLoPu5l9jDN_Qk,1342
6
6
  hestia_earth/models/requirements.py,sha256=eU4yT443fx7BnaokhrLB_PCizJI7Y6m4auyo8vQauNg,17363
7
- hestia_earth/models/version.py,sha256=zhuRvhTOGAr79_4TdettlTNm_GVkWPyvMGpCa_UD5hQ,19
7
+ hestia_earth/models/version.py,sha256=LaDtOBoFznCDnauZfj0nYNmRMiVXWIWV8CNR0xo5dqc,19
8
8
  hestia_earth/models/agribalyse2016/__init__.py,sha256=WvK0qCQbnYtg9oZxrACd1wGormZyXibPtpCnIQeDqbw,415
9
9
  hestia_earth/models/agribalyse2016/fuelElectricity.py,sha256=tnGxBmJdPfPFfehLUQcefEqy1lHvzsSpx_s7O8nf3Zs,4412
10
- hestia_earth/models/agribalyse2016/machineryInfrastructureDepreciatedAmountPerCycle.py,sha256=_Rbngu0DzHKa62JwBl58ZC_ui1zLF2que_nB7ukhOQc,3392
10
+ hestia_earth/models/agribalyse2016/machineryInfrastructureDepreciatedAmountPerCycle.py,sha256=BPjnWmg73i_OxM2ouCdMTWZtPIqyoUAXrvutntyteE0,3390
11
11
  hestia_earth/models/akagiEtAl2011AndIpcc2006/__init__.py,sha256=WK7xQwUPX48JGqZeb2S2EKdtXuxMjY7HYyUFHItUqUo,425
12
12
  hestia_earth/models/akagiEtAl2011AndIpcc2006/ch4ToAirCropResidueBurning.py,sha256=Mea3L8blwJpRzzJHIMJH71Pn93gz1M2KN2pb43tGBfs,1642
13
13
  hestia_earth/models/akagiEtAl2011AndIpcc2006/n2OToAirCropResidueBurningDirect.py,sha256=3_Q3Q2d80y05sFpg_UfLHtjhzSdkG_PRntVD52B-BOI,1648
@@ -37,10 +37,10 @@ hestia_earth/models/cycle/__init__.py,sha256=VowO3kOHb0LpURsljNaJsYO7s6vgjhul6bF
37
37
  hestia_earth/models/cycle/aboveGroundCropResidueTotal.py,sha256=9swq4YEeJQ2YjVOmghgBYWkMZWdNU4MKCUBY5FsmBSU,3088
38
38
  hestia_earth/models/cycle/coldCarcassWeightPerHead.py,sha256=fQ7huuxyS5PQkRmR_tRCOz9rV3LJwLfLQJjH_TcTz6k,2955
39
39
  hestia_earth/models/cycle/coldDressedCarcassWeightPerHead.py,sha256=k0xg5SIfJGwEKteFr2Fh-lh8yDC_sqQw_lBnnfwl9zU,3069
40
- hestia_earth/models/cycle/concentrateFeed.py,sha256=vE6cKhwDflU2IMn3Dpy8tvmZxqCLEp5r8vLC65eQDGI,5863
40
+ hestia_earth/models/cycle/concentrateFeed.py,sha256=0oL2Odcl9PEZJyG6gfH8bGPNHAICpTFfuL1bJalTJg0,5985
41
41
  hestia_earth/models/cycle/cropResidueManagement.py,sha256=QTRCCFu9VvD_a3_8aAj216vsuhAJEhlAwTJH7ifMkDo,2237
42
42
  hestia_earth/models/cycle/croppingIntensity.py,sha256=44CgDqXg9CBRfTPYTyOleQT-M4_tsQgPba-0vjjk_C4,1770
43
- hestia_earth/models/cycle/cycleDuration.py,sha256=SuTFqCP3Zr3nOV9HuvvvIVcaHtOlTAdSaaswvRLSEwc,3242
43
+ hestia_earth/models/cycle/cycleDuration.py,sha256=ccODF5CJBEd55-CMttCr0eI4uH7OoRvYJZjcth09QMg,3193
44
44
  hestia_earth/models/cycle/endDate.py,sha256=xxTa3Pmu7udJwGYiTn7tcp9_Pl_SM7de9ezbR7sYvUk,1382
45
45
  hestia_earth/models/cycle/energyContentLowerHeatingValue.py,sha256=AyVKCQbb3Pto3Ca__F0KJ_wlwTxbPd7mUyehZW7AJPM,2212
46
46
  hestia_earth/models/cycle/excretaKgMass.py,sha256=iA8Kfl3WvyxbQpx1QOGPQZ9O_Pc5rj7xhucYx3rB8Co,3949
@@ -59,19 +59,20 @@ hestia_earth/models/cycle/residueBurnt.py,sha256=HwU1D9ibiIul-FlXDUcEMDEc_KxpB8u
59
59
  hestia_earth/models/cycle/residueIncorporated.py,sha256=9_s2RMOy5D20eq9ziDBEA_Y7RiFFMeK0bDJ65CW4qlE,2763
60
60
  hestia_earth/models/cycle/residueLeftOnField.py,sha256=qYxKGAdUORN7Vjqj7AZC2VGV_rM3MN0-padDGhgjiNU,2175
61
61
  hestia_earth/models/cycle/residueRemoved.py,sha256=jxDu_Jfcyd-rm-qo8ZuRIf-GGxtFBMpmGy1zHOavwy0,2135
62
- hestia_earth/models/cycle/siteDuration.py,sha256=793ez4IDOHxsbDIREZQ5rUgS6FQare2jL6SZ8qemxKs,2014
62
+ hestia_earth/models/cycle/siteDuration.py,sha256=8VCYn608Lw1A6gLOG2bA1Z2tAQbmDg_yXeq6sgkrXac,2342
63
63
  hestia_earth/models/cycle/siteUnusedDuration.py,sha256=orYGlbzGMpjuDAtZe7KkCOLWrwUYR1H4A0ccAbutW3s,2189
64
64
  hestia_earth/models/cycle/startDate.py,sha256=pbBi55b6uJezPE8EOovOCSwQVrbwpmxwmravOCIh2zg,2683
65
- hestia_earth/models/cycle/startDateDefinition.py,sha256=--U3YLZjJ3WIHl8dxAOewGfMcYtOZS-M2KanJKG1cJw,2246
65
+ hestia_earth/models/cycle/startDateDefinition.py,sha256=6oJmT6XRKYbv2Jer2UJpkOQqHQKjIAEqPz7yv7k-HP4,2187
66
+ hestia_earth/models/cycle/stockingDensityAnimalHousingAverage.py,sha256=RQaVqyWSBWOSDl7pcnOm-nqWqgZlMsJaXd2Stu08-Qg,1542
66
67
  hestia_earth/models/cycle/transformation.py,sha256=06KTfVubh2I47dfnG9Iv6AbuUBbURM8BAVOkRu7XmHw,1255
67
68
  hestia_earth/models/cycle/unknownPreSeasonWaterRegime.py,sha256=9EP8FMXO5fHqmhVNSqR_Dfe38KxwyPOCF6kMewiI_VE,1478
68
69
  hestia_earth/models/cycle/utils.py,sha256=ZcVwvRwVNK48jZfnhrHl2ai4a96YzcmRgO-eQXwQNjo,1408
69
70
  hestia_earth/models/cycle/animal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
70
- hestia_earth/models/cycle/animal/milkYield.py,sha256=bx8oNw9tZkqSgcRlbxIL6V2nEHx-p0KJc31v7PaLKxI,2926
71
+ hestia_earth/models/cycle/animal/milkYield.py,sha256=O5-OruRhUpKpxsfhGskTHLP8PDd-awAxlEh8acq_PaQ,3011
71
72
  hestia_earth/models/cycle/animal/properties.py,sha256=OGjRl79w-h439jTkjA8b4V61fMuo0McoUs3JrgK-0Zc,596
72
73
  hestia_earth/models/cycle/animal/input/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
73
- hestia_earth/models/cycle/animal/input/hestiaAggregatedData.py,sha256=neIyzpLIuVheD2A42KdqKAtdgVa2SJ15KdpoxQ8JH1E,2505
74
- hestia_earth/models/cycle/animal/input/properties.py,sha256=2bKyyclrt0O7zvtD1Ij7g1qfb0raBylrdO--cZjcnpg,3354
74
+ hestia_earth/models/cycle/animal/input/hestiaAggregatedData.py,sha256=EpJ6qU0jsoSMEuZYIKCn1f-loJ53_nmpnyDhH5sZTuw,2529
75
+ hestia_earth/models/cycle/animal/input/properties.py,sha256=qFdvoRa5RtQrf-CnWHdi6g40lD4Rncrb_610O0lhUq0,3439
75
76
  hestia_earth/models/cycle/completeness/__init__.py,sha256=rkwGtxIay_AleJCT7al_ngnix_xRqySVie7qvHXMQI0,1517
76
77
  hestia_earth/models/cycle/completeness/animalFeed.py,sha256=8Fo1TqwSuiPudvd2vJ-LVxSyOdD8mDCOZMvjuj5W2uo,1012
77
78
  hestia_earth/models/cycle/completeness/cropResidue.py,sha256=zSiu9h0NxEBDUWlaKBh1QcX4jDIklrs0BC2NWMCQQ80,2549
@@ -137,6 +138,8 @@ hestia_earth/models/environmentalFootprintV3/__init__.py,sha256=lzg9qccwd9tbspw0
137
138
  hestia_earth/models/environmentalFootprintV3/freshwaterEcotoxicityPotentialCtue.py,sha256=X62-4v0NJdM_Z5kLK3NuU4GNEeSrXlKlMZQB_o4JZ6c,1018
138
139
  hestia_earth/models/epa2014/__init__.py,sha256=ckGf_6X7CCzI_18OqchEkuJAXKXM1x7V53u480ckknM,408
139
140
  hestia_earth/models/epa2014/no3ToGroundwaterExcreta.py,sha256=fN4fOOcjBg3tl0lzNeJ8mzg6mrvQRxilx-R5Gc4l4Nw,1724
141
+ hestia_earth/models/fantkeEtAl2016/__init__.py,sha256=NtOlRmjTA4e8i0nW8erwdm-DDtfYlbLiARqqv82bkU4,415
142
+ hestia_earth/models/fantkeEtAl2016/damageToHumanHealthParticulateMatterFormation.py,sha256=OX9mWisIrOId_ZeagUMsvWCzKt_yNzXKxHUdJTzaeFk,1341
140
143
  hestia_earth/models/faostat2018/__init__.py,sha256=ecN-pKF1pkFnzmooBrg1VAxJkG76q9v4piiaKGP_vbo,412
141
144
  hestia_earth/models/faostat2018/coldCarcassWeightPerHead.py,sha256=y1ouj5FBrnGWxd4dIC7luG6iQwiMrm1CGgYbXCcKS8E,3139
142
145
  hestia_earth/models/faostat2018/coldDressedCarcassWeightPerHead.py,sha256=Aphq7r06Q5-RDer4i1CneOLifVQCKTiVPTIWE3AxLfE,3230
@@ -148,6 +151,8 @@ hestia_earth/models/faostat2018/seed.py,sha256=ts9PKs9UnZnJ9nPFlL7etL1Qb9uIWIES8
148
151
  hestia_earth/models/faostat2018/utils.py,sha256=Ud2vu_8ze5VFfeBFBzUKdJTWRfxVJO4VUTdgwaLJU-w,3715
149
152
  hestia_earth/models/faostat2018/product/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
150
153
  hestia_earth/models/faostat2018/product/price.py,sha256=X7Zxa-rXthzYdgw2lzybbHc-oKGE5nyXpBn-BfZC_7w,7753
154
+ hestia_earth/models/frischknechtEtAl2000/__init__.py,sha256=Fixyy9UwoCGP5-MHyJu_ctS40SQ2imfvZo8a547029U,421
155
+ hestia_earth/models/frischknechtEtAl2000/ionisingRadiationKbqU235Eq.py,sha256=8Y5-dIlswtrQYjDth3ahJ5z2CKwh3OnhV3rRSinMGrE,2885
151
156
  hestia_earth/models/geospatialDatabase/__init__.py,sha256=TH-FW3aoL7r1GquRChr7rde7uQonKQRDR00udG8tDrQ,957
152
157
  hestia_earth/models/geospatialDatabase/aware.py,sha256=cbxFnShXW8QUCIjU4uuO1DdK9KhYiLf41ZVjS9hSppI,1358
153
158
  hestia_earth/models/geospatialDatabase/clayContent.py,sha256=u8SQKx-zu3vhMQ-XOJgqyUn-tlCCIy-VG7zpl5AyjtY,3386
@@ -229,12 +234,14 @@ hestia_earth/models/ipcc2013ExcludingFeedbacks/gwp100.py,sha256=8VRg-Vvzc86_CQmB
229
234
  hestia_earth/models/ipcc2013IncludingFeedbacks/__init__.py,sha256=VJ16KIGQQHybzZiTvu3mpZy_3j0xcd06RHHCfPrCMgU,427
230
235
  hestia_earth/models/ipcc2013IncludingFeedbacks/gwp100.py,sha256=PTE0FEV5x7MZgWpA6iu7EtIYaYKl6Udc9icpafkqlEA,979
231
236
  hestia_earth/models/ipcc2019/__init__.py,sha256=LdRpu8KbEc-MroIwXfKDjfj-xbgmfUYgctjKVvtpRfQ,409
237
+ hestia_earth/models/ipcc2019/aboveGroundBiomass.py,sha256=6nsyVJgFutf4r9ur73mgQE_6j91opQr4fR1I0o1sZYs,26316
238
+ hestia_earth/models/ipcc2019/aboveGroundBiomass_utils.py,sha256=orzL_o_V4u9n7KyBKKs28m0MSox7qwKHmQ58R66ekXU,7027
232
239
  hestia_earth/models/ipcc2019/aboveGroundCropResidueTotal.py,sha256=lT2QVV5c2LvQqZRfPEvFT_bMTayMXgIsFLnx8I6iYzw,3089
233
240
  hestia_earth/models/ipcc2019/belowGroundCropResidue.py,sha256=7AFU2Q0qPAvv6uEKWByS38jl77FvjTPbGm2GQ53waGg,3499
234
241
  hestia_earth/models/ipcc2019/carbonContent.py,sha256=tlQvu4Auhpjmaz7XrZz86xwxVrJhsYYf8DFA_aQeev4,7255
235
242
  hestia_earth/models/ipcc2019/ch4ToAirAquacultureSystems.py,sha256=q6yyEiYQhHJ2VyQy2Fa84cuTl1D8bjBXOK3UpaRuo20,3196
236
243
  hestia_earth/models/ipcc2019/ch4ToAirEntericFermentation.py,sha256=khX90NjkmlvosyRZ77QxgwTKwg42Z_ftOWTTAanHViw,11420
237
- hestia_earth/models/ipcc2019/ch4ToAirExcreta.py,sha256=jEGgEUhMr0JHq_-lPJioKHOQGQXrQvblU51AppXKvB0,6719
244
+ hestia_earth/models/ipcc2019/ch4ToAirExcreta.py,sha256=eY_yb7ncTb_2HoUUgXZnnRHiybTXYj_DTe3CmDzD3fY,6717
238
245
  hestia_earth/models/ipcc2019/ch4ToAirFloodedRice.py,sha256=TJ4J7VA5n4RPrJYZQeR3lc3ZoCw7T1E5Cb1XJewr834,7331
239
246
  hestia_earth/models/ipcc2019/co2ToAirLimeHydrolysis.py,sha256=7z0zdqiiWQwkyJCgSNMoK2mft3cJkTRlqwKrMuSKdWI,2454
240
247
  hestia_earth/models/ipcc2019/co2ToAirSoilOrganicCarbonStockChangeManagementChange.py,sha256=D-4h4a8Ob_radqS6Gj3K8eLqTeXJrFIbfO9viusd6Pc,27585
@@ -259,15 +266,18 @@ hestia_earth/models/ipcc2019/no3ToGroundwaterOrganicFertiliser.py,sha256=px2SN-u
259
266
  hestia_earth/models/ipcc2019/noxToAirInorganicFertiliser.py,sha256=fmmFgjtvOD2TrrLY03jYly_KvDnCsAXqhL_tmZQQt-A,4480
260
267
  hestia_earth/models/ipcc2019/noxToAirOrganicFertiliser.py,sha256=9dx_MRTwJGxJRq6mj2EJQMdQ2w6j7lw0fQk0If_cIGc,4152
261
268
  hestia_earth/models/ipcc2019/organicCarbonPerHa.py,sha256=iRUSVxMpBGgsVDkuBABPKI4Khr5jIpAwuBe66c1PeV0,8658
262
- hestia_earth/models/ipcc2019/organicCarbonPerHa_tier_1_utils.py,sha256=JxVJ9mRml63VhwNSNq7H3O7YQJoXLgP4j9fIRs3ms5o,82431
269
+ hestia_earth/models/ipcc2019/organicCarbonPerHa_tier_1_utils.py,sha256=d112vbcbKHHoy0q3ncaI3d9dsAPydSEaWbXWupJe1-c,81908
263
270
  hestia_earth/models/ipcc2019/organicCarbonPerHa_tier_2_utils.py,sha256=A84r6u45HFk5jEb2nTWGTFTwX1qjq8F6qwkNUuiyH48,63542
264
- hestia_earth/models/ipcc2019/organicCarbonPerHa_utils.py,sha256=jIhRks8ewCtQNIIN89N_4A4Tp529YMQnk4YmZV6FOCY,10668
265
- hestia_earth/models/ipcc2019/pastureGrass.py,sha256=4ZPbLlaIVf4-_ItoLU8fFhRhkWIUFIOcX2isSUOtLco,9550
266
- hestia_earth/models/ipcc2019/pastureGrass_utils.py,sha256=KA5MAnaPXBgrNncBhcQtOF-cdLwEKI6O2F_DPEz5oTM,13502
271
+ hestia_earth/models/ipcc2019/organicCarbonPerHa_utils.py,sha256=HGJC2zcEvtbkovccAZ5MYm84wBXUZH0Q3UyJOXD0ltA,10157
272
+ hestia_earth/models/ipcc2019/pastureGrass.py,sha256=w8LMbxJTdZtC2nrWoooPA0jrA9-FIFBZA-dBpGyqAUg,10158
273
+ hestia_earth/models/ipcc2019/pastureGrass_utils.py,sha256=Bzz4yPDdA7YVUhhJhQCCVu0uKONeO3b6a48_ZITZgzU,13889
267
274
  hestia_earth/models/ipcc2019/utils.py,sha256=MSDMu15D9DnilFUgi4_6jYXC0FaKso3OODauGTMB6hs,6229
268
275
  hestia_earth/models/ipcc2019/animal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
269
- hestia_earth/models/ipcc2019/animal/pastureGrass.py,sha256=fSsWwf6lBlro4DIwbcAHSv0L-UMFe-liljfNr-kXWYw,11476
270
- hestia_earth/models/ipcc2019/animal/weightAtMaturity.py,sha256=5smSAmKVCIlELCD6S_3I16YuSWNFhcClGDOdvrIuYsE,3657
276
+ hestia_earth/models/ipcc2019/animal/liveweightGain.py,sha256=Gwd6J6k-W84EAsC_cNMLaNy3p4-2pqCSc3grBfPvanw,2618
277
+ hestia_earth/models/ipcc2019/animal/liveweightPerHead.py,sha256=Lhnk58SvVtM2FayljOBPHFFx5OBFFqsiaVG8ZjwCaXA,2634
278
+ hestia_earth/models/ipcc2019/animal/pastureGrass.py,sha256=edBXCVjJB5ZBGJ9_zE3H6xKpT84hPqe3dv5JF879tXw,12066
279
+ hestia_earth/models/ipcc2019/animal/utils.py,sha256=ziyphGLEO_eitOLtBG0BLpJfmN3csqUetFZuDo8FX2U,990
280
+ hestia_earth/models/ipcc2019/animal/weightAtMaturity.py,sha256=IHrG6cqLVhOiIbrvK0w5xDu4bHmy5om-1qBKMmkFC2o,3376
271
281
  hestia_earth/models/ipcc2021/__init__.py,sha256=VTgGFKhwMmk_nuI1RRq0in27fHYVPBonlXlPK00K8no,409
272
282
  hestia_earth/models/ipcc2021/gwp100.py,sha256=v-DYU-11XnWI1Ns1GEiKrJqL3JafxvhTsLmuBuFcxJU,1021
273
283
  hestia_earth/models/jarvisAndPain1994/__init__.py,sha256=ercUwy29sV7oPIESj8UjsGB5lqiBCss9OZcbjxeeG8E,418
@@ -380,7 +390,7 @@ hestia_earth/models/linkedImpactAssessment/landTransformationFromPermanentPastur
380
390
  hestia_earth/models/linkedImpactAssessment/utils.py,sha256=dGwGc2d-8_WQElTpfyPmz5vQtL-LHQRmiZnCTuPXMDs,1876
381
391
  hestia_earth/models/mocking/__init__.py,sha256=n3Fkkrvh8zHNWiJZmnfQ7WZ91JRzAO9P6pSG1JpwtXo,687
382
392
  hestia_earth/models/mocking/mock_search.py,sha256=qgABw-sZK37XtsALKt8AHF2VJPUrZSnHv5Qj1Dn93oA,2405
383
- hestia_earth/models/mocking/search-results.json,sha256=mbdSj0kpcZiabKvMZipfGvwSokugpHBU4Z5fvVHnuTw,53137
393
+ hestia_earth/models/mocking/search-results.json,sha256=1YcAYDF-b_Qv_I2sSi0GgXvsSsv4QwUotHAmADSWwSw,53136
384
394
  hestia_earth/models/pooreNemecek2018/__init__.py,sha256=nPboL7ULJzL5nJD5q7q9VOZt_fxbKVm8fmn1Az5YkVY,417
385
395
  hestia_earth/models/pooreNemecek2018/aboveGroundCropResidueTotal.py,sha256=Qt-mel4dkhK6N5uUOutNOinCTFjbjtGzITaaI0LvYc4,2396
386
396
  hestia_earth/models/pooreNemecek2018/belowGroundCropResidue.py,sha256=JT0RybbvWVlo01FO8K0Yj41HrEaJT3Kj1xfayr2X-xw,2315
@@ -409,6 +419,7 @@ hestia_earth/models/pooreNemecek2018/saplings.py,sha256=LS0zepV51-LlVmPBAjj5nlfg
409
419
  hestia_earth/models/pooreNemecek2018/utils.py,sha256=to2vtONKCbuG1gVSDvsUcG7EnlahELfG_57gzIAHlv0,1710
410
420
  hestia_earth/models/poschEtAl2008/__init__.py,sha256=nvyyGglxCTV4PpxcOjY7jJb0v8Bjzj435Zt1j6VcryM,414
411
421
  hestia_earth/models/poschEtAl2008/terrestrialAcidificationPotentialAccumulatedExceedance.py,sha256=gbD8fgvdHANXsuPPWRx4Flcqhk3fPD5ROrrb2LMgmS8,1279
422
+ hestia_earth/models/poschEtAl2008/terrestrialEutrophicationPotentialAccumulatedExceedance.py,sha256=X1CixghiqYiE1N-sWhXuFcy9nxCA2RdBiClFAgUWTgw,1281
412
423
  hestia_earth/models/recipe2016Egalitarian/__init__.py,sha256=OvZoSgfaMe6DWIdqr-Sx3ouzXlp994oro7Mi0Xid18Q,422
413
424
  hestia_earth/models/recipe2016Egalitarian/damageToFreshwaterEcosystemsSpeciesYear.py,sha256=b1UZAsy3yGlHYxH2YhBhhSnjm5zzQl8Z32DcQBjgWNE,1123
414
425
  hestia_earth/models/recipe2016Egalitarian/damageToHumanHealth.py,sha256=dJ8WinGe52wFQCMKtT_B7c1MFM_GbBo8aqfw0n2pw94,1087
@@ -495,7 +506,7 @@ hestia_earth/models/site/precipitationMonthly.py,sha256=yGUbiUCu1Prp3qVHuZodGrcf
495
506
  hestia_earth/models/site/rainfallAnnual.py,sha256=Ix_B8Ny7IIRkJ_3lUvoHOjPgqCyR9I0U3_ADUUtMqsY,2003
496
507
  hestia_earth/models/site/rainfallMonthly.py,sha256=2Uo8F-YxnTK0_txlHmiAyVp1bGfWD4bneRKyg4tdQkI,1881
497
508
  hestia_earth/models/site/salineWater.py,sha256=wO_Dyufqni66qSCpunrJUr0ou45QrcpZc8-GtZDH9VU,1256
498
- hestia_earth/models/site/soilMeasurement.py,sha256=8xUDajU_KzBVFEj7yfwIZxVXJ14C_AKAxEs4uSnFyps,7164
509
+ hestia_earth/models/site/soilMeasurement.py,sha256=YMKeChGcj9lxM9c7p68LlQhqMPHAD9AEsNsDr69Q1Kw,7185
499
510
  hestia_earth/models/site/temperatureAnnual.py,sha256=Q3b1RH2_hpA0JWwOYA5nKgMGcXHjV8-akXT9vB0cbwc,2012
500
511
  hestia_earth/models/site/temperatureMonthly.py,sha256=yXwpFCGT2tUqvVBNedaPyBmN_KlzZqo5yv2TWem1pBk,1890
501
512
  hestia_earth/models/site/totalNitrogenPerKgSoil.py,sha256=8ERrTZpN_yCRUyFg_EYaX4abE9jLcyX3lx3MO4Bi6CE,1938
@@ -544,34 +555,34 @@ hestia_earth/models/utils/aggregated.py,sha256=sz6usleZmo_tC_hIvmGgYsX8-H0dulXmm
544
555
  hestia_earth/models/utils/animalProduct.py,sha256=M5IunAKGY6oZv3j1Ascl34ywyeLWApqOIlBzbtlA2FE,721
545
556
  hestia_earth/models/utils/aquacultureManagement.py,sha256=dxrbC1Xf140cohxTbSw6TxLAnAASWTdNZwBBam4yQnw,171
546
557
  hestia_earth/models/utils/array_builders.py,sha256=0_Ik0gKoh1QBijyb-55odh8_dIs-CWQ3lgUN1Hnc4Y8,18749
547
- hestia_earth/models/utils/blank_node.py,sha256=WA3cb3QQ0HeCPwao4VDBXp5OssXrg-QElr_14HOUHa4,44499
558
+ hestia_earth/models/utils/blank_node.py,sha256=YlHyxirCIt7PGEBJoal7cOXzegWbX9X3cpknKEznlQc,45238
548
559
  hestia_earth/models/utils/completeness.py,sha256=2-GusD9UycobDZq8y5jar0ZcOjyqnSbzPRT_5XMc4YA,1259
549
560
  hestia_earth/models/utils/constant.py,sha256=7wn5LBdsqlLdCrPaVASYjsxNtbaOSdqVWKedOFgyzfY,3249
550
- hestia_earth/models/utils/crop.py,sha256=kG054fryqPSBpmzvJFBy_CLiOdjrt7RMk5uTItO5ADg,2246
561
+ hestia_earth/models/utils/crop.py,sha256=5KigEHd15nT8O9_1woxKJF5rEWiSkIkJqDAXet8BB9g,2383
551
562
  hestia_earth/models/utils/cropResidue.py,sha256=_0Q35CrliJeo31xGHsPWe8A2oHxijdIsOrf3gBEqhlA,612
552
563
  hestia_earth/models/utils/cropResidueManagement.py,sha256=nIDFjf39rDD10UHSVudfDyu-EiL261g8jyrgS-2aDKw,347
553
564
  hestia_earth/models/utils/currency.py,sha256=f_ArJANb--pZq4LL49SXQ1AMX_oKroqwBXKRRQqZwsM,578
554
565
  hestia_earth/models/utils/cycle.py,sha256=W-VIReb1OVooV6EIj-P6gUlr-W17_6USdnnj4ihMTTc,16741
555
566
  hestia_earth/models/utils/descriptive_stats.py,sha256=qOyG8_TpWYmaxZ0h99n9L71gDLLiVMrMf0ChtxnZLjw,8559
556
- hestia_earth/models/utils/ecoClimateZone.py,sha256=NHFt-A9EiWXC6tUNIxkgOWUZOjj4I4uwJIP9ddDZegw,1112
557
- hestia_earth/models/utils/emission.py,sha256=5Dz8Z4P6QXbYSvOzVcqJy3R_oZMrp77_Iwj5xZsxsKc,3769
567
+ hestia_earth/models/utils/ecoClimateZone.py,sha256=A3ZtF_B2wr6v7clbVi0zWQ-bOXRoOKq4vGq8mhNf9Ec,4316
568
+ hestia_earth/models/utils/emission.py,sha256=YqglUfZSyyvlgfRriZuXmJUDmjwWz5dM5AebIgLwvgk,3964
558
569
  hestia_earth/models/utils/excretaManagement.py,sha256=NuWPQjFZxMVt9sYgBjcqhGWCFk_OKb3sA9Ovcff3fRQ,428
559
570
  hestia_earth/models/utils/feedipedia.py,sha256=ImUAURcwJDtSvu1s4MDeM1VpbU8mVTp9jh9ENNOB0Mw,3515
560
571
  hestia_earth/models/utils/fertiliser.py,sha256=DBO4OBNgnQJ0fCQMDkIk_ZGZX-uKGaTFZCEXfAnJciY,690
561
572
  hestia_earth/models/utils/fuel.py,sha256=r1MKMMxg-PYiVlRutP83RuvY2rsdCQ1iN6ekSGGQGpA,1379
562
- hestia_earth/models/utils/impact_assessment.py,sha256=H1_cvLwC8nb3A5ckS9uvWrLqUDU_9i9BdQiPpn52xIg,6890
573
+ hestia_earth/models/utils/impact_assessment.py,sha256=ma2oINLTIL1qplqC5D1_DbQu4EILpMXSgYNEslxIa2Y,7059
563
574
  hestia_earth/models/utils/indicator.py,sha256=IFrVIUYpmdVLOR1SKkrTReDbG1Tzq2b6daVvLMYpCs4,537
564
575
  hestia_earth/models/utils/inorganicFertiliser.py,sha256=_dLBY-otGkLr8PobR5dQ89bF2uwc2PB4JPrHFSksMEQ,1900
565
576
  hestia_earth/models/utils/input.py,sha256=YycsAbSBfVDMu6PftDsisMFGnEp87wOj-3rrnHnOgzo,4927
566
577
  hestia_earth/models/utils/liveAnimal.py,sha256=GnajBPZw5d94raf80KtLloaOqlfqGAPwUtP9bRlGWeE,1754
567
- hestia_earth/models/utils/lookup.py,sha256=cPFzUXUsgyvmm98quNJs5J1FbMdl1I7DxlTtmw0IWsw,6673
578
+ hestia_earth/models/utils/lookup.py,sha256=yJB5IzsK7mZ_jQIdwb3TA5KZQL7Vneuvqr_O0GPjBDs,6758
568
579
  hestia_earth/models/utils/measurement.py,sha256=rxrrOVdkDm-J0QVjCEapa4z4KY3hUw-brAeb0pW1nIc,12221
569
580
  hestia_earth/models/utils/organicFertiliser.py,sha256=2HY-a0EBzUw4DkEAXClLMXVCEZTKYf0BwFHBo7lQ5Tg,363
570
581
  hestia_earth/models/utils/pesticideAI.py,sha256=6f8b-dFm3qr-eY049_eOvj_iDk4XBam61csozdDAvyA,2361
571
582
  hestia_earth/models/utils/practice.py,sha256=tNadOzsrNlCEt801B815XaruJXzZ5yPASam7B3sWpXE,1091
572
583
  hestia_earth/models/utils/product.py,sha256=DhDgiReR8k9n9aaRM2xk3PIY3nfoE1ISKg9pKsBVzVQ,10143
573
- hestia_earth/models/utils/productivity.py,sha256=bUBVCZInGqHuHZvHDSYPQkjWXQxOtTjEk-1-f_BsFOo,594
574
- hestia_earth/models/utils/property.py,sha256=_9Wy0oZIBLsa-jOiGLokKehYLNdz-_7LfLaE4fb6SWM,5085
584
+ hestia_earth/models/utils/productivity.py,sha256=rTJX_nemxHpOcPN7jiM2hFHknoLUIW8y-hFxVxIkg70,593
585
+ hestia_earth/models/utils/property.py,sha256=gBy6FidNDhjzokOXOWcIDBMKcdPPBXxIZgdAxgQsmWc,5127
575
586
  hestia_earth/models/utils/site.py,sha256=zEj2PtIghk-L_vVJidlXM6_ed7HTc2-ogP0sQSh49vw,3874
576
587
  hestia_earth/models/utils/source.py,sha256=Y-CcO5Y3q5Hz4A4RdX35C1EUjL9w1NKnOrzVfOWQ7nU,1748
577
588
  hestia_earth/models/utils/temperature.py,sha256=ljlG4-yCgFFb6LRZweb18cZKLrr7K2mqd4E4Hz_D1f8,476
@@ -641,10 +652,11 @@ tests/models/cycle/test_residueBurnt.py,sha256=eBAzGR1210cBYH_s6oI1yCG6tVKUj9gGs
641
652
  tests/models/cycle/test_residueIncorporated.py,sha256=esB_wnpf6W0PB24HW0YUgtfD9mxLDIY22eNVD4WAYFA,1719
642
653
  tests/models/cycle/test_residueLeftOnField.py,sha256=_8CoSp-7z3BBLGN5Hv067FRYz8yDFw5fi_Cu5n6Rl3g,1290
643
654
  tests/models/cycle/test_residueRemoved.py,sha256=R5v8lwGyz_4a9_X_LnugBEmgVgcisS5LTM5GFCtKIco,1278
644
- tests/models/cycle/test_siteDuration.py,sha256=43Hjb0f2lXCRGqj-UmfLVmk7OGJswawtcA2q5wlffXk,1712
655
+ tests/models/cycle/test_siteDuration.py,sha256=x98shgDOAPp7Bf8j7R251qzn4oVZyqmtlmwcoG2nVwE,2358
645
656
  tests/models/cycle/test_siteUnusedDuration.py,sha256=5h9R3guw6ErU_sE5omoiK9Fpke74SmQWsJYWYURE9Fo,1532
646
657
  tests/models/cycle/test_startDate.py,sha256=-U1_XIx8v5zxK3oK5fCIIsS7GFKymNh3m0SgJ0J2iZ8,1223
647
658
  tests/models/cycle/test_startDateDefinition.py,sha256=42BmsT1I7Jq_YMVN-VNU7a0fIZ2w3i5jgwy4H_r4dNM,920
659
+ tests/models/cycle/test_stockingDensityAnimalHousingAverage.py,sha256=Pj3rxJNXF0rmGjRomZOHV6ZVngypzbVIGwAHbVIOLFI,1286
648
660
  tests/models/cycle/test_transformations.py,sha256=Ws_8KhNqeHogGFXTQ4qZXQ5Ph2I3ZUaY0yO1itFUHLk,464
649
661
  tests/models/cycle/test_unknownPreSeasonWaterRegime.py,sha256=4JSSpDvBQEQrDoytNVzuIcm9UVio4TzZpZm52iMWBVA,1220
650
662
  tests/models/cycle/animal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -704,6 +716,8 @@ tests/models/environmentalFootprintV3/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCe
704
716
  tests/models/environmentalFootprintV3/test_freshwaterEcotoxicityPotentialCtue.py,sha256=lIgsdGh_0eDi-rPcCOrSSjVYNiET2GCSRkAHdugAkDk,851
705
717
  tests/models/epa2014/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
706
718
  tests/models/epa2014/test_no3ToGroundwaterExcreta.py,sha256=ESVz4UURvQfhjGBTxjuAV_bymMBcvGNfLAkYMvNup9U,1217
719
+ tests/models/fantkeEtAl2016/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
720
+ tests/models/fantkeEtAl2016/test_damageToHumanHealthParticulateMatterFormation.py,sha256=yeN5w1_xKed10nHIlkb8dEOLcZ81TEAI41YvgnkB9n4,726
707
721
  tests/models/faostat2018/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
708
722
  tests/models/faostat2018/test_coldCarcassWeightPerHead.py,sha256=RImhLygwrJ2RoEHjDwhuymvLEitOtNleP_lLoBhiNOs,1736
709
723
  tests/models/faostat2018/test_coldDressedCarcassWeightPerHead.py,sha256=hZVKMtf-F5Iz7igZVahDJoqzfm2VtcIlwWBPCry7kqw,1594
@@ -714,6 +728,8 @@ tests/models/faostat2018/test_readyToCookWeightPerHead.py,sha256=pMDcONs0WUvANcJ
714
728
  tests/models/faostat2018/test_seed.py,sha256=tUXoNVveX0m0ed9UXB4zXxIZsPxktXyUXlbWuUKG0sQ,1705
715
729
  tests/models/faostat2018/product/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
716
730
  tests/models/faostat2018/product/test_price.py,sha256=vUTT-FZVbXnDrwQVOgq8PWTDuFK_gAT6aqJ9ZK6Qcsc,3493
731
+ tests/models/frischknechtEtAl2000/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
732
+ tests/models/frischknechtEtAl2000/test_ionisingRadiationKbqU235Eq.py,sha256=Fa44zHKi0XZPq_68g7BtOuFlpciefH9yIEgsVDWhlBg,2096
717
733
  tests/models/geospatialDatabase/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
718
734
  tests/models/geospatialDatabase/test_aware.py,sha256=tbBBvXrOqdO0cMPJTa02UfhlwfosH8iNoJLzZNFs1NU,857
719
735
  tests/models/geospatialDatabase/test_clayContent.py,sha256=GqFAPIOkXfDpJFkI-vK6l3hK0Ap36lLCWGhXCly-DME,1797
@@ -795,6 +811,8 @@ tests/models/ipcc2013ExcludingFeedbacks/test_gwp100.py,sha256=Od9ALNCag5pCVJnp2p
795
811
  tests/models/ipcc2013IncludingFeedbacks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
796
812
  tests/models/ipcc2013IncludingFeedbacks/test_gwp100.py,sha256=4HydDKiZDpxtgqgjpAg4cTVQu-jM-_tdDdJFmNNrwSc,875
797
813
  tests/models/ipcc2019/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
814
+ tests/models/ipcc2019/test_aboveGroundBiomass.py,sha256=Y9hSe_7XWDAmHcUKShoqp3nQZ67poHjvxLeDg3QruWY,5318
815
+ tests/models/ipcc2019/test_aboveGroundBiomass_utils.py,sha256=8Z9OXTIutB-_XeF3dCBjMW4bolEzreOE8QD8kahMcag,4182
798
816
  tests/models/ipcc2019/test_aboveGroundCropResidueTotal.py,sha256=AADYB1g9vftH7YSvNyihHu8GQOiA7VhXxVQ-oJQNT88,2581
799
817
  tests/models/ipcc2019/test_belowGroundCropResidue.py,sha256=HUxHZLBdLX_E_oc3wqTwNtGY4M4yCWcxx-1iBYPF7_s,2576
800
818
  tests/models/ipcc2019/test_carbonContent.py,sha256=_GWF5nGy-PxiqBZ5V7W_sHMz75YRzmxr79R-sZZg7yk,4146
@@ -825,12 +843,14 @@ tests/models/ipcc2019/test_no3ToGroundwaterOrganicFertiliser.py,sha256=e1ZViD12q
825
843
  tests/models/ipcc2019/test_noxToAirInorganicFertiliser.py,sha256=NZBSBJLM_j2PEpHRON2ysgKNF8x5sHfQVoAKQdGsfzk,1537
826
844
  tests/models/ipcc2019/test_noxToAirOrganicFertiliser.py,sha256=LR5pjV5vRbgSSQAw8kYRp_ij4CHInzgaDS6EggQuBiw,1104
827
845
  tests/models/ipcc2019/test_organicCarbonPerHa.py,sha256=9i1xEv5QEc8C9e0c0iVGwLOWisZVYwwlnAsEVmMv5Lg,13245
828
- tests/models/ipcc2019/test_organicCarbonPerHa_tier_1_utils.py,sha256=e5RpK4GlH9tNxbwEyPQkO2lMwYBtGNp8ha8j4bZF9eg,20699
846
+ tests/models/ipcc2019/test_organicCarbonPerHa_tier_1_utils.py,sha256=62z1uWd37ol42hGPMgspFsi76v1rpix17PkUMyh8hqQ,20751
829
847
  tests/models/ipcc2019/test_organicCarbonPerHa_tier_2_utils.py,sha256=6YXLqH5wz_cvYlJjCacCv9UTYpnXYxURLKQz6N9ZMPg,6807
830
848
  tests/models/ipcc2019/test_organicCarbonPerHa_utils.py,sha256=Zd2QlN_Q3k9djuByOH62A00tryVzlvNtsd46N79TTeU,1778
831
- tests/models/ipcc2019/test_pastureGrass.py,sha256=xcFXpszkqgeJImWOp-JlJxpcSHQKC-Pi0zdaKfai4a4,2660
849
+ tests/models/ipcc2019/test_pastureGrass.py,sha256=mKx8NnTtMT9TrXxRNLv73wD1TWBaiRZzA1xh2ukb-HI,2667
832
850
  tests/models/ipcc2019/animal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
833
- tests/models/ipcc2019/animal/test_pastureGrass.py,sha256=IifdYacwC_cXn5wHeLqq2e0fJeIe8WLWOumYKY36MrE,1979
851
+ tests/models/ipcc2019/animal/test_liveweightGain.py,sha256=XN1Ly_Jeg4zoRVQAVX2D0ORxmKjrcW163bI0wpLjUWs,663
852
+ tests/models/ipcc2019/animal/test_liveweightPerHead.py,sha256=oMzpf7crgkTXO3sF88i4XhJXVOqkCFgKbZruE9kCQTY,666
853
+ tests/models/ipcc2019/animal/test_pastureGrass.py,sha256=vuwd7WPUKIWaYREv_UmEa8m9llZSr0OclDsmnSDtHOQ,1987
834
854
  tests/models/ipcc2019/animal/test_weightAtMaturity.py,sha256=Tss9bTVz66yXVEBZT31KMm6gd45B9E1DJLqwYArPuYY,665
835
855
  tests/models/ipcc2021/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
836
856
  tests/models/ipcc2021/test_gwp100.py,sha256=JRklKMSg-OXopb9ZufGgl94deuMuJSsfNXRZDBtOZrE,1119
@@ -968,6 +988,7 @@ tests/models/pooreNemecek2018/test_rotationDuration.py,sha256=tD2E91beAXdyT-xf5Q
968
988
  tests/models/pooreNemecek2018/test_saplings.py,sha256=uJyUWUocvrcPndv-YFLs0WfxGEAG1kM8HEWZwutRhvs,1621
969
989
  tests/models/poschEtAl2008/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
970
990
  tests/models/poschEtAl2008/test_terrestrialAcidificationPotentialAccumulatedExceedance.py,sha256=NJ_W-ypWwjBuGiaXUeJvaQ9ZufoqlSWk1NYE9tt94ZA,1612
991
+ tests/models/poschEtAl2008/test_terrestrialEutrophicationPotentialAccumulatedExceedance.py,sha256=m-AUbdVDBEFEcmNOv13cYvNZQgDMYhHX33kfWywXQWM,1485
971
992
  tests/models/recipe2016Egalitarian/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
972
993
  tests/models/recipe2016Egalitarian/test_damageToFreshwaterEcosystemsSpeciesYear.py,sha256=OC8WjzPuyz5fd_E-LxFbOg3sasVc6LMJ9UK-jAKO7LU,697
973
994
  tests/models/recipe2016Egalitarian/test_damageToHumanHealth.py,sha256=fWjzC9r6itihyW6AdmDkotbhML_0KavXernOpnK1SmY,677
@@ -1102,6 +1123,7 @@ tests/models/utils/test_cropResidueManagement.py,sha256=RQt8lexeJzCyxZceIutgDpw7
1102
1123
  tests/models/utils/test_currency.py,sha256=BPsojPsY9QW2aj8vgbjkPQXU8GU6wDwwtPZ3HdC4KTU,277
1103
1124
  tests/models/utils/test_dataCompleteness.py,sha256=mW6rA7ddhtjZsLxwo5xDnvBdxmqTsivy4RTIU-2Lvk0,1713
1104
1125
  tests/models/utils/test_descriptive_stats.py,sha256=S-N4-JavFw8UQKju7QhvtimsAIe0TI4DjQT-0q_Y-Sk,3988
1126
+ tests/models/utils/test_ecoClimateZone.py,sha256=Pzy1wuCqkz4Ftms-6eCxdYg1sdOVu8bobTNVd-TUm3U,4280
1105
1127
  tests/models/utils/test_emission.py,sha256=3KfhQGV5Vh_WXTPt6McvZ2dBp9TVM7eAUTLgRHkBOvU,2146
1106
1128
  tests/models/utils/test_feedipedia.py,sha256=S7c1W4bJ5xWXPh42pPbl3R7lDX_iEeaEtFaPXgB7hgE,906
1107
1129
  tests/models/utils/test_impact_assessment.py,sha256=qEm4Y5txWnkSJKP1puvwgKFXkv06c7vUKmwDyIJxkdc,1114
@@ -1118,8 +1140,8 @@ tests/models/utils/test_source.py,sha256=_Ol-OrJs2Tt9iZAZ_RY2qRuSbnE4yz5OuEGkDSb
1118
1140
  tests/models/utils/test_term.py,sha256=M5Sa26v2gzQYbZ4H_fo7DspnaCx__-WtL-MULGapCWk,3509
1119
1141
  tests/models/webbEtAl2012AndSintermannEtAl2012/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1120
1142
  tests/models/webbEtAl2012AndSintermannEtAl2012/test_nh3ToAirOrganicFertiliser.py,sha256=qi2FNXS5Af2WDtm7nq_FsprH3BfCF0XxnE0XHmC4aIY,2244
1121
- hestia_earth_models-0.64.2.dist-info/LICENSE,sha256=AC7h7GAgCZGJK_Tzh6LUCrML9gQEfowWwecEw2w54QM,1154
1122
- hestia_earth_models-0.64.2.dist-info/METADATA,sha256=62AGAT6inNKY_pNYwL2qKTpk8LFW3wbjLS7DAnLCcag,3343
1123
- hestia_earth_models-0.64.2.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
1124
- hestia_earth_models-0.64.2.dist-info/top_level.txt,sha256=1dqA9TqpOLTEgpqa-YBsmbCmmNU1y56AtfFGEceZ2A0,19
1125
- hestia_earth_models-0.64.2.dist-info/RECORD,,
1143
+ hestia_earth_models-0.64.4.dist-info/LICENSE,sha256=AC7h7GAgCZGJK_Tzh6LUCrML9gQEfowWwecEw2w54QM,1154
1144
+ hestia_earth_models-0.64.4.dist-info/METADATA,sha256=C3SCtTmEIhSB6heG-RANYgdLAN6qncOUSZra2tgwG3E,3343
1145
+ hestia_earth_models-0.64.4.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
1146
+ hestia_earth_models-0.64.4.dist-info/top_level.txt,sha256=1dqA9TqpOLTEgpqa-YBsmbCmmNU1y56AtfFGEceZ2A0,19
1147
+ hestia_earth_models-0.64.4.dist-info/RECORD,,