hestia-earth-models 0.65.5__py3-none-any.whl → 0.65.6__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.

@@ -10,11 +10,18 @@ tillage, cropResidueManagement and landUseManagement.
10
10
  All values are copied from the source node, except for crop and forage terms in which case the dates are copied from the
11
11
  cycle.
12
12
 
13
+ Where `startDate` is missing from landCover products, gap-filling is attempted using `endDate` - `maximumCycleDuration`.
14
+ This is the `endDate` of the `landCover` product.
15
+ This ensures no overlapping date ranges.
16
+ If both `endDate` and `startDate` are missing from the product, these will be gap-filled from the `Cycle`.
17
+
13
18
  When nodes are chronologically consecutive with "% area" or "boolean" units and the same term and value, they are
14
19
  condensed into a single node to aid readability.
15
20
  """
21
+ from datetime import timedelta, datetime
16
22
  from functools import reduce
17
23
  from hestia_earth.schema import TermTermType, SiteSiteType
24
+ from hestia_earth.utils.lookup import column_name, get_table_value, download_lookup
18
25
  from hestia_earth.utils.model import filter_list_term_type
19
26
  from hestia_earth.utils.tools import safe_parse_float, flatten
20
27
  from hestia_earth.utils.blank_node import get_node_value
@@ -23,12 +30,12 @@ from hestia_earth.models.log import logRequirements, logShouldRun, log_as_table
23
30
  from hestia_earth.models.utils import _include, _omit, group_by
24
31
  from hestia_earth.models.utils.management import _new_management
25
32
  from hestia_earth.models.utils.term import get_lookup_value
26
- from hestia_earth.models.utils.blank_node import condense_nodes
27
- from hestia_earth.models.utils.crop import get_landCover_term_id
33
+ from hestia_earth.models.utils.blank_node import condense_nodes, DatestrFormat, _gapfill_datestr, DatestrGapfillMode
28
34
  from hestia_earth.models.utils.site import (
29
35
  related_cycles, get_land_cover_term_id as get_landCover_term_id_from_site_type
30
36
  )
31
37
  from . import MODEL
38
+ from ..utils.crop import get_landCover_term_id
32
39
 
33
40
  REQUIREMENTS = {
34
41
  "Site": {
@@ -81,13 +88,13 @@ RETURNS = {
81
88
  }]
82
89
  }
83
90
  LOOKUPS = {
84
- "crop": ["landCoverTermId"],
91
+ "crop": ["landCoverTermId", "maximumCycleDuration"],
85
92
  "forage": ["landCoverTermId"],
86
93
  "inorganicFertiliser": "nitrogenContent",
87
94
  "organicFertiliser": "ANIMAL_MANURE",
88
95
  "soilAmendment": "PRACTICE_INCREASING_C_INPUT",
89
96
  "landUseManagement": "GAP_FILL_TO_MANAGEMENT",
90
- "property": "GAP_FILL_TO_MANAGEMENT"
97
+ "property": ["GAP_FILL_TO_MANAGEMENT", "CALCULATE_TOTAL_LAND_COVER_SHARE_SEPARATELY"]
91
98
  }
92
99
  MODEL_KEY = 'management'
93
100
 
@@ -126,19 +133,49 @@ _INPUT_RULES = {
126
133
  _SKIP_LAND_COVER_SITE_TYPES = [
127
134
  SiteSiteType.CROPLAND.value
128
135
  ]
136
+ _CYCLE_DATE_TERM_TYPES = {TermTermType.CROP.value, TermTermType.FORAGE.value}
129
137
 
130
138
 
131
139
  def management(data: dict):
132
140
  node = _new_management(data.get('id'))
133
141
  node['value'] = data['value']
134
- node['endDate'] = data['endDate']
142
+ node['endDate'] = _gap_filled_date_only_str(data['endDate'])
135
143
  if data.get('startDate'):
136
- node['startDate'] = data['startDate']
144
+ node['startDate'] = _gap_filled_date_only_str(date_str=data['startDate'], mode=DatestrGapfillMode.START)
137
145
  if data.get('properties'):
138
146
  node['properties'] = data['properties']
139
147
  return node
140
148
 
141
149
 
150
+ def _get_maximum_cycle_duration(land_cover_id: str):
151
+ lookup = download_lookup("crop.csv")
152
+ return safe_parse_float(
153
+ get_table_value(lookup, column_name('landCoverTermId'), land_cover_id, column_name('maximumCycleDuration'))
154
+ )
155
+
156
+
157
+ def _gap_filled_date_only_str(date_str: str, mode: str = DatestrGapfillMode.END) -> str:
158
+ return _gapfill_datestr(datestr=date_str, mode=mode)[:10]
159
+
160
+
161
+ def _gap_filled_date_obj(date_str: str, mode: str = DatestrGapfillMode.END) -> datetime:
162
+ return datetime.strptime(
163
+ _gap_filled_date_only_str(date_str=date_str, mode=mode),
164
+ DatestrFormat.YEAR_MONTH_DAY.value
165
+ )
166
+
167
+
168
+ def _gap_filled_start_date(land_cover_id: str, end_date: str, cycle: dict) -> str:
169
+ """If possible, gap-fill the startDate based on the endDate - maximumCycleDuration"""
170
+ maximum_cycle_duration = _get_maximum_cycle_duration(land_cover_id)
171
+ return max(
172
+ _gap_filled_date_obj(end_date) - timedelta(days=maximum_cycle_duration)
173
+ if maximum_cycle_duration else datetime.fromtimestamp(0),
174
+ _gap_filled_date_obj(cycle.get("startDate"), mode=DatestrGapfillMode.START)
175
+ if cycle.get("startDate") else datetime.fromtimestamp(0)
176
+ ) if any([maximum_cycle_duration, cycle.get("startDate")]) else None
177
+
178
+
142
179
  def _should_gap_fill(term: dict):
143
180
  value = get_lookup_value(lookup_term=term, column='GAP_FILL_TO_MANAGEMENT')
144
181
  return bool(value)
@@ -167,20 +204,27 @@ def _copy_item_if_exists(source: dict, keys: list[str] = None, dest: dict = None
167
204
  return reduce(lambda p, c: p | ({c: source[c]} if source.get(c) else {}), keys or [], dest or {})
168
205
 
169
206
 
170
- def _get_landCover_term_id(product: dict) -> str:
171
- term = product.get('term', {})
172
- return get_landCover_term_id(term, model=MODEL, term=term.get('@id'), model_key=MODEL_KEY)
173
-
174
-
175
207
  def _get_relevant_items(cycle: dict, item_name: str, relevant_terms: list):
176
208
  """
