hestia-earth-models 0.74.10__py3-none-any.whl → 0.74.12__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 (410) hide show
  1. hestia_earth/models/agribalyse2016/fuelElectricity.py +1 -2
  2. hestia_earth/models/agribalyse2016/machineryInfrastructureDepreciatedAmountPerCycle.py +1 -7
  3. hestia_earth/models/akagiEtAl2011/utils.py +2 -6
  4. hestia_earth/models/aware/scarcityWeightedWaterUse.py +1 -4
  5. hestia_earth/models/aware2_0/scarcityWeightedWaterUse.py +1 -4
  6. hestia_earth/models/chaudharyBrooks2018/damageToTerrestrialEcosystemsLandOccupation.py +1 -4
  7. hestia_earth/models/chaudharyBrooks2018/damageToTerrestrialEcosystemsLandTransformation.py +1 -4
  8. hestia_earth/models/chaudharyBrooks2018/damageToTerrestrialEcosystemsTotalLandUseEffects.py +1 -4
  9. hestia_earth/models/cml2001Baseline/abioticResourceDepletionFossilFuels.py +1 -4
  10. hestia_earth/models/cml2001Baseline/abioticResourceDepletionMineralsAndMetals.py +1 -4
  11. hestia_earth/models/cml2001Baseline/eutrophicationPotentialExcludingFate.py +1 -4
  12. hestia_earth/models/cml2001Baseline/resourceUseEnergyDepletionDuringCycle.py +12 -10
  13. hestia_earth/models/cml2001Baseline/resourceUseMineralsAndMetalsDuringCycle.py +5 -5
  14. hestia_earth/models/cml2001Baseline/terrestrialAcidificationPotentialIncludingFateAverageEurope.py +1 -7
  15. hestia_earth/models/cml2001NonBaseline/eutrophicationPotentialIncludingFateAverageEurope.py +1 -7
  16. hestia_earth/models/cml2001NonBaseline/terrestrialAcidificationPotentialExcludingFate.py +1 -7
  17. hestia_earth/models/config/ImpactAssessment.json +12 -6
  18. hestia_earth/models/config/Site.json +16 -0
  19. hestia_earth/models/cycle/aboveGroundCropResidueTotal.py +1 -6
  20. hestia_earth/models/cycle/practice/landCover.py +9 -9
  21. hestia_earth/models/dammgen2009/noxToAirExcreta.py +1 -2
  22. hestia_earth/models/deRuijterEtAl2010/nh3ToAirCropResidueDecomposition.py +1 -2
  23. hestia_earth/models/ecoalimV9/cycle.py +1 -2
  24. hestia_earth/models/ecoalimV9/impact_assessment.py +10 -3
  25. hestia_earth/models/ecoinventV3/cycle.py +1 -2
  26. hestia_earth/models/ecoinventV3AndEmberClimate/cycle.py +1 -2
  27. hestia_earth/models/edip2003/ozoneDepletionPotential.py +1 -7
  28. hestia_earth/models/emepEea2019/utils.py +1 -2
  29. hestia_earth/models/emissionNotRelevant/__init__.py +2 -2
  30. hestia_earth/models/environmentalFootprintV3_1/environmentalFootprintSingleOverallScore.py +1 -4
  31. hestia_earth/models/environmentalFootprintV3_1/freshwaterEcotoxicityPotentialCtue.py +1 -7
  32. hestia_earth/models/environmentalFootprintV3_1/marineEutrophicationPotential.py +1 -7
  33. hestia_earth/models/environmentalFootprintV3_1/photochemicalOzoneCreationPotentialHumanHealthNmvocEq.py +1 -7
  34. hestia_earth/models/environmentalFootprintV3_1/scarcityWeightedWaterUse.py +1 -7
  35. hestia_earth/models/environmentalFootprintV3_1/soilQualityIndexLandOccupation.py +2 -7
  36. hestia_earth/models/environmentalFootprintV3_1/soilQualityIndexLandTransformation.py +2 -7
  37. hestia_earth/models/environmentalFootprintV3_1/soilQualityIndexTotalLandUseEffects.py +2 -7
  38. hestia_earth/models/epa2014/no3ToGroundwaterExcreta.py +1 -2
  39. hestia_earth/models/fantkeEtAl2016/damageToHumanHealthParticulateMatterFormation.py +2 -11
  40. hestia_earth/models/faostat2018/liveweightPerHead.py +11 -7
  41. hestia_earth/models/faostat2018/product/price.py +9 -5
  42. hestia_earth/models/faostat2018/seed.py +5 -12
  43. hestia_earth/models/faostat2018/utils.py +14 -6
  44. hestia_earth/models/frischknechtEtAl2000/ionisingRadiationKbqU235Eq.py +4 -8
  45. hestia_earth/models/geospatialDatabase/altitude.py +1 -2
  46. hestia_earth/models/geospatialDatabase/clayContent.py +1 -2
  47. hestia_earth/models/geospatialDatabase/croppingIntensity.py +1 -3
  48. hestia_earth/models/geospatialDatabase/drainageClass.py +1 -2
  49. hestia_earth/models/geospatialDatabase/ecoClimateZone.py +1 -2
  50. hestia_earth/models/geospatialDatabase/erodibility.py +1 -2
  51. hestia_earth/models/geospatialDatabase/heavyWinterPrecipitation.py +1 -2
  52. hestia_earth/models/geospatialDatabase/histosol.py +1 -2
  53. hestia_earth/models/geospatialDatabase/longFallowRatio.py +1 -3
  54. hestia_earth/models/geospatialDatabase/nutrientLossToAquaticEnvironment.py +1 -2
  55. hestia_earth/models/geospatialDatabase/organicCarbonPerKgSoil.py +1 -2
  56. hestia_earth/models/geospatialDatabase/potentialEvapotranspirationAnnual.py +1 -2
  57. hestia_earth/models/geospatialDatabase/potentialEvapotranspirationLongTermAnnualMean.py +1 -2
  58. hestia_earth/models/geospatialDatabase/potentialEvapotranspirationMonthly.py +1 -2
  59. hestia_earth/models/geospatialDatabase/precipitationAnnual.py +1 -2
  60. hestia_earth/models/geospatialDatabase/precipitationLongTermAnnualMean.py +1 -2
  61. hestia_earth/models/geospatialDatabase/precipitationMonthly.py +1 -2
  62. hestia_earth/models/geospatialDatabase/sandContent.py +1 -2
  63. hestia_earth/models/geospatialDatabase/siltContent.py +1 -2
  64. hestia_earth/models/geospatialDatabase/slope.py +1 -2
  65. hestia_earth/models/geospatialDatabase/slopeLength.py +1 -2
  66. hestia_earth/models/geospatialDatabase/soilPh.py +1 -2
  67. hestia_earth/models/geospatialDatabase/temperatureAnnual.py +1 -2
  68. hestia_earth/models/geospatialDatabase/temperatureLongTermAnnualMean.py +1 -2
  69. hestia_earth/models/geospatialDatabase/temperatureMonthly.py +1 -2
  70. hestia_earth/models/geospatialDatabase/totalNitrogenPerKgSoil.py +1 -2
  71. hestia_earth/models/geospatialDatabase/totalPhosphorusPerKgSoil.py +1 -2
  72. hestia_earth/models/geospatialDatabase/waterDepth.py +1 -2
  73. hestia_earth/models/hestia/aboveGroundCropResidue.py +1 -2
  74. hestia_earth/models/hestia/aboveGroundCropResidueTotal.py +1 -6
  75. hestia_earth/models/hestia/brackishWater.py +1 -2
  76. hestia_earth/models/hestia/cationExchangeCapacityPerKgSoil.py +1 -2
  77. hestia_earth/models/hestia/cropResidueManagement.py +1 -2
  78. hestia_earth/models/hestia/croppingIntensity.py +1 -7
  79. hestia_earth/models/hestia/default_emissions.py +3 -5
  80. hestia_earth/models/hestia/default_resourceUse.py +4 -11
  81. hestia_earth/models/hestia/excretaKgMass.py +9 -6
  82. hestia_earth/models/hestia/excretaKgN.py +8 -7
  83. hestia_earth/models/hestia/excretaKgVs.py +8 -7
  84. hestia_earth/models/hestia/feedConversionRatio/__init__.py +5 -7
  85. hestia_earth/models/hestia/flowingWater.py +1 -2
  86. hestia_earth/models/hestia/freshWater.py +1 -2
  87. hestia_earth/models/hestia/histosol.py +1 -2
  88. hestia_earth/models/hestia/inorganicFertiliser.py +2 -14
  89. hestia_earth/models/hestia/irrigatedTypeUnspecified.py +1 -7
  90. hestia_earth/models/hestia/landCover.py +192 -911
  91. hestia_earth/models/hestia/landCover_utils.py +769 -0
  92. hestia_earth/models/hestia/landOccupationDuringCycle.py +1 -2
  93. hestia_earth/models/hestia/liveAnimal.py +1 -3
  94. hestia_earth/models/hestia/longFallowRatio.py +1 -7
  95. hestia_earth/models/hestia/management.py +14 -8
  96. hestia_earth/models/hestia/materialAndSubstrate.py +1 -2
  97. hestia_earth/models/hestia/milkYield.py +2 -12
  98. hestia_earth/models/hestia/netPrimaryProduction.py +1 -2
  99. hestia_earth/models/hestia/organicCarbonPerHa.py +1 -2
  100. hestia_earth/models/hestia/pToSurfaceWaterAquacultureSystems.py +2 -4
  101. hestia_earth/models/hestia/pastureGrass.py +3 -4
  102. hestia_earth/models/hestia/pastureSystem.py +1 -7
  103. hestia_earth/models/hestia/potentialEvapotranspirationAnnual.py +1 -2
  104. hestia_earth/models/hestia/potentialEvapotranspirationMonthly.py +1 -2
  105. hestia_earth/models/hestia/precipitationAnnual.py +1 -2
  106. hestia_earth/models/hestia/precipitationMonthly.py +1 -2
  107. hestia_earth/models/hestia/rainfallAnnual.py +1 -2
  108. hestia_earth/models/hestia/rainfallMonthly.py +1 -2
  109. hestia_earth/models/hestia/residueBurnt.py +1 -7
  110. hestia_earth/models/hestia/residueIncorporated.py +1 -7
  111. hestia_earth/models/hestia/residueLeftOnField.py +1 -7
  112. hestia_earth/models/hestia/residueRemoved.py +3 -8
  113. hestia_earth/models/hestia/resourceUse_utils.py +4 -20
  114. hestia_earth/models/hestia/salineWater.py +1 -2
  115. hestia_earth/models/hestia/seed_emissions.py +5 -6
  116. hestia_earth/models/hestia/slope.py +44 -0
  117. hestia_earth/models/hestia/slopeLength.py +44 -0
  118. hestia_earth/models/hestia/soilMeasurement.py +1 -2
  119. hestia_earth/models/hestia/stockingDensityAnimalHousingAverage.py +1 -7
  120. hestia_earth/models/hestia/temperatureAnnual.py +1 -2
  121. hestia_earth/models/hestia/temperatureMonthly.py +1 -2
  122. hestia_earth/models/hestia/totalNitrogenPerKgSoil.py +1 -2
  123. hestia_earth/models/hestia/unknownPreSeasonWaterRegime.py +1 -7
  124. hestia_earth/models/hestia/utils.py +5 -5
  125. hestia_earth/models/hestia/waterDepth.py +1 -2
  126. hestia_earth/models/hestia/waterSalinity.py +1 -2
  127. hestia_earth/models/impact_assessment/emissions.py +8 -9
  128. hestia_earth/models/impact_assessment/post_checks/cycle.py +1 -1
  129. hestia_earth/models/impact_assessment/pre_checks/cycle.py +1 -1
  130. hestia_earth/models/ipcc2006/aboveGroundCropResidueRemoved.py +1 -3
  131. hestia_earth/models/ipcc2006/aboveGroundCropResidueTotal.py +1 -3
  132. hestia_earth/models/ipcc2006/belowGroundCropResidue.py +1 -3
  133. hestia_earth/models/ipcc2006/n2OToAirCropResidueDecompositionDirect.py +2 -6
  134. hestia_earth/models/ipcc2006/n2OToAirCropResidueDecompositionIndirect.py +1 -2
  135. hestia_earth/models/ipcc2006/n2OToAirExcretaDirect.py +1 -2
  136. hestia_earth/models/ipcc2006/n2OToAirExcretaIndirect.py +1 -2
  137. hestia_earth/models/ipcc2006/n2OToAirInorganicFertiliserDirect.py +1 -2
  138. hestia_earth/models/ipcc2006/n2OToAirInorganicFertiliserIndirect.py +1 -2
  139. hestia_earth/models/ipcc2006/n2OToAirOrganicFertiliserDirect.py +1 -2
  140. hestia_earth/models/ipcc2006/n2OToAirOrganicFertiliserIndirect.py +1 -2
  141. hestia_earth/models/ipcc2013ExcludingFeedbacks/gwp100.py +1 -7
  142. hestia_earth/models/ipcc2013IncludingFeedbacks/gwp100.py +1 -7
  143. hestia_earth/models/ipcc2019/aboveGroundBiomass.py +1 -1
  144. hestia_earth/models/ipcc2019/aboveGroundCropResidueTotal.py +1 -3
  145. hestia_earth/models/ipcc2019/animal/milkYieldPerAnimal.py +3 -7
  146. hestia_earth/models/ipcc2019/animal/pastureGrass.py +1 -2
  147. hestia_earth/models/ipcc2019/belowGroundBiomass.py +1 -1
  148. hestia_earth/models/ipcc2019/belowGroundCropResidue.py +1 -3
  149. hestia_earth/models/ipcc2019/biocharOrganicCarbonPerHa.py +1 -1
  150. hestia_earth/models/ipcc2019/ch4ToAirAquacultureSystems.py +2 -6
  151. hestia_earth/models/ipcc2019/ch4ToAirEntericFermentation.py +2 -12
  152. hestia_earth/models/ipcc2019/ch4ToAirExcreta.py +1 -2
  153. hestia_earth/models/ipcc2019/ch4ToAirFloodedRice.py +2 -10
  154. hestia_earth/models/ipcc2019/ch4ToAirOrganicSoilCultivation.py +1 -1
  155. hestia_earth/models/ipcc2019/co2ToAirAboveGroundBiomassStockChange.py +1 -1
  156. hestia_earth/models/ipcc2019/co2ToAirBelowGroundBiomassStockChange.py +1 -1
  157. hestia_earth/models/ipcc2019/co2ToAirBiocharStockChange.py +1 -1
  158. hestia_earth/models/ipcc2019/co2ToAirLimeHydrolysis.py +1 -2
  159. hestia_earth/models/ipcc2019/co2ToAirOrganicSoilCultivation.py +1 -1
  160. hestia_earth/models/ipcc2019/co2ToAirSoilOrganicCarbonStockChange.py +1 -1
  161. hestia_earth/models/ipcc2019/co2ToAirUreaHydrolysis.py +1 -2
  162. hestia_earth/models/ipcc2019/croppingDuration.py +1 -2
  163. hestia_earth/models/ipcc2019/n2OToAirCropResidueBurningDirect.py +1 -2
  164. hestia_earth/models/ipcc2019/n2OToAirCropResidueDecompositionDirect.py +2 -7
  165. hestia_earth/models/ipcc2019/n2OToAirExcretaDirect.py +1 -2
  166. hestia_earth/models/ipcc2019/n2OToAirInorganicFertiliserDirect.py +2 -7
  167. hestia_earth/models/ipcc2019/n2OToAirOrganicFertiliserDirect.py +2 -7
  168. hestia_earth/models/ipcc2019/n2OToAirOrganicSoilCultivationDirect.py +2 -7
  169. hestia_earth/models/ipcc2019/n2OToAir_indirect_emissions_utils.py +3 -9
  170. hestia_earth/models/ipcc2019/nh3ToAirInorganicFertiliser.py +2 -6
  171. hestia_earth/models/ipcc2019/nh3ToAirOrganicFertiliser.py +2 -6
  172. hestia_earth/models/ipcc2019/no3ToGroundwaterCropResidueDecomposition.py +2 -7
  173. hestia_earth/models/ipcc2019/no3ToGroundwaterExcreta.py +2 -8
  174. hestia_earth/models/ipcc2019/no3ToGroundwaterInorganicFertiliser.py +2 -7
  175. hestia_earth/models/ipcc2019/no3ToGroundwaterOrganicFertiliser.py +2 -7
  176. hestia_earth/models/ipcc2019/nonCo2EmissionsToAirNaturalVegetationBurning.py +1 -1
  177. hestia_earth/models/ipcc2019/noxToAirInorganicFertiliser.py +2 -6
  178. hestia_earth/models/ipcc2019/noxToAirOrganicFertiliser.py +2 -6
  179. hestia_earth/models/ipcc2019/organicCarbonPerHa_tier_1.py +1 -1
  180. hestia_earth/models/ipcc2019/organicCarbonPerHa_tier_2.py +1 -1
  181. hestia_earth/models/ipcc2019/pastureGrass.py +1 -2
  182. hestia_earth/models/ipcc2021/gwp100.py +2 -11
  183. hestia_earth/models/jarvisAndPain1994/n2ToAirExcreta.py +1 -2
  184. hestia_earth/models/koble2014/utils.py +1 -3
  185. hestia_earth/models/lcImpactAllEffects100Years/damageToFreshwaterEcosystemsClimateChange.py +1 -7
  186. hestia_earth/models/lcImpactAllEffects100Years/damageToFreshwaterEcosystemsFreshwaterEcotoxicity.py +1 -7
  187. hestia_earth/models/lcImpactAllEffects100Years/damageToFreshwaterEcosystemsFreshwaterEutrophication.py +1 -7
  188. hestia_earth/models/lcImpactAllEffects100Years/damageToFreshwaterEcosystemsPdfYear.py +1 -7
  189. hestia_earth/models/lcImpactAllEffects100Years/damageToFreshwaterEcosystemsWaterStress.py +1 -7
  190. hestia_earth/models/lcImpactAllEffects100Years/damageToHumanHealth.py +1 -7
  191. hestia_earth/models/lcImpactAllEffects100Years/damageToHumanHealthClimateChange.py +1 -7
  192. hestia_earth/models/lcImpactAllEffects100Years/damageToHumanHealthHumanToxicityCancerogenic.py +1 -7
  193. hestia_earth/models/lcImpactAllEffects100Years/damageToHumanHealthHumanToxicityNonCancerogenic.py +1 -7
  194. hestia_earth/models/lcImpactAllEffects100Years/damageToHumanHealthParticulateMatterFormation.py +1 -7
  195. hestia_earth/models/lcImpactAllEffects100Years/damageToHumanHealthPhotochemicalOzoneFormation.py +1 -7
  196. hestia_earth/models/lcImpactAllEffects100Years/damageToHumanHealthStratosphericOzoneDepletion.py +1 -7
  197. hestia_earth/models/lcImpactAllEffects100Years/damageToHumanHealthWaterStress.py +1 -7
  198. hestia_earth/models/lcImpactAllEffects100Years/damageToMarineEcosystemsMarineEcotoxicity.py +1 -7
  199. hestia_earth/models/lcImpactAllEffects100Years/damageToMarineEcosystemsMarineEutrophication.py +1 -7
  200. hestia_earth/models/lcImpactAllEffects100Years/damageToMarineEcosystemsPdfYear.py +1 -7
  201. hestia_earth/models/lcImpactAllEffects100Years/damageToTerrestrialEcosystemsClimateChange.py +1 -7
  202. hestia_earth/models/lcImpactAllEffects100Years/damageToTerrestrialEcosystemsPdfYear.py +1 -7
  203. hestia_earth/models/lcImpactAllEffects100Years/damageToTerrestrialEcosystemsPhotochemicalOzoneFormation.py +1 -7
  204. hestia_earth/models/lcImpactAllEffects100Years/damageToTerrestrialEcosystemsTerrestrialAcidification.py +1 -7
  205. hestia_earth/models/lcImpactAllEffects100Years/damageToTerrestrialEcosystemsTerrestrialEcotoxicity.py +1 -7
  206. hestia_earth/models/lcImpactAllEffectsInfinite/damageToFreshwaterEcosystemsClimateChange.py +1 -7
  207. hestia_earth/models/lcImpactAllEffectsInfinite/damageToFreshwaterEcosystemsFreshwaterEcotoxicity.py +1 -7
  208. hestia_earth/models/lcImpactAllEffectsInfinite/damageToFreshwaterEcosystemsFreshwaterEutrophication.py +1 -7
  209. hestia_earth/models/lcImpactAllEffectsInfinite/damageToFreshwaterEcosystemsPdfYear.py +1 -7
  210. hestia_earth/models/lcImpactAllEffectsInfinite/damageToFreshwaterEcosystemsWaterStress.py +1 -7
  211. hestia_earth/models/lcImpactAllEffectsInfinite/damageToHumanHealth.py +1 -7
  212. hestia_earth/models/lcImpactAllEffectsInfinite/damageToHumanHealthClimateChange.py +1 -7
  213. hestia_earth/models/lcImpactAllEffectsInfinite/damageToHumanHealthHumanToxicityCancerogenic.py +1 -7
  214. hestia_earth/models/lcImpactAllEffectsInfinite/damageToHumanHealthHumanToxicityNonCancerogenic.py +1 -7
  215. hestia_earth/models/lcImpactAllEffectsInfinite/damageToHumanHealthParticulateMatterFormation.py +1 -7
  216. hestia_earth/models/lcImpactAllEffectsInfinite/damageToHumanHealthPhotochemicalOzoneFormation.py +1 -7
  217. hestia_earth/models/lcImpactAllEffectsInfinite/damageToHumanHealthStratosphericOzoneDepletion.py +1 -7
  218. hestia_earth/models/lcImpactAllEffectsInfinite/damageToHumanHealthWaterStress.py +1 -7
  219. hestia_earth/models/lcImpactAllEffectsInfinite/damageToMarineEcosystemsMarineEcotoxicity.py +1 -7
  220. hestia_earth/models/lcImpactAllEffectsInfinite/damageToMarineEcosystemsMarineEutrophication.py +1 -7
  221. hestia_earth/models/lcImpactAllEffectsInfinite/damageToMarineEcosystemsPdfYear.py +1 -7
  222. hestia_earth/models/lcImpactAllEffectsInfinite/damageToTerrestrialEcosystemsClimateChange.py +1 -7
  223. hestia_earth/models/lcImpactAllEffectsInfinite/damageToTerrestrialEcosystemsPdfYear.py +1 -7
  224. hestia_earth/models/lcImpactAllEffectsInfinite/damageToTerrestrialEcosystemsPhotochemicalOzoneFormation.py +1 -7
  225. hestia_earth/models/lcImpactAllEffectsInfinite/damageToTerrestrialEcosystemsTerrestrialAcidification.py +1 -7
  226. hestia_earth/models/lcImpactAllEffectsInfinite/damageToTerrestrialEcosystemsTerrestrialEcotoxicity.py +1 -7
  227. hestia_earth/models/lcImpactCertainEffects100Years/damageToFreshwaterEcosystemsFreshwaterEcotoxicity.py +1 -7
  228. hestia_earth/models/lcImpactCertainEffects100Years/damageToFreshwaterEcosystemsFreshwaterEutrophication.py +1 -7
  229. hestia_earth/models/lcImpactCertainEffects100Years/damageToFreshwaterEcosystemsPdfYear.py +1 -7
  230. hestia_earth/models/lcImpactCertainEffects100Years/damageToFreshwaterEcosystemsWaterStress.py +1 -7
  231. hestia_earth/models/lcImpactCertainEffects100Years/damageToHumanHealth.py +1 -7
  232. hestia_earth/models/lcImpactCertainEffects100Years/damageToHumanHealthClimateChange.py +1 -7
  233. hestia_earth/models/lcImpactCertainEffects100Years/damageToHumanHealthHumanToxicityCancerogenic.py +1 -7
  234. hestia_earth/models/lcImpactCertainEffects100Years/damageToHumanHealthHumanToxicityNonCancerogenic.py +1 -7
  235. hestia_earth/models/lcImpactCertainEffects100Years/damageToHumanHealthParticulateMatterFormation.py +1 -7
  236. hestia_earth/models/lcImpactCertainEffects100Years/damageToHumanHealthPhotochemicalOzoneFormation.py +1 -7
  237. hestia_earth/models/lcImpactCertainEffects100Years/damageToHumanHealthStratosphericOzoneDepletion.py +1 -7
  238. hestia_earth/models/lcImpactCertainEffects100Years/damageToHumanHealthWaterStress.py +1 -7
  239. hestia_earth/models/lcImpactCertainEffects100Years/damageToMarineEcosystemsMarineEcotoxicity.py +1 -7
  240. hestia_earth/models/lcImpactCertainEffects100Years/damageToMarineEcosystemsMarineEutrophication.py +1 -7
  241. hestia_earth/models/lcImpactCertainEffects100Years/damageToMarineEcosystemsPdfYear.py +1 -7
  242. hestia_earth/models/lcImpactCertainEffects100Years/damageToTerrestrialEcosystemsClimateChange.py +1 -7
  243. hestia_earth/models/lcImpactCertainEffects100Years/damageToTerrestrialEcosystemsPdfYear.py +1 -7
  244. hestia_earth/models/lcImpactCertainEffects100Years/damageToTerrestrialEcosystemsPhotochemicalOzoneFormation.py +1 -7
  245. hestia_earth/models/lcImpactCertainEffects100Years/damageToTerrestrialEcosystemsTerrestrialAcidification.py +1 -7
  246. hestia_earth/models/lcImpactCertainEffects100Years/damageToTerrestrialEcosystemsTerrestrialEcotoxicity.py +1 -7
  247. hestia_earth/models/lcImpactCertainEffectsInfinite/damageToFreshwaterEcosystemsFreshwaterEcotoxicity.py +1 -7
  248. hestia_earth/models/lcImpactCertainEffectsInfinite/damageToFreshwaterEcosystemsFreshwaterEutrophication.py +1 -7
  249. hestia_earth/models/lcImpactCertainEffectsInfinite/damageToFreshwaterEcosystemsPdfYear.py +1 -7
  250. hestia_earth/models/lcImpactCertainEffectsInfinite/damageToFreshwaterEcosystemsWaterStress.py +1 -7
  251. hestia_earth/models/lcImpactCertainEffectsInfinite/damageToHumanHealth.py +1 -7
  252. hestia_earth/models/lcImpactCertainEffectsInfinite/damageToHumanHealthClimateChange.py +1 -7
  253. hestia_earth/models/lcImpactCertainEffectsInfinite/damageToHumanHealthHumanToxicityCancerogenic.py +1 -7
  254. hestia_earth/models/lcImpactCertainEffectsInfinite/damageToHumanHealthHumanToxicityNonCancerogenic.py +1 -7
  255. hestia_earth/models/lcImpactCertainEffectsInfinite/damageToHumanHealthParticulateMatterFormation.py +1 -7
  256. hestia_earth/models/lcImpactCertainEffectsInfinite/damageToHumanHealthPhotochemicalOzoneFormation.py +1 -7
  257. hestia_earth/models/lcImpactCertainEffectsInfinite/damageToHumanHealthStratosphericOzoneDepletion.py +1 -7
  258. hestia_earth/models/lcImpactCertainEffectsInfinite/damageToHumanHealthWaterStress.py +1 -7
  259. hestia_earth/models/lcImpactCertainEffectsInfinite/damageToMarineEcosystemsMarineEcotoxicity.py +1 -7
  260. hestia_earth/models/lcImpactCertainEffectsInfinite/damageToMarineEcosystemsMarineEutrophication.py +1 -7
  261. hestia_earth/models/lcImpactCertainEffectsInfinite/damageToMarineEcosystemsPdfYear.py +1 -7
  262. hestia_earth/models/lcImpactCertainEffectsInfinite/damageToTerrestrialEcosystemsClimateChange.py +1 -7
  263. hestia_earth/models/lcImpactCertainEffectsInfinite/damageToTerrestrialEcosystemsPdfYear.py +1 -7
  264. hestia_earth/models/lcImpactCertainEffectsInfinite/damageToTerrestrialEcosystemsPhotochemicalOzoneFormation.py +1 -7
  265. hestia_earth/models/lcImpactCertainEffectsInfinite/damageToTerrestrialEcosystemsTerrestrialAcidification.py +1 -7
  266. hestia_earth/models/lcImpactCertainEffectsInfinite/damageToTerrestrialEcosystemsTerrestrialEcotoxicity.py +1 -7
  267. hestia_earth/models/linkedImpactAssessment/emissions.py +4 -6
  268. hestia_earth/models/linkedImpactAssessment/utils.py +4 -6
  269. hestia_earth/models/mocking/search-results.json +1 -1
  270. hestia_earth/models/pooreNemecek2018/aboveGroundCropResidueTotal.py +1 -3
  271. hestia_earth/models/pooreNemecek2018/belowGroundCropResidue.py +1 -3
  272. hestia_earth/models/pooreNemecek2018/ch4ToAirAquacultureSystems.py +1 -2
  273. hestia_earth/models/pooreNemecek2018/excretaKgN.py +3 -4
  274. hestia_earth/models/pooreNemecek2018/excretaKgVs.py +4 -4
  275. hestia_earth/models/pooreNemecek2018/freshwaterWithdrawalsDuringCycle.py +3 -9
  276. hestia_earth/models/pooreNemecek2018/landOccupationDuringCycle.py +3 -7
  277. hestia_earth/models/pooreNemecek2018/longFallowDuration.py +1 -7
  278. hestia_earth/models/pooreNemecek2018/n2OToAirAquacultureSystemsDirect.py +1 -2
  279. hestia_earth/models/pooreNemecek2018/n2ToAirAquacultureSystems.py +1 -2
  280. hestia_earth/models/pooreNemecek2018/nh3ToAirAquacultureSystems.py +1 -2
  281. hestia_earth/models/pooreNemecek2018/no3ToGroundwaterCropResidueDecomposition.py +1 -2
  282. hestia_earth/models/pooreNemecek2018/no3ToGroundwaterExcreta.py +1 -2
  283. hestia_earth/models/pooreNemecek2018/no3ToGroundwaterInorganicFertiliser.py +1 -2
  284. hestia_earth/models/pooreNemecek2018/no3ToGroundwaterOrganicFertiliser.py +1 -2
  285. hestia_earth/models/pooreNemecek2018/no3ToGroundwaterSoilFlux_utils.py +1 -2
  286. hestia_earth/models/pooreNemecek2018/noxToAirAquacultureSystems.py +1 -2
  287. hestia_earth/models/pooreNemecek2018/nurseryDensity.py +1 -7
  288. hestia_earth/models/pooreNemecek2018/nurseryDuration.py +1 -7
  289. hestia_earth/models/pooreNemecek2018/plantationDensity.py +1 -7
  290. hestia_earth/models/pooreNemecek2018/plantationLifespan.py +1 -7
  291. hestia_earth/models/pooreNemecek2018/plantationProductiveLifespan.py +1 -7
  292. hestia_earth/models/pooreNemecek2018/rotationDuration.py +1 -7
  293. hestia_earth/models/pooreNemecek2018/saplingsDepreciatedAmountPerCycle.py +1 -7
  294. hestia_earth/models/poschEtAl2008/terrestrialAcidificationPotentialAccumulatedExceedance.py +1 -7
  295. hestia_earth/models/poschEtAl2008/terrestrialEutrophicationPotentialAccumulatedExceedance.py +1 -7
  296. hestia_earth/models/recipe2016Egalitarian/damageToFreshwaterEcosystemsSpeciesYear.py +1 -7
  297. hestia_earth/models/recipe2016Egalitarian/damageToHumanHealth.py +1 -7
  298. hestia_earth/models/recipe2016Egalitarian/damageToMarineEcosystemsSpeciesYear.py +1 -7
  299. hestia_earth/models/recipe2016Egalitarian/damageToResourceAvailability.py +1 -7
  300. hestia_earth/models/recipe2016Egalitarian/damageToTerrestrialEcosystemsSpeciesYear.py +1 -7
  301. hestia_earth/models/recipe2016Egalitarian/ecosystemDamageOzoneFormation.py +1 -7
  302. hestia_earth/models/recipe2016Egalitarian/fossilResourceScarcity.py +1 -7
  303. hestia_earth/models/recipe2016Egalitarian/freshwaterAquaticEcotoxicityPotential14Dcbeq.py +1 -7
  304. hestia_earth/models/recipe2016Egalitarian/freshwaterEutrophicationPotential.py +1 -7
  305. hestia_earth/models/recipe2016Egalitarian/humanCarcinogenicToxicity.py +1 -7
  306. hestia_earth/models/recipe2016Egalitarian/humanDamageOzoneFormation.py +2 -10
  307. hestia_earth/models/recipe2016Egalitarian/humanNonCarcinogenicToxicity.py +1 -7
  308. hestia_earth/models/recipe2016Egalitarian/marineAquaticEcotoxicityPotential14Dcbeq.py +1 -7
  309. hestia_earth/models/recipe2016Egalitarian/marineEutrophicationPotential.py +1 -7
  310. hestia_earth/models/recipe2016Egalitarian/ozoneDepletionPotential.py +1 -7
  311. hestia_earth/models/recipe2016Egalitarian/terrestrialAcidificationPotential.py +1 -7
  312. hestia_earth/models/recipe2016Egalitarian/terrestrialEcotoxicityPotential14Dcbeq.py +1 -7
  313. hestia_earth/models/recipe2016Hierarchist/damageToFreshwaterEcosystemsSpeciesYear.py +1 -7
  314. hestia_earth/models/recipe2016Hierarchist/damageToHumanHealth.py +1 -7
  315. hestia_earth/models/recipe2016Hierarchist/damageToMarineEcosystemsSpeciesYear.py +1 -7
  316. hestia_earth/models/recipe2016Hierarchist/damageToResourceAvailability.py +1 -7
  317. hestia_earth/models/recipe2016Hierarchist/damageToTerrestrialEcosystemsSpeciesYear.py +1 -7
  318. hestia_earth/models/recipe2016Hierarchist/ecosystemDamageOzoneFormation.py +2 -10
  319. hestia_earth/models/recipe2016Hierarchist/fossilResourceScarcity.py +1 -7
  320. hestia_earth/models/recipe2016Hierarchist/freshwaterAquaticEcotoxicityPotential14Dcbeq.py +1 -7
  321. hestia_earth/models/recipe2016Hierarchist/freshwaterEutrophicationPotential.py +1 -7
  322. hestia_earth/models/recipe2016Hierarchist/humanCarcinogenicToxicity.py +1 -7
  323. hestia_earth/models/recipe2016Hierarchist/humanDamageOzoneFormation.py +2 -10
  324. hestia_earth/models/recipe2016Hierarchist/humanNonCarcinogenicToxicity.py +1 -7
  325. hestia_earth/models/recipe2016Hierarchist/marineAquaticEcotoxicityPotential14Dcbeq.py +1 -7
  326. hestia_earth/models/recipe2016Hierarchist/marineEutrophicationPotential.py +1 -7
  327. hestia_earth/models/recipe2016Hierarchist/ozoneDepletionPotential.py +1 -7
  328. hestia_earth/models/recipe2016Hierarchist/terrestrialAcidificationPotential.py +1 -7
  329. hestia_earth/models/recipe2016Hierarchist/terrestrialEcotoxicityPotential14Dcbeq.py +1 -7
  330. hestia_earth/models/recipe2016Individualist/damageToFreshwaterEcosystemsSpeciesYear.py +1 -7
  331. hestia_earth/models/recipe2016Individualist/damageToHumanHealth.py +1 -7
  332. hestia_earth/models/recipe2016Individualist/damageToMarineEcosystemsSpeciesYear.py +1 -7
  333. hestia_earth/models/recipe2016Individualist/damageToResourceAvailability.py +1 -7
  334. hestia_earth/models/recipe2016Individualist/damageToTerrestrialEcosystemsSpeciesYear.py +1 -7
  335. hestia_earth/models/recipe2016Individualist/ecosystemDamageOzoneFormation.py +2 -10
  336. hestia_earth/models/recipe2016Individualist/fossilResourceScarcity.py +1 -7
  337. hestia_earth/models/recipe2016Individualist/freshwaterAquaticEcotoxicityPotential14Dcbeq.py +1 -7
  338. hestia_earth/models/recipe2016Individualist/freshwaterEutrophicationPotential.py +1 -7
  339. hestia_earth/models/recipe2016Individualist/humanCarcinogenicToxicity.py +1 -7
  340. hestia_earth/models/recipe2016Individualist/humanDamageOzoneFormation.py +2 -10
  341. hestia_earth/models/recipe2016Individualist/humanNonCarcinogenicToxicity.py +1 -7
  342. hestia_earth/models/recipe2016Individualist/marineAquaticEcotoxicityPotential14Dcbeq.py +1 -7
  343. hestia_earth/models/recipe2016Individualist/marineEutrophicationPotential.py +1 -7
  344. hestia_earth/models/recipe2016Individualist/ozoneDepletionPotential.py +1 -7
  345. hestia_earth/models/recipe2016Individualist/terrestrialAcidificationPotential.py +1 -7
  346. hestia_earth/models/recipe2016Individualist/terrestrialEcotoxicityPotential14Dcbeq.py +1 -7
  347. hestia_earth/models/resourceUseNotRelevant/__init__.py +2 -8
  348. hestia_earth/models/schererPfister2015/nErosionSoilFlux.py +1 -2
  349. hestia_earth/models/schererPfister2015/pErosionSoilFlux.py +1 -2
  350. hestia_earth/models/schererPfister2015/pToDrainageWaterSoilFlux.py +1 -2
  351. hestia_earth/models/schererPfister2015/pToGroundwaterSoilFlux.py +1 -2
  352. hestia_earth/models/schererPfister2015/pToSurfaceWaterSoilFlux.py +1 -2
  353. hestia_earth/models/schmidt2007/ch4ToAirWasteTreatment.py +1 -2
  354. hestia_earth/models/schmidt2007/h2SToAirWasteTreatment.py +1 -2
  355. hestia_earth/models/schmidt2007/n2OToAirWasteTreatmentDirect.py +1 -2
  356. hestia_earth/models/schmidt2007/nh3ToAirWasteTreatment.py +1 -2
  357. hestia_earth/models/site/grouped_measurement.py +2 -3
  358. hestia_earth/models/stehfestBouwman2006/n2OToAirCropResidueDecompositionDirect.py +1 -2
  359. hestia_earth/models/stehfestBouwman2006/n2OToAirExcretaDirect.py +1 -2
  360. hestia_earth/models/stehfestBouwman2006/n2OToAirInorganicFertiliserDirect.py +1 -2
  361. hestia_earth/models/stehfestBouwman2006/n2OToAirOrganicFertiliserDirect.py +1 -2
  362. hestia_earth/models/stehfestBouwman2006/n2OToAirSoilFlux_utils.py +1 -2
  363. hestia_earth/models/stehfestBouwman2006/noxToAirCropResidueDecomposition.py +1 -2
  364. hestia_earth/models/stehfestBouwman2006/noxToAirExcreta.py +1 -2
  365. hestia_earth/models/stehfestBouwman2006/noxToAirInorganicFertiliser.py +1 -2
  366. hestia_earth/models/stehfestBouwman2006/noxToAirOrganicFertiliser.py +1 -2
  367. hestia_earth/models/stehfestBouwman2006/noxToAirSoilFlux_utils.py +1 -2
  368. hestia_earth/models/stehfestBouwman2006GisImplementation/noxToAirCropResidueDecomposition.py +1 -2
  369. hestia_earth/models/stehfestBouwman2006GisImplementation/noxToAirExcreta.py +1 -2
  370. hestia_earth/models/stehfestBouwman2006GisImplementation/noxToAirInorganicFertiliser.py +1 -2
  371. hestia_earth/models/stehfestBouwman2006GisImplementation/noxToAirOrganicFertiliser.py +1 -2
  372. hestia_earth/models/stehfestBouwman2006GisImplementation/noxToAirSoilFlux_utils.py +1 -2
  373. hestia_earth/models/transformation/input/excreta.py +7 -5
  374. hestia_earth/models/transformation/product/excreta.py +4 -4
  375. hestia_earth/models/usetoxV2/freshwaterEcotoxicityPotentialCtue.py +1 -7
  376. hestia_earth/models/utils/__init__.py +26 -7
  377. hestia_earth/models/utils/background_emissions.py +3 -3
  378. hestia_earth/models/utils/blank_node.py +31 -12
  379. hestia_earth/models/utils/emission.py +24 -10
  380. hestia_earth/models/utils/indicator.py +28 -13
  381. hestia_earth/models/utils/input.py +22 -5
  382. hestia_earth/models/utils/management.py +18 -4
  383. hestia_earth/models/utils/measurement.py +14 -6
  384. hestia_earth/models/utils/practice.py +24 -4
  385. hestia_earth/models/utils/product.py +32 -14
  386. hestia_earth/models/version.py +1 -1
  387. hestia_earth/models/webbEtAl2012AndSintermannEtAl2012/nh3ToAirOrganicFertiliser.py +1 -2
  388. hestia_earth/orchestrator/models/__init__.py +22 -11
  389. {hestia_earth_models-0.74.10.dist-info → hestia_earth_models-0.74.12.dist-info}/METADATA +2 -2
  390. {hestia_earth_models-0.74.10.dist-info → hestia_earth_models-0.74.12.dist-info}/RECORD +410 -404
  391. tests/models/cml2001Baseline/test_abioticResourceDepletionFossilFuels.py +4 -9
  392. tests/models/cml2001Baseline/test_abioticResourceDepletionMineralsAndMetals.py +4 -9
  393. tests/models/environmentalFootprintV3_1/test_environmentalFootprintSingleOverallScore.py +4 -9
  394. tests/models/environmentalFootprintV3_1/test_marineEutrophicationPotential.py +1 -7
  395. tests/models/environmentalFootprintV3_1/test_scarcityWeightedWaterUse.py +2 -8
  396. tests/models/environmentalFootprintV3_1/test_soilQualityIndexLandTransformation.py +3 -13
  397. tests/models/hestia/test_default_emissions.py +2 -2
  398. tests/models/hestia/test_default_resourceUse.py +3 -3
  399. tests/models/hestia/test_landCover.py +42 -295
  400. tests/models/hestia/test_landCover_utils.py +233 -0
  401. tests/models/hestia/test_slope.py +23 -0
  402. tests/models/hestia/test_slopeLength.py +23 -0
  403. tests/models/ipcc2019/test_no3ToGroundwaterExcreta.py +1 -0
  404. tests/models/poschEtAl2008/test_terrestrialAcidificationPotentialAccumulatedExceedance.py +4 -9
  405. tests/models/poschEtAl2008/test_terrestrialEutrophicationPotentialAccumulatedExceedance.py +4 -9
  406. tests/models/utils/test_indicator.py +6 -4
  407. tests/models/utils/test_measurement.py +7 -5
  408. {hestia_earth_models-0.74.10.dist-info → hestia_earth_models-0.74.12.dist-info}/LICENSE +0 -0
  409. {hestia_earth_models-0.74.10.dist-info → hestia_earth_models-0.74.12.dist-info}/WHEEL +0 -0
  410. {hestia_earth_models-0.74.10.dist-info → hestia_earth_models-0.74.12.dist-info}/top_level.txt +0 -0
