hestia-earth-models 0.65.2__py3-none-any.whl → 0.65.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 (22) hide show
  1. hestia_earth/models/agribalyse2016/fuelElectricity.py +2 -12
  2. hestia_earth/models/cache_sites.py +2 -0
  3. hestia_earth/models/cycle/completeness/__init__.py +1 -1
  4. hestia_earth/models/emepEea2019/nh3ToAirInorganicFertiliser.py +1 -1
  5. hestia_earth/models/hestia/seed_emissions.py +2 -7
  6. hestia_earth/models/ipcc2019/croppingDuration.py +5 -0
  7. hestia_earth/models/linkedImpactAssessment/freshwaterWithdrawalsInputsProduction.py +2 -1
  8. hestia_earth/models/linkedImpactAssessment/landOccupationInputsProduction.py +1 -0
  9. hestia_earth/models/linkedImpactAssessment/landTransformation100YearAverageInputsProduction.py +1 -0
  10. hestia_earth/models/linkedImpactAssessment/landTransformation20YearAverageInputsProduction.py +1 -0
  11. hestia_earth/models/linkedImpactAssessment/utils.py +22 -19
  12. hestia_earth/models/mocking/search-results.json +139 -139
  13. hestia_earth/models/site/management.py +2 -2
  14. hestia_earth/models/utils/__init__.py +9 -0
  15. hestia_earth/models/utils/ecoClimateZone.py +1 -4
  16. hestia_earth/models/utils/lookup.py +8 -2
  17. hestia_earth/models/version.py +1 -1
  18. {hestia_earth_models-0.65.2.dist-info → hestia_earth_models-0.65.4.dist-info}/METADATA +1 -1
  19. {hestia_earth_models-0.65.2.dist-info → hestia_earth_models-0.65.4.dist-info}/RECORD +22 -22
  20. {hestia_earth_models-0.65.2.dist-info → hestia_earth_models-0.65.4.dist-info}/LICENSE +0 -0
  21. {hestia_earth_models-0.65.2.dist-info → hestia_earth_models-0.65.4.dist-info}/WHEEL +0 -0
  22. {hestia_earth_models-0.65.2.dist-info → hestia_earth_models-0.65.4.dist-info}/top_level.txt +0 -0
@@ -3,12 +3,12 @@ Fuel and Electricity
3
3
 
4
4
  This model calculates fuel and electricity data from the number of hours each machine is operated for using.