177
209
  Get items from the list of cycles with any of the relevant terms.
178
210
  Also adds dates from Cycle.
179
211
  """
180
- return [
181
- _include(cycle, ["startDate", "endDate"]) | item
212
+ items = [
213
+ _include(cycle, ["startDate", "endDate"]) |
214
+ _include(
215
+ {
216
+ "startDate": _gap_filled_start_date(
217
+ land_cover_id=get_landCover_term_id(item.get('term', {})),
218
+ end_date=item.get("endDate") if "endDate" in item else cycle.get("endDate", ""),
219
+ cycle=cycle
220
+ )
221
+ } if "startDate" not in item else {},
222
+ "startDate"
223
+ ) |
224
+ item
182
225
  for item in filter_list_term_type(cycle.get(item_name, []), relevant_terms)
183
226
  ]
227
+ return items
184
228
 
185
229
 
186
230
  def _process_rule(node: dict, term: dict) -> list:
@@ -228,11 +272,12 @@ def _run_products(cycle: dict, products: list, total_products: int = None, use_c
228
272
  source=product,
229
273
  keys=['properties', 'startDate', 'endDate'],
230
274
  dest={
231
- "term": {'@id': _get_landCover_term_id(product)},
275
+ "term": {'@id': get_landCover_term_id(product.get('term', {}))},
232
276
  "value": round(100 / (total_products or len(products)), 2)
233
277
  }
234
278
  ) | (
235
- default_dates if use_cycle_dates else {}
279
+ default_dates if use_cycle_dates or product.get("term", {}).get("termType") in _CYCLE_DATE_TERM_TYPES
280
+ else {}
236
281
  ))
237
282
  for product in products
238
283
  ]
@@ -242,7 +287,7 @@ def _run_from_landCover(cycle: dict, crop_forage_products: list):
242
287
  """
243
288
  Copy landCover items, and include crop/forage landCover items with properties to count in ratio.