@@ -32,8 +32,7 @@ MODEL_KEY = 'fuelElectricity'
32
32
 
33
33
 
34
34
  def _input(term_id: str, value: float, operation: dict):
35
- input = _new_input(term_id, MODEL)
36
- input['value'] = [value]
35
+ input = _new_input(term=term_id, model=MODEL, value=value)
37
36
  input['operation'] = operation
38
37
  return input
39
38
 
@@ -32,12 +32,6 @@ RETURNS = {
32
32
  TERM_ID = 'machineryInfrastructureDepreciatedAmountPerCycle'
33
33
 
34
34
 
35
- def _input(value: float):
36
- input = _new_input(TERM_ID, MODEL)
37
- input['value'] = [value]
38
- return input
39
-
40
-
41
35
  def _get_input_value_from_term(inputs: list, term_id: str):
42
36
  values = flatten([
43
37
  input.get('value', []) for input in inputs if input.get('term', {}).get('@id') == term_id
@@ -63,7 +57,7 @@ def get_value(country: dict, cycle: dict):
63
57
  def _run(cycle: dict):
64
58
  country = cycle.get('site', {}).get('country', {})
65
59
  value = get_value(country, cycle)
66
- return [_input(value)] if value is not None else []
60
+ return [_new_input(term=TERM_ID, model=MODEL, value=value)] if value is not None else []
67
61
 
68
62
 
69
63
  def _should_run(cycle: dict):
@@ -1,4 +1,4 @@
1
- from hestia_earth.schema import EmissionMethodTier, EmissionStatsDefinition, TermTermType
1
+ from hestia_earth.schema import EmissionMethodTier, TermTermType
2
2
 
3
3
  from hestia_earth.models.log import logRequirements, logShouldRun
4
4
  from hestia_earth.models.utils import multiply_values
@@ -12,12 +12,8 @@ LOOKUP_NAME = 'akagiEtAl2011CropResidueBurningFactor'
12
12
 
13
13
 
14
14
  def _emission(term_id: str, value: float, sd: float = None):
15
- emission = _new_emission(term_id, MODEL)
16
- emission['value'] = [value]
15
+ emission = _new_emission(term=term_id, model=MODEL, value=value, sd=sd)
17
16
  emission['methodTier'] = TIER
18
- if sd is not None:
19
- emission['sd'] = [sd]
20
- emission['statsDefinition'] = EmissionStatsDefinition.MODELLED.value
21
17
  return emission
22
18
 
23
19
 
@@ -52,10 +52,7 @@ _REGION_LOOKUP = 'region-aware-factors.csv'
52
52
  _AWARE_LOOKUP = 'awareWaterBasinId.csv'
53
53
 
54
54
 
55
- def _indicator(value: float):
56
- indicator = _new_indicator(TERM_ID, MODEL)
57
- indicator['value'] = value
58
- return indicator
55
+ def _indicator(value: float): return _new_indicator(term=TERM_ID, model=MODEL, value=value)
59
56
 
60
57
 
61
58
  def _get_factor_from_basinId(site: dict, aware_id: str):
@@ -52,10 +52,7 @@ _REGION_LOOKUP = 'region-aware-2-0-factors.csv'
52
52
  _AWARE_LOOKUP = 'awareWaterBasinId-2-0.csv'
53
53
 
54
54
 
55
- def _indicator(value: float):
56
- indicator = _new_indicator(TERM_ID, MODEL)
57
- indicator['value'] = value
58
- return indicator
55
+ def _indicator(value: float): return _new_indicator(term=TERM_ID, model=MODEL, value=value)
59
56
 
60
57
 
61
58
  def _lookup_column(site: dict):
@@ -60,10 +60,7 @@ TERM_ID = 'damageToTerrestrialEcosystemsLandOccupation'
60
60
  LOOKUP_SUFFIX = 'LandOccupationChaudaryBrooks2018CF'
61
61
 
62
62
 
63
- def _indicator(value: float):
64
- indicator = _new_indicator(TERM_ID, MODEL)
65
- indicator['value'] = value
66
- return indicator
63
+ def _indicator(value: float): return _new_indicator(term=TERM_ID, model=MODEL, value=value)
67
64
 
68
65
 
69
66
  def _run(impact_assessment: dict):
@@ -52,10 +52,7 @@ _LOOKUP_SUFFIX = 'LandTransformationChaudaryBrooks2018CF'
52
52
  _TRANSFORMATION_TERM_ID = 'landTransformation20YearAverageDuringCycle'
53
53
 
54
54
 
55
- def _indicator(value: float):
56
- indicator = _new_indicator(TERM_ID, MODEL)
57
- indicator['value'] = value
58
- return indicator
55
+ def _indicator(value: float): return _new_indicator(term=TERM_ID, model=MODEL, value=value)
59
56
 
60
57
 
61
58
  def _run(impact_assessment: dict):
@@ -36,10 +36,7 @@ TERM_ID = 'damageToTerrestrialEcosystemsTotalLandUseEffects'
36
36
  BIODIVERSITY_TERM_IDS = [TERM_ID_1, TERM_ID_2]
37
37
 
38
38
 
39
- def _indicator(value: float):
40
- indicator = _new_indicator(TERM_ID, MODEL)
41
- indicator['value'] = value
42
- return indicator
39
+ def _indicator(value: float): return _new_indicator(term=TERM_ID, model=MODEL, value=value)
43
40
 
44
41
 
45
42
  def impact_value(impact_assessment: dict, term_id: str):
@@ -67,10 +67,7 @@ def _valid_input(input: dict) -> bool:
67
67
  ]))
