hestia-earth-models 0.67.0__py3-none-any.whl → 0.67.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.
- hestia_earth/models/cml2001Baseline/resourceUseEnergyDepletionDuringCycle.py +5 -10
- hestia_earth/models/cycle/completeness/freshForage.py +7 -3
- hestia_earth/models/cycle/inorganicFertiliser.py +67 -17
- hestia_earth/models/environmentalFootprintV3_1/environmentalFootprintSingleOverallScore.py +42 -37
- hestia_earth/models/environmentalFootprintV3_1/soilQualityIndexLandTransformation.py +22 -14
- hestia_earth/models/environmentalFootprintV3_1/soilQualityIndexTotalLandUseEffects.py +17 -15
- hestia_earth/models/hestia/landTransformation100YearAverageDuringCycle.py +1 -1
- hestia_earth/models/hestia/landTransformation20YearAverageDuringCycle.py +1 -1
- hestia_earth/models/ipcc2019/aboveGroundBiomass.py +1 -1
- hestia_earth/models/ipcc2019/belowGroundBiomass.py +1 -1
- hestia_earth/models/ipcc2019/organicCarbonPerHa_tier_1_utils.py +4 -4
- hestia_earth/models/ipcc2019/organicCarbonPerHa_tier_2_utils.py +1 -1
- hestia_earth/models/mocking/search-results.json +1173 -1041
- hestia_earth/models/utils/blank_node.py +64 -11
- hestia_earth/models/utils/ecoClimateZone.py +2 -2
- hestia_earth/models/utils/impact_assessment.py +5 -4
- hestia_earth/models/utils/lookup.py +3 -5
- hestia_earth/models/version.py +1 -1
- {hestia_earth_models-0.67.0.dist-info → hestia_earth_models-0.67.1.dist-info}/METADATA +1 -1
- {hestia_earth_models-0.67.0.dist-info → hestia_earth_models-0.67.1.dist-info}/RECORD +29 -29
- tests/models/cml2001Baseline/test_resourceUseEnergyDepletionDuringCycle.py +68 -35
- tests/models/environmentalFootprintV3_1/test_environmentalFootprintSingleOverallScore.py +38 -8
- tests/models/environmentalFootprintV3_1/test_soilQualityIndexLandTransformation.py +65 -36
- tests/models/site/test_management.py +1 -4
- tests/models/utils/test_blank_node.py +13 -165
- tests/orchestrator/models/test_transformations.py +4 -1
- {hestia_earth_models-0.67.0.dist-info → hestia_earth_models-0.67.1.dist-info}/LICENSE +0 -0
- {hestia_earth_models-0.67.0.dist-info → hestia_earth_models-0.67.1.dist-info}/WHEEL +0 -0
- {hestia_earth_models-0.67.0.dist-info → hestia_earth_models-0.67.1.dist-info}/top_level.txt +0 -0
@@ -12,7 +12,6 @@ from typing import (
|
|
12
12
|
Optional,
|
13
13
|
Union
|
14
14
|
)
|
15
|
-
|
16
15
|
from dateutil import parser
|
17
16
|
from dateutil.relativedelta import relativedelta
|
18
17
|
from hestia_earth.schema import TermTermType
|
@@ -22,6 +21,7 @@ from hestia_earth.utils.model import filter_list_term_type
|
|
22
21
|
from hestia_earth.utils.tools import (
|
23
22
|
flatten,
|
24
23
|
list_sum,
|
24
|
+
list_average,
|
25
25
|
safe_parse_date,
|
26
26
|
safe_parse_float,
|
27
27
|
non_empty_list
|
@@ -44,6 +44,14 @@ MAX_DEPTH = 1000
|
|
44
44
|
OLDEST_DATE = '1800'
|
45
45
|
|
46
46
|
|
47
|
+
def group_by_term(values: list):
|
48
|
+
def group_by(groups: dict, value: dict):
|
49
|
+
key = value.get('term', {}).get('@id')
|
50
|
+
groups[key] = groups.get(key, []) + [value]
|
51
|
+
return groups
|
52
|
+
return reduce(group_by, values, {})
|
53
|
+
|
54
|
+
|
47
55
|
def merge_blank_nodes(source: list, new_values: list):
|
48
56
|
"""
|
49
57
|
Merge a list of blank nodes into an existing list of blank nodes.
|
@@ -1335,11 +1343,14 @@ def _node_from_group(nodes: list):
|
|
1335
1343
|
# `nodes` contain list with consecutive dates
|
1336
1344
|
return nodes[0] if len(nodes) == 1 else (
|
1337
1345
|
# if all nodes have the same dates, sum up the values
|
1338
|
-
nodes[0] |
|
1339
|
-
|
1340
|
-
|
1341
|
-
|
1342
|
-
|
1346
|
+
nodes[0] | (
|
1347
|
+
{
|
1348
|
+
'value': _sum_nodes_value(nodes)
|
1349
|
+
} if _same_dates(nodes) else {
|
1350
|
+
'startDate': min(n.get('startDate') for n in nodes),
|
1351
|
+
'endDate': max(n.get('endDate') for n in nodes)
|
1352
|
+
}
|
1353
|
+
)
|
1343
1354
|
)
|
1344
1355
|
|
1345
1356
|
|
@@ -1349,7 +1360,7 @@ def _condense_nodes(nodes: list):
|
|
1349
1360
|
return flatten(map(_node_from_group, grouped_nodes))
|
1350
1361
|
|
1351
1362
|
|
1352
|
-
def
|
1363
|
+
def _group_nodes_by_value_and_properties(nodes: list) -> dict:
|
1353
1364
|
def _group_node(group: dict, node: dict):
|
1354
1365
|
value = node.get('value', [])
|
1355
1366
|
value = '-'.join(map(str, value if isinstance(value, list) else [value]))
|
@@ -1359,7 +1370,6 @@ def _group_nodes_to_condense(nodes: list) -> dict:
|
|
1359
1370
|
f"{p.get('value')}"
|
1360
1371
|
])) for p in node.get('properties', [])
|
1361
1372
|
]))
|
1362
|
-
# group by term, value, and properties
|
1363
1373
|
group_key = '-'.join(non_empty_list([
|
1364
1374
|
node.get('term', {}).get('@id', ''),
|
1365
1375
|
value,
|
@@ -1371,8 +1381,51 @@ def _group_nodes_to_condense(nodes: list) -> dict:
|
|
1371
1381
|
return reduce(_group_node, nodes, {})
|
1372
1382
|
|
1373
1383
|
|
1384
|
+
def _group_nodes_by_dates(nodes: list) -> dict:
|
1385
|
+
def _group_node(group: dict, node: dict):
|
1386
|
+
group_key = '-'.join(non_empty_list([
|
1387
|
+
node.get('term', {}).get('@id', ''),
|
1388
|
+
node.get('startDate'),
|
1389
|
+
node.get('endDate'),
|
1390
|
+
]))
|
1391
|
+
group[group_key] = group.get(group_key, []) + [node]
|
1392
|
+
return group
|
1393
|
+
|
1394
|
+
return reduce(_group_node, nodes, {})
|
1395
|
+
|
1396
|
+
|
1397
|
+
def _average_properties(properties: list):
|
1398
|
+
# group properties by term
|
1399
|
+
grouped_properties = group_by_term(properties)
|
1400
|
+
return [
|
1401
|
+
props[0] | {
|
1402
|
+
'value': list_average(non_empty_list([p.get('value') for p in props]), default=props[0].get('value'))
|
1403
|
+
}
|
1404
|
+
for props in grouped_properties.values()
|
1405
|
+
]
|
1406
|
+
|
1407
|
+
|
1408
|
+
def _merge_same_dates(nodes: list):
|
1409
|
+
# group by term, startDate and endDate
|
1410
|
+
grouped_nodes = _group_nodes_by_dates(nodes)
|
1411
|
+
|
1412
|
+
def merge_nodes(nodes: list):
|
1413
|
+
properties = flatten([n.get('properties', []) for n in nodes])
|
1414
|
+
return nodes[0] | (
|
1415
|
+
{
|
1416
|
+
'value': _sum_nodes_value(nodes)
|
1417
|
+
} | ({
|
1418
|
+
'properties': _average_properties(properties)
|
1419
|
+
} if properties else {})
|
1420
|
+
) if len(nodes) > 1 else nodes[0]
|
1421
|
+
|
1422
|
+
return list(map(merge_nodes, grouped_nodes.values()))
|
1423
|
+
|
1424
|
+
|
1374
1425
|
def condense_nodes(nodes: list) -> list:
|
1375
|
-
|
1426
|
+
# merge nodes with the same term and dates as they need to be unique
|
1427
|
+
values = _merge_same_dates(nodes)
|
1428
|
+
grouped_nodes = _group_nodes_by_value_and_properties(values)
|
1376
1429
|
return flatten(map(_condense_nodes, grouped_nodes.values()))
|
1377
1430
|
|
1378
1431
|
|
@@ -1446,13 +1499,13 @@ def most_relevant_blank_node_by_id(nodes: list, term_id: str, date: str):
|
|
1446
1499
|
PROPERTY_UNITS_CONVERSIONS = {
|
1447
1500
|
Units.KG.value: {
|
1448
1501
|
Units.MJ.value: [
|
1449
|
-
'
|
1502
|
+
'energyContentLowerHeatingValue', # "kg" to "mj"
|
1450
1503
|
]
|
1451
1504
|
},
|
1452
1505
|
Units.M3.value: {
|
1453
1506
|
Units.MJ.value: [
|
1454
1507
|
'density', # "m3" to "kg"
|
1455
|
-
'
|
1508
|
+
'energyContentLowerHeatingValue', # "kg" to "mj"
|
1456
1509
|
]
|
1457
1510
|
}
|
1458
1511
|
}
|
@@ -36,8 +36,8 @@ def get_eco_climate_zone_value(node: dict, as_enum: bool = False) -> Union[int,
|
|
36
36
|
Parameters
|
37
37
|
----------
|
38
38
|
node : dict
|
39
|
-
A HESTIA [Site](https://
|
40
|
-
[Cycle](https://
|
39
|
+
A HESTIA [Site](https://hestia.earth/schema/Site) or
|
40
|
+
[Cycle](https://hestia.earth/schema/Cycle).
|
41
41
|
|
42
42
|
Returns
|
43
43
|
-------
|
@@ -131,6 +131,7 @@ def impact_country_value(
|
|
131
131
|
lookup: str,
|
132
132
|
group_key: str = None,
|
133
133
|
country_fallback: bool = False,
|
134
|
+
default_no_values=None
|
134
135
|
) -> float:
|
135
136
|
"""
|
136
137
|
Calculate the value of the impact based on lookup factors and `site.country.@id`.
|
@@ -166,13 +167,13 @@ def impact_country_value(
|
|
166
167
|
debugValues(impact, model=model, term=term_id,
|
167
168
|
values_used=log_as_table(values))
|
168
169
|
|
169
|
-
|
170
|
+
has_values = len(values) > 0
|
171
|
+
missing_values = set([v.get('id') for v in values if v.get('value') and v.get('coefficient') is None])
|
172
|
+
all_with_factors = not missing_values
|
170
173
|
values = [float((v.get('value') or 0) * (v.get('coefficient') or 0)) for v in values]
|
171
174
|
|
172
175
|
# fail if some factors are missing
|
173
|
-
return None if not all_with_factors else (
|
174
|
-
list_sum(values) if len(values) > 0 else None
|
175
|
-
)
|
176
|
+
return None if not all_with_factors else (list_sum(values) if has_values else default_no_values)
|
176
177
|
|
177
178
|
|
178
179
|
def impact_aware_value(model: str, term_id: str, impact: dict, lookup: str, group_key: str = None) -> float:
|
@@ -50,8 +50,8 @@ def all_factor_value(
|
|
50
50
|
values = list(map(_factor_value(model, term_id, lookup_name, lookup_col, grouped_key), blank_nodes))
|
51
51
|
|
52
52
|
has_values = len(values) > 0
|
53
|
-
missing_values = set([v.get('id') for v in values if v.get('value')
|
54
|
-
all_with_factors =
|
53
|
+
missing_values = set([v.get('id') for v in values if v.get('value') and v.get('coefficient') is None])
|
54
|
+
all_with_factors = not missing_values
|
55
55
|
|
56
56
|
for missing_value in missing_values:
|
57
57
|
debugMissingLookup(lookup_name, 'termid', missing_value, lookup_col, None, model=model, term=term_id)
|
@@ -65,9 +65,7 @@ def all_factor_value(
|
|
65
65
|
values = [float((v.get('value') or 0) * (v.get('coefficient') or 0)) for v in values]
|
66
66
|
|
67
67
|
# fail if some factors are missing
|
68
|
-
return None if not all_with_factors else (
|
69
|
-
list_sum(values) if has_values else default_no_values
|
70
|
-
)
|
68
|
+
return None if not all_with_factors else (list_sum(values) if has_values else default_no_values)
|
71
69
|
|
72
70
|
|
73
71
|
def _term_factor_value(model: str, term_id: str, lookup_name: str, lookup_term_id: str, group_key: str = None):
|
hestia_earth/models/version.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
VERSION = '0.67.
|
1
|
+
VERSION = '0.67.1'
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: hestia-earth-models
|
3
|
-
Version: 0.67.
|
3
|
+
Version: 0.67.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
|
@@ -4,7 +4,7 @@ hestia_earth/models/cache_sites.py,sha256=tApCGZ55bRG3rl7a-jjwZokgF3dxGbg8WlKfwo
|
|
4
4
|
hestia_earth/models/log.py,sha256=3NzkAEgxMGCMolQbC6nDuAJEb7ZpQNXLekhbRNjedSo,3561
|
5
5
|
hestia_earth/models/preload_requests.py,sha256=vK_G1UzhNMhYy7ymnCtHUz_vv3cfApCSKqv29VREEBQ,1943
|
6
6
|
hestia_earth/models/requirements.py,sha256=eU4yT443fx7BnaokhrLB_PCizJI7Y6m4auyo8vQauNg,17363
|
7
|
-
hestia_earth/models/version.py,sha256=
|
7
|
+
hestia_earth/models/version.py,sha256=rFzSUNBZgH06WHZggrqjYhfDC7R4tScObDyCGmEYcOs,19
|
8
8
|
hestia_earth/models/agribalyse2016/__init__.py,sha256=WvK0qCQbnYtg9oZxrACd1wGormZyXibPtpCnIQeDqbw,415
|
9
9
|
hestia_earth/models/agribalyse2016/fuelElectricity.py,sha256=rm5ZaRAzJ08m2y4BxkGh-RjudkDWgozmg3XumoRm-fQ,4511
|
10
10
|
hestia_earth/models/agribalyse2016/machineryInfrastructureDepreciatedAmountPerCycle.py,sha256=BPjnWmg73i_OxM2ouCdMTWZtPIqyoUAXrvutntyteE0,3390
|
@@ -30,7 +30,7 @@ hestia_earth/models/cml2001Baseline/__init__.py,sha256=0uGrCKDNUH-MUkpvts9MyPMnZ
|
|
30
30
|
hestia_earth/models/cml2001Baseline/abioticResourceDepletionFossilFuels.py,sha256=6CvHcrSANH4UAWY58y2Ow00DzqitJVAteCzjsmi5cwA,6070
|
31
31
|
hestia_earth/models/cml2001Baseline/abioticResourceDepletionMineralsAndMetals.py,sha256=yXie6UW0_I4VQcADn7Uvk4n1RmrFAauJ7ZVh7OgBUyA,5952
|
32
32
|
hestia_earth/models/cml2001Baseline/eutrophicationPotentialExcludingFate.py,sha256=nUWKsn3COqAOrYNmiBKnA2rUs88pj4o3k4fHKA0TVbU,1068
|
33
|
-
hestia_earth/models/cml2001Baseline/resourceUseEnergyDepletionDuringCycle.py,sha256=
|
33
|
+
hestia_earth/models/cml2001Baseline/resourceUseEnergyDepletionDuringCycle.py,sha256=UUzdnKE4J9KHvFdJVRgVfVkTuMfSxK_nW-aMkTuNoCk,5546
|
34
34
|
hestia_earth/models/cml2001Baseline/resourceUseEnergyDepletionInputsProduction.py,sha256=hXGdx1IA5yeVLHrRrSZWCP0s7ucSRWelYNr6aQ9YTyU,1205
|
35
35
|
hestia_earth/models/cml2001Baseline/resourceUseMineralsAndMetalsDuringCycle.py,sha256=WUIA2tDBoAdTQ6Aa5GgEpvOGyR-O6KuJeeIffUpTh2U,2708
|
36
36
|
hestia_earth/models/cml2001Baseline/resourceUseMineralsAndMetalsInputsProduction.py,sha256=WfFL9n_KyR2XXPwliHu6gpgixFrOWB4XAO1VsJWgIio,1200
|
@@ -57,7 +57,7 @@ hestia_earth/models/cycle/energyContentLowerHeatingValue.py,sha256=AyVKCQbb3Pto3
|
|
57
57
|
hestia_earth/models/cycle/excretaKgMass.py,sha256=iA8Kfl3WvyxbQpx1QOGPQZ9O_Pc5rj7xhucYx3rB8Co,3949
|
58
58
|
hestia_earth/models/cycle/excretaKgN.py,sha256=mgJTneQIYJ9Su-rTK5ppb_k3YhICFNWsfPZtGR98RI0,2968
|
59
59
|
hestia_earth/models/cycle/excretaKgVs.py,sha256=ed-DcQoQXZgWF8UZDs2N-G6EBIOPmpXu3BD6jdmh0V0,2973
|
60
|
-
hestia_earth/models/cycle/inorganicFertiliser.py,sha256=
|
60
|
+
hestia_earth/models/cycle/inorganicFertiliser.py,sha256=pH4jHB6wEQnr5YQ9AhVsuROfEFb07SNcBMPlHvf1Fjo,9127
|
61
61
|
hestia_earth/models/cycle/irrigatedTypeUnspecified.py,sha256=KlIa5eDvT47Twz6Q1kpw0rMlRjCK25CExaW58DEvc9w,2125
|
62
62
|
hestia_earth/models/cycle/liveAnimal.py,sha256=5dlvuVAu24hLLOVXsozcVzWyDVzddzoungUBwrBDS-g,3986
|
63
63
|
hestia_earth/models/cycle/longFallowRatio.py,sha256=_h0kub99sACO87IfjMeiu8IgdK2jaeBlgGA9A9-ViZA,1683
|
@@ -92,7 +92,7 @@ hestia_earth/models/cycle/completeness/animalFeed.py,sha256=8Fo1TqwSuiPudvd2vJ-L
|
|
92
92
|
hestia_earth/models/cycle/completeness/cropResidue.py,sha256=Jpmm5SAiyUkaFp8EsBIQ55jiCyn3C20a3au_zaPRnEk,2837
|
93
93
|
hestia_earth/models/cycle/completeness/electricityFuel.py,sha256=uEXMyfMCvvZKD3jcQGAIZOv1cZLrhpXZiyCn_56kxig,2125
|
94
94
|
hestia_earth/models/cycle/completeness/excreta.py,sha256=2yVxcuWjAh4hoEukaMJ90VZpkCL7SfpwIgzigbjVaF4,996
|
95
|
-
hestia_earth/models/cycle/completeness/freshForage.py,sha256=
|
95
|
+
hestia_earth/models/cycle/completeness/freshForage.py,sha256=qxo2MoVCgrMtcj-h_uHfbVZpOn-THx8DkyyRXCXixLk,2412
|
96
96
|
hestia_earth/models/cycle/completeness/material.py,sha256=UQH2oRnUY-Q-_MVuOlTAYqQxc7wWDM5mi_iFmp9PlIQ,1362
|
97
97
|
hestia_earth/models/cycle/completeness/seed.py,sha256=rLNar7q39YqdtyFLBiyXeRbsVSWFRd8H7Bhjx7ATISU,1932
|
98
98
|
hestia_earth/models/cycle/completeness/soilAmendment.py,sha256=AXGtO1d8oLWgvmVLoNBqknsH2lmr5y15E2xkgZpkCSU,1392
|
@@ -150,13 +150,13 @@ hestia_earth/models/emepEea2019/tspToAirAnimalHousing.py,sha256=hHHhu_EZWhxAKhGJ
|
|
150
150
|
hestia_earth/models/emepEea2019/utils.py,sha256=oTHjbRRwJZv_tpO9MOlfpyQRmN0a1kvEZsVHUPliZpQ,4014
|
151
151
|
hestia_earth/models/emissionNotRelevant/__init__.py,sha256=NkP635TDNs7bQBv2n9tUTLwScZHfUkSC4XzLVwjxWtg,2240
|
152
152
|
hestia_earth/models/environmentalFootprintV3_1/__init__.py,sha256=tF2WrWiV1Wzi2vnRiNXdfPWfmVxgVu9w9-7eA6PA7-s,473
|
153
|
-
hestia_earth/models/environmentalFootprintV3_1/environmentalFootprintSingleOverallScore.py,sha256=
|
153
|
+
hestia_earth/models/environmentalFootprintV3_1/environmentalFootprintSingleOverallScore.py,sha256=pNiL6WNAuRqTQ9lwEasxAAiAm7vhZUs5bxLIQTCSb70,5733
|
154
154
|
hestia_earth/models/environmentalFootprintV3_1/freshwaterEcotoxicityPotentialCtue.py,sha256=N_gw2aNoCMW5Z1XM-uAyCF1kfpZUI07giv_bo3Lmr5Q,918
|
155
155
|
hestia_earth/models/environmentalFootprintV3_1/marineEutrophicationPotential.py,sha256=UM9pezQeETfk9i0FtOBRdreaaJ9OqL6G4gYljrKOz-0,1063
|
156
156
|
hestia_earth/models/environmentalFootprintV3_1/scarcityWeightedWaterUse.py,sha256=2m_vX-Ziy8rrVqf1fBpKzLc1FFXs48XQRygvCKS7i-0,1263
|
157
157
|
hestia_earth/models/environmentalFootprintV3_1/soilQualityIndexLandOccupation.py,sha256=r3GV2pspKWAlKU46TMh_6D_rrXtY_onhk3RnukzJjD8,5095
|
158
|
-
hestia_earth/models/environmentalFootprintV3_1/soilQualityIndexLandTransformation.py,sha256=
|
159
|
-
hestia_earth/models/environmentalFootprintV3_1/soilQualityIndexTotalLandUseEffects.py,sha256=
|
158
|
+
hestia_earth/models/environmentalFootprintV3_1/soilQualityIndexLandTransformation.py,sha256=KJfcFqVYDLLkymWUAf7NI_7JSwcEPgjw9PKVwyhXShQ,7318
|
159
|
+
hestia_earth/models/environmentalFootprintV3_1/soilQualityIndexTotalLandUseEffects.py,sha256=OS746_21QBMN7D-B04HU-rWwXFuaVD6qy-TTd_Ea5zU,3318
|
160
160
|
hestia_earth/models/environmentalFootprintV3_1/utils.py,sha256=fZ99_G0Kh4OUW5wH-LglzCrKp8l2plKuCs4yvUH_3hs,699
|
161
161
|
hestia_earth/models/epa2014/__init__.py,sha256=ckGf_6X7CCzI_18OqchEkuJAXKXM1x7V53u480ckknM,408
|
162
162
|
hestia_earth/models/epa2014/no3ToGroundwaterExcreta.py,sha256=fN4fOOcjBg3tl0lzNeJ8mzg6mrvQRxilx-R5Gc4l4Nw,1724
|
@@ -214,8 +214,8 @@ hestia_earth/models/haversineFormula/transport/__init__.py,sha256=47DEQpj8HBSa-_
|
|
214
214
|
hestia_earth/models/haversineFormula/transport/distance.py,sha256=163KrmKzlEQuKYT1ZvpPgmKlv_-mmvxp0A1_uKya99w,4203
|
215
215
|
hestia_earth/models/hestia/__init__.py,sha256=o5vAmPzSaK9XPgL8GCne3-lugfCOgZhHELYolNgqyyY,407
|
216
216
|
hestia_earth/models/hestia/landCover.py,sha256=L0TsEzDAF4tczU_TSa-UrtUbJiBjuUYxDY64-oOeT-o,30224
|
217
|
-
hestia_earth/models/hestia/landTransformation100YearAverageDuringCycle.py,sha256
|
218
|
-
hestia_earth/models/hestia/landTransformation20YearAverageDuringCycle.py,sha256=
|
217
|
+
hestia_earth/models/hestia/landTransformation100YearAverageDuringCycle.py,sha256=JdiCiy8nEH7i59vcDOi2F4-3jANqtlfHanMhR4rBFNQ,1539
|
218
|
+
hestia_earth/models/hestia/landTransformation20YearAverageDuringCycle.py,sha256=WxSZZ3wDJefZ3MFOulXtbcLW-YtGehpjdhvAzNL6gJ8,1531
|
219
219
|
hestia_earth/models/hestia/residueRemoved.py,sha256=VdB00ZdwQMIj7qsZ7549DQmbqWtCQtFZpsUlc_11yt8,2857
|
220
220
|
hestia_earth/models/hestia/resourceUse_utils.py,sha256=7DJE4yGUl0BCiNdtr8u_41Uz8m9yY7tdlC9ggkGwh7c,8639
|
221
221
|
hestia_earth/models/hestia/seed_emissions.py,sha256=58hmHAgemOuGVIsij-FWF7EsGmEbCSfzFAEfXkXSyEE,11566
|
@@ -254,9 +254,9 @@ hestia_earth/models/ipcc2013ExcludingFeedbacks/gwp100.py,sha256=2fFEHTXxel_XPiMX
|
|
254
254
|
hestia_earth/models/ipcc2013IncludingFeedbacks/__init__.py,sha256=VJ16KIGQQHybzZiTvu3mpZy_3j0xcd06RHHCfPrCMgU,427
|
255
255
|
hestia_earth/models/ipcc2013IncludingFeedbacks/gwp100.py,sha256=HR2vnOc64mg_fxe9m5NmqxBZ8-aFuKb44gmItyuRL1s,1041
|
256
256
|
hestia_earth/models/ipcc2019/__init__.py,sha256=LdRpu8KbEc-MroIwXfKDjfj-xbgmfUYgctjKVvtpRfQ,409
|
257
|
-
hestia_earth/models/ipcc2019/aboveGroundBiomass.py,sha256=
|
257
|
+
hestia_earth/models/ipcc2019/aboveGroundBiomass.py,sha256=hfiDkbsiSkx-CrravYwF8C0McK4w9-PZL5sQWIdHrLM,19944
|
258
258
|
hestia_earth/models/ipcc2019/aboveGroundCropResidueTotal.py,sha256=lT2QVV5c2LvQqZRfPEvFT_bMTayMXgIsFLnx8I6iYzw,3089
|
259
|
-
hestia_earth/models/ipcc2019/belowGroundBiomass.py,sha256=
|
259
|
+
hestia_earth/models/ipcc2019/belowGroundBiomass.py,sha256=QclpcQh58qlUIFn1wXH3pktfQ-x5lw0YpEFUdMSr68I,18949
|
260
260
|
hestia_earth/models/ipcc2019/belowGroundCropResidue.py,sha256=7AFU2Q0qPAvv6uEKWByS38jl77FvjTPbGm2GQ53waGg,3499
|
261
261
|
hestia_earth/models/ipcc2019/biomass_utils.py,sha256=R7t-YWq5K-AMHihlWh8hWHfhaoGZMmDf8SNFM6-wGdU,15895
|
262
262
|
hestia_earth/models/ipcc2019/carbonContent.py,sha256=tlQvu4Auhpjmaz7XrZz86xwxVrJhsYYf8DFA_aQeev4,7255
|
@@ -290,8 +290,8 @@ hestia_earth/models/ipcc2019/no3ToGroundwaterOrganicFertiliser.py,sha256=px2SN-u
|
|
290
290
|
hestia_earth/models/ipcc2019/noxToAirInorganicFertiliser.py,sha256=fmmFgjtvOD2TrrLY03jYly_KvDnCsAXqhL_tmZQQt-A,4480
|
291
291
|
hestia_earth/models/ipcc2019/noxToAirOrganicFertiliser.py,sha256=9dx_MRTwJGxJRq6mj2EJQMdQ2w6j7lw0fQk0If_cIGc,4152
|
292
292
|
hestia_earth/models/ipcc2019/organicCarbonPerHa.py,sha256=C9ef41fd-gYixEV3sTs9VMHHdnSZJ14kbEEmMG116hY,8653
|
293
|
-
hestia_earth/models/ipcc2019/organicCarbonPerHa_tier_1_utils.py,sha256=
|
294
|
-
hestia_earth/models/ipcc2019/organicCarbonPerHa_tier_2_utils.py,sha256=
|
293
|
+
hestia_earth/models/ipcc2019/organicCarbonPerHa_tier_1_utils.py,sha256=XynerdHDnIx1BOeu_dc-R3F4fOACxdBAUm0don3OINY,76203
|
294
|
+
hestia_earth/models/ipcc2019/organicCarbonPerHa_tier_2_utils.py,sha256=HgvM6PpfSvSBae4idOHkunD7zffT3z6hTX6YVIocGSs,64028
|
295
295
|
hestia_earth/models/ipcc2019/organicCarbonPerHa_utils.py,sha256=FFcjdkYq5NJwAu4bWZJUao4MoDHvgbXmXCnUNKD-a3w,9842
|
296
296
|
hestia_earth/models/ipcc2019/pastureGrass.py,sha256=HWRkpYpGqvMfol2dPb9pFkNzoGj7n6sRpyIjGSVM9lQ,10306
|
297
297
|
hestia_earth/models/ipcc2019/pastureGrass_utils.py,sha256=KvjIQ3xwbq1rk3thHlkGgQaWKgh0hCkNnzC53JW9634,14178
|
@@ -414,7 +414,7 @@ hestia_earth/models/linkedImpactAssessment/utils.py,sha256=S1zlux02gU2Lajrtoq-zQ
|
|
414
414
|
hestia_earth/models/mocking/__init__.py,sha256=9VX50c-grz-snfd-7MBS0KfF7AadtbKuj7kK6PqtsgE,687
|
415
415
|
hestia_earth/models/mocking/build_mock_search.py,sha256=p15ccEUmkmLp1RiGNznxMz3OFHbI8P1-29ExuohiQN8,1355
|
416
416
|
hestia_earth/models/mocking/mock_search.py,sha256=ccFe_WrI73JElFmxp4hPNLCX7eeU--lBC1JFR901KJY,1069
|
417
|
-
hestia_earth/models/mocking/search-results.json,sha256=
|
417
|
+
hestia_earth/models/mocking/search-results.json,sha256=ZEwud-KZeXQ0-UYWoP9METNQ_llbCJhbmUXTqITgk6k,105086
|
418
418
|
hestia_earth/models/pooreNemecek2018/__init__.py,sha256=nPboL7ULJzL5nJD5q7q9VOZt_fxbKVm8fmn1Az5YkVY,417
|
419
419
|
hestia_earth/models/pooreNemecek2018/aboveGroundCropResidueTotal.py,sha256=Qt-mel4dkhK6N5uUOutNOinCTFjbjtGzITaaI0LvYc4,2396
|
420
420
|
hestia_earth/models/pooreNemecek2018/belowGroundCropResidue.py,sha256=JT0RybbvWVlo01FO8K0Yj41HrEaJT3Kj1xfayr2X-xw,2315
|
@@ -581,7 +581,7 @@ hestia_earth/models/utils/aggregated.py,sha256=cTUzS60t44_viF1wMnTTVpFq8-6cKJTQu
|
|
581
581
|
hestia_earth/models/utils/animalProduct.py,sha256=M5IunAKGY6oZv3j1Ascl34ywyeLWApqOIlBzbtlA2FE,721
|
582
582
|
hestia_earth/models/utils/aquacultureManagement.py,sha256=dxrbC1Xf140cohxTbSw6TxLAnAASWTdNZwBBam4yQnw,171
|
583
583
|
hestia_earth/models/utils/array_builders.py,sha256=ko1pDZKaUudZqxOZ99vJamKAdoR6ND4ZmxVrYH6YjPc,19498
|
584
|
-
hestia_earth/models/utils/blank_node.py,sha256=
|
584
|
+
hestia_earth/models/utils/blank_node.py,sha256=dvVv9JXrexEAzACs-CIObZlFZ4NrwxIND5MhQgbIlIc,53935
|
585
585
|
hestia_earth/models/utils/cache_sources.py,sha256=MBkrPpjwNiC4ApDjeYVHZjWBbpvAerXRDrMHpjasAZ0,377
|
586
586
|
hestia_earth/models/utils/completeness.py,sha256=2-GusD9UycobDZq8y5jar0ZcOjyqnSbzPRT_5XMc4YA,1259
|
587
587
|
hestia_earth/models/utils/constant.py,sha256=6wLx8xb2R8HtpEpVy5e-PbioOo7QCu2n-W72fs6OvgE,3411
|
@@ -591,19 +591,19 @@ hestia_earth/models/utils/cropResidueManagement.py,sha256=nIDFjf39rDD10UHSVudfDy
|
|
591
591
|
hestia_earth/models/utils/currency.py,sha256=f_ArJANb--pZq4LL49SXQ1AMX_oKroqwBXKRRQqZwsM,578
|
592
592
|
hestia_earth/models/utils/cycle.py,sha256=PmloVCSU4TtXnEe0ltP--bTIZBXVB-rEFJrV6IYsdeo,16209
|
593
593
|
hestia_earth/models/utils/descriptive_stats.py,sha256=EMVwFvg2OnZgKRAfireAoWY2EbrSvqR0V0bK9B53p28,1583
|
594
|
-
hestia_earth/models/utils/ecoClimateZone.py,sha256=
|
594
|
+
hestia_earth/models/utils/ecoClimateZone.py,sha256=etsWsAQeYHCnDJJi-ezTrzjoaFILC1e3SMfSNsdRnPs,4241
|
595
595
|
hestia_earth/models/utils/emission.py,sha256=H_apu-Og9SJTLVU2lU56IsvSU22-9J7OrqXk1b2qnSE,3638
|
596
596
|
hestia_earth/models/utils/excretaManagement.py,sha256=NuWPQjFZxMVt9sYgBjcqhGWCFk_OKb3sA9Ovcff3fRQ,428
|
597
597
|
hestia_earth/models/utils/feedipedia.py,sha256=wzzrMbYlda1XCpWiObLz4bFLXbAZejHcxsXJFr4U_AM,3953
|
598
598
|
hestia_earth/models/utils/fertiliser.py,sha256=DBO4OBNgnQJ0fCQMDkIk_ZGZX-uKGaTFZCEXfAnJciY,690
|
599
599
|
hestia_earth/models/utils/fuel.py,sha256=XzOELV3dn506PkMKjFQ_ZKVZInd2lL2x6PKdsa6Po4M,1429
|
600
|
-
hestia_earth/models/utils/impact_assessment.py,sha256=
|
600
|
+
hestia_earth/models/utils/impact_assessment.py,sha256=fA2hK7xpHKYBZTiz3xvMgO8yTrUtDptoKQRAXdPsahU,8231
|
601
601
|
hestia_earth/models/utils/indicator.py,sha256=UuuraMUdKLqjcm_zEoF8BaMb76qW23djIA_2DeaoiEw,700
|
602
602
|
hestia_earth/models/utils/inorganicFertiliser.py,sha256=_dLBY-otGkLr8PobR5dQ89bF2uwc2PB4JPrHFSksMEQ,1900
|
603
603
|
hestia_earth/models/utils/input.py,sha256=gsVFKTC9WF8dO6YAg_-H_GAOQTnvAr49Ox5-eTH8zf8,5145
|
604
604
|
hestia_earth/models/utils/landCover.py,sha256=8-nfynzCx9gf9YfhpuoH6Cn4kQwWFpYA5RmoGW-0ETE,300
|
605
605
|
hestia_earth/models/utils/liveAnimal.py,sha256=GnajBPZw5d94raf80KtLloaOqlfqGAPwUtP9bRlGWeE,1754
|
606
|
-
hestia_earth/models/utils/lookup.py,sha256=
|
606
|
+
hestia_earth/models/utils/lookup.py,sha256=HR0uvZ1--KviBaUbYYyzlZDs7YioTI1NtyoQqFweMbc,8700
|
607
607
|
hestia_earth/models/utils/management.py,sha256=W5M9k0arraVUGh4ZccVqgb8rSSLxHM6rkmi4MSzV6Dw,413
|
608
608
|
hestia_earth/models/utils/measurement.py,sha256=izEiPszUcPA22zaIc0OuF7Yk82JWu5cxi0Sbz_9YgBo,11142
|
609
609
|
hestia_earth/models/utils/organicFertiliser.py,sha256=2HY-a0EBzUw4DkEAXClLMXVCEZTKYf0BwFHBo7lQ5Tg,363
|
@@ -668,7 +668,7 @@ tests/models/cml2001Baseline/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NM
|
|
668
668
|
tests/models/cml2001Baseline/test_abioticResourceDepletionFossilFuels.py,sha256=XseqzU8JE3MOeIM_3cBIlNhTInucG_VNfgyUIpKAdrU,5663
|
669
669
|
tests/models/cml2001Baseline/test_abioticResourceDepletionMineralsAndMetals.py,sha256=y-E5t5x2VcgPsy3cPFBWyULd6vieaGjDY_J2GVJMtUo,4081
|
670
670
|
tests/models/cml2001Baseline/test_eutrophicationPotentialExcludingFate.py,sha256=ZIIx_EiYbUxUoAS7NuQrxqwTFS3rXQm9_1AsqF_bhB8,894
|
671
|
-
tests/models/cml2001Baseline/test_resourceUseEnergyDepletionDuringCycle.py,sha256=
|
671
|
+
tests/models/cml2001Baseline/test_resourceUseEnergyDepletionDuringCycle.py,sha256=QzQg_AdpZ_5jUprevm8F_FOTHbDnxEkxnjSpKCNxyKY,4719
|
672
672
|
tests/models/cml2001Baseline/test_resourceUseEnergyDepletionInputsProduction.py,sha256=KPEC2CXgO78Kkcbi_Iu0AzKRZMYJSfkeEV-kspSyLYA,910
|
673
673
|
tests/models/cml2001Baseline/test_resourceUseMineralsAndMetalsDuringCycle.py,sha256=kko6cV3YRmcxfYdJ8xQuTeo9Bro9BuBbgGBO2gklxWM,2085
|
674
674
|
tests/models/cml2001Baseline/test_resourceUseMineralsAndMetalsInputsProduction.py,sha256=_UqFak1-DX6b-brX2xt3zpfYUhjFPRoUMhgF9l3cw3I,912
|
@@ -770,12 +770,12 @@ tests/models/emepEea2019/test_so2ToAirFuelCombustion.py,sha256=zRTyeeQM1fRdRVFWb
|
|
770
770
|
tests/models/emepEea2019/test_tspToAirAnimalHousing.py,sha256=4MNDsxIeUk5_3IvZwEZslxgoPNyQN9OQFDNY3uGNX6E,714
|
771
771
|
tests/models/emepEea2019/test_utils.py,sha256=G6z8tEfWM0OPnUBaFCQgQyEi5-kRF_DqsqdYaPnzR_I,8761
|
772
772
|
tests/models/environmentalFootprintV3_1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
773
|
-
tests/models/environmentalFootprintV3_1/test_environmentalFootprintSingleOverallScore.py,sha256=
|
773
|
+
tests/models/environmentalFootprintV3_1/test_environmentalFootprintSingleOverallScore.py,sha256=F4oz4UadhpBlyh4JvLPOWAxGSIKnJVTTDaSzOT3Ihgk,4909
|
774
774
|
tests/models/environmentalFootprintV3_1/test_freshwaterEcotoxicityPotentialCtue.py,sha256=WE-DcerljCjXMYE4f3Sv5ZCVHP0oTjbWkOGuvaa4p10,926
|
775
775
|
tests/models/environmentalFootprintV3_1/test_marineEutrophicationPotential.py,sha256=kY_pu_7SjSZl_l41mttMn4BpKl13TTV9jQYSHFMNXhI,968
|
776
776
|
tests/models/environmentalFootprintV3_1/test_scarcityWeightedWaterUse.py,sha256=zEdWXjtlZv5Nyv0EZxvLxe4BQ-4_ME38bMfNvFZXjl8,1169
|
777
777
|
tests/models/environmentalFootprintV3_1/test_soilQualityIndexLandOccupation.py,sha256=-E8Q5JxIdfF11oqGwRJqcqGO0Ao_Bva164ELMR7sRsI,6197
|
778
|
-
tests/models/environmentalFootprintV3_1/test_soilQualityIndexLandTransformation.py,sha256=
|
778
|
+
tests/models/environmentalFootprintV3_1/test_soilQualityIndexLandTransformation.py,sha256=xRTBMfQ1Qxs_NIoEFtshM_uzAAcFb80k1qGuFLJa2Dw,7650
|
779
779
|
tests/models/environmentalFootprintV3_1/test_soilQualityIndexTotalLandUseEffects.py,sha256=oeLb8kQ2yabnlCaBw7MYF_fMfVNea4ogr9lWJ-u3SXM,2389
|
780
780
|
tests/models/epa2014/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
781
781
|
tests/models/epa2014/test_no3ToGroundwaterExcreta.py,sha256=ESVz4UURvQfhjGBTxjuAV_bymMBcvGNfLAkYMvNup9U,1217
|
@@ -1127,7 +1127,7 @@ tests/models/site/test_defaultMethodClassification.py,sha256=MoG9inlu5GrNL2QJpO0
|
|
1127
1127
|
tests/models/site/test_defaultMethodClassificationDescription.py,sha256=7Dg40MLSZnW1X3ZXg2dXMzc1hUqIUIuiga5KX9cVscU,767
|
1128
1128
|
tests/models/site/test_flowingWater.py,sha256=t_rxvdlmUVDsFBoDF20_zDM-0iiLKkNCV7knO9l1T7o,1370
|
1129
1129
|
tests/models/site/test_freshWater.py,sha256=GOeAxHhPW_2E1wQdQRX4W-r7mnb_LgmiAVLImitoApw,982
|
1130
|
-
tests/models/site/test_management.py,sha256=
|
1130
|
+
tests/models/site/test_management.py,sha256=iMA9SpP7yOhHpsvCyizCsSbvw0ZSayvJ5koEZ-Kjbs0,1736
|
1131
1131
|
tests/models/site/test_netPrimaryProduction.py,sha256=JCxG0MODbKVvl3hOqmKzh4FjHYn3Xs9KsVod6LvKQII,1108
|
1132
1132
|
tests/models/site/test_organicCarbonPerHa.py,sha256=XtGrE7ZqthTF0x8lDxJ1slNd_GvYHEyEydcRgA46jEc,3207
|
1133
1133
|
tests/models/site/test_organicCarbonPerKgSoil.py,sha256=0M-NMg_T3UXzGT_VlKOKhSxg4cZ0_zhd3FRgY5Hpj6o,1087
|
@@ -1181,7 +1181,7 @@ tests/models/usetoxV2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3h
|
|
1181
1181
|
tests/models/usetoxV2/test_freshwaterEcotoxicityPotentialCtue.py,sha256=eq7Gcmfya9g0eOKKkuBhz8vq7xi_CmZ_LTSxueBwZt4,835
|
1182
1182
|
tests/models/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1183
1183
|
tests/models/utils/test_array_builders.py,sha256=4giHf3bTNd2ReAgcKinKjLpQOOcmfF0qSInngW7UdYc,8434
|
1184
|
-
tests/models/utils/test_blank_node.py,sha256=
|
1184
|
+
tests/models/utils/test_blank_node.py,sha256=gWdKjXEDkfHGkYjkZwyCOfkESsE5X23OTqgm0OxkzPA,32974
|
1185
1185
|
tests/models/utils/test_cache_sources.py,sha256=xcGMVbYoV23YC4HLBTL_4qZP1ME2cp3DFebgJMxI2TE,721
|
1186
1186
|
tests/models/utils/test_crop.py,sha256=d508vQdtB_Q_6hEahNueXed5PaEiLeN7ScbwZIKCiDI,862
|
1187
1187
|
tests/models/utils/test_cropResidueManagement.py,sha256=RQt8lexeJzCyxZceIutgDpw7BpcqmjsUB0C0yZC2QpY,930
|
@@ -1212,7 +1212,7 @@ tests/orchestrator/test_models.py,sha256=v5VnyELmrSEcTOtw4lyk2U0r016z8Xx34EFs0FJ
|
|
1212
1212
|
tests/orchestrator/test_orchestrator.py,sha256=dlO4CKn04m__SZhDtvy1npvQUavVNhdcRe4Unj7wg6g,742
|
1213
1213
|
tests/orchestrator/test_utils.py,sha256=Sqysl2ocifLUeSbgGUdeRn0Sof0xVEeH4dgoXfe18yw,3050
|
1214
1214
|
tests/orchestrator/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1215
|
-
tests/orchestrator/models/test_transformations.py,sha256=
|
1215
|
+
tests/orchestrator/models/test_transformations.py,sha256=5s6Ts6_DzNvvxpgtqoA2YTnsTJFr_6xbwTNUkQmWr14,1441
|
1216
1216
|
tests/orchestrator/models/emissions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1217
1217
|
tests/orchestrator/models/emissions/test_deleted.py,sha256=55WOjXR2oeKxdRgXmJg4DgIY3f0asPMvez8b5fkT7LI,767
|
1218
1218
|
tests/orchestrator/strategies/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -1225,8 +1225,8 @@ tests/orchestrator/strategies/run/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeR
|
|
1225
1225
|
tests/orchestrator/strategies/run/test_add_blank_node_if_missing.py,sha256=lGqeebvgAwGathB8NLZ14Js5JV_-KyHueaD6I8IH8mU,3615
|
1226
1226
|
tests/orchestrator/strategies/run/test_add_key_if_missing.py,sha256=hKwvk1ohcBVnQUCTiDhRW99J0xEa29BpwFi1KC0yWLE,329
|
1227
1227
|
tests/orchestrator/strategies/run/test_always.py,sha256=w5-Dhp6yLzgZGAeMRz3OrqZbbAed9gZ1O266a3z9k7w,134
|
1228
|
-
hestia_earth_models-0.67.
|
1229
|
-
hestia_earth_models-0.67.
|
1230
|
-
hestia_earth_models-0.67.
|
1231
|
-
hestia_earth_models-0.67.
|
1232
|
-
hestia_earth_models-0.67.
|
1228
|
+
hestia_earth_models-0.67.1.dist-info/LICENSE,sha256=TD25LoiRJsA5CPUNrcyt1PXlGcbUGFMAeZoBcfCrCNE,1154
|
1229
|
+
hestia_earth_models-0.67.1.dist-info/METADATA,sha256=0rZS_1PvrGQF1RreEZE_EjDXwvIQgjDSyknNAhRL2HI,4046
|
1230
|
+
hestia_earth_models-0.67.1.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
|
1231
|
+
hestia_earth_models-0.67.1.dist-info/top_level.txt,sha256=1dqA9TqpOLTEgpqa-YBsmbCmmNU1y56AtfFGEceZ2A0,19
|
1232
|
+
hestia_earth_models-0.67.1.dist-info/RECORD,,
|
@@ -9,38 +9,72 @@ from tests.utils import fixtures_path, fake_new_indicator
|
|
9
9
|
class_path = f"hestia_earth.models.{MODEL}.{TERM_ID}"
|
10
10
|
fixtures_folder = f"{fixtures_path}/{MODEL}/{TERM_ID}"
|
11
11
|
|
12
|
-
diesel_input = {
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
12
|
+
diesel_input = {
|
13
|
+
"term": {"termType": "fuel", "units": "kg", "@id": "diesel"},
|
14
|
+
"value": 2,
|
15
|
+
"properties": [{"term": {"@id": "energyContentLowerHeatingValue", }, "value": 70}]
|
16
|
+
}
|
17
|
+
diesel_input_in_mj = {
|
18
|
+
"term": {"termType": "fuel", "units": "MJ", "@id": "diesel"},
|
19
|
+
"value": 111
|
20
|
+
}
|
21
|
+
diesel_input_wrong_unit = {
|
22
|
+
"term": {"termType": "fuel", "units": "foobedoos", "@id": "diesel"},
|
23
|
+
"value": 2
|
24
|
+
}
|
25
|
+
diesel_input_no_unit = {
|
26
|
+
"term": {"termType": "fuel", "@id": "diesel"},
|
27
|
+
"value": 2
|
28
|
+
}
|
29
|
+
diesel_input_with_properties = {
|
30
|
+
"term": {"termType": "fuel", "units": "kg", "@id": "diesel"},
|
31
|
+
"value": 2,
|
32
|
+
"properties": [{"term": {"@id": "energyContentLowerHeatingValue", }, "value": 70}]
|
33
|
+
}
|
34
|
+
diesel_input_with_properties2 = {
|
35
|
+
"term": {"termType": "fuel", "units": "kg", "@id": "diesel"},
|
36
|
+
"value": 2,
|
37
|
+
"properties": [{"term": {"@id": "energyContentLowerHeatingValue", }, "value": 4}]
|
38
|
+
}
|
39
|
+
|
40
|
+
electricity_input = {
|
41
|
+
"term": {"termType": "electricity", "units": "kWh", "@id": "electricityGridOil"},
|
42
|
+
"value": 30
|
43
|
+
}
|
44
|
+
|
45
|
+
input_coal_tar_kg = {
|
46
|
+
"term": {"@id": "coalTar", "termType": "fuel", "units": "kg", "name": "Coal tar unknown energy Content"},
|
47
|
+
"value": 5
|
48
|
+
}
|
49
|
+
|
50
|
+
input_crude_oil_kg_property = {
|
51
|
+
"term": {"@id": "conventionalCrudeOil", "termType": "fuel", "units": "kg"},
|
52
|
+
"value": 5,
|
53
|
+
"properties": [{
|
54
|
+
"@type": "Property",
|
55
|
+
"value": 45.8,
|
56
|
+
"term": {"@type": "Term", "@id": "energyContentLowerHeatingValue", "units": "MJ / kg"},
|
57
|
+
}]
|
58
|
+
}
|
59
|
+
|
60
|
+
input_natural_gas_m3 = {
|
61
|
+
"term": {"@id": "naturalGas", "termType": "fuel", "units": "m3"},
|
62
|
+
"value": 5,
|
63
|
+
"properties": [{
|
64
|
+
"@type": "Property",
|
65
|
+
"value": 45.8,
|
66
|
+
"term": {"@type": "Term", "@id": "energyContentLowerHeatingValue", "units": "MJ / kg"},
|
67
|
+
}, {
|
68
|
+
"@type": "Property",
|
69
|
+
"value": 45.8,
|
70
|
+
"term": {"@type": "Term", "@id": "density", "units": "kg / m3"},
|
71
|
+
}]
|
72
|
+
}
|
73
|
+
|
74
|
+
input_nuclear_fuel_kwh = {
|
75
|
+
"term": {"@id": "electricityGridNuclear", "termType": "electricity", "units": "kWh"},
|
76
|
+
"value": 1.3889
|
77
|
+
}
|
44
78
|
|
45
79
|
|
46
80
|
@pytest.mark.parametrize(
|
@@ -57,7 +91,6 @@ input_nuclear_fuel_kwh = {"term": {"@id": "electricityGridNuclear", "termType":
|
|
57
91
|
([electricity_input], True, 1),
|
58
92
|
([electricity_input, electricity_input, electricity_input], True, 1),
|
59
93
|
([input_crude_oil_kg_property], True, 1),
|
60
|
-
([input_crude_oil_kg_no_property], True, 1),
|
61
94
|
([input_natural_gas_m3], True, 1),
|
62
95
|
([input_nuclear_fuel_kwh], True, 1),
|
63
96
|
([input_coal_tar_kg], False, 0),
|
@@ -74,13 +107,13 @@ input_nuclear_fuel_kwh = {"term": {"@id": "electricityGridNuclear", "termType":
|
|
74
107
|
"good electric input => run",
|
75
108
|
"multiple good merg-able electric inputs => run",
|
76
109
|
"good fuel with input property",
|
77
|
-
"good fuel with no input property",
|
78
110
|
"good fuel in m^3",
|
79
111
|
"good nuclear fuel use indicator in kWh",
|
80
112
|
"bad indicator input in kg no property to convert to mj"
|
81
113
|
]
|
82
114
|
)
|
83
|
-
|
115
|
+
@patch('hestia_earth.models.utils.property.download_hestia', return_value={})
|
116
|
+
def test_should_run(mock_download, inputs, expected, num_inputs):
|
84
117
|
with open(f"{fixtures_folder}/cycle.jsonld", encoding='utf-8') as f:
|
85
118
|
cycle = json.load(f)
|
86
119
|
|
@@ -18,31 +18,55 @@ def fake_rounded_indicator(value: float):
|
|
18
18
|
return indicator
|
19
19
|
|
20
20
|
|
21
|
+
methodModelEFV31 = {"@type": "Term", "@id": "environmentalFootprintV3-1"}
|
22
|
+
methodModelFantkeEtAl2016 = {"@type": "Term", "@id": "fantkeEtAl2016"}
|
23
|
+
|
21
24
|
ozone_indicator = {"@type": "Indicator",
|
22
25
|
"term": {"@id": "ozoneDepletionPotential", "termType": "characterisedIndicator"},
|
23
|
-
"value": 0
|
26
|
+
"value": 0,
|
27
|
+
"methodModel": {"@type": "Term", "@id": "edip2003"}}
|
24
28
|
|
29
|
+
other_valid_ozone_indicator = {"@type": "Indicator",
|
30
|
+
"term": {"@id": "ozoneDepletionPotential", "termType": "characterisedIndicator"},
|
31
|
+
"value": 0,
|
32
|
+
"methodModel": {"@type": "Term", "@id": "recipe2016Hierarchist"}}
|
25
33
|
acid_indicator = {
|
26
34
|
"@type": "Indicator",
|
27
35
|
"term": {"@id": "terrestrialAcidificationPotentialAccumulatedExceedance", "termType": "characterisedIndicator"},
|
28
|
-
"value": 0.000420443840380047
|
36
|
+
"value": 0.000420443840380047,
|
37
|
+
"methodModel": {"@type": "Term", "@id": "poschEtAl2008"}
|
38
|
+
}
|
29
39
|
|
30
40
|
bad_indicator_id = {"@type": "Indicator",
|
31
41
|
"term": {"@id": "no_a_real_id", "termType": "characterisedIndicator"},
|
32
|
-
"value": 0.000420443840380047
|
42
|
+
"value": 0.000420443840380047,
|
43
|
+
"methodModel": methodModelEFV31
|
44
|
+
}
|
33
45
|
|
34
46
|
not_pef_indicator = {"@type": "Indicator",
|
35
47
|
"term": {"@id": "gwpStar", "termType": "characterisedIndicator"},
|
36
|
-
"value": 0.000420443840380047
|
48
|
+
"value": 0.000420443840380047,
|
49
|
+
"methodModel": methodModelEFV31
|
50
|
+
}
|
37
51
|
|
38
52
|
bad_indicator_no_val = {"@type": "Indicator",
|
39
53
|
"term": {"@id": "damageToHumanHealthParticulateMatterFormation",
|
40
|
-
"termType": "characterisedIndicator"}
|
54
|
+
"termType": "characterisedIndicator"},
|
55
|
+
"methodModel": methodModelFantkeEtAl2016
|
56
|
+
}
|
41
57
|
|
42
58
|
bad_indicator_bad_val = {"@type": "Indicator",
|
43
59
|
"term": {"@id": "damageToHumanHealthParticulateMatterFormation",
|
44
60
|
"termType": "characterisedIndicator"},
|
45
|
-
"value": None
|
61
|
+
"value": None,
|
62
|
+
"methodModel": methodModelFantkeEtAl2016
|
63
|
+
}
|
64
|
+
|
65
|
+
bad_indicator_no_method_model = {
|
66
|
+
"@type": "Indicator",
|
67
|
+
"term": {"@id": "terrestrialAcidificationPotentialAccumulatedExceedance", "termType": "characterisedIndicator"},
|
68
|
+
"value": 0.000420443840380047
|
69
|
+
}
|
46
70
|
|
47
71
|
|
48
72
|
@mark.parametrize(
|
@@ -53,10 +77,13 @@ bad_indicator_bad_val = {"@type": "Indicator",
|
|
53
77
|
([not_pef_indicator], False, 0),
|
54
78
|
([bad_indicator_no_val], False, 0),
|
55
79
|
([bad_indicator_bad_val], False, 0),
|
80
|
+
([bad_indicator_no_method_model], False, 0),
|
81
|
+
([other_valid_ozone_indicator], False, 0),
|
56
82
|
([ozone_indicator], True, 1),
|
57
83
|
([ozone_indicator, ozone_indicator], False, 2),
|
58
84
|
([ozone_indicator, acid_indicator], True, 2),
|
59
|
-
([
|
85
|
+
([ozone_indicator, other_valid_ozone_indicator], True, 1),
|
86
|
+
([bad_indicator_no_val, acid_indicator], False, 1),
|
60
87
|
],
|
61
88
|
ids=[
|
62
89
|
"No indicators => no run",
|
@@ -64,9 +91,12 @@ bad_indicator_bad_val = {"@type": "Indicator",
|
|
64
91
|
"not_pef_indicator => no run",
|
65
92
|
"bad_indicator_no_val => no run",
|
66
93
|
"bad_indicator_bad_val => no run",
|
67
|
-
"
|
94
|
+
"bad_indicator_no_method_model => no run",
|
95
|
+
"ozone_indicator not pef=> no run",
|
96
|
+
"ozone_indicator pef => run",
|
68
97
|
"2 ozone_indicator => no run",
|
69
98
|
"2 good indicators => run",
|
99
|
+
"2 ozone_indicator different methodModel => run with 1",
|
70
100
|
"one bad one good indicator => no run",
|
71
101
|
]
|
72
102
|
)
|