hestia-earth-models 0.73.7__py3-none-any.whl → 0.74.0__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/aware/scarcityWeightedWaterUse.py +7 -6
- hestia_earth/models/aware2_0/__init__.py +14 -0
- hestia_earth/models/aware2_0/scarcityWeightedWaterUse.py +115 -0
- hestia_earth/models/config/Cycle.json +121 -29
- hestia_earth/models/config/ImpactAssessment.json +240 -200
- hestia_earth/models/config/__init__.py +26 -2
- hestia_earth/models/cycle/animal/input/hestiaAggregatedData.py +2 -2
- hestia_earth/models/cycle/animal/input/properties.py +6 -5
- hestia_earth/models/cycle/animal/milkYield.py +8 -3
- hestia_earth/models/cycle/utils.py +6 -6
- hestia_earth/models/dammgen2009/noxToAirExcreta.py +11 -9
- hestia_earth/models/data/ecoinventV3/__init__.py +8 -26
- hestia_earth/models/ecoalimV9/cycle.py +51 -45
- hestia_earth/models/ecoalimV9/impact_assessment.py +63 -45
- hestia_earth/models/ecoalimV9/utils.py +21 -15
- hestia_earth/models/ecoinventV3/__init__.py +8 -140
- hestia_earth/models/ecoinventV3/cycle.py +140 -0
- hestia_earth/models/ecoinventV3/utils.py +28 -1
- hestia_earth/models/ecoinventV3AndEmberClimate/__init__.py +8 -137
- hestia_earth/models/ecoinventV3AndEmberClimate/cycle.py +144 -0
- hestia_earth/models/emepEea2019/n2OToAirFuelCombustionDirect.py +2 -2
- hestia_earth/models/emepEea2019/utils.py +2 -3
- hestia_earth/models/environmentalFootprintV3_1/environmentalFootprintSingleOverallScore.py +5 -7
- hestia_earth/models/frischknechtEtAl2000/ionisingRadiationKbqU235Eq.py +41 -43
- hestia_earth/models/geospatialDatabase/awareWaterBasinId.py +2 -2
- hestia_earth/models/geospatialDatabase/awareWaterBasinId_v1.py +45 -0
- hestia_earth/models/hestia/default_emissions.py +7 -7
- hestia_earth/models/hestia/default_resourceUse.py +7 -6
- hestia_earth/models/hestia/landCover.py +110 -12
- hestia_earth/models/hestia/seed_emissions.py +7 -3
- hestia_earth/models/hestia/utils.py +1 -0
- hestia_earth/models/hestia/waterSalinity.py +2 -3
- hestia_earth/models/impact_assessment/emissions.py +3 -5
- hestia_earth/models/ipcc2019/biocharOrganicCarbonPerHa.py +9 -3
- hestia_earth/models/ipcc2019/co2ToAirAboveGroundBiomassStockChange.py +1 -5
- hestia_earth/models/ipcc2019/co2ToAirBelowGroundBiomassStockChange.py +1 -5
- hestia_earth/models/ipcc2019/co2ToAirCarbonStockChange_utils.py +1 -33
- hestia_earth/models/ipcc2019/co2ToAirSoilOrganicCarbonStockChange.py +1 -5
- hestia_earth/models/ipcc2019/n2OToAirAquacultureSystemsIndirect.py +44 -0
- hestia_earth/models/ipcc2019/n2OToAirCropResidueBurningIndirect.py +43 -0
- hestia_earth/models/ipcc2019/n2OToAirCropResidueDecompositionIndirect.py +13 -70
- hestia_earth/models/ipcc2019/n2OToAirExcretaIndirect.py +13 -70
- hestia_earth/models/ipcc2019/n2OToAirFuelCombustionIndirect.py +43 -0
- hestia_earth/models/ipcc2019/n2OToAirInorganicFertiliserIndirect.py +13 -70
- hestia_earth/models/ipcc2019/n2OToAirNaturalVegetationBurningIndirect.py +43 -0
- hestia_earth/models/ipcc2019/n2OToAirOrganicFertiliserIndirect.py +13 -70
- hestia_earth/models/ipcc2019/n2OToAirOrganicSoilBurningIndirect.py +43 -0
- hestia_earth/models/ipcc2019/n2OToAirOrganicSoilCultivationIndirect.py +43 -0
- hestia_earth/models/ipcc2019/n2OToAir_indirect_emissions_utils.py +112 -0
- hestia_earth/models/ipcc2019/utils.py +0 -25
- hestia_earth/models/jarvisAndPain1994/n2ToAirExcreta.py +11 -9
- hestia_earth/models/linkedImpactAssessment/emissions.py +25 -16
- hestia_earth/models/linkedImpactAssessment/utils.py +5 -1
- hestia_earth/models/log.py +8 -3
- hestia_earth/models/mocking/search-results.json +1670 -1666
- hestia_earth/models/utils/__init__.py +3 -0
- hestia_earth/models/utils/background_emissions.py +121 -14
- hestia_earth/models/utils/blank_node.py +1 -11
- hestia_earth/models/utils/emission.py +18 -8
- hestia_earth/models/utils/feedipedia.py +2 -2
- hestia_earth/models/utils/impact_assessment.py +4 -6
- hestia_earth/models/utils/indicator.py +8 -1
- hestia_earth/models/utils/lookup.py +30 -18
- hestia_earth/models/utils/productivity.py +1 -1
- hestia_earth/models/version.py +1 -1
- hestia_earth/orchestrator/log.py +8 -3
- hestia_earth/orchestrator/strategies/merge/merge_list.py +41 -54
- {hestia_earth_models-0.73.7.dist-info → hestia_earth_models-0.74.0.dist-info}/METADATA +3 -3
- {hestia_earth_models-0.73.7.dist-info → hestia_earth_models-0.74.0.dist-info}/RECORD +99 -75
- tests/models/aware2_0/__init__.py +0 -0
- tests/models/aware2_0/test_scarcityWeightedWaterUse.py +58 -0
- tests/models/dammgen2009/test_noxToAirExcreta.py +2 -2
- tests/models/ecoalimV9/test_cycle.py +1 -1
- tests/models/ecoalimV9/test_impact_assessment.py +1 -1
- tests/models/ecoinventV3/__init__.py +0 -0
- tests/models/{test_ecoinventV3.py → ecoinventV3/test_cycle.py} +5 -5
- tests/models/ecoinventV3AndEmberClimate/__init__.py +0 -0
- tests/models/{test_ecoinventV3AndEmberClimate.py → ecoinventV3AndEmberClimate/test_cycle.py} +6 -4
- tests/models/environmentalFootprintV3_1/test_environmentalFootprintSingleOverallScore.py +2 -2
- tests/models/frischknechtEtAl2000/test_ionisingRadiationKbqU235Eq.py +18 -27
- tests/models/hestia/test_landCover.py +16 -6
- tests/models/ipcc2019/test_biocharOrganicCarbonPerHa.py +2 -1
- tests/models/ipcc2019/test_n2OToAirAquacultureSystemsIndirect.py +45 -0
- tests/models/ipcc2019/test_n2OToAirCropResidueBurningIndirect.py +45 -0
- tests/models/ipcc2019/test_n2OToAirCropResidueDecompositionIndirect.py +6 -32
- tests/models/ipcc2019/test_n2OToAirExcretaIndirect.py +6 -32
- tests/models/ipcc2019/test_n2OToAirFuelCombustionIndirect.py +45 -0
- tests/models/ipcc2019/test_n2OToAirInorganicFertiliserIndirect.py +6 -32
- tests/models/ipcc2019/test_n2OToAirNaturalVegetationBurningIndirect.py +45 -0
- tests/models/ipcc2019/test_n2OToAirOrganicFertiliserIndirect.py +6 -32
- tests/models/ipcc2019/test_n2OToAirOrganicSoilBurningIndirect.py +45 -0
- tests/models/ipcc2019/test_n2OToAirOrganicSoilCultivationIndirect.py +45 -0
- tests/models/ipcc2019/test_n2OToAir_indirect_emissions_utils.py +19 -0
- tests/models/site/pre_checks/test_cache_geospatialDatabase.py +4 -4
- tests/models/test_config.py +53 -7
- tests/models/utils/test_background_emissions.py +13 -0
- {hestia_earth_models-0.73.7.dist-info → hestia_earth_models-0.74.0.dist-info}/LICENSE +0 -0
- {hestia_earth_models-0.73.7.dist-info → hestia_earth_models-0.74.0.dist-info}/WHEEL +0 -0
- {hestia_earth_models-0.73.7.dist-info → hestia_earth_models-0.74.0.dist-info}/top_level.txt +0 -0
|
@@ -38,8 +38,8 @@ RETURNS = {
|
|
|
38
38
|
}
|
|
39
39
|
LOOKUPS = {
|
|
40
40
|
"@doc": "Different lookup files are used depending on the situation",
|
|
41
|
-
"awareWaterBasinId": "",
|
|
42
|
-
"region-aware-factors": ""
|
|
41
|
+
"awareWaterBasinId": ["YR_IRRI", "YR_NONIRRI", "YR_TOT"],
|
|
42
|
+
"region-aware-factors": ["Agg_CF_irri", "Agg_CF_non_irri", "Agg_CF_unspecified"]
|
|
43
43
|
}
|
|
44
44
|
TERM_ID = 'scarcityWeightedWaterUse'
|
|
45
45
|
AWARE_KEY = 'awareWaterBasinId'
|
|
@@ -48,6 +48,8 @@ IRRIGATED_SITE_TYPES = [
|
|
|
48
48
|
SiteSiteType.GLASS_OR_HIGH_ACCESSIBLE_COVER.value,
|
|
49
49
|
SiteSiteType.PERMANENT_PASTURE.value
|
|
50
50
|
]
|
|
51
|
+
_REGION_LOOKUP = 'region-aware-factors.csv'
|
|
52
|
+
_AWARE_LOOKUP = 'awareWaterBasinId.csv'
|
|
51
53
|
|
|
52
54
|
|
|
53
55
|
def _indicator(value: float):
|
|
@@ -59,19 +61,18 @@ def _indicator(value: float):
|
|
|
59
61
|
def _get_factor_from_basinId(site: dict, aware_id: str):
|
|
60
62
|
lookup_col = 'YR_IRRI' if site.get('siteType') in IRRIGATED_SITE_TYPES else 'YR_NONIRRI'
|
|
61
63
|
value = _get_single_table_value(
|
|
62
|
-
download_lookup(
|
|
64
|
+
download_lookup(_AWARE_LOOKUP), column_name(AWARE_KEY), int(aware_id), column_name(lookup_col)
|
|
63
65
|
)
|
|
64
|
-
debugMissingLookup(
|
|
66
|
+
debugMissingLookup(_AWARE_LOOKUP, AWARE_KEY, aware_id, lookup_col, value, model=MODEL, term=TERM_ID)
|
|
65
67
|
return safe_parse_float(value, default=None)
|
|
66
68
|
|
|
67
69
|
|
|
68
70
|
def _get_factor_from_region(impact_assessment: dict, fresh_water: dict, site: dict):
|
|
69
71
|
region_id = get_region_id(impact_assessment, fresh_water)
|
|
70
72
|
site_type = site.get('siteType')
|
|
71
|
-
lookup_name = 'region-aware-factors.csv'
|
|
72
73
|
lookup_suffix = 'unspecified' if not site_type else ('irri' if site_type in IRRIGATED_SITE_TYPES else 'non_irri')
|
|
73
74
|
column = f"Agg_CF_{lookup_suffix}"
|
|
74
|
-
value = get_region_lookup_value(
|
|
75
|
+
value = get_region_lookup_value(_REGION_LOOKUP, region_id, column, model=MODEL, term=TERM_ID)
|
|
75
76
|
return safe_parse_float(value, default=None)
|
|
76
77
|
|
|
77
78
|
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import sys
|
|
2
|
+
from importlib import import_module
|
|
3
|
+
from os.path import dirname, abspath
|
|
4
|
+
|
|
5
|
+
from hestia_earth.models.utils.blank_node import run_if_required
|
|
6
|
+
|
|
7
|
+
CURRENT_DIR = dirname(abspath(__file__)) + '/'
|
|
8
|
+
sys.path.append(CURRENT_DIR)
|
|
9
|
+
MODEL = 'aware2-0'
|
|
10
|
+
MODEL_FOLDER = MODEL.replace('-', '_')
|
|
11
|
+
PKG = '.'.join(['hestia_earth', 'models', MODEL_FOLDER])
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def run(model: str, data): return run_if_required(MODEL, model, data, import_module(f".{model}", package=PKG))
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
from hestia_earth.schema import SiteSiteType
|
|
2
|
+
from hestia_earth.utils.model import find_term_match
|
|
3
|
+
from hestia_earth.utils.lookup import download_lookup, _get_single_table_value, column_name
|
|
4
|
+
from hestia_earth.utils.tools import safe_parse_float
|
|
5
|
+
|
|
6
|
+
from hestia_earth.models.log import logRequirements, debugMissingLookup, logShouldRun
|
|
7
|
+
from hestia_earth.models.utils import sum_values, multiply_values
|
|
8
|
+
from hestia_earth.models.utils.indicator import _new_indicator
|
|
9
|
+
from hestia_earth.models.utils.impact_assessment import (
|
|
10
|
+
convert_value_from_cycle, get_product, get_site, get_region_id
|
|
11
|
+
)
|
|
12
|
+
from hestia_earth.models.utils.input import sum_input_impacts
|
|
13
|
+
from hestia_earth.models.utils.lookup import get_region_lookup_value
|
|
14
|
+
from . import MODEL
|
|
15
|
+
|
|
16
|
+
REQUIREMENTS = {
|
|
17
|
+
"ImpactAssessment": {
|
|
18
|
+
"site": {
|
|
19
|
+
"@type": "Site",
|
|
20
|
+
"or": {
|
|
21
|
+
"awareWaterBasinId": "",
|
|
22
|
+
"country": {"@type": "Term", "termType": "region"}
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"optional": {
|
|
26
|
+
"emissionsResourceUse": [{
|
|
27
|
+
"@type": "Indicator",
|
|
28
|
+
"term.@id": "freshwaterWithdrawalsDuringCycle",
|
|
29
|
+
"value": ""
|
|
30
|
+
}]
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
RETURNS = {
|
|
35
|
+
"Indicator": [{
|
|
36
|
+
"value": ""
|
|
37
|
+
}]
|
|
38
|
+
}
|
|
39
|
+
LOOKUPS = {
|
|
40
|
+
"@doc": "Different lookup files are used depending on the situation",
|
|
41
|
+
"awareWaterBasinId-2-0": ["CFs_agri", "CFs_nonagri", "CFs_unspecified"],
|
|
42
|
+
"region-aware-2-0-factors": ["CFs_agri", "CFs_nonagri", "CFs_unspecified"]
|
|
43
|
+
}
|
|
44
|
+
TERM_ID = 'scarcityWeightedWaterUse'
|
|
45
|
+
AWARE_KEY = 'awareWaterBasinId'
|
|
46
|
+
AGRI_SITE_TYPES = [
|
|
47
|
+
SiteSiteType.CROPLAND.value,
|
|
48
|
+
SiteSiteType.GLASS_OR_HIGH_ACCESSIBLE_COVER.value,
|
|
49
|
+
SiteSiteType.PERMANENT_PASTURE.value
|
|
50
|
+
]
|
|
51
|
+
_REGION_LOOKUP = 'region-aware-2-0-factors.csv'
|
|
52
|
+
_AWARE_LOOKUP = 'awareWaterBasinId-2-0.csv'
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
def _indicator(value: float):
|
|
56
|
+
indicator = _new_indicator(TERM_ID, MODEL)
|
|
57
|
+
indicator['value'] = value
|
|
58
|
+
return indicator
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
def _lookup_column(site: dict):
|
|
62
|
+
site_type = site.get('siteType')
|
|
63
|
+
return (
|
|
64
|
+
'CFs_unspecified' if not site_type else
|
|
65
|
+
'CFs_agri' if site_type in AGRI_SITE_TYPES else
|
|
66
|
+
'CFs_nonagri'
|
|
67
|
+
)
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
def _get_factor_from_basinId(site: dict, aware_id: str):
|
|
71
|
+
lookup_col = _lookup_column(site)
|
|
72
|
+
lookup = download_lookup(_AWARE_LOOKUP)
|
|
73
|
+
try:
|
|
74
|
+
value = _get_single_table_value(lookup, column_name(AWARE_KEY), int(aware_id), column_name(lookup_col))
|
|
75
|
+
except Exception:
|
|
76
|
+
value = None
|
|
77
|
+
debugMissingLookup(_AWARE_LOOKUP, AWARE_KEY, aware_id, lookup_col, value, model=MODEL, term=TERM_ID)
|
|
78
|
+
return safe_parse_float(value, default=None)
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
def _get_factor_from_region(impact_assessment: dict, fresh_water: dict, site: dict):
|
|
82
|
+
region_id = get_region_id(impact_assessment, fresh_water)
|
|
83
|
+
lookup_col = _lookup_column(site)
|
|
84
|
+
value = get_region_lookup_value(_REGION_LOOKUP, region_id, lookup_col, model=MODEL, term=TERM_ID)
|
|
85
|
+
return safe_parse_float(value, default=None)
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
def run(impact_assessment: dict):
|
|
89
|
+
cycle = impact_assessment.get('cycle', {})
|
|
90
|
+
product = get_product(impact_assessment)
|
|
91
|
+
fresh_water = find_term_match(impact_assessment.get('emissionsResourceUse', []), 'freshwaterWithdrawalsDuringCycle')
|
|
92
|
+
site = get_site(impact_assessment)
|
|
93
|
+
aware_id = site.get(AWARE_KEY)
|
|
94
|
+
factor = (
|
|
95
|
+
_get_factor_from_basinId(site, aware_id) if aware_id else None
|
|
96
|
+
) or _get_factor_from_region(impact_assessment, fresh_water, site)
|
|
97
|
+
inputs_value = convert_value_from_cycle(
|
|
98
|
+
impact_assessment, product, sum_input_impacts(cycle.get('inputs', []), TERM_ID), model=MODEL, term_id=TERM_ID
|
|
99
|
+
)
|
|
100
|
+
|
|
101
|
+
value = sum_values([
|
|
102
|
+
multiply_values([fresh_water.get('value'), factor]),
|
|
103
|
+
inputs_value
|
|
104
|
+
])
|
|
105
|
+
|
|
106
|
+
logRequirements(impact_assessment, model=MODEL, term=TERM_ID,
|
|
107
|
+
fresh_water=fresh_water.get('value'),
|
|
108
|
+
aware_id=aware_id,
|
|
109
|
+
factor=factor,
|
|
110
|
+
inputs_value=inputs_value)
|
|
111
|
+
|
|
112
|
+
should_run = all([value is not None])
|
|
113
|
+
logShouldRun(impact_assessment, MODEL, TERM_ID, should_run)
|
|
114
|
+
|
|
115
|
+
return [_indicator(value)] if should_run else []
|
|
@@ -955,7 +955,7 @@
|
|
|
955
955
|
{
|
|
956
956
|
"key": "emissions",
|
|
957
957
|
"model": "ecoinventV3AndEmberClimate",
|
|
958
|
-
"value": "
|
|
958
|
+
"value": "cycle",
|
|
959
959
|
"runStrategy": "always",
|
|
960
960
|
"mergeStrategy": "list",
|
|
961
961
|
"mergeArgs": {
|
|
@@ -966,7 +966,7 @@
|
|
|
966
966
|
{
|
|
967
967
|
"key": "emissions",
|
|
968
968
|
"model": "ecoinventV3",
|
|
969
|
-
"value": "
|
|
969
|
+
"value": "cycle",
|
|
970
970
|
"runStrategy": "always",
|
|
971
971
|
"mergeStrategy": "list",
|
|
972
972
|
"mergeArgs": {
|
|
@@ -1469,7 +1469,9 @@
|
|
|
1469
1469
|
"replaceThreshold": ["value", 0.01]
|
|
1470
1470
|
},
|
|
1471
1471
|
"stage": 2
|
|
1472
|
-
}
|
|
1472
|
+
}
|
|
1473
|
+
],
|
|
1474
|
+
[
|
|
1473
1475
|
{
|
|
1474
1476
|
"key": "emissions",
|
|
1475
1477
|
"model": "dammgen2009",
|
|
@@ -2080,8 +2082,8 @@
|
|
|
2080
2082
|
[
|
|
2081
2083
|
{
|
|
2082
2084
|
"key": "emissions",
|
|
2083
|
-
"model": "
|
|
2084
|
-
"value": "
|
|
2085
|
+
"model": "pooreNemecek2018",
|
|
2086
|
+
"value": "noxToAirAquacultureSystems",
|
|
2085
2087
|
"runStrategy": "add_blank_node_if_missing",
|
|
2086
2088
|
"runArgs": {
|
|
2087
2089
|
"runNonMeasured": true,
|
|
@@ -2095,8 +2097,8 @@
|
|
|
2095
2097
|
},
|
|
2096
2098
|
{
|
|
2097
2099
|
"key": "emissions",
|
|
2098
|
-
"model": "
|
|
2099
|
-
"value": "
|
|
2100
|
+
"model": "pooreNemecek2018",
|
|
2101
|
+
"value": "nh3ToAirAquacultureSystems",
|
|
2100
2102
|
"runStrategy": "add_blank_node_if_missing",
|
|
2101
2103
|
"runArgs": {
|
|
2102
2104
|
"runNonMeasured": true,
|
|
@@ -2107,24 +2109,11 @@
|
|
|
2107
2109
|
"replaceThreshold": ["value", 0.01]
|
|
2108
2110
|
},
|
|
2109
2111
|
"stage": 2
|
|
2110
|
-
}
|
|
2111
|
-
],
|
|
2112
|
-
{
|
|
2113
|
-
"key": "emissions",
|
|
2114
|
-
"model": "emissionNotRelevant",
|
|
2115
|
-
"value": "all",
|
|
2116
|
-
"runStrategy": "always",
|
|
2117
|
-
"mergeStrategy": "list",
|
|
2118
|
-
"mergeArgs": {
|
|
2119
|
-
"replaceLowerTier": true
|
|
2120
2112
|
},
|
|
2121
|
-
"stage": 2
|
|
2122
|
-
},
|
|
2123
|
-
[
|
|
2124
2113
|
{
|
|
2125
2114
|
"key": "emissions",
|
|
2126
2115
|
"model": "pooreNemecek2018",
|
|
2127
|
-
"value": "
|
|
2116
|
+
"value": "n2ToAirAquacultureSystems",
|
|
2128
2117
|
"runStrategy": "add_blank_node_if_missing",
|
|
2129
2118
|
"runArgs": {
|
|
2130
2119
|
"runNonMeasured": true,
|
|
@@ -2139,7 +2128,7 @@
|
|
|
2139
2128
|
{
|
|
2140
2129
|
"key": "emissions",
|
|
2141
2130
|
"model": "pooreNemecek2018",
|
|
2142
|
-
"value": "
|
|
2131
|
+
"value": "n2OToAirAquacultureSystemsDirect",
|
|
2143
2132
|
"runStrategy": "add_blank_node_if_missing",
|
|
2144
2133
|
"runArgs": {
|
|
2145
2134
|
"runNonMeasured": true,
|
|
@@ -2154,7 +2143,7 @@
|
|
|
2154
2143
|
{
|
|
2155
2144
|
"key": "emissions",
|
|
2156
2145
|
"model": "pooreNemecek2018",
|
|
2157
|
-
"value": "
|
|
2146
|
+
"value": "ch4ToAirAquacultureSystems",
|
|
2158
2147
|
"runStrategy": "add_blank_node_if_missing",
|
|
2159
2148
|
"runArgs": {
|
|
2160
2149
|
"runNonMeasured": true,
|
|
@@ -2168,8 +2157,25 @@
|
|
|
2168
2157
|
},
|
|
2169
2158
|
{
|
|
2170
2159
|
"key": "emissions",
|
|
2171
|
-
"model": "
|
|
2172
|
-
"value": "
|
|
2160
|
+
"model": "hestia",
|
|
2161
|
+
"value": "pToSurfaceWaterAquacultureSystems",
|
|
2162
|
+
"runStrategy": "add_blank_node_if_missing",
|
|
2163
|
+
"runArgs": {
|
|
2164
|
+
"runNonMeasured": true,
|
|
2165
|
+
"runNonAddedTerm": true
|
|
2166
|
+
},
|
|
2167
|
+
"mergeStrategy": "list",
|
|
2168
|
+
"mergeArgs": {
|
|
2169
|
+
"replaceThreshold": ["value", 0.01]
|
|
2170
|
+
},
|
|
2171
|
+
"stage": 2
|
|
2172
|
+
}
|
|
2173
|
+
],
|
|
2174
|
+
[
|
|
2175
|
+
{
|
|
2176
|
+
"key": "emissions",
|
|
2177
|
+
"model": "ipcc2019",
|
|
2178
|
+
"value": "n2OToAirInorganicFertiliserIndirect",
|
|
2173
2179
|
"runStrategy": "add_blank_node_if_missing",
|
|
2174
2180
|
"runArgs": {
|
|
2175
2181
|
"runNonMeasured": true,
|
|
@@ -2183,8 +2189,8 @@
|
|
|
2183
2189
|
},
|
|
2184
2190
|
{
|
|
2185
2191
|
"key": "emissions",
|
|
2186
|
-
"model": "
|
|
2187
|
-
"value": "
|
|
2192
|
+
"model": "ipcc2019",
|
|
2193
|
+
"value": "n2OToAirAquacultureSystemsIndirect",
|
|
2188
2194
|
"runStrategy": "add_blank_node_if_missing",
|
|
2189
2195
|
"runArgs": {
|
|
2190
2196
|
"runNonMeasured": true,
|
|
@@ -2198,8 +2204,83 @@
|
|
|
2198
2204
|
},
|
|
2199
2205
|
{
|
|
2200
2206
|
"key": "emissions",
|
|
2201
|
-
"model": "
|
|
2202
|
-
"value": "
|
|
2207
|
+
"model": "ipcc2019",
|
|
2208
|
+
"value": "n2OToAirCropResidueBurningIndirect",
|
|
2209
|
+
"runStrategy": "add_blank_node_if_missing",
|
|
2210
|
+
"runArgs": {
|
|
2211
|
+
"runNonMeasured": true,
|
|
2212
|
+
"runNonAddedTerm": true
|
|
2213
|
+
},
|
|
2214
|
+
"mergeStrategy": "list",
|
|
2215
|
+
"mergeArgs": {
|
|
2216
|
+
"replaceThreshold": ["value", 0.01]
|
|
2217
|
+
},
|
|
2218
|
+
"stage": 2
|
|
2219
|
+
},
|
|
2220
|
+
{
|
|
2221
|
+
"key": "emissions",
|
|
2222
|
+
"model": "ipcc2019",
|
|
2223
|
+
"value": "n2OToAirFuelCombustionIndirect",
|
|
2224
|
+
"runStrategy": "add_blank_node_if_missing",
|
|
2225
|
+
"runArgs": {
|
|
2226
|
+
"runNonMeasured": true,
|
|
2227
|
+
"runNonAddedTerm": true
|
|
2228
|
+
},
|
|
2229
|
+
"mergeStrategy": "list",
|
|
2230
|
+
"mergeArgs": {
|
|
2231
|
+
"replaceThreshold": ["value", 0.01]
|
|
2232
|
+
},
|
|
2233
|
+
"stage": 2
|
|
2234
|
+
},
|
|
2235
|
+
{
|
|
2236
|
+
"key": "emissions",
|
|
2237
|
+
"model": "ipcc2019",
|
|
2238
|
+
"value": "n2OToAirNaturalVegetationBurningIndirect",
|
|
2239
|
+
"runStrategy": "add_blank_node_if_missing",
|
|
2240
|
+
"runArgs": {
|
|
2241
|
+
"runNonMeasured": true,
|
|
2242
|
+
"runNonAddedTerm": true
|
|
2243
|
+
},
|
|
2244
|
+
"mergeStrategy": "list",
|
|
2245
|
+
"mergeArgs": {
|
|
2246
|
+
"replaceThreshold": ["value", 0.01]
|
|
2247
|
+
},
|
|
2248
|
+
"stage": 2
|
|
2249
|
+
},
|
|
2250
|
+
{
|
|
2251
|
+
"key": "emissions",
|
|
2252
|
+
"model": "ipcc2019",
|
|
2253
|
+
"value": "n2OToAirOrganicSoilBurningIndirect",
|
|
2254
|
+
"runStrategy": "add_blank_node_if_missing",
|
|
2255
|
+
"runArgs": {
|
|
2256
|
+
"runNonMeasured": true,
|
|
2257
|
+
"runNonAddedTerm": true
|
|
2258
|
+
},
|
|
2259
|
+
"mergeStrategy": "list",
|
|
2260
|
+
"mergeArgs": {
|
|
2261
|
+
"replaceThreshold": ["value", 0.01]
|
|
2262
|
+
},
|
|
2263
|
+
"stage": 2
|
|
2264
|
+
},
|
|
2265
|
+
{
|
|
2266
|
+
"key": "emissions",
|
|
2267
|
+
"model": "ipcc2019",
|
|
2268
|
+
"value": "n2OToAirOrganicSoilCultivationIndirect",
|
|
2269
|
+
"runStrategy": "add_blank_node_if_missing",
|
|
2270
|
+
"runArgs": {
|
|
2271
|
+
"runNonMeasured": true,
|
|
2272
|
+
"runNonAddedTerm": true
|
|
2273
|
+
},
|
|
2274
|
+
"mergeStrategy": "list",
|
|
2275
|
+
"mergeArgs": {
|
|
2276
|
+
"replaceThreshold": ["value", 0.01]
|
|
2277
|
+
},
|
|
2278
|
+
"stage": 2
|
|
2279
|
+
},
|
|
2280
|
+
{
|
|
2281
|
+
"key": "emissions",
|
|
2282
|
+
"model": "jarvisAndPain1994",
|
|
2283
|
+
"value": "n2ToAirExcreta",
|
|
2203
2284
|
"runStrategy": "add_blank_node_if_missing",
|
|
2204
2285
|
"runArgs": {
|
|
2205
2286
|
"runNonMeasured": true,
|
|
@@ -2212,6 +2293,17 @@
|
|
|
2212
2293
|
"stage": 2
|
|
2213
2294
|
}
|
|
2214
2295
|
],
|
|
2296
|
+
{
|
|
2297
|
+
"key": "emissions",
|
|
2298
|
+
"model": "emissionNotRelevant",
|
|
2299
|
+
"value": "all",
|
|
2300
|
+
"runStrategy": "always",
|
|
2301
|
+
"mergeStrategy": "list",
|
|
2302
|
+
"mergeArgs": {
|
|
2303
|
+
"replaceLowerTier": true
|
|
2304
|
+
},
|
|
2305
|
+
"stage": 2
|
|
2306
|
+
},
|
|
2215
2307
|
{
|
|
2216
2308
|
"key": "products",
|
|
2217
2309
|
"model": "transformation",
|