244
289
  """
245
- products = [
290
+ land_cover_products = [
246
291
  _map_to_value(_extract_node_value(
247
292
  _include(
248
293
  value=product,
@@ -254,14 +299,29 @@ def _run_from_landCover(cycle: dict, crop_forage_products: list):
254
299
  relevant_terms=[TermTermType.LANDCOVER]
255
300
  )
256
301
  ]
257
- return products + _run_products(
302
+ return land_cover_products + _run_products(
258
303
  cycle,
259
304
  crop_forage_products,
260
- total_products=len(crop_forage_products) + len(products),
305
+ total_products=len(crop_forage_products) + len(land_cover_products),
261
306
  use_cycle_dates=True
262
307
  )
263
308
 
264
309
 
310
+ def _should_group_landCover(term: dict):
311
+ value = get_lookup_value(lookup_term=term, column='CALCULATE_TOTAL_LAND_COVER_SHARE_SEPARATELY')
312
+ return bool(value)
313
+
314
+
315
+ def _has_prop_grouped_with_landCover(product: dict):
316
+ return bool(
317
+ next((
318
+ p
319
+ for p in product.get('properties', [])
320
+ if _should_group_landCover(p.get('term', {}))
321
+ ), None)
322
+ )
323
+
324
+
265
325
  def _run_from_crop_forage(cycle: dict):
266
326
  products = _get_relevant_items(
267
327
  cycle=cycle,
@@ -269,13 +329,13 @@ def _run_from_crop_forage(cycle: dict):
269
329
  relevant_terms=[TermTermType.CROP, TermTermType.FORAGE]
270
330
  )
271
331
  # only take products with a matching landCover term
272
- products = list(filter(_get_landCover_term_id, products))
332
+ products = [p for p in products if get_landCover_term_id(p.get('term', {}))]
273
333
  # remove any properties that should not get gap-filled
274
334
  products = list(map(_filter_properties, products))
275
335
 
276
- # split products with properties and those without
277
- products_with_gap_filled_props = [p for p in products if p.get('properties')]
278
- products_without_gap_filled_props = [p for p in products if not p.get('properties')]
336
+ # split products with properties that group with landCover
337
+ products_with_gap_filled_props = [p for p in products if _has_prop_grouped_with_landCover(p)]
338
+ products_without_gap_filled_props = [p for p in products if not _has_prop_grouped_with_landCover(p)]
279
339
 
280
340
  return _run_from_landCover(
281
341
  cycle=cycle,
@@ -65,4 +65,8 @@ def valid_site_type(cycle: dict, include_permanent_pasture=False):
65
65
 
66
66
  def get_landCover_term_id(lookup_term: dict, **log_args) -> str:
67
67
  value = get_lookup_value(lookup_term, 'landCoverTermId', **log_args)
68
- return value.split(';')[0] if value else None
68
+ return (
69
+ lookup_term.get("@id") if lookup_term.get("termType") == TermTermType.LANDCOVER.value else
70
+ value.split(';')[0] if value else
71
+ None
72
+ )
@@ -1 +1 @@
1
- VERSION = '0.65.5'
1
+ VERSION = '0.65.6'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: hestia-earth-models
3
- Version: 0.65.5
3
+ Version: 0.65.6
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=Llo2SH1Lp-R8x1JRxJ2Ta-vw5RbdUj2FHXUP-c
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=FC1vYE-igSWHH_kAACO4-kmSuUUvTiLpGWVaBEvQW50,19
7
+ hestia_earth/models/version.py,sha256=7xFo8Se5gLwBCboxTmtPAStKLrqZnJgu1-olEArI-44,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
@@ -27,7 +27,7 @@ hestia_earth/models/chaudharyBrooks2018/damageToTerrestrialEcosystemsLandTransfo
27
27
  hestia_earth/models/chaudharyBrooks2018/damageToTerrestrialEcosystemsTotalLandUseEffects.py,sha256=11H8j9i2h2zChea92CdzPodWZfdegkAnQx6qYC6Ym9A,2623
28
28
  hestia_earth/models/chaudharyBrooks2018/utils.py,sha256=Z0IrvVv-dKsRt09LmT7sc6e1bWnhjZ-WBrO-namIngo,1539
29
29
  hestia_earth/models/cml2001Baseline/__init__.py,sha256=0uGrCKDNUH-MUkpvts9MyPMnZKao-M03gU8uKquUozQ,416
30
- hestia_earth/models/cml2001Baseline/abioticResourceDepletionFossilFuels.py,sha256=dpAnytPCO8FfCFbJ9CuplsZqvkZabYdmHDd-L8WMZPs,7919
30
+ hestia_earth/models/cml2001Baseline/abioticResourceDepletionFossilFuels.py,sha256=nRAwh5UljL7Tg0BGlYsA6nrIGzIlizVPeangtjHOIQE,7869
31
31
  hestia_earth/models/cml2001Baseline/abioticResourceDepletionMineralsAndMetals.py,sha256=4p9Ui78F69yhZkXCwcM6lwbpaNLdpO9p_uJDnLqYhRM,5919
32
32
  hestia_earth/models/cml2001Baseline/eutrophicationPotentialExcludingFate.py,sha256=nUWKsn3COqAOrYNmiBKnA2rUs88pj4o3k4fHKA0TVbU,1068
33
33
  hestia_earth/models/cml2001Baseline/terrestrialAcidificationPotentialIncludingFateAverageEurope.py,sha256=N8neIISqeTAS7VGTNWbbbozOtfCb816qwwHCnv7Nnpw,1113
@@ -200,7 +200,7 @@ hestia_earth/models/haversineFormula/__init__.py,sha256=o155nR-XI67iCSBVNYIu4sPR
200
200
  hestia_earth/models/haversineFormula/transport/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
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
- hestia_earth/models/hestia/landCover.py,sha256=qWTZ16E1qntPkzmabtMzezayUqIjIg8TNz-Lovh7UKU,27589
203
+ hestia_earth/models/hestia/landCover.py,sha256=10wiHdIBhvWjK2ctHusgOcD2aqTNo8MmJVPW2_DQwu0,29409
204
204
  hestia_earth/models/hestia/landTransformation100YearAverageDuringCycle.py,sha256=-7ToRvCVPD6AAcjxorPS5jSWio7JAglHrdSS9PPyPqQ,1551
205
205
  hestia_earth/models/hestia/landTransformation20YearAverageDuringCycle.py,sha256=TCskVLhYXBMxdeZM-gN4Tdixk5ua7eVn-o5dfIT_H7o,1543
206
206
  hestia_earth/models/hestia/resourceUse_utils.py,sha256=1ySn4d-qkDeU8Ss_80l-uOypPoWsmDsqnS6IM8wkI34,7113
@@ -399,7 +399,7 @@ hestia_earth/models/linkedImpactAssessment/utils.py,sha256=S1zlux02gU2Lajrtoq-zQ
399
399
  hestia_earth/models/mocking/__init__.py,sha256=9VX50c-grz-snfd-7MBS0KfF7AadtbKuj7kK6PqtsgE,687
400
400
  hestia_earth/models/mocking/build_mock_search.py,sha256=p15ccEUmkmLp1RiGNznxMz3OFHbI8P1-29ExuohiQN8,1355
401
401
  hestia_earth/models/mocking/mock_search.py,sha256=ccFe_WrI73JElFmxp4hPNLCX7eeU--lBC1JFR901KJY,1069
402
- hestia_earth/models/mocking/search-results.json,sha256=OY_InmRuCXqEN3EUQTW60UiT0rnkshvCeyiJtrLAHqU,101989
402
+ hestia_earth/models/mocking/search-results.json,sha256=Zc6x4KxDAOvez6v5ZhwLxUB_IKghXr8kWX2TUJ8wAFU,11955
403
403
  hestia_earth/models/pooreNemecek2018/__init__.py,sha256=nPboL7ULJzL5nJD5q7q9VOZt_fxbKVm8fmn1Az5YkVY,417
404
404
  hestia_earth/models/pooreNemecek2018/aboveGroundCropResidueTotal.py,sha256=Qt-mel4dkhK6N5uUOutNOinCTFjbjtGzITaaI0LvYc4,2396
405
405
  hestia_earth/models/pooreNemecek2018/belowGroundCropResidue.py,sha256=JT0RybbvWVlo01FO8K0Yj41HrEaJT3Kj1xfayr2X-xw,2315
@@ -501,7 +501,7 @@ hestia_earth/models/site/brackishWater.py,sha256=vLEhIZv5PUKwzwvIuYrWi7K---fq7ZX
501
501
  hestia_earth/models/site/cationExchangeCapacityPerKgSoil.py,sha256=0eH4A-tXJ0hvIkiYXWxlx8TfrdbIKUGYUDk97-yQJgg,3653
502
502
  hestia_earth/models/site/flowingWater.py,sha256=v3g5722GIA4zQAUQI9yGFiZvFvI1QAVZqlQrY-6_B3A,1731
503
503
  hestia_earth/models/site/freshWater.py,sha256=FXs3Vt8V4e-wn325_dwSTOKlZtn5ksNUpvYGDeLJShY,1255
504
- hestia_earth/models/site/management.py,sha256=ffrXelDxwBuCVy7cZbhYQA0SKymMhCogPQES13ySSYE,11679
504
+ hestia_earth/models/site/management.py,sha256=jZqcYxflJWsPef2NrQgPxoKNPKAL3gs616HeMMmQUDY,14503
505
505
  hestia_earth/models/site/netPrimaryProduction.py,sha256=UIIQkYd911qVzrWjxBLrC37e-RARIVgDwLdARY9BuLw,1849
506
506
  hestia_earth/models/site/organicCarbonPerHa.py,sha256=F2ShinHf0m9qKa1nCYBspsDkRY6jzOl0wM8mSDre22I,14916
507
507
  hestia_earth/models/site/organicCarbonPerKgSoil.py,sha256=t--wAshiAKS-JvEKhLFRadGvgSBv5NFZ68jdyms_wh4,1945
@@ -568,7 +568,7 @@ hestia_earth/models/utils/blank_node.py,sha256=-IURt-nrVCJUk2Q51Ar46iEYv4Cn3aSdl
568
568
  hestia_earth/models/utils/cache_sources.py,sha256=MBkrPpjwNiC4ApDjeYVHZjWBbpvAerXRDrMHpjasAZ0,377
569
569
  hestia_earth/models/utils/completeness.py,sha256=2-GusD9UycobDZq8y5jar0ZcOjyqnSbzPRT_5XMc4YA,1259
570
570
  hestia_earth/models/utils/constant.py,sha256=6wLx8xb2R8HtpEpVy5e-PbioOo7QCu2n-W72fs6OvgE,3411
571
- hestia_earth/models/utils/crop.py,sha256=imVLCFGB-h4kAktyg3lJPjXCXDQY3Lr5M0Gz_SqXNOg,2573
571
+ hestia_earth/models/utils/crop.py,sha256=szbmQFIfKAgH18PXkwx4FcmSsYOzDM3AHN5z0aYK9OU,2696
572
572
  hestia_earth/models/utils/cropResidue.py,sha256=_0Q35CrliJeo31xGHsPWe8A2oHxijdIsOrf3gBEqhlA,612
573
573
  hestia_earth/models/utils/cropResidueManagement.py,sha256=nIDFjf39rDD10UHSVudfDyu-EiL261g8jyrgS-2aDKw,347
574
574
  hestia_earth/models/utils/currency.py,sha256=f_ArJANb--pZq4LL49SXQ1AMX_oKroqwBXKRRQqZwsM,578
@@ -630,7 +630,7 @@ tests/models/chaudharyBrooks2018/test_damageToTerrestrialEcosystemsLandOccupatio
630
630
  tests/models/chaudharyBrooks2018/test_damageToTerrestrialEcosystemsLandTransformation.py,sha256=lcyMTaNMbIjzZrbPxejujfYyAEj2XOH5Ei9pmAQAi7k,1912
631
631
  tests/models/chaudharyBrooks2018/test_damageToTerrestrialEcosystemsTotalLandUseEffects.py,sha256=NTc3PZZRc9ZqGpaARdbuzLWR5bB0HCPw5AMdGmwVsRg,704
632
632
  tests/models/cml2001Baseline/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
633
- tests/models/cml2001Baseline/test_abioticResourceDepletionFossilFuels.py,sha256=a6TF9qQmpcHCndcF3-xyhrVd4F2KFr1gZzaIw8gimQ0,8805
633
+ tests/models/cml2001Baseline/test_abioticResourceDepletionFossilFuels.py,sha256=-913Bo7_IC8vz3Fi1tYqN0mSx6HzwWmHcQs-jpuRm80,8801
634
634
  tests/models/cml2001Baseline/test_abioticResourceDepletionMineralsAndMetals.py,sha256=xBoSGZaNCSpfDdNFIbyJhJslDJD5A_eTywz01GDqFNM,4513
635
635
  tests/models/cml2001Baseline/test_eutrophicationPotentialExcludingFate.py,sha256=ZIIx_EiYbUxUoAS7NuQrxqwTFS3rXQm9_1AsqF_bhB8,894
636
636
  tests/models/cml2001Baseline/test_terrestrialAcidificationPotentialIncludingFateAverageEurope.py,sha256=t3WBdg_aTYSLfaqeXUDyvQJ8ZqbvKwv9RKaZyRzj61k,925
@@ -791,7 +791,7 @@ tests/models/haversineFormula/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5N
791
791
  tests/models/haversineFormula/transport/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
792
792
  tests/models/haversineFormula/transport/test_distance.py,sha256=hqzIOA1nGao8uiBE16J0ou52McwV4w30ZLpEAqtfi9k,970
793
793
  tests/models/hestia/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
794
- tests/models/hestia/test_landCover.py,sha256=pEy8AgHsOH7K6kUdwzDFt6-estJU7xcCFDbKL8x48SI,6051
794
+ tests/models/hestia/test_landCover.py,sha256=MP5sKjForlG1FGHl6W9zGEV5iQu4DoswrQa_ZhMqGDg,6078
795
795
  tests/models/hestia/test_landTransformation100YearAverageDuringCycle.py,sha256=3qa4rWUFqP1VM5-vm_182rhiBYJDxPqJwWtBqJ5K028,956
796
796
  tests/models/hestia/test_landTransformation20YearAverageDuringCycle.py,sha256=257nCGseM8IEc7i3c2lvx0AsJOpk5Cy633PlZZQYRGo,956
797
797
  tests/models/hestia/test_seed_emissions.py,sha256=dCUuJBkhwNFBhhcypQN7eMqrWZ9iGCnypoidO5DfQYw,921
@@ -1160,8 +1160,8 @@ tests/models/utils/test_term.py,sha256=M5Sa26v2gzQYbZ4H_fo7DspnaCx__-WtL-MULGapC
1160
1160
  tests/models/utils/test_time_series.py,sha256=LMhRPf8rp3nAriKAC-2K3FDkrMWntRTUUCERw7Lt68g,2686
1161
1161
  tests/models/webbEtAl2012AndSintermannEtAl2012/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1162
1162
  tests/models/webbEtAl2012AndSintermannEtAl2012/test_nh3ToAirOrganicFertiliser.py,sha256=qi2FNXS5Af2WDtm7nq_FsprH3BfCF0XxnE0XHmC4aIY,2244
1163
- hestia_earth_models-0.65.5.dist-info/LICENSE,sha256=TD25LoiRJsA5CPUNrcyt1PXlGcbUGFMAeZoBcfCrCNE,1154
1164
- hestia_earth_models-0.65.5.dist-info/METADATA,sha256=-IzI9Vpy_Cx1mhf771Yldw8ryByRbTygSrCA78-a_ik,3344
1165
- hestia_earth_models-0.65.5.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
1166
- hestia_earth_models-0.65.5.dist-info/top_level.txt,sha256=1dqA9TqpOLTEgpqa-YBsmbCmmNU1y56AtfFGEceZ2A0,19
1167
- hestia_earth_models-0.65.5.dist-info/RECORD,,
1163
+ hestia_earth_models-0.65.6.dist-info/LICENSE,sha256=TD25LoiRJsA5CPUNrcyt1PXlGcbUGFMAeZoBcfCrCNE,1154
1164
+ hestia_earth_models-0.65.6.dist-info/METADATA,sha256=AqVhpmA7vBW5Tu5lG1ovfvzdbF6QjX6IIodiV6_-JlU,3344
1165
+ hestia_earth_models-0.65.6.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
1166
+ hestia_earth_models-0.65.6.dist-info/top_level.txt,sha256=1dqA9TqpOLTEgpqa-YBsmbCmmNU1y56AtfFGEceZ2A0,19
1167
+ hestia_earth_models-0.65.6.dist-info/RECORD,,
@@ -193,4 +193,4 @@ def test_download_all_non_renewable_terms(*args):
193
193
  fuel_terms = download_all_non_renewable_terms("fuel.csv")
194
194
 
195
195
  assert "coalTar" in fuel_terms
196
- assert "sodPeat" not in fuel_terms
196
+ assert "sodPeat" in fuel_terms
@@ -195,7 +195,8 @@ def test_get_sums_of_crop_expansion():
195
195
  "zimbabwe_example",
196
196
  "brazil_empty_example",
197
197
  "gbr_example",
198
- "malaysia"
198
+ "malaysia",
199
+ "prior_landCover"
199
200
  ]
200
201
  )
201
202
  @patch(f"{CLASS_PATH}._new_management", side_effect=fake_new_management)