5
5
  """
6
- from functools import reduce
7
6
  from hestia_earth.schema import TermTermType
8
7
  from hestia_earth.utils.model import filter_list_term_type
9
8
  from hestia_earth.utils.tools import flatten, list_sum, non_empty_list
10
9
 
11
10
  from hestia_earth.models.log import debugValues, logRequirements, logShouldRun, log_as_table
11
+ from hestia_earth.models.utils import group_by
12
12
  from hestia_earth.models.utils.term import get_lookup_value
13
13
  from hestia_earth.models.utils.input import _new_input
14
14
  from . import MODEL
@@ -68,16 +68,6 @@ def _run_operation(cycle: dict):
68
68
  return exec
69
69
 
70
70
 
71
- def _group_operations(operations: list):
72
- def grouper(group: dict, operation: dict):
73
- input_term_id = operation.get('input').get('id')
74
- group[input_term_id] = group.get(input_term_id, [])
75
- group[input_term_id].append(operation)
76
- return group
77
-
78
- return reduce(grouper, operations, {})
79
-
80
-
81
71
  def _should_run_operation(cycle: dict):
82
72
  def exec(practice: dict):
83
73
  term = practice.get('term', {})
@@ -120,5 +110,5 @@ def _should_run(cycle: dict):
120
110
  def run(cycle: dict):
121
111
  should_run, operations = _should_run(cycle)
122
112
  # group operations by input to show logs as table
123
- grouped_operations = _group_operations(operations)
113
+ grouped_operations = group_by(operations, ['input.id'])
124
114
  return flatten(map(_run_operation(cycle), grouped_operations.values())) if should_run else []
@@ -4,6 +4,7 @@ from pydash.objects import merge
4
4
  from hestia_earth.utils.api import download_hestia
5
5
  from hestia_earth.utils.tools import flatten
6
6
 
7
+ from .log import logger
7
8
  from .utils import CACHE_KEY, cached_value
8
9
  from .utils.site import CACHE_YEARS_KEY
9
10
  from .site.pre_checks.cache_geospatialDatabase import (
@@ -146,6 +147,7 @@ def run(sites: list, years: list = None, include_region: bool = False):
146
147
  batches = range(0, len(unique_years), batch_size)
147
148
 
148
149
  for batch_index in batches:
150
+ logger.info(f"Processing sites in batch {batch_index + 1} of {len(batches)}...")
149
151
  sub_years = unique_years[batch_index:batch_index + batch_size]
150
152
  sites = _run(sites, sub_years, include_region, years_only=True)
151
153
 
@@ -31,7 +31,7 @@ def _run_model(model, cycle: dict):
31
31
 
32
32
  def _run(cycle: dict):
33
33
  values = non_empty_list([_run_model(model, cycle) for model in MODELS])
34
- value = reduce(lambda prev, curr: {**prev, **curr}, values, cycle.get('completeness', {}))
34
+ value = reduce(lambda prev, curr: prev | curr, values, cycle.get('completeness', {}))
35
35
  keys = ','.join([next(iter(val)) for val in values])
36
36
  debugValues(cycle, model=MODEL, keys=keys)
37
37
  return value if len(values) > 0 else None
@@ -78,7 +78,7 @@ def _get_groupings():
78
78
 
79
79
  def get_grouping(groupings: dict, term_id: str):
80
80
  grouping = get_term_lookup(term_id, 'fertGroupingNitrogen')
81
- return {**groupings, **({grouping: term_id} if len(grouping) > 0 else {})}
81
+ return groupings | ({grouping: term_id} if len(grouping) > 0 else {})
82
82
 
83
83
  return reduce(get_grouping, term_ids, {})
84
84
 
@@ -19,7 +19,7 @@ from hestia_earth.utils.tools import non_empty_list, flatten, list_sum, safe_par
19
19
  from hestia_earth.utils.emission import cycle_emissions_in_system_boundary
20
20
 
21
21
  from hestia_earth.models.log import logRequirements, logShouldRun, log_as_table
22
- from hestia_earth.models.utils import _omit
22
+ from hestia_earth.models.utils import _omit, group_by
23
23
  from hestia_earth.models.utils.emission import _new_emission
24
24
  from hestia_earth.models.utils.site import valid_site_type
25
25
  from hestia_earth.models.utils.cycle import cycle_end_year
@@ -165,12 +165,7 @@ def _yield(country_id: str, end_year: int, product: dict):
165
165
 
166
166
 
167
167
  def _group_seed_inputs(inputs: list):
168
- def _group_by(group: dict, input: dict):
169
- term_id = input.get('term', {}).get('@id')
170
- group[term_id] = group.get(term_id, []) + [input]
171
- return group
172
-
173
- grouped_inputs = reduce(_group_by, inputs, {})
168
+ grouped_inputs = group_by(inputs, ['term.@id'])
174
169
  return [
175
170
  inputs[0] | {'value': flatten([v.get('value') for v in inputs])}
176
171
  for inputs in grouped_inputs.values()
@@ -1,3 +1,8 @@
1
+ """
2
+ `croppingDuration` can be added by the uploader for all crops, however the model `IPCC (2019)` will only run for
3
+ `riceGrainInHusk` or `ricePlantFlooded`.
4
+ The model will only run for rice crops as this is the only crop which requires the value for emission recalculations.
5
+ """
1
6
  from hestia_earth.schema import PracticeStatsDefinition
2
7
  from hestia_earth.utils.lookup import download_lookup, get_table_value, column_name
3
8
  from hestia_earth.utils.tools import safe_parse_float
@@ -30,7 +30,8 @@ REQUIREMENTS = {
30
30
  }
31
31
  RETURNS = {
32
32
  "Indicator": [{
33
- "value": ""
33
+ "value": "",
34
+ "inputs": ""
34
35
  }]
35
36
  }
36
37
  TERM_ID = 'freshwaterWithdrawalsInputsProduction'
@@ -31,6 +31,7 @@ REQUIREMENTS = {
31
31
  RETURNS = {
32
32
  "Indicator": [{
33
33
  "value": "",
34
+ "inputs": "",
34
35
  "landCover": ""
35
36
  }]
36
37
  }
@@ -31,6 +31,7 @@ REQUIREMENTS = {
31
31
  RETURNS = {
32
32
  "Indicator": [{
33
33
  "value": "",
34
+ "inputs": "",
34
35
  "landCover": "",
35
36
  "previousLandCover": ""
36
37
  }]
@@ -31,6 +31,7 @@ REQUIREMENTS = {
31
31
  RETURNS = {
32
32
  "Indicator": [{
33
33
  "value": "",
34
+ "inputs": "",
34
35
  "landCover": "",
35
36
  "previousLandCover": ""
36
37
  }]
@@ -1,43 +1,42 @@
1
- from functools import reduce
2
1
  from hestia_earth.utils.tools import non_empty_list, flatten, list_sum
3
2
 
4
- from hestia_earth.models.log import log_as_table, logRequirements, logShouldRun
5
- from hestia_earth.models.utils import sum_values, _include
3
+ from hestia_earth.models.log import log_as_table, debugValues, logRequirements, logShouldRun
4
+ from hestia_earth.models.utils import group_by, sum_values, _include
6
5
  from hestia_earth.models.utils.indicator import _new_indicator
7
6
  from hestia_earth.models.utils.impact_assessment import get_product, convert_value_from_cycle
8
7
  from hestia_earth.models.utils.input import load_impacts
9
8
  from . import MODEL
10
9
 
11
10
 
12
- def _indicator(term_id: str, value: float):
11
+ def _indicator(term_id: str, value: float, input: dict):
13
12
  indicator = _new_indicator(term_id, MODEL)
14
13
  indicator['value'] = value
14
+ indicator['inputs'] = [input]
15
15
  return indicator
16
16
 
17
17
 
18
- def _run_indicators(product: dict, term_id: str):
18
+ def _run_indicators(impact_assessment: dict, product: dict, term_id: str):
19
19
  def run(values: list):
20
+ input = values[0].get('input').get('term', {})
20
21
  indicator = values[0].get('indicator')
21
22
  values_from_cycle = non_empty_list([
22
23
  list_sum(value.get('input').get('value')) * value.get('indicator').get('value')
23
24
  for value in values
24
25
  ])
25
26
  value = convert_value_from_cycle(product, sum_values(values_from_cycle), model=MODEL, term_id=term_id)
27
+
28
+ # show values per input in the logs
29
+ debugValues(impact_assessment, model=MODEL, term=term_id,
30
+ value=value,
31
+ coefficient=1,
32
+ input=input.get('@id'))
33
+
26
34
  return (
27
- _indicator(term_id, value) | _include(indicator, ['landCover', 'previousLandCover'])
35
+ _indicator(term_id, value, input) | _include(indicator, ['landCover', 'previousLandCover'])
28
36
  ) if value is not None else None
29
37
  return run
30
38
 
31
39
 
32
- def _group_indicator(group: dict, value: dict):
33
- group_key = ';'.join(non_empty_list([
34
- value.get('indicator').get('landCover', {}).get('@id'),
35
- value.get('indicator').get('previousLandCover', {}).get('@id')
36
- ]))
37
- group[group_key] = group.get(group_key, []) + [value]
38
- return group
39
-
40
-
41
40
  def _run_inputs_production(impact_assessment: dict, product: dict, term_id: str):
42
41
  cycle = impact_assessment.get('cycle', {})
43
42
 
@@ -61,11 +60,13 @@ def _run_inputs_production(impact_assessment: dict, product: dict, term_id: str)
61
60
  value
62
61
  for value in all_indicators
63
62
  if all([
64
- value.get('indicator').get('value', -1) > 0,
65
- list_sum(value.get('input').get('value', [-1]), 0) > 0
63
+ (value.get('indicator').get('value') or -1) > 0,
64
+ (list_sum(value.get('input').get('value')) or -1) > 0
66
65
  ])
67
66
  ]
68
- grouped_indicators = reduce(_group_indicator, valid_indicators, {})
67
+ grouped_indicators = group_by(valid_indicators, [
68
+ 'input.term.@id', 'indicator.landCover.@id', 'indicator.previousLandCover.@id'
69
+ ])
69
70
  has_indicators = bool(valid_indicators)
70
71
 
71
72
  logRequirements(impact_assessment, model=MODEL, term=term_id,
@@ -82,7 +83,9 @@ def _run_inputs_production(impact_assessment: dict, product: dict, term_id: str)
82
83
  should_run = all([has_indicators])
83
84
  logShouldRun(impact_assessment, MODEL, term_id, should_run)
84
85
 
85
- return non_empty_list(flatten(map(_run_indicators(product, term_id), grouped_indicators.values())))
86
+ return non_empty_list(flatten(
87
+ map(_run_indicators(impact_assessment, product, term_id), grouped_indicators.values())
88
+ ))
86
89
 
87
90
 
88
91
  def _should_run_inputs_production(impact_assessment: dict, term_id: str):
@@ -171,443 +171,443 @@
171
171
  },
172
172
  {
173
173
  "@type": "Term",
174
- "@id": "trichlorofluoromethaneToAirIndustrialProcesses"
174
+ "@id": "noxToAirNaturalVegetationBurning"
175
175
  },
176
176
  {
177
177
  "@type": "Term",
178
- "@id": "chloropentafluoroethaneToAirInputsProduction"
178
+ "@id": "nToSurfaceWaterInputsProduction"
179
179
  },
180
180
  {
181
181
  "@type": "Term",
182
- "@id": "po43ToSurfaceWaterInputsProduction"
182
+ "@id": "carbonTetrachlorideToAirInputsProduction"
183
183
  },
184
184
  {
185
185
  "@type": "Term",
186
- "@id": "nitriteToAirInputsProduction"
186
+ "@id": "no3ToAirInputsProduction"
187
187
  },
188
188
  {
189
189
  "@type": "Term",
190
- "@id": "pm25ToAirAnimalHousing"
190
+ "@id": "chlorodifluoromethaneToAirInputsProduction"
191
191
  },
192
192
  {
193
193
  "@type": "Term",
194
- "@id": "12DibromotetrafluoroethaneToAirIndustrialProcesses"
194
+ "@id": "no3ToSurfaceWaterExcreta"
195
195
  },
196
196
  {
197
197
  "@type": "Term",
198
- "@id": "22Dichloro111TrifluoroethaneToAirInputsProduction"
198
+ "@id": "dichlorotetrafluoroethaneToAirIndustrialProcesses"
199
199
  },
200
200
  {
201
201
  "@type": "Term",
202
- "@id": "33Dichloro11122PentafluoropropaneToAirIndustrialProcesses"
202
+ "@id": "so2ToAirFuelCombustion"
203
203
  },
204
204
  {
205
205
  "@type": "Term",
206
- "@id": "po43ToSurfaceWaterSoilFlux"
206
+ "@id": "pm10ToAirFuelCombustion"
207
207
  },
208
208
  {
209
209
  "@type": "Term",
210
- "@id": "22Dichloro111TrifluoroethaneToAirIndustrialProcesses"
210
+ "@id": "soxToAirIndustrialProcesses"
211
211
  },
212
212
  {
213
213
  "@type": "Term",
214
- "@id": "noToAirWasteTreatment"
214
+ "@id": "tefluraneToAirInputsProduction"
215
215
  },
216
216
  {
217
217
  "@type": "Term",
218
- "@id": "nmvocToAirAnimalHousing"
218
+ "@id": "no3ToGroundwaterWasteTreatment"
219
219
  },
220
220
  {
221
221
  "@type": "Term",
222
- "@id": "pesticideToWaterPesticideApplication"
222
+ "@id": "nh4ToGroundwaterIndustrialProcesses"
223
223
  },
224
224
  {
225
225
  "@type": "Term",
226
- "@id": "so2ToAirIndustrialProcesses"
226
+ "@id": "sf6ToAirIndustrialProcesses"
227
227
  },
228
228
  {
229
229
  "@type": "Term",
230
- "@id": "no3ToAirIndustrialProcesses"
230
+ "@id": "noToAirIndustrialProcesses"
231
231
  },
232
232
  {
233
233
  "@type": "Term",
234
- "@id": "pesticideToWaterInputsProduction"
234
+ "@id": "no3ToGroundwaterExcreta"
235
235
  },
236
236
  {
237
237
  "@type": "Term",
238
- "@id": "nmvocToAirExcreta"
238
+ "@id": "noToAirOrganicFertiliser"
239
239
  },
240
240
  {
241
241
  "@type": "Term",
242
- "@id": "nmvocToAirSilageStorage"
242
+ "@id": "nmvocToAirFuelCombustion"
243
243
  },
244
244
  {
245
245
  "@type": "Term",
246
- "@id": "n2OToAirCropResidueDecompositionDirect"
246
+ "@id": "pToSurfaceWaterExcreta"
247
247
  },
248
248
  {
249
249
  "@type": "Term",
250
- "@id": "so3ToAirIndustrialProcesses"
250
+ "@id": "nh3ToAirNaturalVegetationBurning"
251
251
  },
252
252
  {
253
253
  "@type": "Term",
254
- "@id": "pesticideToHarvestedCropInputsProduction"
254
+ "@id": "no3ToGroundwaterCropResidueDecomposition"
255
255
  },
256
256
  {
257
257
  "@type": "Term",
258
- "@id": "nh4ToGroundwaterOrganicFertiliser"
258
+ "@id": "1Chloro11DifluoroethaneToAirIndustrialProcesses"
259
259
  },
260
260
  {
261
261
  "@type": "Term",
262
- "@id": "pToGroundwaterSoilFlux"
262
+ "@id": "noxToAirAquacultureSystems"
263
263
  },
264
264
  {
265
265
  "@type": "Term",
266
- "@id": "dibromodifluoromethaneToAirInputsProduction"
266
+ "@id": "no2ToAirInputsProduction"
267
267
  },
268
268
  {
269
269
  "@type": "Term",
270
- "@id": "noxToAirInorganicFertiliser"
270
+ "@id": "13Dichloro11223PentafluoropropaneToAirIndustrialProcesses"
271
271
  },
272
272
  {
273
273
  "@type": "Term",
274
- "@id": "bromomethaneToAirIndustrialProcesses"
274
+ "@id": "hcfc124ToAirInputsProduction"
275
275
  },
276
276
  {
277
277
  "@type": "Term",
278
- "@id": "bromomethaneToAirInputsProduction"
278
+ "@id": "pToSurfaceWaterIndustrialProcesses"
279
279
  },
280
280
  {
281
281
  "@type": "Term",
282
- "@id": "pToSurfaceWaterSoilFlux"
282
+ "@id": "noxToAirCropResidueBurning"
283
283
  },
284
284
  {
285
285
  "@type": "Term",
286
- "@id": "nh3ToAirInputsProduction"
286
+ "@id": "nh4ToSurfaceWaterAquacultureSystems"
287
287
  },
288
288
  {
289
289
  "@type": "Term",
290
- "@id": "noxToAirFuelCombustion"
290
+ "@id": "n2OToAirOrganicSoilCultivationIndirect"
291
291
  },
292
292
  {
293
293
  "@type": "Term",
294
- "@id": "co2ToAirSoilOrganicCarbonStockChangeLandUseChange"
294
+ "@id": "no3ToSurfaceWaterIndustrialProcesses"
295
295
  },
296
296
  {
297
297
  "@type": "Term",
298
- "@id": "ch4ToAirIndustrialProcessesNonFossil"
298
+ "@id": "nErosionSoilFlux"
299
299
  },
300
300
  {
301
301
  "@type": "Term",
302
- "@id": "co2ToAirSoilInorganicCarbonStockChangeLandUseChange"
302
+ "@id": "n2OToAirOrganicSoilCultivationDirect"
303
303
  },
304
304
  {
305
305
  "@type": "Term",
306
- "@id": "co2ToAirSoilFlux"
306
+ "@id": "n2OToAirSoilFlux"
307
307
  },
308
308
  {
309
309
  "@type": "Term",
310
- "@id": "n2ToAirOrganicFertiliser"
310
+ "@id": "nh4ToGroundwaterWasteTreatment"
311
311
  },
312
312
  {
313
313
  "@type": "Term",
314
- "@id": "ch4ToAirOrganicSoilCultivation"
314
+ "@id": "no3ToGroundwaterSoilFlux"
315
315
  },
316
316
  {
317
317
  "@type": "Term",
318
- "@id": "ch4ToAirWasteTreatment"
318
+ "@id": "n2ToAirAquacultureSystems"
319
319
  },
320
320
  {
321
321
  "@type": "Term",
322
- "@id": "ch4ToAirFuelCombustion"
322
+ "@id": "nh3ToAirOrganicSoilBurning"
323
323
  },
324
324
  {
325
325
  "@type": "Term",
326
- "@id": "n2ToAirExcreta"
326
+ "@id": "noxToAirOrganicFertiliser"
327
327
  },
328
328
  {
329
329
  "@type": "Term",
330
- "@id": "co2ToAirAboveGroundBiomassStockChangeLandUseChange"
330
+ "@id": "pesticideToAirPesticideApplication"
331
331
  },
332
332
  {
333
333
  "@type": "Term",
334
- "@id": "n2OToAirCropResidueBurningIndirect"
334
+ "@id": "nh3ToAirIndustrialProcesses"
335
335
  },
336
336
  {
337
337
  "@type": "Term",
338
- "@id": "co2ToAirDeadOrganicMatterStockChangeLandUseChange"
338
+ "@id": "no2ToAirIndustrialProcesses"
339
339
  },
340
340
  {
341
341
  "@type": "Term",
342
- "@id": "nh3ToAirFuelCombustion"
342
+ "@id": "tspToAirAnimalHousing"
343
343
  },
344
344
  {
345
345
  "@type": "Term",
346
- "@id": "noToAirSoilFlux"
346
+ "@id": "nh4ToAirInputsProduction"
347
347
  },
348
348
  {
349
349
  "@type": "Term",
350
- "@id": "co2ToAirSoilOrganicCarbonStockChangeManagementChange"
350
+ "@id": "n2OToAirOrganicSoilBurningIndirect"
351
351
  },
352
352
  {
353
353
  "@type": "Term",
354
- "@id": "noxToAirOrganicSoilCultivation"
354
+ "@id": "1112TetrafluoroethaneToAirInputsProduction"
355
355
  },
356
356
  {
357
357
  "@type": "Term",
358
- "@id": "n2OToAirFuelCombustionDirect"
358
+ "@id": "ionisingCompoundsToAirInputsProduction"
359
359
  },
360
360
  {
361
361
  "@type": "Term",
362
- "@id": "nh4ToGroundwaterInorganicFertiliser"
362
+ "@id": "n2OToAirAquacultureSystemsDirect"
363
363
  },
364
364
  {
365
365
  "@type": "Term",
366
- "@id": "noxToAirCropResidueDecomposition"
366
+ "@id": "ch4ToAirExcreta"
367
367
  },
368
368
  {
369
369
  "@type": "Term",
370
- "@id": "nToSurfaceWaterAquacultureSystems"
370
+ "@id": "n2ToAirSoilFlux"
371
371
  },
372
372
  {
373
373
  "@type": "Term",
374
- "@id": "noToAirAquacultureSystems"
374
+ "@id": "coToAirInputsProduction"
375
375
  },
376
376
  {
377
377
  "@type": "Term",
378
- "@id": "n2OToAirInputsProduction"
378
+ "@id": "ch4ToAirSoilFlux"
379
379
  },
380
380
  {
381
381
  "@type": "Term",
382
- "@id": "n2OToAirExcretaDirect"
382
+ "@id": "co2ToAirSoilInorganicCarbonStockChangeManagementChange"
383
383
  },
384
384
  {
385
385
  "@type": "Term",
386
- "@id": "1Chloro11DifluoroethaneToAirInputsProduction"
386
+ "@id": "n2OToAirBackgroundSoilFluxDirect"
387
387
  },
388
388
  {
389
389
  "@type": "Term",
390
- "@id": "112TrichlorotrifluoroethaneToAirIndustrialProcesses"
390
+ "@id": "coToAirFuelCombustion"
391
391
  },
392
392
  {
393
393
  "@type": "Term",
394
- "@id": "noxToAirNaturalVegetationBurning"
394
+ "@id": "trichlorofluoromethaneToAirIndustrialProcesses"
395
395
  },
396
396
  {
397
397
  "@type": "Term",
398
- "@id": "nToSurfaceWaterInputsProduction"
398
+ "@id": "chloropentafluoroethaneToAirInputsProduction"
399
399
  },
400
400
  {
401
401
  "@type": "Term",
402
- "@id": "carbonTetrachlorideToAirInputsProduction"
402
+ "@id": "po43ToSurfaceWaterInputsProduction"
403
403
  },
404
404
  {
405
405
  "@type": "Term",
406
- "@id": "no3ToAirInputsProduction"
406
+ "@id": "nitriteToAirInputsProduction"
407
407
  },
408
408
  {
409
409
  "@type": "Term",
410
- "@id": "chlorodifluoromethaneToAirInputsProduction"
410
+ "@id": "pm25ToAirAnimalHousing"
411
411
  },
412
412
  {
413
413
  "@type": "Term",
414
- "@id": "no3ToSurfaceWaterExcreta"
414
+ "@id": "12DibromotetrafluoroethaneToAirIndustrialProcesses"
415
415
  },
416
416
  {
417
417
  "@type": "Term",
418
- "@id": "dichlorotetrafluoroethaneToAirIndustrialProcesses"
418
+ "@id": "22Dichloro111TrifluoroethaneToAirInputsProduction"
419
419
  },
420
420
  {
421
421
  "@type": "Term",
422
- "@id": "so2ToAirFuelCombustion"
422
+ "@id": "33Dichloro11122PentafluoropropaneToAirIndustrialProcesses"
423
423
  },
424
424
  {
425
425
  "@type": "Term",
426
- "@id": "pm10ToAirFuelCombustion"
426
+ "@id": "po43ToSurfaceWaterSoilFlux"
427
427
  },
428
428
  {
429
429
  "@type": "Term",
430
- "@id": "soxToAirIndustrialProcesses"
430
+ "@id": "22Dichloro111TrifluoroethaneToAirIndustrialProcesses"
431
431
  },
432
432
  {
433
433
  "@type": "Term",
434
- "@id": "tefluraneToAirInputsProduction"
434
+ "@id": "noToAirWasteTreatment"
435
435
  },
436
436
  {
437
437
  "@type": "Term",
438
- "@id": "no3ToGroundwaterWasteTreatment"
438
+ "@id": "nmvocToAirAnimalHousing"
439
439
  },
440
440
  {
441
441
  "@type": "Term",
442
- "@id": "nh4ToGroundwaterIndustrialProcesses"
442
+ "@id": "pesticideToWaterPesticideApplication"
443
443
  },
444
444
  {
445
445
  "@type": "Term",
446
- "@id": "sf6ToAirIndustrialProcesses"
446
+ "@id": "so2ToAirIndustrialProcesses"
447
447
  },
448
448
  {
449
449
  "@type": "Term",
450
- "@id": "noToAirIndustrialProcesses"
450
+ "@id": "no3ToAirIndustrialProcesses"
451
451
  },
452
452
  {
453
453
  "@type": "Term",
454
- "@id": "no3ToGroundwaterExcreta"
454
+ "@id": "pesticideToWaterInputsProduction"
455
455
  },
456
456
  {
457
457
  "@type": "Term",
458
- "@id": "noToAirOrganicFertiliser"
458
+ "@id": "nmvocToAirExcreta"
459
459
  },
460
460
  {
461
461
  "@type": "Term",
462
- "@id": "nmvocToAirFuelCombustion"
462
+ "@id": "nmvocToAirSilageStorage"
463
463
  },
464
464
  {
465
465
  "@type": "Term",
466
- "@id": "pToSurfaceWaterExcreta"
466
+ "@id": "n2OToAirCropResidueDecompositionDirect"
467
467
  },
468
468
  {
469
469
  "@type": "Term",
470
- "@id": "nh3ToAirNaturalVegetationBurning"
470
+ "@id": "so3ToAirIndustrialProcesses"
471
471
  },
472
472
  {
473
473
  "@type": "Term",
474
- "@id": "no3ToGroundwaterCropResidueDecomposition"
474
+ "@id": "pesticideToHarvestedCropInputsProduction"
475
475
  },
476
476
  {
477
477
  "@type": "Term",
478
- "@id": "1Chloro11DifluoroethaneToAirIndustrialProcesses"
478
+ "@id": "nh4ToGroundwaterOrganicFertiliser"
479
479
  },
480
480
  {
481
481
  "@type": "Term",
482
- "@id": "noxToAirAquacultureSystems"
482
+ "@id": "pToGroundwaterSoilFlux"
483
483
  },
484
484
  {
485
485
  "@type": "Term",
486
- "@id": "no2ToAirInputsProduction"
486
+ "@id": "dibromodifluoromethaneToAirInputsProduction"
487
487
  },
488
488
  {
489
489
  "@type": "Term",
490
- "@id": "13Dichloro11223PentafluoropropaneToAirIndustrialProcesses"
490
+ "@id": "noxToAirInorganicFertiliser"
491
491
  },
492
492
  {
493
493
  "@type": "Term",
494
- "@id": "hcfc124ToAirInputsProduction"
494
+ "@id": "bromomethaneToAirIndustrialProcesses"
495
495
  },
496
496
  {
497
497
  "@type": "Term",
498
- "@id": "pToSurfaceWaterIndustrialProcesses"
498
+ "@id": "bromomethaneToAirInputsProduction"
499
499
  },
500
500
  {
501
501
  "@type": "Term",
502
- "@id": "noxToAirCropResidueBurning"
502
+ "@id": "pToSurfaceWaterSoilFlux"
503
503
  },
504
504
  {
505
505
  "@type": "Term",
506
- "@id": "nh4ToSurfaceWaterAquacultureSystems"
506
+ "@id": "nh3ToAirInputsProduction"
507
507
  },
508
508
  {
509
509
  "@type": "Term",
510
- "@id": "n2OToAirOrganicSoilCultivationIndirect"
510
+ "@id": "noxToAirFuelCombustion"
511
511
  },
512
512
  {
513
513
  "@type": "Term",
514
- "@id": "no3ToSurfaceWaterIndustrialProcesses"
514
+ "@id": "co2ToAirSoilOrganicCarbonStockChangeLandUseChange"
515
515
  },
516
516
  {
517
517
  "@type": "Term",
518
- "@id": "nErosionSoilFlux"
518
+ "@id": "ch4ToAirIndustrialProcessesNonFossil"
519
519
  },
520
520
  {
521
521
  "@type": "Term",
522
- "@id": "n2OToAirOrganicSoilCultivationDirect"
522
+ "@id": "co2ToAirSoilInorganicCarbonStockChangeLandUseChange"
523
523
  },
524
524
  {
525
525
  "@type": "Term",
526
- "@id": "n2OToAirSoilFlux"
526
+ "@id": "co2ToAirSoilFlux"
527
527
  },
528
528
  {
529
529
  "@type": "Term",
530
- "@id": "nh4ToGroundwaterWasteTreatment"
530
+ "@id": "n2ToAirOrganicFertiliser"
531
531
  },
532
532
  {
533
533
  "@type": "Term",
534
- "@id": "no3ToGroundwaterSoilFlux"
534
+ "@id": "ch4ToAirOrganicSoilCultivation"
535
535
  },
536
536
  {
537
537
  "@type": "Term",
538
- "@id": "n2ToAirAquacultureSystems"
538
+ "@id": "ch4ToAirWasteTreatment"
539
539
  },
540
540
  {
541
541
  "@type": "Term",
542
- "@id": "nh3ToAirOrganicSoilBurning"
542
+ "@id": "ch4ToAirFuelCombustion"
543
543
  },
544
544
  {
545
545
  "@type": "Term",
546
- "@id": "noxToAirOrganicFertiliser"
546
+ "@id": "n2ToAirExcreta"
547
547
  },
548
548
  {
549
549
  "@type": "Term",
550
- "@id": "pesticideToAirPesticideApplication"
550
+ "@id": "co2ToAirAboveGroundBiomassStockChangeLandUseChange"
551
551
  },
552
552
  {
553
553
  "@type": "Term",
554
- "@id": "nh3ToAirIndustrialProcesses"
554
+ "@id": "n2OToAirCropResidueBurningIndirect"
555
555
  },
556
556
  {
557
557
  "@type": "Term",
558
- "@id": "no2ToAirIndustrialProcesses"
558
+ "@id": "co2ToAirDeadOrganicMatterStockChangeLandUseChange"
559
559
  },
560
560
  {
561
561
  "@type": "Term",
562
- "@id": "tspToAirAnimalHousing"
562
+ "@id": "nh3ToAirFuelCombustion"
563
563
  },
564
564
  {
565
565
  "@type": "Term",
566
- "@id": "nh4ToAirInputsProduction"
566
+ "@id": "noToAirSoilFlux"
567
567
  },
568
568
  {
569
569
  "@type": "Term",
570
- "@id": "n2OToAirOrganicSoilBurningIndirect"
570
+ "@id": "co2ToAirSoilOrganicCarbonStockChangeManagementChange"
571
571
  },
572
572
  {
573
573
  "@type": "Term",
574
- "@id": "1112TetrafluoroethaneToAirInputsProduction"
574
+ "@id": "noxToAirOrganicSoilCultivation"
575
575
  },
576
576
  {
577
577
  "@type": "Term",
578
- "@id": "ionisingCompoundsToAirInputsProduction"
578
+ "@id": "n2OToAirFuelCombustionDirect"
579
579
  },
580
580
  {
581
581
  "@type": "Term",
582
- "@id": "n2OToAirAquacultureSystemsDirect"
582
+ "@id": "nh4ToGroundwaterInorganicFertiliser"
583
583
  },
584
584
  {
585
585
  "@type": "Term",
586
- "@id": "ch4ToAirExcreta"
586
+ "@id": "noxToAirCropResidueDecomposition"
587
587
  },
588
588
  {
589
589
  "@type": "Term",
590
- "@id": "n2ToAirSoilFlux"
590
+ "@id": "nToSurfaceWaterAquacultureSystems"
591
591
  },
592
592
  {
593
593
  "@type": "Term",
594
- "@id": "coToAirInputsProduction"
594
+ "@id": "noToAirAquacultureSystems"
595
595
  },
596
596
  {
597
597
  "@type": "Term",
598
- "@id": "ch4ToAirSoilFlux"
598
+ "@id": "n2OToAirInputsProduction"
599
599
  },
600
600
  {
601
601
  "@type": "Term",
602
- "@id": "co2ToAirSoilInorganicCarbonStockChangeManagementChange"
602
+ "@id": "n2OToAirExcretaDirect"
603
603
  },
604
604
  {
605
605
  "@type": "Term",
606
- "@id": "n2OToAirBackgroundSoilFluxDirect"
606
+ "@id": "1Chloro11DifluoroethaneToAirInputsProduction"
607
607
  },
608
608
  {
609
609
  "@type": "Term",
610
- "@id": "coToAirFuelCombustion"
610
+ "@id": "112TrichlorotrifluoroethaneToAirIndustrialProcesses"
611
611
  },
612
612
  {
613
613
  "@type": "Term",
@@ -1298,11 +1298,11 @@
1298
1298
  },
1299
1299
  {
1300
1300
  "@type": "Term",
1301
- "@id": "residueRemoved"
1301
+ "@id": "residueIncorporatedLessThan30DaysBeforeCultivation"
1302
1302
  },
1303
1303
  {
1304
1304
  "@type": "Term",
1305
- "@id": "residueIncorporatedLessThan30DaysBeforeCultivation"
1305
+ "@id": "residueRemoved"
1306
1306
  },
1307
1307
  {
1308
1308
  "@type": "Term",
@@ -1768,7 +1768,7 @@
1768
1768
  "@type": "Term",
1769
1769
  "name": "Generic crop, seed",
1770
1770
  "@id": "genericCropSeed",
1771
- "_score": 24.912773
1771
+ "_score": 24.688505
1772
1772
  }
1773
1773
  ]
1774
1774
  },
@@ -2004,157 +2004,157 @@
2004
2004
  "@type": "Term",
2005
2005
  "name": "Glass or high accessible cover",
2006
2006
  "@id": "glassOrHighAccessibleCover",
2007
- "_score": 59.591824
2007
+ "_score": 59.344612
2008
2008
  },
2009
2009
  {
2010
2010
  "@type": "Term",
2011
2011
  "name": "Sea or ocean",
2012
2012
  "@id": "seaOrOcean",
2013
- "_score": 49.211555
2013
+ "_score": 48.93506
2014
2014
  },
2015
2015
  {
2016
2016
  "@type": "Term",
2017
2017
  "name": "River or stream",
2018
2018
  "@id": "riverOrStream",
2019
- "_score": 48.1141
2019
+ "_score": 47.748756
2020
2020
  },
2021
2021
  {
2022
2022
  "@type": "Term",
2023
2023
  "name": "Other natural vegetation",
2024
2024
  "@id": "otherNaturalVegetation",
2025
- "_score": 41.84881
2025
+ "_score": 41.860992
2026
2026
  },
2027
2027
  {
2028
2028
  "@type": "Term",
2029
2029
  "name": "Food retailer",
2030
2030
  "@id": "foodRetailer",
2031
- "_score": 40.49202
2031
+ "_score": 40.538086
2032
2032
  },
2033
2033
  {
2034
2034
  "@type": "Term",
2035
2035
  "name": "Agri-food processor",
2036
2036
  "@id": "agriFoodProcessor",
2037
- "_score": 40.30419
2037
+ "_score": 40.28276
2038
2038
  },
2039
2039
  {
2040
2040
  "@type": "Term",
2041
2041
  "name": "Natural forest",
2042
2042
  "@id": "naturalForest",
2043
- "_score": 31.557312
2043
+ "_score": 31.565006
2044
2044
  },
2045
2045
  {
2046
2046
  "@type": "Term",
2047
2047
  "name": "Permanent pasture",
2048
2048
  "@id": "permanentPasture",
2049
- "_score": 28.212002
2049
+ "_score": 28.16698
2050
2050
  },
2051
2051
  {
2052
2052
  "@type": "Term",
2053
2053
  "name": "Animal housing",
2054
2054
  "@id": "animalHousing",
2055
- "_score": 27.554867
2055
+ "_score": 27.439247
2056
2056
  },
2057
2057
  {
2058
2058
  "@type": "Term",
2059
2059
  "name": "High intensity grazing pasture",
2060
2060
  "@id": "highIntensityGrazingPasture",
2061
- "_score": 24.59872
2061
+ "_score": 24.557467
2062
2062
  },
2063
2063
  {
2064
2064
  "@type": "Term",
2065
2065
  "name": "Root or tuber crop plant",
2066
2066
  "@id": "rootOrTuberCropPlant",
2067
- "_score": 23.863335
2067
+ "_score": 23.628925
2068
2068
  },
2069
2069
  {
2070
2070
  "@type": "Term",
2071
2071
  "name": "Forest",
2072
2072
  "@id": "forest",
2073
- "_score": 20.173904
2073
+ "_score": 20.177483
2074
2074
  },
2075
2075
  {
2076
2076
  "@type": "Term",
2077
2077
  "name": "Permanent cropland",
2078
2078
  "@id": "permanentCropland",
2079
- "_score": 19.640331
2079
+ "_score": 19.618952
2080
2080
  },
2081
2081
  {
2082
2082
  "@type": "Term",
2083
2083
  "name": "Other land",
2084
2084
  "@id": "otherLand",
2085
- "_score": 19.463047
2085
+ "_score": 19.467312
2086
2086
  },
2087
2087
  {
2088
2088
  "@type": "Term",
2089
2089
  "name": "Plantation forest",
2090
2090
  "@id": "plantationForest",
2091
- "_score": 19.282543
2091
+ "_score": 19.287716
2092
2092
  },
2093
2093
  {
2094
2094
  "@type": "Term",
2095
2095
  "name": "Lake",
2096
2096
  "@id": "lake",
2097
- "_score": 18.21026
2097
+ "_score": 18.214542
2098
2098
  },
2099
2099
  {
2100
2100
  "@type": "Term",
2101
2101
  "name": "Red sea plume alga",
2102
2102
  "@id": "redSeaPlumeAlga",
2103
- "_score": 17.605654
2103
+ "_score": 17.61027
2104
2104
  },
2105
2105
  {
2106
2106
  "@type": "Term",
2107
2107
  "name": "Sea kale plant",
2108
2108
  "@id": "seaKalePlant",
2109
- "_score": 17.513813
2109
+ "_score": 17.518234
2110
2110
  },
2111
2111
  {
2112
2112
  "@type": "Term",
2113
2113
  "name": "Improved pasture",
2114
2114
  "@id": "improvedPasture",
2115
- "_score": 17.43089
2115
+ "_score": 17.415194
2116
2116
  },
2117
2117
  {
2118
2118
  "@type": "Term",
2119
2119
  "name": "Native pasture",
2120
2120
  "@id": "nativePasture",
2121
- "_score": 17.387138
2121
+ "_score": 17.327625
2122
2122
  },
2123
2123
  {
2124
2124
  "@type": "Term",
2125
2125
  "name": "Nominally managed pasture",
2126
2126
  "@id": "nominallyManagedPasture",
2127
- "_score": 16.351063
2127
+ "_score": 16.298176
2128
2128
  },
2129
2129
  {
2130
2130
  "@type": "Term",
2131
2131
  "name": "Severely degraded pasture",
2132
2132
  "@id": "severelyDegradedPasture",
2133
- "_score": 15.72388
2133
+ "_score": 15.704321
2134
2134
  },
2135
2135
  {
2136
2136
  "@type": "Term",
2137
2137
  "name": "Pond",
2138
2138
  "@id": "pond",
2139
- "_score": 15.666466
2139
+ "_score": 15.669754
2140
2140
  },
2141
2141
  {
2142
2142
  "@type": "Term",
2143
2143
  "name": "River tamarind tree",
2144
2144
  "@id": "riverTamarindTree",
2145
- "_score": 15.338312
2145
+ "_score": 15.343109
2146
2146
  },
2147
2147
  {
2148
2148
  "@type": "Term",
2149
2149
  "name": "Cropland",
2150
2150
  "@id": "cropland",
2151
- "_score": 10.534372
2151
+ "_score": 10.536647
2152
2152
  },
2153
2153
  {
2154
2154
  "@type": "Term",
2155
2155
  "name": "Annual cropland",
2156
2156
  "@id": "annualCropland",
2157
- "_score": 10.017572
2157
+ "_score": 10.019121
2158
2158
  }
2159
2159
  ]
2160
2160
  },
@@ -20,7 +20,7 @@ from hestia_earth.utils.tools import safe_parse_float, flatten
20
20
  from hestia_earth.utils.blank_node import get_node_value
21
21
 
22
22
  from hestia_earth.models.log import logRequirements, logShouldRun, log_as_table
23
- from hestia_earth.models.utils import _include, _omit
23
+ from hestia_earth.models.utils import _include, _omit, group_by
24
24
  from hestia_earth.models.utils.management import _new_management
25
25
  from hestia_earth.models.utils.term import get_lookup_value
26
26
  from hestia_earth.models.utils.blank_node import condense_nodes
@@ -330,7 +330,7 @@ def run(site: dict):
330
330
  nodes = flatten([_run_cycle(site, cycle) for cycle in cycles])
331
331
 
332
332
  # group nodes with same `id` to display as a single log per node
333
- grouped_nodes = reduce(lambda p, c: p | {c['id']: p.get(c['id'], []) + [c]}, nodes, {})
333
+ grouped_nodes = group_by(nodes, ['id'])
334
334
  for id, values in grouped_nodes.items():
335
335
  logRequirements(
336
336
  site,
@@ -7,6 +7,7 @@ import sys
7
7
  import datetime
8
8
  from functools import reduce
9
9
  import operator
10
+ from pydash.objects import get
10
11
  from typing import Any, Callable, Union
11
12
  from hestia_earth.schema import SchemaType
12
13
  from hestia_earth.utils.api import download_hestia
@@ -26,6 +27,14 @@ def cached_value(node: dict, key: str = None, default=None):
26
27
  return cache.get(key, default) if key else cache
27
28
 
28
29
 
30
+ def group_by(values: list, keys: list):
31
+ def _group_by(group: dict, value: dict):
32
+ group_key = ';'.join(non_empty_list([get(value, key) for key in keys]))
33
+ group[group_key] = group.get(group_key, []) + [value]
34
+ return group
35
+ return reduce(_group_by, values, {})
36
+
37
+
29
38
  def _term_id(term): return term.get('@id') if isinstance(term, dict) else term
30
39
 
31
40
 
@@ -118,10 +118,7 @@ def get_ecoClimateZone_lookup_grouped_value(
118
118
  code = int(str(eco_climate_zone))
119
119
  data = _get_single_table_value(lookup, column_name('ecoClimateZone'), code, column_name(col_name))
120
120
  grouped_data = reduce(
121
- lambda prev, curr: {
122
- **prev,
123
- **{curr.split(':')[0]: safe_parse_float(curr.split(':')[1])}
124
- },
121
+ lambda prev, curr: prev | {curr.split(':')[0]: safe_parse_float(curr.split(':')[1])},
125
122
  data.split(';'),
126
123
  {}
127
124
  ) if data is not None and isinstance(data, str) and len(data) > 1 else default
@@ -77,7 +77,10 @@ def _term_factor_value(model: str, term_id: str, lookup_name: str, lookup_term_i
77
77
  coefficient = get_table_value(lookup, 'termid', lookup_term_id, column_name(node_term_id))
78
78
  coefficient = safe_parse_float(extract_grouped_data(coefficient, group_key) if group_key else coefficient)
79
79
  if value is not None and coefficient is not None:
80
- debugValues(data, model=model, term=term_id, node=node_term_id, value=value, coefficient=coefficient)
80
+ debugValues(data, model=model, term=term_id,
81
+ node=node_term_id,
82
+ value=value,
83
+ coefficient=coefficient)
81
84
  return {'id': node_term_id, 'value': value, 'coefficient': coefficient}
82
85
  return get_value
83
86
 
@@ -93,7 +96,10 @@ def _aware_factor_value(model: str, term_id: str, lookup_name: str, aware_id: st
93
96
  coefficient = _get_single_table_value(lookup, lookup_col, int(aware_id), column_name(node_term_id))
94
97
  coefficient = safe_parse_float(extract_grouped_data(coefficient, group_key)) if group_key else coefficient
95
98
  if value is not None and coefficient is not None:
96
- debugValues(data, model=model, term=term_id, node=node_term_id, value=value, coefficient=coefficient)
99
+ debugValues(data, model=model, term=term_id,
100
+ node=node_term_id,
101
+ value=value,
102
+ coefficient=coefficient)
97
103
  return value * coefficient
98
104
  return None
99
105
  except ValueError: # factor does not exist
@@ -1 +1 @@
1
- VERSION = '0.65.2'
1
+ VERSION = '0.65.4'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: hestia-earth-models
3
- Version: 0.65.2
3
+ Version: 0.65.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
@@ -1,12 +1,12 @@
1
1
  hestia_earth/__init__.py,sha256=G-d438vPx7m_ks5e9XTtM3u7LDRO5dSSukibukWmyPM,56
2
2
  hestia_earth/models/__init__.py,sha256=qEFeq3yuf3lQKVseALmL8aPM8fpCS54B_5pry00M3hk,76
3
- hestia_earth/models/cache_sites.py,sha256=wcF8gr3gEaHoqCP62imvXVrvSLYPYEHTzxkayy4xyck,5645
3
+ hestia_earth/models/cache_sites.py,sha256=Llo2SH1Lp-R8x1JRxJ2Ta-vw5RbdUj2FHXUP-cpKclw,5758
4
4
  hestia_earth/models/log.py,sha256=_zAfyOkL_VknEnMFvcpvenSMghadlDfZhiSx28545Gk,3558
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=s9maOQtfI7tQ3pEMHUg8z_NHZ_D163NY8mQbKoDoJaQ,19
7
+ hestia_earth/models/version.py,sha256=EEisiv1fbGHPaks82hvTdHzqEDCaM-JHsreZadXfBFM,19
8
8
  hestia_earth/models/agribalyse2016/__init__.py,sha256=WvK0qCQbnYtg9oZxrACd1wGormZyXibPtpCnIQeDqbw,415
9
- hestia_earth/models/agribalyse2016/fuelElectricity.py,sha256=zcuarKatWLIUVwFy71wE2j--tftKga7tobxhasTlruY,4438
9
+ hestia_earth/models/agribalyse2016/fuelElectricity.py,sha256=EjDmNYb8ccfOIsA5-bXZvrBLQV85m0hDleiy5q-rLOQ,4142
10
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
@@ -77,7 +77,7 @@ hestia_earth/models/cycle/animal/properties.py,sha256=OGjRl79w-h439jTkjA8b4V61fM
77
77
  hestia_earth/models/cycle/animal/input/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
78
78
  hestia_earth/models/cycle/animal/input/hestiaAggregatedData.py,sha256=EpJ6qU0jsoSMEuZYIKCn1f-loJ53_nmpnyDhH5sZTuw,2529
79
79
  hestia_earth/models/cycle/animal/input/properties.py,sha256=8hqVh4AtW4ZBo3z0mz93etfKCEZgZwBeBVRF9yNYsf0,3609
80
- hestia_earth/models/cycle/completeness/__init__.py,sha256=rkwGtxIay_AleJCT7al_ngnix_xRqySVie7qvHXMQI0,1517
80
+ hestia_earth/models/cycle/completeness/__init__.py,sha256=bQ-tpeCbUsIdSPGla06Mg2IZWpGp7TgWXlgZTYeLsKk,1512
81
81
  hestia_earth/models/cycle/completeness/animalFeed.py,sha256=8Fo1TqwSuiPudvd2vJ-LVxSyOdD8mDCOZMvjuj5W2uo,1012
82
82
  hestia_earth/models/cycle/completeness/cropResidue.py,sha256=Jpmm5SAiyUkaFp8EsBIQ55jiCyn3C20a3au_zaPRnEk,2837
83
83
  hestia_earth/models/cycle/completeness/electricityFuel.py,sha256=FWG8EuOPubTLDc3jMJv6NdFCgG0wOVgxv-5P9wA7Nys,2044
@@ -131,7 +131,7 @@ hestia_earth/models/emepEea2019/__init__.py,sha256=l90-pWrqIzt1ap1WNk0gF4iZeF5_T
131
131
  hestia_earth/models/emepEea2019/co2ToAirFuelCombustion.py,sha256=ib_xzEbIg-iQwvW2L4BosD9lV6EYOXAiIs8gYhSD9GE,1431
132
132
  hestia_earth/models/emepEea2019/n2OToAirFuelCombustionDirect.py,sha256=H4dgGqDuvYN4S7TRxYsX3hms1xMWr8clR2gkyyO8T18,1438
133
133
  hestia_earth/models/emepEea2019/nh3ToAirExcreta.py,sha256=HNz3w35V0X1Av7if4ZPlDxozrSMurjiy7Hl4iAVEoNg,3590
134
- hestia_earth/models/emepEea2019/nh3ToAirInorganicFertiliser.py,sha256=n_lpGX6pnJdOy1GJoVSLgA9LnnnWOb_ZHBueZAEDCbk,6041
134
+ hestia_earth/models/emepEea2019/nh3ToAirInorganicFertiliser.py,sha256=7G0_S0G6X9slTykxs6CDb68DvtXB7yfq1iSKg0ReXS8,6036
135
135
  hestia_earth/models/emepEea2019/noxToAirFuelCombustion.py,sha256=2--8lI6C6WaYtd9LQe-WZnhvW1eUsjBVAgzT8jclcsc,1431
136
136
  hestia_earth/models/emepEea2019/pm10ToAirAnimalHousing.py,sha256=ZxiyoKpT0JbwgEnK9HlselO5-nIq_CTpcGK5a8X5UkM,1527
137
137
  hestia_earth/models/emepEea2019/pm25ToAirAnimalHousing.py,sha256=MYMRoFrmu3lhqS9aYE-GCWHfE-NFIgk9Q3Uj1osTlKA,1527
@@ -201,7 +201,7 @@ hestia_earth/models/haversineFormula/transport/__init__.py,sha256=47DEQpj8HBSa-_
201
201
  hestia_earth/models/haversineFormula/transport/distance.py,sha256=163KrmKzlEQuKYT1ZvpPgmKlv_-mmvxp0A1_uKya99w,4203
202
202
  hestia_earth/models/hestia/__init__.py,sha256=o5vAmPzSaK9XPgL8GCne3-lugfCOgZhHELYolNgqyyY,407
203
203
  hestia_earth/models/hestia/landCover.py,sha256=odmRx30UhT_MyOj5jIVtsmLsTcxqC4l-QkCXae_MQEo,28105
204
- hestia_earth/models/hestia/seed_emissions.py,sha256=omvFmrwngZyonoqxadAy8C0YjUbNV1isqfsOjUF_D5o,11025
204
+ hestia_earth/models/hestia/seed_emissions.py,sha256=B8n8M2RaVfCHHb80rGoQUw8vqmd4crdOdj4ubGBc1gQ,10860
205
205
  hestia_earth/models/impact_assessment/__init__.py,sha256=gTR_PhWps593fPhm-V826VLLrZVH8CNQTqxExB7GGNI,418
206
206
  hestia_earth/models/impact_assessment/allocationMethod.py,sha256=Qz41nTtMpDCcPy7PjhVtafE13dfJLX_D3Rg3yNhdY_Q,1279
207
207
  hestia_earth/models/impact_assessment/emissions.py,sha256=mJsTasM-5AFtZeKzQ9Q38SDLcnl_lQwfjQ52ro2Pjmg,3444
@@ -252,7 +252,7 @@ hestia_earth/models/ipcc2019/co2ToAirCarbonStockChange_utils.py,sha256=PDjwK_mCe
252
252
  hestia_earth/models/ipcc2019/co2ToAirLimeHydrolysis.py,sha256=7z0zdqiiWQwkyJCgSNMoK2mft3cJkTRlqwKrMuSKdWI,2454
253
253
  hestia_earth/models/ipcc2019/co2ToAirSoilOrganicCarbonStockChange.py,sha256=UQjmccUsKxsycG_htbD1-T2xw6AklKqIR3u8KIMGBOY,6709
254
254
  hestia_earth/models/ipcc2019/co2ToAirUreaHydrolysis.py,sha256=Ofld5SuRKndcKB3FFFoUdzSgNq-gc4kmiNyyrPKQ3Io,3580
255
- hestia_earth/models/ipcc2019/croppingDuration.py,sha256=-CesZ2cNDOQoU3QyVFnSWYO-6-JXxuhRDQoHoxTawDA,3228
255
+ hestia_earth/models/ipcc2019/croppingDuration.py,sha256=0XeM1_iiNXsZTaJQFXc3yNnNf1E-if4gs2ACbAOa3Wk,3508
256
256
  hestia_earth/models/ipcc2019/ligninContent.py,sha256=Qh-UH4lv1TIf7wWlbAPwIZZHxzbbmQgND3m15pt5Si8,7285
257
257
  hestia_earth/models/ipcc2019/n2OToAirCropResidueDecompositionDirect.py,sha256=Fand7NbT27unwgFTxi_9NxT024s63vQ7U6-tk9yp3d8,3990
258
258
  hestia_earth/models/ipcc2019/n2OToAirCropResidueDecompositionIndirect.py,sha256=_Oj6Jw8F4rce7FmhWkzeqyB7W3ZQWpOiA10p6xrfSwc,3777
@@ -387,15 +387,15 @@ hestia_earth/models/lcImpactCertainEffectsInfinite/damageToTerrestrialEcosystems
387
387
  hestia_earth/models/lcImpactCertainEffectsInfinite/damageToTerrestrialEcosystemsTerrestrialEcotoxicity.py,sha256=dyUfAD74qEzfIGFei1IcI2RfQXgkjns7AhJ0iYzgCBk,963
388
388
  hestia_earth/models/linkedImpactAssessment/__init__.py,sha256=SPP09DMS4zUThyQfcgLpivFwsey4WSt77CDMYHJPKWE,423
389
389
  hestia_earth/models/linkedImpactAssessment/emissions.py,sha256=ZU68ljsidyqIKIdFqtR9mze5Am0fK_PE1x4GBTwBTr0,6395
390
- hestia_earth/models/linkedImpactAssessment/freshwaterWithdrawalsInputsProduction.py,sha256=bWTUaqff4u0Q2fVJBl-S2mXIougZwOBbeGyWoFznJd4,1115
391
- hestia_earth/models/linkedImpactAssessment/landOccupationInputsProduction.py,sha256=yLC9SiZx9Es9ADVAoW1Db1zs-QQTTjQUmcFOQGAdz28,1119
392
- hestia_earth/models/linkedImpactAssessment/landTransformation100YearAverageInputsProduction.py,sha256=5ypKZWmMsZhA7f6fEqJ8pMxiiOrlDgdnx6PKLJr5aLE,1206
393
- hestia_earth/models/linkedImpactAssessment/landTransformation20YearAverageInputsProduction.py,sha256=wjQhCIrdsP99dCaudGx0o2pfLgLV1I-F53zxVi3UQDA,1203
394
- hestia_earth/models/linkedImpactAssessment/utils.py,sha256=QSf-DPrsPfermpd4vKYAvx2k_vkv8ozpDGhb4LUc-5o,4305
390
+ hestia_earth/models/linkedImpactAssessment/freshwaterWithdrawalsInputsProduction.py,sha256=OTWVjPikOsZTbzgTzCJBkL6fH4Zbprq5SrV5LSLc4C0,1137
391
+ hestia_earth/models/linkedImpactAssessment/landOccupationInputsProduction.py,sha256=M1_QXTxCdWccXPaO7YjOtBa6WkmiQj3Xs89lYIUrM7w,1141
392
+ hestia_earth/models/linkedImpactAssessment/landTransformation100YearAverageInputsProduction.py,sha256=IqQ76I05IC79g2GXY91iWFqEeXk8Fhw-hcrifCaAbiI,1228
393
+ hestia_earth/models/linkedImpactAssessment/landTransformation20YearAverageInputsProduction.py,sha256=yHGyhabzKdBIPSGciJ_LJPKvHbTECXDx8dGOgmT1eqM,1225
394
+ hestia_earth/models/linkedImpactAssessment/utils.py,sha256=RYmvNw147CYGbt8drv4vWZNqwRlT3vOWkadussAfnKY,4459
395
395
  hestia_earth/models/mocking/__init__.py,sha256=9VX50c-grz-snfd-7MBS0KfF7AadtbKuj7kK6PqtsgE,687
396
396
  hestia_earth/models/mocking/build_mock_search.py,sha256=p15ccEUmkmLp1RiGNznxMz3OFHbI8P1-29ExuohiQN8,1355
397
397
  hestia_earth/models/mocking/mock_search.py,sha256=ccFe_WrI73JElFmxp4hPNLCX7eeU--lBC1JFR901KJY,1069
398
- hestia_earth/models/mocking/search-results.json,sha256=Cv4Kn4zqwM7v3qwa2C6yIcsYpaDISx05iwJig6IlVMs,101691
398
+ hestia_earth/models/mocking/search-results.json,sha256=GuQjDA_voZXB26tGPiBB1I_brcgKIleLiC2hUTu23mI,101696
399
399
  hestia_earth/models/pooreNemecek2018/__init__.py,sha256=nPboL7ULJzL5nJD5q7q9VOZt_fxbKVm8fmn1Az5YkVY,417
400
400
  hestia_earth/models/pooreNemecek2018/aboveGroundCropResidueTotal.py,sha256=Qt-mel4dkhK6N5uUOutNOinCTFjbjtGzITaaI0LvYc4,2396
401
401
  hestia_earth/models/pooreNemecek2018/belowGroundCropResidue.py,sha256=JT0RybbvWVlo01FO8K0Yj41HrEaJT3Kj1xfayr2X-xw,2315
@@ -497,7 +497,7 @@ hestia_earth/models/site/brackishWater.py,sha256=vLEhIZv5PUKwzwvIuYrWi7K---fq7ZX
497
497
  hestia_earth/models/site/cationExchangeCapacityPerKgSoil.py,sha256=0eH4A-tXJ0hvIkiYXWxlx8TfrdbIKUGYUDk97-yQJgg,3653
498
498
  hestia_earth/models/site/flowingWater.py,sha256=v3g5722GIA4zQAUQI9yGFiZvFvI1QAVZqlQrY-6_B3A,1731
499
499
  hestia_earth/models/site/freshWater.py,sha256=FXs3Vt8V4e-wn325_dwSTOKlZtn5ksNUpvYGDeLJShY,1255
500
- hestia_earth/models/site/management.py,sha256=LXPHWwQ_3HVs651aZx3-CrczhEhYGIiga-WlEmw8A3c,11717
500
+ hestia_earth/models/site/management.py,sha256=ffrXelDxwBuCVy7cZbhYQA0SKymMhCogPQES13ySSYE,11679
501
501
  hestia_earth/models/site/netPrimaryProduction.py,sha256=UIIQkYd911qVzrWjxBLrC37e-RARIVgDwLdARY9BuLw,1849
502
502
  hestia_earth/models/site/organicCarbonPerHa.py,sha256=F2ShinHf0m9qKa1nCYBspsDkRY6jzOl0wM8mSDre22I,14916
503
503
  hestia_earth/models/site/organicCarbonPerKgSoil.py,sha256=t--wAshiAKS-JvEKhLFRadGvgSBv5NFZ68jdyms_wh4,1945
@@ -555,7 +555,7 @@ hestia_earth/models/transformation/product/__init__.py,sha256=47DEQpj8HBSa-_TImW
555
555
  hestia_earth/models/transformation/product/excreta.py,sha256=Yj9wMF5if-zivb6qbN3vy1X51ZNYxvoyG9f4KPp3Y18,5700
556
556
  hestia_earth/models/usetoxV2/__init__.py,sha256=pK37V3H-KvYcvRKw4Mv8CWrB2N0LFLzmv0jKLdhGGqs,409
557
557
  hestia_earth/models/usetoxV2/freshwaterEcotoxicityPotentialCtue.py,sha256=pPX8u-Aq6Pg5Y9xw0CS0S2WkAHQpOMl0lL2tLQwwOuU,918
558
- hestia_earth/models/utils/__init__.py,sha256=ncZ_1Yb2oZhV8KtdHDK7FkNIZT_kX09D-ik1oA3rzHE,6980
558
+ hestia_earth/models/utils/__init__.py,sha256=ADtNs74scoLRPsBF8J9K-QE6WcNB2qFhBmR8abJAYh8,7302
559
559
  hestia_earth/models/utils/aggregated.py,sha256=01V5RDvO9EZAEiApY7M2dUoR4GcGxvAH5lvtIK_qjyI,4946
560
560
  hestia_earth/models/utils/animalProduct.py,sha256=M5IunAKGY6oZv3j1Ascl34ywyeLWApqOIlBzbtlA2FE,721
561
561
  hestia_earth/models/utils/aquacultureManagement.py,sha256=dxrbC1Xf140cohxTbSw6TxLAnAASWTdNZwBBam4yQnw,171
@@ -570,7 +570,7 @@ hestia_earth/models/utils/cropResidueManagement.py,sha256=nIDFjf39rDD10UHSVudfDy
570
570
  hestia_earth/models/utils/currency.py,sha256=f_ArJANb--pZq4LL49SXQ1AMX_oKroqwBXKRRQqZwsM,578
571
571
  hestia_earth/models/utils/cycle.py,sha256=uZgqTy4IaCqcSEEHWOcZ0bFBjwGl7gBoedk6HJ5Nryw,16233
572
572
  hestia_earth/models/utils/descriptive_stats.py,sha256=EMVwFvg2OnZgKRAfireAoWY2EbrSvqR0V0bK9B53p28,1583
573
- hestia_earth/models/utils/ecoClimateZone.py,sha256=A3ZtF_B2wr6v7clbVi0zWQ-bOXRoOKq4vGq8mhNf9Ec,4316
573
+ hestia_earth/models/utils/ecoClimateZone.py,sha256=kD5DGActHAfMCJykKQGkwEEicWt7PQlEIX9_PkqXfP0,4265
574
574
  hestia_earth/models/utils/emission.py,sha256=H_apu-Og9SJTLVU2lU56IsvSU22-9J7OrqXk1b2qnSE,3638
575
575
  hestia_earth/models/utils/excretaManagement.py,sha256=NuWPQjFZxMVt9sYgBjcqhGWCFk_OKb3sA9Ovcff3fRQ,428
576
576
  hestia_earth/models/utils/feedipedia.py,sha256=wzzrMbYlda1XCpWiObLz4bFLXbAZejHcxsXJFr4U_AM,3953
@@ -582,7 +582,7 @@ hestia_earth/models/utils/inorganicFertiliser.py,sha256=_dLBY-otGkLr8PobR5dQ89bF
582
582
  hestia_earth/models/utils/input.py,sha256=gsVFKTC9WF8dO6YAg_-H_GAOQTnvAr49Ox5-eTH8zf8,5145
583
583
  hestia_earth/models/utils/landCover.py,sha256=8-nfynzCx9gf9YfhpuoH6Cn4kQwWFpYA5RmoGW-0ETE,300
584
584
  hestia_earth/models/utils/liveAnimal.py,sha256=GnajBPZw5d94raf80KtLloaOqlfqGAPwUtP9bRlGWeE,1754
585
- hestia_earth/models/utils/lookup.py,sha256=uEP5v4atNkY5FLMopsuBncALOmsyhFe4lNtZvUhcQRM,8517
585
+ hestia_earth/models/utils/lookup.py,sha256=hSqIDZ7aw3YdLtUjCw-wlsUdh3dA6p1jl9Nuvcru3go,8673
586
586
  hestia_earth/models/utils/management.py,sha256=W5M9k0arraVUGh4ZccVqgb8rSSLxHM6rkmi4MSzV6Dw,413
587
587
  hestia_earth/models/utils/measurement.py,sha256=izEiPszUcPA22zaIc0OuF7Yk82JWu5cxi0Sbz_9YgBo,11142
588
588
  hestia_earth/models/utils/organicFertiliser.py,sha256=2HY-a0EBzUw4DkEAXClLMXVCEZTKYf0BwFHBo7lQ5Tg,363
@@ -1154,8 +1154,8 @@ tests/models/utils/test_term.py,sha256=M5Sa26v2gzQYbZ4H_fo7DspnaCx__-WtL-MULGapC
1154
1154
  tests/models/utils/test_time_series.py,sha256=LMhRPf8rp3nAriKAC-2K3FDkrMWntRTUUCERw7Lt68g,2686
1155
1155
  tests/models/webbEtAl2012AndSintermannEtAl2012/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1156
1156
  tests/models/webbEtAl2012AndSintermannEtAl2012/test_nh3ToAirOrganicFertiliser.py,sha256=qi2FNXS5Af2WDtm7nq_FsprH3BfCF0XxnE0XHmC4aIY,2244
1157
- hestia_earth_models-0.65.2.dist-info/LICENSE,sha256=TD25LoiRJsA5CPUNrcyt1PXlGcbUGFMAeZoBcfCrCNE,1154
1158
- hestia_earth_models-0.65.2.dist-info/METADATA,sha256=e85qMBq7uoDEyMt-GC_WG0arpZqoh8ezX1ILgA5D360,3344
1159
- hestia_earth_models-0.65.2.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
1160
- hestia_earth_models-0.65.2.dist-info/top_level.txt,sha256=1dqA9TqpOLTEgpqa-YBsmbCmmNU1y56AtfFGEceZ2A0,19
1161
- hestia_earth_models-0.65.2.dist-info/RECORD,,
1157
+ hestia_earth_models-0.65.4.dist-info/LICENSE,sha256=TD25LoiRJsA5CPUNrcyt1PXlGcbUGFMAeZoBcfCrCNE,1154
1158
+ hestia_earth_models-0.65.4.dist-info/METADATA,sha256=NTDzVeU3Bu-lQ5w0Epxbt1LXOtrWX74mEGovrUyF35o,3344
1159
+ hestia_earth_models-0.65.4.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
1160
+ hestia_earth_models-0.65.4.dist-info/top_level.txt,sha256=1dqA9TqpOLTEgpqa-YBsmbCmmNU1y56AtfFGEceZ2A0,19
1161
+ hestia_earth_models-0.65.4.dist-info/RECORD,,