hestia-earth-models 0.62.1__py3-none-any.whl → 0.62.3__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.
- hestia_earth/models/agribalyse2016/fuelElectricity.py +1 -1
- hestia_earth/models/cycle/animal/input/hestiaAggregatedData.py +1 -1
- hestia_earth/models/cycle/coldCarcassWeightPerHead.py +4 -2
- hestia_earth/models/cycle/coldDressedCarcassWeightPerHead.py +2 -2
- hestia_earth/models/cycle/concentrateFeed.py +3 -3
- hestia_earth/models/cycle/cycleDuration.py +7 -2
- hestia_earth/models/cycle/feedConversionRatio/feedConversionRatioNitrogen.py +2 -1
- hestia_earth/models/cycle/input/hestiaAggregatedData.py +1 -1
- hestia_earth/models/cycle/product/price.py +5 -1
- hestia_earth/models/cycle/product/revenue.py +6 -7
- hestia_earth/models/cycle/readyToCookWeightPerHead.py +2 -2
- hestia_earth/models/ecoinventV3/__init__.py +25 -52
- hestia_earth/models/ecoinventV3/utils.py +40 -0
- hestia_earth/models/ecoinventV3AndEmberClimate/__init__.py +92 -91
- hestia_earth/models/ecoinventV3AndEmberClimate/utils.py +15 -105
- hestia_earth/models/faostat2018/product/price.py +1 -2
- hestia_earth/models/geospatialDatabase/croppingIntensity.py +2 -1
- hestia_earth/models/geospatialDatabase/utils.py +1 -1
- hestia_earth/models/ipcc2019/aboveGroundCropResidueTotal.py +15 -10
- hestia_earth/models/ipcc2019/animal/pastureGrass.py +50 -40
- hestia_earth/models/ipcc2019/belowGroundCropResidue.py +16 -11
- hestia_earth/models/ipcc2019/carbonContent.py +1 -1
- hestia_earth/models/ipcc2019/croppingDuration.py +2 -2
- hestia_earth/models/ipcc2019/ligninContent.py +1 -1
- hestia_earth/models/ipcc2019/nitrogenContent.py +1 -1
- hestia_earth/models/ipcc2019/organicCarbonPerHa.py +3 -3
- hestia_earth/models/ipcc2019/organicCarbonPerHa_tier_1_utils.py +5 -5
- hestia_earth/models/ipcc2019/organicCarbonPerHa_tier_2_utils.py +217 -48
- hestia_earth/models/ipcc2019/organicCarbonPerHa_utils.py +2 -6
- hestia_earth/models/ipcc2019/pastureGrass.py +43 -41
- hestia_earth/models/ipcc2019/pastureGrass_utils.py +63 -109
- hestia_earth/models/koble2014/cropResidueManagement.py +1 -1
- hestia_earth/models/linkedImpactAssessment/emissions.py +15 -14
- hestia_earth/models/mocking/search-results.json +249 -257
- hestia_earth/models/pooreNemecek2018/longFallowPeriod.py +1 -1
- hestia_earth/models/preload_requests.py +1 -1
- hestia_earth/models/requirements.py +6 -6
- hestia_earth/models/site/organicCarbonPerHa.py +1 -1
- hestia_earth/models/utils/__init__.py +1 -1
- hestia_earth/models/utils/blank_node.py +52 -9
- hestia_earth/models/utils/cycle.py +12 -12
- hestia_earth/models/utils/measurement.py +3 -3
- hestia_earth/models/utils/property.py +6 -6
- hestia_earth/models/utils/term.py +2 -1
- hestia_earth/models/version.py +1 -1
- {hestia_earth_models-0.62.1.dist-info → hestia_earth_models-0.62.3.dist-info}/METADATA +12 -12
- {hestia_earth_models-0.62.1.dist-info → hestia_earth_models-0.62.3.dist-info}/RECORD +56 -55
- {hestia_earth_models-0.62.1.dist-info → hestia_earth_models-0.62.3.dist-info}/WHEEL +1 -1
- tests/models/cycle/product/test_revenue.py +0 -3
- tests/models/cycle/test_cycleDuration.py +1 -1
- tests/models/ipcc2019/test_organicCarbonPerHa.py +9 -20
- tests/models/ipcc2019/test_organicCarbonPerHa_tier_2_utils.py +0 -8
- tests/models/test_ecoinventV3.py +12 -0
- tests/models/test_ecoinventV3AndEmberClimate.py +5 -72
- {hestia_earth_models-0.62.1.dist-info → hestia_earth_models-0.62.3.dist-info}/LICENSE +0 -0
- {hestia_earth_models-0.62.1.dist-info → hestia_earth_models-0.62.3.dist-info}/top_level.txt +0 -0
|
@@ -45,7 +45,7 @@ def _should_run(cycle: dict):
|
|
|
45
45
|
product = next((p for p in cycle.get('products', []) if _should_run_product(p)), None)
|
|
46
46
|
|
|
47
47
|
logRequirements(cycle, model=MODEL, term=TERM_ID,
|
|
48
|
-
|
|
48
|
+
crop_product_id=(product or {}).get('term', {}).get('@id'))
|
|
49
49
|
|
|
50
50
|
should_run = all([product])
|
|
51
51
|
logShouldRun(cycle, MODEL, TERM_ID, should_run)
|
|
@@ -10,7 +10,7 @@ from .mocking import RESULTS_PATH, enable_mock as _mock
|
|
|
10
10
|
|
|
11
11
|
def enable_preload(filepath: str = RESULTS_PATH, node: dict = None):
|
|
12
12
|
"""
|
|
13
|
-
Prefetch calls to
|
|
13
|
+
Prefetch calls to HESTIA API in a local file.
|
|
14
14
|
|
|
15
15
|
Parameters
|
|
16
16
|
----------
|
|
@@ -353,7 +353,7 @@ def get_single_returns(model: str, key: str):
|
|
|
353
353
|
Returns
|
|
354
354
|
-------
|
|
355
355
|
list
|
|
356
|
-
The returned data following
|
|
356
|
+
The returned data following HESTIA's schema.
|
|
357
357
|
"""
|
|
358
358
|
returns = _model_returns({'model': model, 'key': key})
|
|
359
359
|
return_type = list(returns.keys())[0] if returns else None
|
|
@@ -368,7 +368,7 @@ def list_models(
|
|
|
368
368
|
termType: str = None, tier: str = None, productTermId: str = None, productTermType: str = None, siteType: str = None
|
|
369
369
|
) -> list:
|
|
370
370
|
"""
|
|
371
|
-
Return list of models present in
|
|
371
|
+
Return list of models present in HESTIA.
|
|
372
372
|
|
|
373
373
|
Parameters
|
|
374
374
|
----------
|
|
@@ -410,7 +410,7 @@ def get_models(termId: str):
|
|
|
410
410
|
Returns
|
|
411
411
|
-------
|
|
412
412
|
list
|
|
413
|
-
The list of modelscurrently in
|
|
413
|
+
The list of modelscurrently in HESTIA that are matching this Term (as `{"model": model, "key": key}`).
|
|
414
414
|
"""
|
|
415
415
|
return list(filter(lambda m: m.get('key') == termId, ALL_MODELS))
|
|
416
416
|
|
|
@@ -420,7 +420,7 @@ def get_all(
|
|
|
420
420
|
termType: str = None, tier: str = None, productTermId: str = None, productTermType: str = None, siteType: str = None
|
|
421
421
|
) -> list:
|
|
422
422
|
"""
|
|
423
|
-
Get the requirements to run all the models in
|
|
423
|
+
Get the requirements to run all the models in HESTIA.
|
|
424
424
|
|
|
425
425
|
Parameters
|
|
426
426
|
----------
|
|
@@ -441,7 +441,7 @@ def get_all(
|
|
|
441
441
|
Returns
|
|
442
442
|
-------
|
|
443
443
|
list
|
|
444
|
-
The data requirements following
|
|
444
|
+
The data requirements following HESTIA's schema as multiple nodes.
|
|
445
445
|
"""
|
|
446
446
|
models = list_models(
|
|
447
447
|
termType=termType, tier=tier, productTermId=productTermId, productTermType=productTermType, siteType=siteType
|
|
@@ -469,7 +469,7 @@ def get_single(model: str, key: str) -> list:
|
|
|
469
469
|
Returns
|
|
470
470
|
-------
|
|
471
471
|
list
|
|
472
|
-
The data requirements following
|
|
472
|
+
The data requirements following HESTIA's schema as multiple nodes.
|
|
473
473
|
"""
|
|
474
474
|
model = {'model': model, 'key': key}
|
|
475
475
|
linked_models = _recursive_linked_models(model)
|
|
@@ -278,7 +278,7 @@ def _rescale_soc_value(
|
|
|
278
278
|
"""
|
|
279
279
|
Rescale an SOC measurement value from a source depth interval to a target depth interval.
|
|
280
280
|
|
|
281
|
-
Depths are converted from centimetres (
|
|
281
|
+
Depths are converted from centimetres (HESTIA schema) to metres for use in `cdf` function.
|
|
282
282
|
|
|
283
283
|
Parameters
|
|
284
284
|
----------
|
|
@@ -61,7 +61,7 @@ def _filter_list_term_unit(values: list, unit: Any):
|
|
|
61
61
|
|
|
62
62
|
def is_from_model(node: dict) -> bool:
|
|
63
63
|
"""
|
|
64
|
-
Check if the Blank Node came from one of the
|
|
64
|
+
Check if the Blank Node came from one of the HESTIA Models.
|
|
65
65
|
|
|
66
66
|
Parameters
|
|
67
67
|
----------
|
|
@@ -41,6 +41,44 @@ from .lookup import (
|
|
|
41
41
|
from .term import get_lookup_value
|
|
42
42
|
|
|
43
43
|
|
|
44
|
+
def lookups_logs(model: str, blank_nodes: list, lookups_per_termType: dict, **log_args):
|
|
45
|
+
def mapper(blank_node: dict):
|
|
46
|
+
term = blank_node.get('term', {})
|
|
47
|
+
term_id = term.get('@id')
|
|
48
|
+
term_type = term.get('termType')
|
|
49
|
+
lookups = lookups_per_termType.get(term_type, [])
|
|
50
|
+
lookups = lookups if isinstance(lookups, list) else [lookups]
|
|
51
|
+
|
|
52
|
+
def _reduce_lookups_logs(logs: dict, column: str):
|
|
53
|
+
lookup_value = get_lookup_value(term, column, model=model, **log_args)
|
|
54
|
+
return logs | {column: lookup_value}
|
|
55
|
+
|
|
56
|
+
return reduce(_reduce_lookups_logs, lookups, {'id': term_id})
|
|
57
|
+
|
|
58
|
+
logs = list(map(mapper, blank_nodes))
|
|
59
|
+
|
|
60
|
+
return log_as_table(logs)
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
def properties_logs(blank_nodes: list, properties: Union[dict, list]):
|
|
64
|
+
def mapper(blank_node: dict):
|
|
65
|
+
term = blank_node.get('term', {})
|
|
66
|
+
term_id = term.get('@id')
|
|
67
|
+
term_type = term.get('termType')
|
|
68
|
+
props = properties.get(term_type, []) if isinstance(properties, dict) else properties
|
|
69
|
+
props = props if isinstance(props, list) else [props]
|
|
70
|
+
|
|
71
|
+
def _reduce_properties_logs(logs: dict, prop: str):
|
|
72
|
+
value = get_node_property(term, prop).get('value')
|
|
73
|
+
return logs | {prop: value}
|
|
74
|
+
|
|
75
|
+
return reduce(_reduce_properties_logs, properties, {'id': term_id})
|
|
76
|
+
|
|
77
|
+
logs = list(map(mapper, blank_nodes))
|
|
78
|
+
|
|
79
|
+
return log_as_table(logs)
|
|
80
|
+
|
|
81
|
+
|
|
44
82
|
def group_by_keys(group_keys: list = ['term']):
|
|
45
83
|
def run(group: dict, node: dict):
|
|
46
84
|
group_key = '-'.join(non_empty_list(map(lambda v: node.get(v, {}).get('@id'), group_keys)))
|
|
@@ -229,12 +267,17 @@ def get_total_value_converted_with_min_ratio(
|
|
|
229
267
|
total_value_with_property = list_sum([value for term_id, value, prop_value in values if prop_value])
|
|
230
268
|
total_value_ratio = total_value_with_property / total_value if total_value > 0 else 0
|
|
231
269
|
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
270
|
+
logs = {
|
|
271
|
+
f"{prop_id}-term-id": prop_id,
|
|
272
|
+
f"{prop_id}-total-value": total_value,
|
|
273
|
+
f"{prop_id}-total-value-with-property": total_value_with_property,
|
|
274
|
+
f"{prop_id}-total-value-with-ratio": total_value_ratio,
|
|
275
|
+
f"{prop_id}-min-value-ratio": min_ratio,
|
|
276
|
+
f"{prop_id}-values": value_logs
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
debugValues(node, model=model, term=term,
|
|
280
|
+
**logs)
|
|
238
281
|
|
|
239
282
|
return list_sum([
|
|
240
283
|
value * prop_value for term_id, value, prop_value in values if all([value, prop_value])
|
|
@@ -574,7 +617,7 @@ def cumulative_nodes_lookup_match(
|
|
|
574
617
|
|
|
575
618
|
class DatestrFormat(Enum):
|
|
576
619
|
"""
|
|
577
|
-
Enum representing ISO date formats permitted by
|
|
620
|
+
Enum representing ISO date formats permitted by HESTIA.
|
|
578
621
|
|
|
579
622
|
See: https://en.wikipedia.org/wiki/ISO_8601
|
|
580
623
|
"""
|
|
@@ -639,7 +682,7 @@ def _check_datestr_format(datestr: str, format: DatestrFormat) -> bool:
|
|
|
639
682
|
|
|
640
683
|
def _get_datestr_format(datestr: str, default: Optional[Any] = None) -> Union[DatestrFormat, Any, None]:
|
|
641
684
|
"""
|
|
642
|
-
Check a datestr against each ISO format permitted by the
|
|
685
|
+
Check a datestr against each ISO format permitted by the HESTIA schema and
|
|
643
686
|
return the matching format.
|
|
644
687
|
"""
|
|
645
688
|
return next(
|
|
@@ -1132,7 +1175,7 @@ def group_nodes_by_last_date(nodes: list) -> dict[str, list[dict]]:
|
|
|
1132
1175
|
Parameters
|
|
1133
1176
|
----------
|
|
1134
1177
|
nodes : list[dict]
|
|
1135
|
-
A list of
|
|
1178
|
+
A list of HESTIA format nodes.
|
|
1136
1179
|
|
|
1137
1180
|
Return
|
|
1138
1181
|
------
|
|
@@ -22,7 +22,7 @@ def unique_currencies(cycle: dict) -> list:
|
|
|
22
22
|
Parameters
|
|
23
23
|
----------
|
|
24
24
|
cycle : dict
|
|
25
|
-
The `Cycle` as defined in the
|
|
25
|
+
The `Cycle` as defined in the HESTIA Schema.
|
|
26
26
|
|
|
27
27
|
Returns
|
|
28
28
|
-------
|
|
@@ -41,7 +41,7 @@ def default_currency(cycle: dict) -> str:
|
|
|
41
41
|
Parameters
|
|
42
42
|
----------
|
|
43
43
|
cycle : dict
|
|
44
|
-
The `Cycle` as defined in the
|
|
44
|
+
The `Cycle` as defined in the HESTIA Schema.
|
|
45
45
|
|
|
46
46
|
Returns
|
|
47
47
|
-------
|
|
@@ -59,7 +59,7 @@ def get_crop_residue_decomposition_N_total(cycle: dict) -> float:
|
|
|
59
59
|
Parameters
|
|
60
60
|
----------
|
|
61
61
|
cycle : dict
|
|
62
|
-
The `Cycle` as defined in the
|
|
62
|
+
The `Cycle` as defined in the HESTIA Schema.
|
|
63
63
|
|
|
64
64
|
Returns
|
|
65
65
|
-------
|
|
@@ -87,7 +87,7 @@ def get_excreta_N_total(cycle: dict) -> float:
|
|
|
87
87
|
Parameters
|
|
88
88
|
----------
|
|
89
89
|
cycle : dict
|
|
90
|
-
The `Cycle` as defined in the
|
|
90
|
+
The `Cycle` as defined in the HESTIA Schema.
|
|
91
91
|
|
|
92
92
|
Returns
|
|
93
93
|
-------
|
|
@@ -115,7 +115,7 @@ def get_organic_fertiliser_N_total(cycle: dict) -> float:
|
|
|
115
115
|
Parameters
|
|
116
116
|
----------
|
|
117
117
|
cycle : dict
|
|
118
|
-
The `Cycle` as defined in the
|
|
118
|
+
The `Cycle` as defined in the HESTIA Schema.
|
|
119
119
|
|
|
120
120
|
Returns
|
|
121
121
|
-------
|
|
@@ -141,7 +141,7 @@ def get_organic_fertiliser_P_total(cycle: dict) -> float:
|
|
|
141
141
|
Parameters
|
|
142
142
|
----------
|
|
143
143
|
cycle : dict
|
|
144
|
-
The `Cycle` as defined in the
|
|
144
|
+
The `Cycle` as defined in the HESTIA Schema.
|
|
145
145
|
|
|
146
146
|
Returns
|
|
147
147
|
-------
|
|
@@ -165,7 +165,7 @@ def get_inorganic_fertiliser_N_total(cycle: dict) -> float:
|
|
|
165
165
|
Parameters
|
|
166
166
|
----------
|
|
167
167
|
cycle : dict
|
|
168
|
-
The `Cycle` as defined in the
|
|
168
|
+
The `Cycle` as defined in the HESTIA Schema.
|
|
169
169
|
|
|
170
170
|
Returns
|
|
171
171
|
-------
|
|
@@ -189,7 +189,7 @@ def get_inorganic_fertiliser_P_total(cycle: dict) -> float:
|
|
|
189
189
|
Parameters
|
|
190
190
|
----------
|
|
191
191
|
cycle : dict
|
|
192
|
-
The `Cycle` as defined in the
|
|
192
|
+
The `Cycle` as defined in the HESTIA Schema.
|
|
193
193
|
|
|
194
194
|
Returns
|
|
195
195
|
-------
|
|
@@ -260,7 +260,7 @@ def land_occupation_per_ha(model: str, term_id: str, cycle: dict):
|
|
|
260
260
|
term_id : str
|
|
261
261
|
The name of the term running this function. For debugging purpose only.
|
|
262
262
|
cycle : dict
|
|
263
|
-
The `Cycle` as defined in the
|
|
263
|
+
The `Cycle` as defined in the HESTIA Schema.
|
|
264
264
|
|
|
265
265
|
Returns
|
|
266
266
|
-------
|
|
@@ -302,9 +302,9 @@ def land_occupation_per_kg(model: str, term_id: str, cycle: dict, site: dict, pr
|
|
|
302
302
|
term_id : str
|
|
303
303
|
The name of the term running this function. For debugging purpose only.
|
|
304
304
|
cycle : dict
|
|
305
|
-
The `Cycle` as defined in the
|
|
305
|
+
The `Cycle` as defined in the HESTIA Schema.
|
|
306
306
|
site : dict
|
|
307
|
-
The `Site` as defined in the
|
|
307
|
+
The `Site` as defined in the HESTIA Schema.
|
|
308
308
|
primary_product : dict
|
|
309
309
|
The primary `Product` of the `Cycle`.
|
|
310
310
|
|
|
@@ -447,7 +447,7 @@ def check_cycle_site_ids_identical(cycles: list[dict]) -> bool:
|
|
|
447
447
|
Parameters
|
|
448
448
|
----------
|
|
449
449
|
cycles : list[dict]
|
|
450
|
-
A list of
|
|
450
|
+
A list of HESTIA `Cycle` nodes, see: https://www.hestia.earth/schema/Cycle.
|
|
451
451
|
|
|
452
452
|
Returns
|
|
453
453
|
-------
|
|
@@ -111,7 +111,7 @@ def group_measurement_values_by_year(
|
|
|
111
111
|
Parameters
|
|
112
112
|
----------
|
|
113
113
|
measurement : dict
|
|
114
|
-
A
|
|
114
|
+
A HESTIA `Measurement` node, see: https://www.hestia.earth/schema/Measurement.
|
|
115
115
|
inner_key: Any | None
|
|
116
116
|
An optional inner dictionary key for the outputted annualised groups (can be used to merge annualised
|
|
117
117
|
dictionaries together), default value: `None`.
|
|
@@ -165,9 +165,9 @@ def most_relevant_measurement_value_by_depth_and_date(
|
|
|
165
165
|
Parameters
|
|
166
166
|
----------
|
|
167
167
|
measurements list[dict]
|
|
168
|
-
A list of
|
|
168
|
+
A list of HESTIA `Measurement` nodes, see: https://www.hestia.earth/schema/Measurement.
|
|
169
169
|
term_id : str
|
|
170
|
-
The `@id` of a
|
|
170
|
+
The `@id` of a HESTIA `Term`. Example: `"sandContent"`
|
|
171
171
|
date : str
|
|
172
172
|
The target date in ISO 8601 string format (`"YYYY-MM-DD"`), see: https://en.wikipedia.org/wiki/ISO_8601.
|
|
173
173
|
depth_upper : int
|
|
@@ -87,17 +87,17 @@ def node_has_property(term_id: str):
|
|
|
87
87
|
return lambda product: find_term_match(product.get('properties', []), term_id, None) is not None
|
|
88
88
|
|
|
89
89
|
|
|
90
|
-
def node_property_lookup_value(model: str,
|
|
90
|
+
def node_property_lookup_value(model: str, node_term: dict, prop_id: str, default=None, **log_args):
|
|
91
91
|
# as the lookup table might not exist, we are making sure we return `0` in thise case
|
|
92
92
|
try:
|
|
93
|
-
lookup_name = f"{
|
|
93
|
+
lookup_name = f"{node_term.get('termType')}-property.csv"
|
|
94
94
|
lookup = download_lookup(lookup_name)
|
|
95
|
-
term_id =
|
|
95
|
+
term_id = node_term.get('@id')
|
|
96
96
|
lookup_value = get_table_value(lookup, 'termid', term_id, column_name(prop_id))
|
|
97
97
|
value = extract_grouped_data(lookup_value, 'Avg') if (
|
|
98
98
|
isinstance(lookup_value, str) and 'Avg' in lookup_value
|
|
99
99
|
) else lookup_value
|
|
100
|
-
debugMissingLookup(lookup_name, 'termid', term_id, prop_id, value, model=model,
|
|
100
|
+
debugMissingLookup(lookup_name, 'termid', term_id, prop_id, value, model=model, **log_args)
|
|
101
101
|
return safe_parse_float(value, default=None)
|
|
102
102
|
except Exception:
|
|
103
103
|
return default
|
|
@@ -111,9 +111,9 @@ def get_node_property_value(model: str, node: dict, prop_id: str, default=None,
|
|
|
111
111
|
return default if value is None else (value / 100 if units == '%' else value)
|
|
112
112
|
|
|
113
113
|
|
|
114
|
-
def get_node_property_value_converted(model: str, node: dict, prop_id: str, default=None):
|
|
114
|
+
def get_node_property_value_converted(model: str, node: dict, prop_id: str, default=None, **log_args):
|
|
115
115
|
node_value = list_sum(node.get('value', []))
|
|
116
|
-
prop_value = get_node_property_value(model, node, prop_id)
|
|
116
|
+
prop_value = get_node_property_value(model, node, prop_id, **log_args)
|
|
117
117
|
return default if prop_value is None else node_value * prop_value
|
|
118
118
|
|
|
119
119
|
|
|
@@ -615,7 +615,7 @@ def get_electricity_grid_mix_terms():
|
|
|
615
615
|
list
|
|
616
616
|
List of matching `Term` as dict.
|
|
617
617
|
"""
|
|
618
|
-
|
|
618
|
+
terms = search({
|
|
619
619
|
"bool": {
|
|
620
620
|
"must": [
|
|
621
621
|
{"match": {"@type": SchemaType.TERM.value}},
|
|
@@ -625,3 +625,4 @@ def get_electricity_grid_mix_terms():
|
|
|
625
625
|
],
|
|
626
626
|
}
|
|
627
627
|
}, limit=LIMIT, fields=['@type', '@id', 'name', 'termType', 'units'])
|
|
628
|
+
return list(map(lambda n: n["@id"], terms))
|
hestia_earth/models/version.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
VERSION = '0.62.
|
|
1
|
+
VERSION = '0.62.3'
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: hestia-earth-models
|
|
3
|
-
Version: 0.62.
|
|
4
|
-
Summary:
|
|
3
|
+
Version: 0.62.3
|
|
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
|
-
Author:
|
|
6
|
+
Author: HESTIA Team
|
|
7
7
|
Author-email: guillaumeroyer.mail@gmail.com
|
|
8
8
|
License: GPL
|
|
9
9
|
Platform: UNKNOWN
|
|
@@ -11,25 +11,25 @@ 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
|
|
15
|
-
Requires-Dist: hestia-earth.utils
|
|
16
|
-
Requires-Dist: python-dateutil
|
|
17
|
-
Requires-Dist: CurrencyConverter
|
|
18
|
-
Requires-Dist: haversine
|
|
14
|
+
Requires-Dist: hestia-earth.schema==29.*
|
|
15
|
+
Requires-Dist: hestia-earth.utils>=0.13.2
|
|
16
|
+
Requires-Dist: python-dateutil>=2.8.1
|
|
17
|
+
Requires-Dist: CurrencyConverter==0.16.8
|
|
18
|
+
Requires-Dist: haversine>=2.7.0
|
|
19
19
|
Requires-Dist: pydash
|
|
20
20
|
Provides-Extra: spatial
|
|
21
|
-
Requires-Dist: hestia-earth.earth-engine
|
|
21
|
+
Requires-Dist: hestia-earth.earth-engine>=0.4.7; extra == "spatial"
|
|
22
22
|
|
|
23
|
-
#
|
|
23
|
+
# HESTIA Engine Models
|
|
24
24
|
|
|
25
25
|
[](https://gitlab.com/hestia-earth/hestia-engine-models/commits/master)
|
|
26
26
|
[](https://gitlab.com/hestia-earth/hestia-engine-models/commits/master)
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
HESTIA's set of models for running calculations or retrieving data using external datasets and internal lookups.
|
|
29
29
|
|
|
30
30
|
## Documentation
|
|
31
31
|
|
|
32
|
-
Documentation for every model can be found in the [
|
|
32
|
+
Documentation for every model can be found in the [HESTIA API Documentation](https://hestia.earth/docs/#hestia-calculation-models).
|
|
33
33
|
|
|
34
34
|
## Install
|
|
35
35
|
|