68
68
 
69
69
 
70
- def _indicator(value: float):
71
- indicator = _new_indicator(TERM_ID, MODEL)
72
- indicator["value"] = value
73
- return indicator
70
+ def _indicator(value: float): return _new_indicator(term=TERM_ID, model=MODEL, value=value)
74
71
 
75
72
 
76
73
  def _run(energy_resources_in_mj: list):
@@ -53,10 +53,7 @@ def _valid_resource_indicator(resource: dict) -> bool:
53
53
  return len(resource.get('inputs', [])) == 1 and isinstance(_node_value(resource), (int, float))
54
54
 
55
55
 
56
- def _indicator(value: float):
57
- indicator = _new_indicator(TERM_ID, MODEL)
58
- indicator['value'] = value
59
- return indicator
56
+ def _indicator(value: float): return _new_indicator(term=TERM_ID, model=MODEL, value=value)
60
57
 
61
58
 
62
59
  def _run(resources: list):
@@ -19,10 +19,7 @@ LOOKUPS = {
19
19
  TERM_ID = 'eutrophicationPotentialExcludingFate'
20
20
 
21
21
 
22
- def _indicator(value: float):
23
- indicator = _new_indicator(TERM_ID, MODEL)
24
- indicator['value'] = value
25
- return indicator
22
+ def _indicator(value: float): return _new_indicator(term=TERM_ID, model=MODEL, value=value)
26
23
 
27
24
 
28
25
  def run(impact_assessment: dict):
@@ -1,13 +1,12 @@
1
1
  from collections import defaultdict
2
2
  from itertools import groupby
3
3
  from typing import Tuple, Optional
4
-
5
4
  from hestia_earth.schema import TermTermType
6
5
  from hestia_earth.utils.model import filter_list_term_type
7
- from hestia_earth.utils.tools import list_sum
6
+ from hestia_earth.utils.tools import list_sum, pick
8
7
 
9
8
  from hestia_earth.models.log import logRequirements, logShouldRun, log_as_table
10
- from hestia_earth.models.utils import Units, _include
9
+ from hestia_earth.models.utils import Units
11
10
  from hestia_earth.models.utils.blank_node import convert_unit
12
11
  from hestia_earth.models.utils.indicator import _new_indicator
13
12
  from . import MODEL
@@ -64,16 +63,19 @@ INPUTS_TYPES_UNITS = {
64
63
 
65
64
 
66
65
  def _indicator(values: list[float], cycle_input: dict):
67
- indicator = _new_indicator(TERM_ID, MODEL)
68
- indicator['value'] = list_sum(values)
69
- indicator['inputs'] = [cycle_input | {"units": "MJ"}]
66
+ value = list_sum(values)
67
+ indicator = _new_indicator(term=TERM_ID, model=MODEL, value=value, inputs=[cycle_input])
70
68
  return indicator
71
69
 
72
70
 
73
71
  def _run(grouped_energy_terms: dict):
74
- indicators = [_indicator(values=[input['value-in-MJ'] for input in energy_term_group_vals],
75
- cycle_input=energy_term_group_vals[0]['input']['term'])
76
- for energy_term_group_vals in grouped_energy_terms.values()]
72
+ indicators = [
73
+ _indicator(
74
+ values=[input['value-in-MJ'] for input in energy_term_group_vals],
75
+ cycle_input=energy_term_group_vals[0]['input']['term']
76
+ )
77
+ for energy_term_group_vals in grouped_energy_terms.values()
78
+ ]
77
79
  return indicators
78
80
 
79
81
 
@@ -118,7 +120,7 @@ def _should_run(cycle: dict) -> Tuple[bool, dict]:
118
120
  grouped_energy_terms[k].extend(list(v))
119
121
 
120
122
  logs = [
121
- _include(input, ['id', 'units', 'termType', 'value', 'value-in-MJ']) | {
123
+ pick(input, ['id', 'units', 'termType', 'value', 'value-in-MJ']) | {
122
124
  'properties': " ".join([
123
125
  f"{p.get('term', {}).get('@id')}= {p.get('value')} ({p.get('term', {}).get('units')})"
124
126
  for p in input.get('properties', [])
@@ -35,16 +35,16 @@ authorised_term_types = [TermTermType.MATERIAL, TermTermType.SOILAMENDMENT, Term
35
35
 
36
36
 
37
37
  def _indicator(value: list[float], cycle_input: dict):
38
- indicator = _new_indicator(TERM_ID, MODEL)
39
- indicator['value'] = list_sum(value)
40
- indicator['inputs'] = [cycle_input]
38
+ indicator = _new_indicator(term=TERM_ID, model=MODEL, value=list_sum(value), inputs=[cycle_input])
41
39
  return indicator
42
40
 
43
41
 
44
42
  def _run(grouped_abiotic_terms: dict):
45
43
  indicators = [
46
- _indicator(value=_sum_nodes_value(abiotic_term_group_vals),
47
- cycle_input=abiotic_term_group_vals[0]['term'])
44
+ _indicator(
45
+ value=_sum_nodes_value(abiotic_term_group_vals),
46
+ cycle_input=abiotic_term_group_vals[0]['term']
47
+ )
48
48
  for abiotic_term_group_vals in grouped_abiotic_terms.values()
49
49
  ]
50
50
  return indicators
@@ -19,15 +19,9 @@ LOOKUPS = {
19
19
  TERM_ID = 'terrestrialAcidificationPotentialIncludingFateAverageEurope'
20
20
 
21
21
 
22
- def _indicator(value: float):
23
- indicator = _new_indicator(TERM_ID, MODEL)
24
- indicator['value'] = value
25
- return indicator
26
-
27
-
28
22
  def run(impact_assessment: dict):
29
23
  value = impact_emission_lookup_value(MODEL, TERM_ID, impact_assessment, LOOKUPS['emission'])
30
24
  logRequirements(impact_assessment, model=MODEL, term=TERM_ID,
31
25
  value=value)
32
26
  logShouldRun(impact_assessment, MODEL, TERM_ID, value is not None)
33
- return _indicator(value) if value is not None else None
27
+ return _new_indicator(term=TERM_ID, model=MODEL, value=value)
@@ -19,15 +19,9 @@ LOOKUPS = {
19
19
  TERM_ID = 'eutrophicationPotentialIncludingFateAverageEurope'
20
20
 
21
21
 
22
- def _indicator(value: float):
23
- indicator = _new_indicator(TERM_ID, MODEL)
24
- indicator['value'] = value
25
- return indicator
26
-
27
-
28
22
  def run(impact_assessment: dict):
29
23
  value = impact_emission_lookup_value(MODEL, TERM_ID, impact_assessment, LOOKUPS['emission'])
30
24
  logRequirements(impact_assessment, model=MODEL, term=TERM_ID,
31
25
  value=value)
32
26
  logShouldRun(impact_assessment, MODEL, TERM_ID, value is not None)
33
- return _indicator(value) if value is not None else None
27
+ return _new_indicator(term=TERM_ID, model=MODEL, value=value)
@@ -19,15 +19,9 @@ LOOKUPS = {
19
19
  TERM_ID = 'terrestrialAcidificationPotentialExcludingFate'
20
20
 
21
21
 
22
- def _indicator(value: float):
23
- indicator = _new_indicator(TERM_ID, MODEL)
24
- indicator['value'] = value
25
- return indicator
26
-
27
-
28
22
  def run(impact_assessment: dict):
29
23
  value = impact_emission_lookup_value(MODEL, TERM_ID, impact_assessment, LOOKUPS['emission'])
30
24
  logRequirements(impact_assessment, model=MODEL, term=TERM_ID,
31
25
  value=value)
32
26
  logShouldRun(impact_assessment, MODEL, TERM_ID, value is not None)
33
- return _indicator(value) if value is not None else None
27
+ return _new_indicator(term=TERM_ID, model=MODEL, value=value)
@@ -876,7 +876,8 @@
876
876
  "runStrategy": "always",
877
877
  "mergeStrategy": "list",
878
878
  "mergeArgs": {
879
- "replaceThreshold": ["value", 0.01]
879
+ "replaceThreshold": ["value", 0.01],
880
+ "sameMethodModel": true
880
881
  },
881
882
  "stage": 1
882
883
  },
@@ -887,7 +888,8 @@
887
888
  "runStrategy": "always",
888
889
  "mergeStrategy": "list",
889
890
  "mergeArgs": {
890
- "replaceThreshold": ["value", 0.01]
891
+ "replaceThreshold": ["value", 0.01],
892
+ "sameMethodModel": true
891
893
  },
892
894
  "stage": 1
893
895
  }
@@ -911,7 +913,8 @@
911
913
  "runStrategy": "always",
912
914
  "mergeStrategy": "list",
913
915
  "mergeArgs": {
914
- "replaceThreshold": ["value", 0.01]
916
+ "replaceThreshold": ["value", 0.01],
917
+ "sameMethodModel": true
915
918
  },
916
919
  "stage": 1
917
920
  }
@@ -923,7 +926,8 @@
923
926
  "runStrategy": "always",
924
927
  "mergeStrategy": "list",
925
928
  "mergeArgs": {
926
- "replaceThreshold": ["value", 0.01]
929
+ "replaceThreshold": ["value", 0.01],
930
+ "sameMethodModel": true
927
931
  },
928
932
  "stage": 1
929
933
  },
@@ -934,7 +938,8 @@
934
938
  "runStrategy": "always",
935
939
  "mergeStrategy": "list",
936
940
  "mergeArgs": {
937
- "replaceThreshold": ["value", 0.01]
941
+ "replaceThreshold": ["value", 0.01],
942
+ "sameMethodModel": true
938
943
  },
939
944
  "stage": 1
940
945
  },
@@ -945,7 +950,8 @@
945
950
  "runStrategy": "always",
946
951
  "mergeStrategy": "list",
947
952
  "mergeArgs": {
948
- "replaceThreshold": ["value", 0.01]
953
+ "replaceThreshold": ["value", 0.01],
954
+ "sameMethodModel": true
949
955
  },
950
956
  "stage": 1
951
957
  },
@@ -106,6 +106,22 @@
106
106
  "runStrategy": "add_blank_node_if_missing",
107
107
  "mergeStrategy": "list",
108
108
  "stage": 1
109
+ },
110
+ {
111
+ "key": "measurements",
112
+ "model": "hestia",
113
+ "value": "slopeLength",
114
+ "runStrategy": "add_blank_node_if_missing",
115
+ "mergeStrategy": "list",
116
+ "stage": 1
117
+ },
118
+ {
119
+ "key": "measurements",
120
+ "model": "hestia",
121
+ "value": "slope",
122
+ "runStrategy": "add_blank_node_if_missing",
123
+ "mergeStrategy": "list",
124
+ "stage": 1
109
125
  }
110
126
  ],
111
127
  [
@@ -27,11 +27,6 @@ RETURNS = {
27
27
  TERM_ID = 'aboveGroundCropResidueTotal'
28
28
 
29
29
 
30
- def _product(value: float):
31
- product = _new_product(TERM_ID, value)
32
- return product
33
-
34
-
35
30
  def _should_run(cycle: dict):
36
31
  term_type_incomplete = _is_term_type_incomplete(cycle, TERM_ID)
37
32
  value = sum_above_ground_crop_residue(cycle)
@@ -47,4 +42,4 @@ def _should_run(cycle: dict):
47
42
 
48
43
  def run(cycle: dict):
49
44
  should_run, value = _should_run(cycle)
50
- return [_product(value)] if should_run else []
45
+ return [_new_product(term=TERM_ID, value=value)] if should_run else []
@@ -1,10 +1,9 @@
1
1
  from functools import reduce
2
2
  from hestia_earth.schema import TermTermType, SiteSiteType
3
3
  from hestia_earth.utils.model import filter_list_term_type
4
- from hestia_earth.utils.tools import non_empty_list, flatten, list_sum
4
+ from hestia_earth.utils.tools import non_empty_list, flatten, list_sum, omit, pick
5
5
 
6
6
  from hestia_earth.models.log import logRequirements, logShouldRun
7
- from hestia_earth.models.utils import _omit, _include
8
7
  from hestia_earth.models.utils.practice import _new_practice
9
8
  from hestia_earth.models.utils.term import get_lookup_value
10
9
  from hestia_earth.models.utils.blank_node import condense_nodes
@@ -53,11 +52,12 @@ MODEL_KEY = 'landCover'
53
52
 
54
53
 
55
54
  def practice(data: dict):
56
- node = _new_practice(data.get('id'))
57
- node['value'] = [data['value']]
58
- node['endDate'] = data['endDate']
59
- if data.get('startDate'):
60
- node['startDate'] = data['startDate']
55
+ node = _new_practice(
56
+ term=data.get('id'),
57
+ value=data['value'],
58
+ end_date=data['endDate'],
59
+ start_date=data.get('startDate')
60
+ )
61
61
  if data.get('properties'):
62
62
  node['properties'] = data['properties']
63
63
  return node
@@ -70,7 +70,7 @@ def _should_gap_fill(term: dict):
70
70
 
71
71
  def _filter_properties(blank_node: dict):
72
72
  properties = list(filter(lambda p: _should_gap_fill(p.get('term', {})), blank_node.get('properties', [])))
73
- return _omit(blank_node, ['properties']) | ({'properties': properties} if properties else {})
73
+ return omit(blank_node, ['properties']) | ({'properties': properties} if properties else {})
74
74
 
75
75
 
76
76
  def _map_to_value(value: dict):
@@ -92,7 +92,7 @@ def _run(cycle: dict, products: list, total: float):
92
92
  products = list(map(_filter_properties, products))
93
93
 
94
94
  nodes = [
95
- _map_to_value(_include(cycle, ["startDate", "endDate"]) | _copy_item_if_exists(
95
+ _map_to_value(pick(cycle, ["startDate", "endDate"]) | _copy_item_if_exists(
96
96
  source=product,
97
97
  keys=['properties', 'startDate', 'endDate'],
98
98
  dest={
@@ -26,8 +26,7 @@ _N2O_TERM_ID = 'n2OToAirExcretaDirect'
26
26
 
27
27
 
28
28
  def _emission(value: float):
29
- emission = _new_emission(TERM_ID, MODEL)
30
- emission['value'] = [value]
29
+ emission = _new_emission(term=TERM_ID, model=MODEL, value=value)
31
30
  emission['methodTier'] = TIER
32
31
  return emission
33
32
 
@@ -44,8 +44,7 @@ TIER = EmissionMethodTier.TIER_1.value
44
44
 
45
45
 
46
46
  def _emission(value: float):
47
- emission = _new_emission(TERM_ID, MODEL)
48
- emission['value'] = [value]
47
+ emission = _new_emission(term=TERM_ID, model=MODEL, value=value)
49
48
  emission['methodTier'] = TIER
50
49
  return emission
51
50
 
@@ -64,8 +64,7 @@ TIER = EmissionMethodTier.BACKGROUND.value
64
64
 
65
65
 
66
66
  def _emission(term_id: str, value: float, input: dict, country_id: str = None, key_id: str = None):
67
- emission = _new_emission(term_id, MODEL, country_id, key_id)
68
- emission['value'] = [value]
67
+ emission = _new_emission(term=term_id, model=MODEL, value=value, country_id=country_id, key_id=key_id)
69
68
  emission['methodTier'] = TIER
70
69
  emission['inputs'] = [input.get('term')]
71
70
  if input.get('operation'):
@@ -72,10 +72,17 @@ def _indicator(
72
72
  land_cover_id: str = None,
73
73
  previous_land_cover_id: str = None,
74
74
  ):
75
- indicator = _new_indicator(term_id, MODEL, land_cover_id, previous_land_cover_id, country_id, key_id)
76
- indicator['value'] = value
75
+ indicator = _new_indicator(
76
+ term=term_id,
77
+ value=value,
78
+ model=MODEL,
79
+ land_cover_id=land_cover_id,
80
+ previous_land_cover_id=previous_land_cover_id,
81
+ country_id=country_id,
82
+ key_id=key_id,
83
+ inputs=[input.get('term')]
84
+ )
77
85
  indicator['methodTier'] = TIER
78
- indicator['inputs'] = [input.get('term')]
79
86
  if input.get('operation'):
80
87
  indicator['operation'] = input.get('operation')
81
88
  if input.get('animal'):
@@ -68,8 +68,7 @@ TIER = EmissionMethodTier.BACKGROUND.value
68
68
 
69
69
 
70
70
  def _emission(term_id: str, value: float, input: dict, country_id: str = None, key_id: str = None):
71
- emission = _new_emission(term_id, MODEL, country_id, key_id)
72
- emission['value'] = [value]
71
+ emission = _new_emission(term=term_id, model=MODEL, value=value, country_id=country_id, key_id=key_id)
73
72
  emission['methodTier'] = TIER
74
73
  emission['inputs'] = [input.get('term')]
75
74
  if input.get('operation'):
@@ -66,8 +66,7 @@ TIER = EmissionMethodTier.BACKGROUND.value
66
66
 
67
67
 
68
68
  def _emission(term_id: str, value: float, input: dict):
69
- emission = _new_emission(term_id, MODEL)
70
- emission['value'] = [value]
69
+ emission = _new_emission(term=term_id, model=MODEL, value=value)
71
70
  emission['methodTier'] = TIER
72
71
  emission['inputs'] = [input.get('term')]
73
72
  if input.get('operation'):
@@ -20,15 +20,9 @@ RETURNS = {
20
20
  TERM_ID = 'ozoneDepletionPotential'
21
21
 
22
22
 
23
- def _indicator(value: float):
24
- indicator = _new_indicator(TERM_ID, MODEL)
25
- indicator['value'] = value
26
- return indicator
27
-
28
-
29
23
  def run(impact_assessment: dict):
30
24
  value = impact_emission_lookup_value(MODEL, TERM_ID, impact_assessment, LOOKUPS['emission'])
31
25
  logRequirements(impact_assessment, model=MODEL, term=TERM_ID,
32
26
  value=value)
33
27
  logShouldRun(impact_assessment, MODEL, TERM_ID, value is not None)
34
- return _indicator(value) if value is not None else None
28
+ return _new_indicator(term=TERM_ID, model=MODEL, value=value)
@@ -10,8 +10,7 @@ from . import MODEL
10
10
 
11
11
 
12
12
  def _emission(value: float, tier: str, term_id: str, input: dict = None, operation: dict = None):
13
- emission = _new_emission(term_id, MODEL)
14
- emission['value'] = [value]
13
+ emission = _new_emission(term=term_id, model=MODEL, value=value)
15
14
  emission['methodTier'] = tier
16
15
  if input:
17
16
  emission['inputs'] = [input]
@@ -26,6 +26,7 @@ LOOKUPS = {
26
26
  "productTermIdsAllowed",
27
27
  "productTermTypesAllowed",
28
28
  "siteTypesAllowed",
29
+ "siteMeasurementIdsAllowed",
29
30
  "typesAllowed"
30
31
  ],
31
32
  "emission-model-productTermIdsAllowed": "",
@@ -36,8 +37,7 @@ TIER = EmissionMethodTier.NOT_RELEVANT.value
36
37
 
37
38
 
38
39
  def _emission(term_id: str):
39
- emission = _new_emission(term_id, MODEL)
40
- emission['value'] = [0]
40
+ emission = _new_emission(term=term_id, model=MODEL, value=0)
41
41
  emission['methodTier'] = TIER
42
42
  return emission
43
43
 
@@ -103,10 +103,7 @@ def _count_duplicate_indicators(reference_indicator: dict, indicators: list) ->
103
103
  ])
104
104
 
105
105
 
106
- def _indicator(value: float) -> dict:
107
- indicator = _new_indicator(TERM_ID, MODEL)
108
- indicator['value'] = value
109
- return indicator
106
+ def _indicator(value: float): return _new_indicator(term=TERM_ID, model=MODEL, value=value)
110
107
 
111
108
 
112
109
  def _run(indicators: List[dict]):
@@ -22,12 +22,6 @@ LOOKUPS = {
22
22
  TERM_ID = 'freshwaterEcotoxicityPotentialCtue'
23
23
 
24
24
 
25
- def _indicator(value: float):
26
- indicator = _new_indicator(TERM_ID, MODEL)
27
- indicator['value'] = value
28
- return indicator
29
-
30
-
31
25
  def run(impact_assessment: dict):
32
26
  value = impact_lookup_value(MODEL, TERM_ID, impact_assessment, LOOKUPS['pesticideAI'])
33
- return _indicator(value) if value is not None else None
27
+ return _new_indicator(term=TERM_ID, model=MODEL, value=value)
@@ -22,15 +22,9 @@ LOOKUPS = {
22
22
  TERM_ID = 'marineEutrophicationPotential'
23
23
 
24
24
 
25
- def _indicator(value: float):
26
- indicator = _new_indicator(TERM_ID, MODEL)
27
- indicator['value'] = value
28
- return indicator
29
-
30
-
31
25
  def run(impact_assessment: dict):
32
26
  value = impact_emission_lookup_value(MODEL, TERM_ID, impact_assessment, LOOKUPS['emission'])
33
27
  logRequirements(impact_assessment, model=MODEL, term=TERM_ID,
34
28
  value=value)
35
29
  logShouldRun(impact_assessment, MODEL, TERM_ID, value is not None)
36
- return _indicator(value) if value is not None else None
30
+ return _new_indicator(term=TERM_ID, model=MODEL, value=value)
@@ -23,14 +23,8 @@ LOOKUPS = {
23
23
  TERM_ID = 'photochemicalOzoneCreationPotentialHumanHealthNmvocEq'
24
24
 
25
25
 
26
- def _indicator(value: float):
27
- indicator = _new_indicator(TERM_ID, MODEL)
28
- indicator["value"] = value
29
- return indicator
30
-
31
-
32
26
  def run(impact_assessment: dict):
33
27
  value = impact_emission_lookup_value(MODEL, TERM_ID, impact_assessment, LOOKUPS["emission"])
34
28
  logRequirements(impact_assessment, model=MODEL, term=TERM_ID, value=value)
35
29
  logShouldRun(impact_assessment, MODEL, TERM_ID, value is not None)
36
- return _indicator(value) if value is not None else None
30
+ return _new_indicator(term=TERM_ID, model=MODEL, value=value)
@@ -25,16 +25,10 @@ RETURNS = {
25
25
  TERM_ID = 'scarcityWeightedWaterUse'
26
26
 
27
27
 
28
- def _indicator(value: float):
29
- indicator = _new_indicator(TERM_ID, MODEL)
30
- indicator['value'] = value
31
- return indicator
32
-
33
-
34
28
  def run(impact_assessment: dict):
35
29
  value = impact_country_value(MODEL, TERM_ID, impact_assessment, f"{list(LOOKUPS.keys())[0]}.csv",
36
30
  default_world_value=True)
37
31
  logRequirements(impact_assessment, model=MODEL, term=TERM_ID,
38
32
  value=value)
39
33
  logShouldRun(impact_assessment, MODEL, TERM_ID, value is not None)
40
- return None if value is None else _indicator(value)
34
+ return _new_indicator(term=TERM_ID, model=MODEL, value=value)