@hestia-earth/guide 0.0.17 → 0.0.19
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.
- package/CHANGELOG.md +34 -0
- package/dist/content/guide/aggregation-engine/content.json +1 -1
- package/dist/content/guide/aggregation-engine/crop.json +1 -1
- package/dist/content/guide/aggregation-engine/distribution.json +1 -0
- package/dist/content/guide/aggregation-engine/generalProcess.json +1 -0
- package/dist/content/guide/aggregation-engine/processedFood.json +1 -1
- package/dist/content/guide/data-explorer/what-is-it.json +1 -1
- package/dist/content/guide/data-validation/content.json +1 -0
- package/dist/content/guide/data-validation/cycle.json +1 -0
- package/dist/content/guide/data-validation/impact-assessment.json +1 -0
- package/dist/content/guide/data-validation/organisation.json +1 -0
- package/dist/content/guide/data-validation/site.json +1 -0
- package/dist/content/guide/file-upload/concepts.json +1 -0
- package/dist/content/guide/file-upload/deletion.json +1 -0
- package/dist/content/guide/file-upload/examples/content.json +1 -0
- package/dist/content/guide/file-upload/examples/example-1.json +1 -0
- package/dist/content/guide/file-upload/examples/example-2.json +1 -0
- package/dist/content/guide/file-upload/examples/example-3.json +1 -0
- package/dist/content/guide/file-upload/examples/example-4.json +1 -0
- package/dist/content/guide/file-upload/getting-started.json +1 -1
- package/dist/content/guide/file-upload/prepare-file.json +1 -1
- package/dist/content/guide/file-upload/special-cases.json +1 -0
- package/dist/content/guide/hestia-api/data-api.json +1 -1
- package/dist/content/guide/utils/content.json +1 -0
- package/dist/content/index.json +1 -1
- package/dist/content/models/applying-models/content.json +1 -0
- package/dist/content/models/applying-models/faq.json +1 -0
- package/dist/content/models/applying-models/introduction.json +1 -0
- package/dist/content/models/cycleAnimals/animal-fatContent/content.json +1 -0
- package/dist/content/models/cycleAnimals/animal-fatContent/ipcc2019.json +1 -0
- package/dist/content/models/cycleAnimals/animal-hoursWorkedPerDay/content.json +1 -0
- package/dist/content/models/cycleAnimals/animal-hoursWorkedPerDay/ipcc2019.json +1 -0
- package/dist/content/models/cycleAnimals/animal-liveweightGain/content.json +1 -0
- package/dist/content/models/cycleAnimals/animal-liveweightGain/ipcc2019.json +1 -0
- package/dist/content/models/cycleAnimals/animal-liveweightPerHead/content.json +1 -1
- package/dist/content/models/cycleAnimals/animal-liveweightPerHead/ipcc2019.json +1 -1
- package/dist/content/models/cycleAnimals/animal-milkYieldPerAnimal/content.json +1 -0
- package/dist/content/models/cycleAnimals/animal-milkYieldPerAnimal/ipcc2019.json +1 -0
- package/dist/content/models/cycleAnimals/animal-pregnancyRateTotal/content.json +1 -0
- package/dist/content/models/cycleAnimals/animal-pregnancyRateTotal/ipcc2019.json +1 -0
- package/dist/content/models/cycleAnimals/animal-trueProteinContent/content.json +1 -0
- package/dist/content/models/cycleAnimals/animal-trueProteinContent/ipcc2019.json +1 -0
- package/dist/content/models/cycleAnimals/animal-weightAtMaturity/content.json +1 -0
- package/dist/content/models/cycleAnimals/animal-weightAtMaturity/ipcc2019.json +1 -0
- package/dist/content/models/cycleAnimals/cycle-animal-input-hestiaAggregatedData/content.json +1 -1
- package/dist/content/models/cycleAnimals/cycle-animal-input-hestiaAggregatedData/cycle.json +1 -1
- package/dist/content/models/cycleAnimals/cycle-animal-input-properties/content.json +1 -1
- package/dist/content/models/cycleAnimals/cycle-animal-input-properties/cycle.json +1 -1
- package/dist/content/models/cycleAnimals/ipcc2019-animal-pastureGrass/content.json +1 -1
- package/dist/content/models/cycleAnimals/ipcc2019-animal-pastureGrass/ipcc2019.json +1 -1
- package/dist/content/models/cycleCompleteness/cycle-completeness-animalFeed/content.json +1 -1
- package/dist/content/models/cycleCompleteness/cycle-completeness-animalFeed/cycle.json +1 -1
- package/dist/content/models/cycleCompleteness/cycle-completeness-cropResidue/content.json +1 -1
- package/dist/content/models/cycleCompleteness/cycle-completeness-cropResidue/cycle.json +1 -1
- package/dist/content/models/cycleCompleteness/cycle-completeness-electricityFuel/content.json +1 -1
- package/dist/content/models/cycleCompleteness/cycle-completeness-electricityFuel/cycle.json +1 -1
- package/dist/content/models/cycleCompleteness/cycle-completeness-excreta/content.json +1 -1
- package/dist/content/models/cycleCompleteness/cycle-completeness-excreta/cycle.json +1 -1
- package/dist/content/models/cycleCompleteness/cycle-completeness-freshForage/content.json +1 -1
- package/dist/content/models/cycleCompleteness/cycle-completeness-freshForage/cycle.json +1 -1
- package/dist/content/models/cycleCompleteness/cycle-completeness-material/content.json +1 -1
- package/dist/content/models/cycleCompleteness/cycle-completeness-material/cycle.json +1 -1
- package/dist/content/models/cycleCompleteness/cycle-completeness-soilAmendment/content.json +1 -1
- package/dist/content/models/cycleCompleteness/cycle-completeness-soilAmendment/cycle.json +1 -1
- package/dist/content/models/cycleEmissions/animal/ch4ToAirEntericFermentation/content.json +1 -1
- package/dist/content/models/cycleEmissions/animal/ch4ToAirEntericFermentation/ipcc2019.json +1 -1
- package/dist/content/models/cycleEmissions/animal/ch4ToAirExcreta/ipcc2019.json +1 -1
- package/dist/content/models/cycleEmissions/aquaculture/ch4ToAirAquacultureSystems/content.json +1 -1
- package/dist/content/models/cycleEmissions/aquaculture/ch4ToAirAquacultureSystems/ipcc2019.json +1 -1
- package/dist/content/models/cycleEmissions/aquaculture/ch4ToAirAquacultureSystems/pooreNemecek2018.json +1 -1
- package/dist/content/models/cycleEmissions/aquaculture/n2OToAirAquacultureSystemsDirect/content.json +1 -1
- package/dist/content/models/cycleEmissions/aquaculture/n2OToAirAquacultureSystemsDirect/pooreNemecek2018.json +1 -1
- package/dist/content/models/cycleEmissions/aquaculture/n2ToAirAquacultureSystems/content.json +1 -1
- package/dist/content/models/cycleEmissions/aquaculture/n2ToAirAquacultureSystems/pooreNemecek2018.json +1 -1
- package/dist/content/models/cycleEmissions/aquaculture/nh3ToAirAquacultureSystems/content.json +1 -1
- package/dist/content/models/cycleEmissions/aquaculture/nh3ToAirAquacultureSystems/pooreNemecek2018.json +1 -1
- package/dist/content/models/cycleEmissions/aquaculture/noxToAirAquacultureSystems/content.json +1 -1
- package/dist/content/models/cycleEmissions/aquaculture/noxToAirAquacultureSystems/pooreNemecek2018.json +1 -1
- package/dist/content/models/cycleEmissions/fuel/blackCarbonToAirFuelCombustion/content.json +1 -0
- package/dist/content/models/cycleEmissions/fuel/blackCarbonToAirFuelCombustion/emepEea2019.json +1 -0
- package/dist/content/models/cycleEmissions/fuel/ch4ToAirFuelCombustion/content.json +1 -0
- package/dist/content/models/cycleEmissions/fuel/ch4ToAirFuelCombustion/emepEea2019.json +1 -0
- package/dist/content/models/cycleEmissions/fuel/coToAirFuelCombustion/content.json +1 -0
- package/dist/content/models/cycleEmissions/fuel/coToAirFuelCombustion/emepEea2019.json +1 -0
- package/dist/content/models/cycleEmissions/fuel/n2OToAirFuelCombustionIndirect/ipcc2019.json +1 -1
- package/dist/content/models/cycleEmissions/fuel/nmvocToAirFuelCombustion/content.json +1 -0
- package/dist/content/models/cycleEmissions/fuel/nmvocToAirFuelCombustion/emepEea2019.json +1 -0
- package/dist/content/models/cycleEmissions/fuel/pm10ToAirFuelCombustion/content.json +1 -0
- package/dist/content/models/cycleEmissions/fuel/pm10ToAirFuelCombustion/emepEea2019.json +1 -0
- package/dist/content/models/cycleEmissions/fuel/pm25ToAirFuelCombustion/content.json +1 -0
- package/dist/content/models/cycleEmissions/fuel/pm25ToAirFuelCombustion/emepEea2019.json +1 -0
- package/dist/content/models/cycleEmissions/fuel/tspToAirFuelCombustion/content.json +1 -0
- package/dist/content/models/cycleEmissions/fuel/tspToAirFuelCombustion/emepEea2019.json +1 -0
- package/dist/content/models/cycleEmissions/inputs/cycle-inputs-background-emissions/content.json +1 -1
- package/dist/content/models/cycleEmissions/inputs/cycle-inputs-background-emissions/ecoaliMv9.json +1 -1
- package/dist/content/models/cycleEmissions/inputs/cycle-inputs-background-emissions/ecoinventv3.json +1 -1
- package/dist/content/models/cycleEmissions/inputs/cycle-inputs-background-emissions/ecoinventv3AndEmberClimate.json +1 -1
- package/dist/content/models/cycleEmissions/inputs/cycle-inputs-background-emissions/freeflow.json +1 -1
- package/dist/content/models/cycleEmissions/inputs/cycle-inputs-background-emissions/worldsteel.json +1 -0
- package/dist/content/models/cycleEmissions/landUseChange/co2ToAirAboveGroundBiomassStockChange/content.json +1 -1
- package/dist/content/models/cycleEmissions/landUseChange/co2ToAirAboveGroundBiomassStockChange/ipcc2019.json +1 -1
- package/dist/content/models/cycleEmissions/landUseChange/co2ToAirBelowGroundBiomassStockChange/content.json +1 -1
- package/dist/content/models/cycleEmissions/landUseChange/co2ToAirBelowGroundBiomassStockChange/ipcc2019.json +1 -1
- package/dist/content/models/cycleEmissions/landUseChange/emissionsToAirOrganicSoilBurning/content.json +1 -0
- package/dist/content/models/cycleEmissions/landUseChange/emissionsToAirOrganicSoilBurning/ipcc2019.json +1 -0
- package/dist/content/models/cycleEmissions/landUseChange/nonCo2EmissionsToAirNaturalVegetationBurning/content.json +1 -1
- package/dist/content/models/cycleEmissions/landUseChange/nonCo2EmissionsToAirNaturalVegetationBurning/ipcc2019.json +1 -0
- package/dist/content/models/cycleEmissions/organicSoil/ch4ToAirOrganicSoilCultivation/content.json +1 -1
- package/dist/content/models/cycleEmissions/organicSoil/ch4ToAirOrganicSoilCultivation/ipcc2019.json +1 -1
- package/dist/content/models/cycleEmissions/organicSoil/co2ToAirOrganicSoilCultivation/content.json +1 -1
- package/dist/content/models/cycleEmissions/organicSoil/co2ToAirOrganicSoilCultivation/ipcc2019.json +1 -1
- package/dist/content/models/cycleEmissions/organicSoil/n2OToAirOrganicSoilCultivationDirect/content.json +1 -1
- package/dist/content/models/cycleEmissions/organicSoil/n2OToAirOrganicSoilCultivationDirect/ipcc2019.json +1 -1
- package/dist/content/models/cycleEmissions/other/co2ToAirLimeNeutralisation/ipcc2019.json +1 -0
- package/dist/content/models/cycleEmissions/other/nErosionSoilFlux/schererPfister2015.json +1 -1
- package/dist/content/models/cycleEmissions/other/pErosionSoilFlux/schererPfister2015.json +1 -1
- package/dist/content/models/cycleEmissions/pesticide/content.json +1 -0
- package/dist/content/models/cycleEmissions/pesticide/pesticideToAirPesticideApplication/content.json +1 -0
- package/dist/content/models/cycleEmissions/pesticide/pesticideToAirPesticideApplication/pefcrGuidanceDocument2017.json +1 -0
- package/dist/content/models/cycleEmissions/pesticide/pesticideToSoilPesticideApplication/content.json +1 -0
- package/dist/content/models/cycleEmissions/pesticide/pesticideToSoilPesticideApplication/pefcrGuidanceDocument2017.json +1 -0
- package/dist/content/models/cycleEmissions/pesticide/pesticideToWaterPesticideApplication/content.json +1 -0
- package/dist/content/models/cycleEmissions/pesticide/pesticideToWaterPesticideApplication/pefcrGuidanceDocument2017.json +1 -0
- package/dist/content/models/cycleEmissions/soil/co2ToAirBiocharStockChange/content.json +1 -1
- package/dist/content/models/cycleEmissions/soil/co2ToAirBiocharStockChange/ipcc2019.json +1 -1
- package/dist/content/models/cycleEmissions/soil/co2ToAirSoilOrganicCarbonStockChange/content.json +1 -0
- package/dist/content/models/cycleEmissions/soil/co2ToAirSoilOrganicCarbonStockChange/ipcc2019.json +1 -0
- package/dist/content/models/cycleEmissions/soil/n2OToAirDiminishingSoilCarbonStocksDirect/content.json +1 -0
- package/dist/content/models/cycleEmissions/soil/n2OToAirDiminishingSoilCarbonStocksDirect/ipcc2019.json +1 -0
- package/dist/content/models/cycleGeneral/cycle-cycleDuration/content.json +1 -1
- package/dist/content/models/cycleGeneral/cycle-cycleDuration/cycle.json +1 -1
- package/dist/content/models/cycleGeneral/cycle-endDate/content.json +1 -1
- package/dist/content/models/cycleGeneral/cycle-endDate/cycle.json +1 -1
- package/dist/content/models/cycleGeneral/cycle-otherSitesUnusedDuration/content.json +1 -1
- package/dist/content/models/cycleGeneral/cycle-otherSitesUnusedDuration/cycle.json +1 -1
- package/dist/content/models/cycleGeneral/cycle-siteDuration/content.json +1 -1
- package/dist/content/models/cycleGeneral/cycle-siteDuration/cycle.json +1 -1
- package/dist/content/models/cycleGeneral/cycle-siteUnusedDuration/content.json +1 -1
- package/dist/content/models/cycleGeneral/cycle-siteUnusedDuration/cycle.json +1 -1
- package/dist/content/models/cycleGeneral/cycle-startDate/content.json +1 -1
- package/dist/content/models/cycleGeneral/cycle-startDate/cycle.json +1 -1
- package/dist/content/models/cycleGeneral/cycle-startDateDefinition/content.json +1 -1
- package/dist/content/models/cycleGeneral/cycle-startDateDefinition/cycle.json +1 -1
- package/dist/content/models/cycleInputs/cycle-input-hestiaAggregatedData/content.json +1 -1
- package/dist/content/models/cycleInputs/cycle-input-hestiaAggregatedData/cycle.json +1 -1
- package/dist/content/models/cycleInputs/cycle-input-properties/content.json +1 -1
- package/dist/content/models/cycleInputs/cycle-input-properties/cycle.json +1 -1
- package/dist/content/models/cycleInputs/cycle-input-value/content.json +1 -1
- package/dist/content/models/cycleInputs/cycle-input-value/cycle.json +1 -1
- package/dist/content/models/cycleInputs/hestia-materialAndSubstrate/hestia.json +1 -1
- package/dist/content/models/cycleInputs/ipcc2019-pastureGrass/content.json +1 -1
- package/dist/content/models/cycleInputs/ipcc2019-pastureGrass/ipcc2019.json +1 -1
- package/dist/content/models/cycleInputs/machineryInfrastructureDepreciatedAmountPerCycle/agribalyse2016.json +1 -1
- package/dist/content/models/cycleInputs/machineryInfrastructureDepreciatedAmountPerCycle/content.json +1 -1
- package/dist/content/models/cycleInputs/saplingsDepreciatedAmountPerCycle/pooreNemecek2018.json +1 -1
- package/dist/content/models/cycleInputs/seed/faostat2018.json +1 -1
- package/dist/content/models/cyclePractices/cycle-practice-value/content.json +1 -1
- package/dist/content/models/cyclePractices/cycle-practice-value/cycle.json +1 -1
- package/dist/content/models/cyclePractices/hestia-pastureSystem/content.json +1 -1
- package/dist/content/models/cyclePractices/hestia-pastureSystem/hestia.json +1 -1
- package/dist/content/models/cyclePractices/koble2014-cropResidueManagement/content.json +1 -1
- package/dist/content/models/cyclePractices/koble2014-cropResidueManagement/koble2014.json +1 -1
- package/dist/content/models/cyclePractices/pastureGrass/content.json +1 -1
- package/dist/content/models/cyclePractices/pastureGrass/hestia.json +1 -1
- package/dist/content/models/cycleProducts/aboveGroundCropResidue/content.json +1 -1
- package/dist/content/models/cycleProducts/aboveGroundCropResidue/hestia.json +1 -1
- package/dist/content/models/cycleProducts/aboveGroundCropResidueTotal/hestia.json +1 -1
- package/dist/content/models/cycleProducts/cycle-product-value/content.json +1 -1
- package/dist/content/models/cycleProducts/cycle-product-value/cycle.json +1 -1
- package/dist/content/models/cycleProducts/excretaKgN/pooreNemecek2018.json +1 -1
- package/dist/content/models/cycleProducts/excretaKgVs/pooreNemecek2018.json +1 -1
- package/dist/content/models/cycleTransformations/transformation-input-max/content.json +1 -1
- package/dist/content/models/cycleTransformations/transformation-input-max/transformation.json +1 -1
- package/dist/content/models/cycleTransformations/transformation-input-min/content.json +1 -1
- package/dist/content/models/cycleTransformations/transformation-input-min/transformation.json +1 -1
- package/dist/content/models/cycleTransformations/transformation-input-properties/content.json +1 -1
- package/dist/content/models/cycleTransformations/transformation-input-properties/transformation.json +1 -1
- package/dist/content/models/cycleTransformations/transformation-input-sd/content.json +1 -1
- package/dist/content/models/cycleTransformations/transformation-input-sd/transformation.json +1 -1
- package/dist/content/models/cycleTransformations/transformation-input-value/content.json +1 -1
- package/dist/content/models/cycleTransformations/transformation-input-value/transformation.json +1 -1
- package/dist/content/models/cycleTransport/haversineFormula-transport-distance/content.json +1 -1
- package/dist/content/models/cycleTransport/haversineFormula-transport-distance/haversineformula.json +1 -1
- package/dist/content/models/impactAssessmentEmissions/impact-assessment-emissions/content.json +1 -1
- package/dist/content/models/impactAssessmentEmissions/impact-assessment-emissions/impactAssessment.json +1 -1
- package/dist/content/models/impactAssessmentGeneral/impact-assessment-irrigated/content.json +1 -1
- package/dist/content/models/impactAssessmentGeneral/impact-assessment-irrigated/impactAssessment.json +1 -1
- package/dist/content/models/impactAssessmentGeneral/impact-assessment-organic/content.json +1 -1
- package/dist/content/models/impactAssessmentGeneral/impact-assessment-organic/impactAssessment.json +1 -1
- package/dist/content/models/impactAssessmentGeneral/impact-assessment-product-economicValueShare/content.json +1 -1
- package/dist/content/models/impactAssessmentGeneral/impact-assessment-product-economicValueShare/impactAssessment.json +1 -1
- package/dist/content/models/impactAssessmentGeneral/impact-assessment-product-value/content.json +1 -1
- package/dist/content/models/impactAssessmentGeneral/impact-assessment-product-value/impactAssessment.json +1 -1
- package/dist/content/models/impactAssessmentImpacts/damageToHumanHealthParticulateMatterFormation/fantkeetal2016.json +1 -1
- package/dist/content/models/impactAssessmentImpacts/environmentalFootprintv31/abioticResourceDepletionFossilFuels/cml2001Baseline.json +1 -0
- package/dist/content/models/impactAssessmentImpacts/environmentalFootprintv31/abioticResourceDepletionFossilFuels/content.json +1 -0
- package/dist/content/models/impactAssessmentImpacts/environmentalFootprintv31/abioticResourceDepletionMineralsAndMetals/cml2001Baseline.json +1 -0
- package/dist/content/models/impactAssessmentImpacts/environmentalFootprintv31/abioticResourceDepletionMineralsAndMetals/content.json +1 -0
- package/dist/content/models/impactAssessmentImpacts/environmentalFootprintv31/content.json +1 -0
- package/dist/content/models/impactAssessmentImpacts/environmentalFootprintv31/environmentalFootprintSingleOverallScore/content.json +1 -0
- package/dist/content/models/impactAssessmentImpacts/environmentalFootprintv31/environmentalFootprintSingleOverallScore/environmentalFootprintv31.json +1 -0
- package/dist/content/models/impactAssessmentImpacts/environmentalFootprintv31/ionisingRadiationKbqU235Eq/content.json +1 -0
- package/dist/content/models/impactAssessmentImpacts/environmentalFootprintv31/ionisingRadiationKbqU235Eq/frischknechtetal2000.json +1 -0
- package/dist/content/models/impactAssessmentImpacts/environmentalFootprintv31/photochemicalOzoneCreationPotentialHumanHealthNmvocEq/content.json +1 -0
- package/dist/content/models/impactAssessmentImpacts/environmentalFootprintv31/photochemicalOzoneCreationPotentialHumanHealthNmvocEq/lotosEuroSmodel.json +1 -0
- package/dist/content/models/impactAssessmentImpacts/environmentalFootprintv31/soilQualityIndexLandOccupation/content.json +1 -0
- package/dist/content/models/impactAssessmentImpacts/environmentalFootprintv31/soilQualityIndexLandOccupation/environmentalFootprintv31.json +1 -0
- package/dist/content/models/impactAssessmentImpacts/environmentalFootprintv31/soilQualityIndexLandTransformation/content.json +1 -0
- package/dist/content/models/impactAssessmentImpacts/environmentalFootprintv31/soilQualityIndexLandTransformation/environmentalFootprintv31.json +1 -0
- package/dist/content/models/impactAssessmentImpacts/environmentalFootprintv31/soilQualityIndexTotalLandUseEffects/content.json +1 -0
- package/dist/content/models/impactAssessmentImpacts/environmentalFootprintv31/soilQualityIndexTotalLandUseEffects/environmentalFootprintv31.json +1 -0
- package/dist/content/models/impactAssessmentImpacts/environmentalFootprintv31/terrestrialAcidificationPotentialAccumulatedExceedance/content.json +1 -0
- package/dist/content/models/impactAssessmentImpacts/environmentalFootprintv31/terrestrialAcidificationPotentialAccumulatedExceedance/poschetal2008.json +1 -0
- package/dist/content/models/impactAssessmentImpacts/environmentalFootprintv31/terrestrialEutrophicationPotentialAccumulatedExceedance/content.json +1 -0
- package/dist/content/models/impactAssessmentImpacts/environmentalFootprintv31/terrestrialEutrophicationPotentialAccumulatedExceedance/poschetal2008.json +1 -0
- package/dist/content/models/impactAssessmentImpacts/freshwaterEcotoxicityPotentialCtue/environmentalFootprintv31.json +1 -1
- package/dist/content/models/impactAssessmentImpacts/gwp100/ipcc2021.json +1 -1
- package/dist/content/models/impactAssessmentImpacts/marineEutrophicationPotential/eutrenDmodel.json +1 -0
- package/dist/content/models/impactAssessmentImpacts/ozoneDepletionPotential/content.json +1 -1
- package/dist/content/models/impactAssessmentImpacts/ozoneDepletionPotential/edip2003.json +1 -1
- package/dist/content/models/impactAssessmentImpacts/scarcityWeightedWaterUse/environmentalFootprintv31.json +1 -1
- package/dist/content/models/impactAssessmentResourceUse/inputs/impact-inputs-background-resource-use/content.json +1 -1
- package/dist/content/models/impactAssessmentResourceUse/inputs/impact-inputs-background-resource-use/worldsteel.json +1 -0
- package/dist/content/models/impactAssessmentResourceUse/inputs/impact-inputs-background-resourceUse/content.json +1 -1
- package/dist/content/models/impactAssessmentResourceUse/inputs/impact-inputs-background-resourceUse/freeflow.json +1 -1
- package/dist/content/models/impactAssessmentResourceUse/landTransformation/landTransformation20YearAverageDuringCycle/content.json +1 -1
- package/dist/content/models/impactAssessmentResourceUse/landTransformation/landTransformation20YearAverageDuringCycle/hestia.json +1 -1
- package/dist/content/models/siteGeneral/site-measurement-value/content.json +1 -1
- package/dist/content/models/siteGeneral/site-measurement-value/site.json +1 -1
- package/dist/content/models/siteInfrastructure/content.json +1 -0
- package/dist/content/models/siteInfrastructure/site-infrastructure/content.json +1 -0
- package/dist/content/models/siteInfrastructure/site-infrastructure/kanetal2020.json +1 -0
- package/dist/content/models/siteManagement/landUse/hestia-management/content.json +1 -1
- package/dist/content/models/siteManagement/landUse/hestia-management/hestia.json +1 -1
- package/dist/content/models/siteMeasurements/climate/ecoClimateZone/content.json +1 -1
- package/dist/content/models/siteMeasurements/climate/ecoClimateZone/geospatialDatabase.json +1 -1
- package/dist/content/models/siteMeasurements/climate/heavyWinterPrecipitation/geospatialDatabase.json +1 -1
- package/dist/content/models/siteMeasurements/climate/potentialEvapotranspirationAnnual/geospatialDatabase.json +1 -1
- package/dist/content/models/siteMeasurements/climate/potentialEvapotranspirationMonthly/geospatialDatabase.json +1 -1
- package/dist/content/models/siteMeasurements/climate/precipitationAnnual/geospatialDatabase.json +1 -1
- package/dist/content/models/siteMeasurements/climate/precipitationLongTermAnnualMean/geospatialDatabase.json +1 -1
- package/dist/content/models/siteMeasurements/climate/precipitationMonthly/geospatialDatabase.json +1 -1
- package/dist/content/models/siteMeasurements/climate/temperatureAnnual/geospatialDatabase.json +1 -1
- package/dist/content/models/siteMeasurements/climate/temperatureLongTermAnnualMean/geospatialDatabase.json +1 -1
- package/dist/content/models/siteMeasurements/climate/temperatureMonthly/geospatialDatabase.json +1 -1
- package/dist/content/models/siteMeasurements/landUseChange/aboveGroundBiomass/content.json +1 -1
- package/dist/content/models/siteMeasurements/landUseChange/aboveGroundBiomass/ipcc2019.json +1 -1
- package/dist/content/models/siteMeasurements/landUseChange/belowGroundBiomass/content.json +1 -1
- package/dist/content/models/siteMeasurements/landUseChange/belowGroundBiomass/ipcc2019.json +1 -1
- package/dist/content/models/siteMeasurements/other/nutrientLossToAquaticEnvironment/geospatialDatabase.json +1 -1
- package/dist/content/models/siteMeasurements/soil/clayContent/content.json +1 -1
- package/dist/content/models/siteMeasurements/soil/clayContent/geospatialDatabase.json +1 -1
- package/dist/content/models/siteMeasurements/soil/histosol/geospatialDatabase.json +1 -1
- package/dist/content/models/siteMeasurements/soil/organicCarbonPerHa/content.json +1 -1
- package/dist/content/models/siteMeasurements/soil/organicCarbonPerHa/hestia.json +1 -1
- package/dist/content/models/siteMeasurements/soil/organicCarbonPerHa/ipcc2019Tier1.json +1 -1
- package/dist/content/models/siteMeasurements/soil/organicCarbonPerHa/ipcc2019Tier2.json +1 -1
- package/dist/content/models/siteMeasurements/soil/organicCarbonPerHa/overview.json +1 -1
- package/dist/content/models/siteMeasurements/soil/sandContent/content.json +1 -1
- package/dist/content/models/siteMeasurements/soil/sandContent/geospatialDatabase.json +1 -1
- package/dist/content/models/siteMeasurements/soil/siltContent/content.json +1 -1
- package/dist/content/models/siteMeasurements/soil/siltContent/geospatialDatabase.json +1 -1
- package/dist/content/models/siteMeasurements/soil/soilClassification/content.json +1 -1
- package/dist/content/models/siteMeasurements/soil/soilClassification/hestia.json +1 -1
- package/dist/content/models/siteMeasurements/soil/totalPhosphorusPerKgSoil/geospatialDatabase.json +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.js +25 -7
- package/json_models/agribalyse2016/fuelElectricity.py.json +26 -0
- package/json_models/agribalyse2016/machineryInfrastructureDepreciatedAmountPerCycle.py.json +31 -0
- package/json_models/akagiEtAl2011/ch4ToAirCropResidueBurning.py.json +35 -0
- package/json_models/akagiEtAl2011/nh3ToAirCropResidueBurning.py.json +35 -0
- package/json_models/akagiEtAl2011/noxToAirCropResidueBurning.py.json +35 -0
- package/json_models/akagiEtAl2011/pm25ToAirCropResidueBurning.py.json +35 -0
- package/json_models/akagiEtAl2011/so2ToAirCropResidueBurning.py.json +35 -0
- package/json_models/aware/scarcityWeightedWaterUse.py.json +45 -0
- package/json_models/aware2_0/scarcityWeightedWaterUse.py.json +45 -0
- package/json_models/chaudharyBrooks2018/damageToTerrestrialEcosystemsLandOccupation.py.json +86 -0
- package/json_models/chaudharyBrooks2018/damageToTerrestrialEcosystemsLandTransformation.py.json +47 -0
- package/json_models/chaudharyBrooks2018/damageToTerrestrialEcosystemsTotalLandUseEffects.py.json +34 -0
- package/json_models/cml2001Baseline/abioticResourceDepletionFossilFuels.py.json +41 -0
- package/json_models/cml2001Baseline/abioticResourceDepletionMineralsAndMetals.py.json +39 -0
- package/json_models/cml2001Baseline/eutrophicationPotentialExcludingFate.py.json +21 -0
- package/json_models/cml2001Baseline/resourceUseEnergyDepletionDuringCycle.py.json +52 -0
- package/json_models/cml2001Baseline/resourceUseEnergyDepletionInputsProduction.py.json +46 -0
- package/json_models/cml2001Baseline/resourceUseMineralsAndMetalsDuringCycle.py.json +25 -0
- package/json_models/cml2001Baseline/resourceUseMineralsAndMetalsInputsProduction.py.json +46 -0
- package/json_models/cml2001Baseline/terrestrialAcidificationPotentialIncludingFateAverageEurope.py.json +21 -0
- package/json_models/cml2001NonBaseline/eutrophicationPotentialIncludingFateAverageEurope.py.json +21 -0
- package/json_models/cml2001NonBaseline/terrestrialAcidificationPotentialExcludingFate.py.json +21 -0
- package/json_models/cycle/aboveGroundCropResidueTotal.py.json +26 -0
- package/json_models/cycle/animal/input/hestiaAggregatedData.py.json +47 -0
- package/json_models/cycle/animal/input/properties.py.json +49 -0
- package/json_models/cycle/animal/milkYield.py.json +33 -0
- package/json_models/cycle/animal/properties.py.json +25 -0
- package/json_models/cycle/completeness/animalFeed.py.json +19 -0
- package/json_models/cycle/completeness/cropResidue.py.json +48 -0
- package/json_models/cycle/completeness/electricityFuel.py.json +26 -0
- package/json_models/cycle/completeness/excreta.py.json +29 -0
- package/json_models/cycle/completeness/freshForage.py.json +47 -0
- package/json_models/cycle/completeness/material.py.json +24 -0
- package/json_models/cycle/completeness/seed.py.json +32 -0
- package/json_models/cycle/completeness/soilAmendment.py.json +23 -0
- package/json_models/cycle/cycleDuration.py.json +30 -0
- package/json_models/cycle/endDate.py.json +13 -0
- package/json_models/cycle/input/hestiaAggregatedData.py.json +72 -0
- package/json_models/cycle/input/properties.py.json +39 -0
- package/json_models/cycle/input/value.py.json +20 -0
- package/json_models/cycle/otherSitesArea.py.json +34 -0
- package/json_models/cycle/otherSitesUnusedDuration.py.json +29 -0
- package/json_models/cycle/post_checks/cache.py.json +8 -0
- package/json_models/cycle/post_checks/otherSites.py.json +21 -0
- package/json_models/cycle/post_checks/site.py.json +17 -0
- package/json_models/cycle/practice/landCover.py.json +58 -0
- package/json_models/cycle/practice/value.py.json +20 -0
- package/json_models/cycle/pre_checks/cache_sources.py.json +8 -0
- package/json_models/cycle/pre_checks/otherSites.py.json +21 -0
- package/json_models/cycle/pre_checks/site.py.json +17 -0
- package/json_models/cycle/product/currency.py.json +23 -0
- package/json_models/cycle/product/economicValueShare.py.json +35 -0
- package/json_models/cycle/product/price.py.json +32 -0
- package/json_models/cycle/product/primary.py.json +19 -0
- package/json_models/cycle/product/properties.py.json +36 -0
- package/json_models/cycle/product/revenue.py.json +26 -0
- package/json_models/cycle/product/value.py.json +20 -0
- package/json_models/cycle/siteArea.py.json +35 -0
- package/json_models/cycle/siteDuration.py.json +51 -0
- package/json_models/cycle/siteUnusedDuration.py.json +24 -0
- package/json_models/cycle/startDate.py.json +16 -0
- package/json_models/cycle/startDateDefinition.py.json +20 -0
- package/json_models/cycle/transformation.py.json +26 -0
- package/json_models/dammgen2009/noxToAirExcreta.py.json +21 -0
- package/json_models/data/hestiaAggregatedData/__init__.py.json +3 -0
- package/json_models/deRuijterEtAl2010/nh3ToAirCropResidueDecomposition.py.json +38 -0
- package/json_models/ecoalimV9/cycle.py.json +54 -0
- package/json_models/ecoalimV9/impact_assessment.py.json +55 -0
- package/json_models/ecoinventV3/cycle.py.json +57 -0
- package/json_models/ecoinventV3AndEmberClimate/cycle.py.json +71 -0
- package/json_models/edip2003/ozoneDepletionPotential.py.json +23 -0
- package/json_models/emepEea2019/blackCarbonToAirFuelCombustion.py.json +33 -0
- package/json_models/emepEea2019/ch4ToAirFuelCombustion.py.json +33 -0
- package/json_models/emepEea2019/co2ToAirFuelCombustion.py.json +33 -0
- package/json_models/emepEea2019/coToAirFuelCombustion.py.json +33 -0
- package/json_models/emepEea2019/n2OToAirFuelCombustionDirect.py.json +33 -0
- package/json_models/emepEea2019/nh3ToAirExcreta.py.json +40 -0
- package/json_models/emepEea2019/nh3ToAirFuelCombustion.py.json +33 -0
- package/json_models/emepEea2019/nh3ToAirInorganicFertiliser.py.json +69 -0
- package/json_models/emepEea2019/nmvocToAirFuelCombustion.py.json +33 -0
- package/json_models/emepEea2019/noxToAirFuelCombustion.py.json +33 -0
- package/json_models/emepEea2019/pm10ToAirAnimalHousing.py.json +39 -0
- package/json_models/emepEea2019/pm10ToAirFuelCombustion.py.json +33 -0
- package/json_models/emepEea2019/pm25ToAirAnimalHousing.py.json +39 -0
- package/json_models/emepEea2019/pm25ToAirFuelCombustion.py.json +33 -0
- package/json_models/emepEea2019/so2ToAirFuelCombustion.py.json +33 -0
- package/json_models/emepEea2019/tspToAirAnimalHousing.py.json +39 -0
- package/json_models/emepEea2019/tspToAirFuelCombustion.py.json +33 -0
- package/json_models/emissionNotRelevant/__init__.py.json +33 -0
- package/json_models/environmentalFootprintV3_1/environmentalFootprintSingleOverallScore.py.json +26 -0
- package/json_models/environmentalFootprintV3_1/freshwaterEcotoxicityPotentialCtue.py.json +25 -0
- package/json_models/environmentalFootprintV3_1/marineEutrophicationPotential.py.json +21 -0
- package/json_models/environmentalFootprintV3_1/photochemicalOzoneCreationPotentialHumanHealthNmvocEq.py.json +21 -0
- package/json_models/environmentalFootprintV3_1/scarcityWeightedWaterUse.py.json +27 -0
- package/json_models/environmentalFootprintV3_1/soilQualityIndexLandOccupation.py.json +37 -0
- package/json_models/environmentalFootprintV3_1/soilQualityIndexLandTransformation.py.json +54 -0
- package/json_models/environmentalFootprintV3_1/soilQualityIndexTotalLandUseEffects.py.json +25 -0
- package/json_models/epa2014/no3ToGroundwaterExcreta.py.json +24 -0
- package/json_models/fantkeEtAl2016/damageToHumanHealthParticulateMatterFormation.py.json +21 -0
- package/json_models/faostat2018/coldCarcassWeightPerHead.py.json +38 -0
- package/json_models/faostat2018/coldDressedCarcassWeightPerHead.py.json +38 -0
- package/json_models/faostat2018/liveweightPerHead.py.json +46 -0
- package/json_models/faostat2018/product/price.py.json +45 -0
- package/json_models/faostat2018/readyToCookWeightPerHead.py.json +38 -0
- package/json_models/faostat2018/seed.py.json +29 -0
- package/json_models/frischknechtEtAl2000/ionisingRadiationKbqU235Eq.py.json +38 -0
- package/json_models/geospatialDatabase/altitude.py.json +36 -0
- package/json_models/geospatialDatabase/awareWaterBasinId.py.json +29 -0
- package/json_models/geospatialDatabase/awareWaterBasinId_v1.py.json +29 -0
- package/json_models/geospatialDatabase/clayContent.py.json +43 -0
- package/json_models/geospatialDatabase/croppingIntensity.py.json +56 -0
- package/json_models/geospatialDatabase/drainageClass.py.json +34 -0
- package/json_models/geospatialDatabase/ecoClimateZone.py.json +38 -0
- package/json_models/geospatialDatabase/ecoregion.py.json +29 -0
- package/json_models/geospatialDatabase/erodibility.py.json +34 -0
- package/json_models/geospatialDatabase/heavyWinterPrecipitation.py.json +34 -0
- package/json_models/geospatialDatabase/histosol.py.json +50 -0
- package/json_models/geospatialDatabase/longFallowRatio.py.json +56 -0
- package/json_models/geospatialDatabase/nutrientLossToAquaticEnvironment.py.json +34 -0
- package/json_models/geospatialDatabase/organicCarbonPerKgSoil.py.json +31 -0
- package/json_models/geospatialDatabase/potentialEvapotranspirationAnnual.py.json +38 -0
- package/json_models/geospatialDatabase/potentialEvapotranspirationLongTermAnnualMean.py.json +31 -0
- package/json_models/geospatialDatabase/potentialEvapotranspirationMonthly.py.json +37 -0
- package/json_models/geospatialDatabase/precipitationAnnual.py.json +38 -0
- package/json_models/geospatialDatabase/precipitationLongTermAnnualMean.py.json +31 -0
- package/json_models/geospatialDatabase/precipitationMonthly.py.json +37 -0
- package/json_models/geospatialDatabase/region.py.json +19 -0
- package/json_models/geospatialDatabase/sandContent.py.json +43 -0
- package/json_models/geospatialDatabase/siltContent.py.json +32 -0
- package/json_models/geospatialDatabase/slope.py.json +34 -0
- package/json_models/geospatialDatabase/slopeLength.py.json +34 -0
- package/json_models/geospatialDatabase/soilPh.py.json +31 -0
- package/json_models/geospatialDatabase/temperatureAnnual.py.json +38 -0
- package/json_models/geospatialDatabase/temperatureLongTermAnnualMean.py.json +31 -0
- package/json_models/geospatialDatabase/temperatureMonthly.py.json +37 -0
- package/json_models/geospatialDatabase/totalNitrogenPerKgSoil.py.json +31 -0
- package/json_models/geospatialDatabase/totalPhosphorusPerKgSoil.py.json +36 -0
- package/json_models/geospatialDatabase/utils.py.json +12 -0
- package/json_models/geospatialDatabase/waterDepth.py.json +34 -0
- package/json_models/globalCropWaterModel2008/rootingDepth.py.json +43 -0
- package/json_models/haversineFormula/transport/distance.py.json +39 -0
- package/json_models/hestia/aboveGroundCropResidue.py.json +26 -0
- package/json_models/hestia/aboveGroundCropResidueTotal.py.json +27 -0
- package/json_models/hestia/brackishWater.py.json +21 -0
- package/json_models/hestia/cationExchangeCapacityPerKgSoil.py.json +33 -0
- package/json_models/hestia/coldCarcassWeightPerHead.py.json +38 -0
- package/json_models/hestia/coldDressedCarcassWeightPerHead.py.json +38 -0
- package/json_models/hestia/concentrateFeed.py.json +46 -0
- package/json_models/hestia/cropResidueManagement.py.json +21 -0
- package/json_models/hestia/croppingIntensity.py.json +18 -0
- package/json_models/hestia/default_emissions.py.json +32 -0
- package/json_models/hestia/default_resourceUse.py.json +34 -0
- package/json_models/hestia/energyContentLowerHeatingValue.py.json +34 -0
- package/json_models/hestia/excretaKgMass.py.json +26 -0
- package/json_models/hestia/excretaKgN.py.json +22 -0
- package/json_models/hestia/excretaKgVs.py.json +24 -0
- package/json_models/hestia/feedConversionRatio/feedConversionRatioCarbon.py.json +83 -0
- package/json_models/hestia/feedConversionRatio/feedConversionRatioDryMatter.py.json +89 -0
- package/json_models/hestia/feedConversionRatio/feedConversionRatioEnergy.py.json +83 -0
- package/json_models/hestia/feedConversionRatio/feedConversionRatioFedWeight.py.json +80 -0
- package/json_models/hestia/feedConversionRatio/feedConversionRatioNitrogen.py.json +93 -0
- package/json_models/hestia/flowingWater.py.json +20 -0
- package/json_models/hestia/freshWater.py.json +21 -0
- package/json_models/hestia/histosol.py.json +28 -0
- package/json_models/hestia/inorganicFertiliser.py.json +38 -0
- package/json_models/hestia/irrigatedTypeUnspecified.py.json +35 -0
- package/json_models/hestia/landCover.py.json +65 -0
- package/json_models/hestia/landOccupationDuringCycle.py.json +50 -0
- package/json_models/hestia/landTransformation100YearAverageDuringCycle.py.json +47 -0
- package/json_models/hestia/landTransformation20YearAverageDuringCycle.py.json +47 -0
- package/json_models/hestia/liveAnimal.py.json +44 -0
- package/json_models/hestia/longFallowRatio.py.json +25 -0
- package/json_models/hestia/management.py.json +76 -0
- package/json_models/hestia/materialAndSubstrate.py.json +41 -0
- package/json_models/hestia/milkYield.py.json +51 -0
- package/json_models/hestia/netPrimaryProduction.py.json +21 -0
- package/json_models/hestia/organicCarbonPerHa.py.json +42 -0
- package/json_models/hestia/organicCarbonPerKgSoil.py.json +24 -0
- package/json_models/hestia/organicCarbonPerM3Soil.py.json +24 -0
- package/json_models/hestia/organicMatterPerKgSoil.py.json +24 -0
- package/json_models/hestia/organicMatterPerM3Soil.py.json +24 -0
- package/json_models/hestia/pToSurfaceWaterAquacultureSystems.py.json +82 -0
- package/json_models/hestia/pastureGrass.py.json +16 -0
- package/json_models/hestia/pastureSystem.py.json +27 -0
- package/json_models/hestia/potentialEvapotranspirationAnnual.py.json +22 -0
- package/json_models/hestia/potentialEvapotranspirationMonthly.py.json +21 -0
- package/json_models/hestia/precipitationAnnual.py.json +22 -0
- package/json_models/hestia/precipitationMonthly.py.json +21 -0
- package/json_models/hestia/rainfallAnnual.py.json +22 -0
- package/json_models/hestia/rainfallMonthly.py.json +21 -0
- package/json_models/hestia/readyToCookWeightPerHead.py.json +38 -0
- package/json_models/hestia/residueBurnt.py.json +26 -0
- package/json_models/hestia/residueIncorporated.py.json +37 -0
- package/json_models/hestia/residueLeftOnField.py.json +26 -0
- package/json_models/hestia/residueRemoved.py.json +50 -0
- package/json_models/hestia/salineWater.py.json +21 -0
- package/json_models/hestia/seed_emissions.py.json +68 -0
- package/json_models/hestia/slope.py.json +26 -0
- package/json_models/hestia/slopeLength.py.json +26 -0
- package/json_models/hestia/soilClassification.py.json +42 -0
- package/json_models/hestia/soilMeasurement.py.json +31 -0
- package/json_models/hestia/stockingDensityAnimalHousingAverage.py.json +23 -0
- package/json_models/hestia/temperatureAnnual.py.json +22 -0
- package/json_models/hestia/temperatureMonthly.py.json +21 -0
- package/json_models/hestia/totalNitrogenPerKgSoil.py.json +23 -0
- package/json_models/hestia/unknownPreSeasonWaterRegime.py.json +27 -0
- package/json_models/hestia/waterDepth.py.json +13 -0
- package/json_models/hestia/waterSalinity.py.json +49 -0
- package/json_models/impact_assessment/allocationMethod.py.json +19 -0
- package/json_models/impact_assessment/emissions.py.json +35 -0
- package/json_models/impact_assessment/irrigated.py.json +22 -0
- package/json_models/impact_assessment/organic.py.json +22 -0
- package/json_models/impact_assessment/post_checks/cycle.py.json +17 -0
- package/json_models/impact_assessment/post_checks/site.py.json +17 -0
- package/json_models/impact_assessment/pre_checks/cycle.py.json +17 -0
- package/json_models/impact_assessment/pre_checks/site.py.json +17 -0
- package/json_models/impact_assessment/product/economicValueShare.py.json +26 -0
- package/json_models/impact_assessment/product/value.py.json +26 -0
- package/json_models/ipcc2006/aboveGroundCropResidueRemoved.py.json +32 -0
- package/json_models/ipcc2006/aboveGroundCropResidueTotal.py.json +35 -0
- package/json_models/ipcc2006/belowGroundCropResidue.py.json +36 -0
- package/json_models/ipcc2006/n2OToAirCropResidueDecompositionDirect.py.json +43 -0
- package/json_models/ipcc2006/n2OToAirCropResidueDecompositionIndirect.py.json +32 -0
- package/json_models/ipcc2006/n2OToAirExcretaDirect.py.json +31 -0
- package/json_models/ipcc2006/n2OToAirExcretaIndirect.py.json +32 -0
- package/json_models/ipcc2006/n2OToAirInorganicFertiliserDirect.py.json +50 -0
- package/json_models/ipcc2006/n2OToAirInorganicFertiliserIndirect.py.json +64 -0
- package/json_models/ipcc2006/n2OToAirOrganicFertiliserDirect.py.json +46 -0
- package/json_models/ipcc2006/n2OToAirOrganicFertiliserIndirect.py.json +60 -0
- package/json_models/ipcc2006/utils.py.json +14 -0
- package/json_models/ipcc2013ExcludingFeedbacks/gwp100.py.json +21 -0
- package/json_models/ipcc2013IncludingFeedbacks/gwp100.py.json +21 -0
- package/json_models/ipcc2019/aboveGroundBiomass.py.json +76 -0
- package/json_models/ipcc2019/aboveGroundCropResidueTotal.py.json +37 -0
- package/json_models/ipcc2019/animal/fatContent.py.json +41 -0
- package/json_models/ipcc2019/animal/hoursWorkedPerDay.py.json +43 -0
- package/json_models/ipcc2019/animal/liveweightGain.py.json +43 -0
- package/json_models/ipcc2019/animal/liveweightPerHead.py.json +43 -0
- package/json_models/ipcc2019/animal/milkYieldPerAnimal.py.json +44 -0
- package/json_models/ipcc2019/animal/pastureGrass.py.json +164 -0
- package/json_models/ipcc2019/animal/pregnancyRateTotal.py.json +43 -0
- package/json_models/ipcc2019/animal/trueProteinContent.py.json +41 -0
- package/json_models/ipcc2019/animal/weightAtMaturity.py.json +52 -0
- package/json_models/ipcc2019/belowGroundBiomass.py.json +65 -0
- package/json_models/ipcc2019/belowGroundCropResidue.py.json +43 -0
- package/json_models/ipcc2019/biocharOrganicCarbonPerHa.py.json +49 -0
- package/json_models/ipcc2019/biomass_utils.py.json +30 -0
- package/json_models/ipcc2019/burning_utils.py.json +8 -0
- package/json_models/ipcc2019/carbonContent.py.json +56 -0
- package/json_models/ipcc2019/ch4ToAirAquacultureSystems.py.json +36 -0
- package/json_models/ipcc2019/ch4ToAirEntericFermentation.py.json +112 -0
- package/json_models/ipcc2019/ch4ToAirExcreta.py.json +49 -0
- package/json_models/ipcc2019/ch4ToAirFloodedRice.py.json +105 -0
- package/json_models/ipcc2019/ch4ToAirOrganicSoilCultivation.py.json +107 -0
- package/json_models/ipcc2019/co2ToAirAboveGroundBiomassStockChange.py.json +37 -0
- package/json_models/ipcc2019/co2ToAirBelowGroundBiomassStockChange.py.json +38 -0
- package/json_models/ipcc2019/co2ToAirBiocharStockChange.py.json +38 -0
- package/json_models/ipcc2019/co2ToAirCarbonStockChange_utils.py.json +6 -0
- package/json_models/ipcc2019/co2ToAirLimeNeutralisation.py.json +26 -0
- package/json_models/ipcc2019/co2ToAirOrganicSoilCultivation.py.json +104 -0
- package/json_models/ipcc2019/co2ToAirSoilOrganicCarbonStockChange.py.json +38 -0
- package/json_models/ipcc2019/co2ToAirUreaHydrolysis.py.json +29 -0
- package/json_models/ipcc2019/croppingDuration.py.json +45 -0
- package/json_models/ipcc2019/emissionsToAirOrganicSoilBurning.py.json +66 -0
- package/json_models/ipcc2019/ligninContent.py.json +56 -0
- package/json_models/ipcc2019/n2OToAirAquacultureSystemsIndirect.py.json +54 -0
- package/json_models/ipcc2019/n2OToAirCropResidueBurningDirect.py.json +32 -0
- package/json_models/ipcc2019/n2OToAirCropResidueBurningIndirect.py.json +49 -0
- package/json_models/ipcc2019/n2OToAirCropResidueDecompositionDirect.py.json +70 -0
- package/json_models/ipcc2019/n2OToAirCropResidueDecompositionIndirect.py.json +53 -0
- package/json_models/ipcc2019/n2OToAirDiminishingSoilCarbonStocksDirect.py.json +69 -0
- package/json_models/ipcc2019/n2OToAirExcretaDirect.py.json +34 -0
- package/json_models/ipcc2019/n2OToAirExcretaIndirect.py.json +53 -0
- package/json_models/ipcc2019/n2OToAirFuelCombustionIndirect.py.json +71 -0
- package/json_models/ipcc2019/n2OToAirInorganicFertiliserDirect.py.json +87 -0
- package/json_models/ipcc2019/n2OToAirInorganicFertiliserIndirect.py.json +53 -0
- package/json_models/ipcc2019/n2OToAirNaturalVegetationBurningIndirect.py.json +49 -0
- package/json_models/ipcc2019/n2OToAirOrganicFertiliserDirect.py.json +87 -0
- package/json_models/ipcc2019/n2OToAirOrganicFertiliserIndirect.py.json +53 -0
- package/json_models/ipcc2019/n2OToAirOrganicSoilBurningIndirect.py.json +49 -0
- package/json_models/ipcc2019/n2OToAirOrganicSoilCultivationDirect.py.json +101 -0
- package/json_models/ipcc2019/n2OToAirOrganicSoilCultivationIndirect.py.json +49 -0
- package/json_models/ipcc2019/nh3ToAirInorganicFertiliser.py.json +58 -0
- package/json_models/ipcc2019/nh3ToAirOrganicFertiliser.py.json +55 -0
- package/json_models/ipcc2019/nitrogenContent.py.json +56 -0
- package/json_models/ipcc2019/no3ToGroundwaterCropResidueDecomposition.py.json +56 -0
- package/json_models/ipcc2019/no3ToGroundwaterExcreta.py.json +68 -0
- package/json_models/ipcc2019/no3ToGroundwaterInorganicFertiliser.py.json +71 -0
- package/json_models/ipcc2019/no3ToGroundwaterOrganicFertiliser.py.json +67 -0
- package/json_models/ipcc2019/nonCo2EmissionsToAirNaturalVegetationBurning.py.json +68 -0
- package/json_models/ipcc2019/noxToAirInorganicFertiliser.py.json +58 -0
- package/json_models/ipcc2019/noxToAirOrganicFertiliser.py.json +55 -0
- package/json_models/ipcc2019/organicCarbonPerHa.py.json +150 -0
- package/json_models/ipcc2019/organicCarbonPerHa_tier_1.py.json +150 -0
- package/json_models/ipcc2019/organicCarbonPerHa_tier_2.py.json +256 -0
- package/json_models/ipcc2019/organicSoilCultivation_utils.py.json +10 -0
- package/json_models/ipcc2019/pastureGrass.py.json +168 -0
- package/json_models/ipcc2021/gwp100.py.json +21 -0
- package/json_models/jarvisAndPain1994/n2ToAirExcreta.py.json +21 -0
- package/json_models/kanEtAl2020/infrastructure.py.json +35 -0
- package/json_models/koble2014/cropResidueManagement.py.json +28 -0
- package/json_models/koble2014/residueBurnt.py.json +28 -0
- package/json_models/koble2014/residueLeftOnField.py.json +14 -0
- package/json_models/koble2014/residueRemoved.py.json +25 -0
- package/json_models/lcImpactAllEffects100Years/damageToFreshwaterEcosystemsClimateChange.py.json +21 -0
- package/json_models/lcImpactAllEffects100Years/damageToFreshwaterEcosystemsFreshwaterEcotoxicity.py.json +25 -0
- package/json_models/lcImpactAllEffects100Years/damageToFreshwaterEcosystemsFreshwaterEutrophication.py.json +28 -0
- package/json_models/lcImpactAllEffects100Years/damageToFreshwaterEcosystemsPdfYear.py.json +24 -0
- package/json_models/lcImpactAllEffects100Years/damageToFreshwaterEcosystemsWaterStress.py.json +28 -0
- package/json_models/lcImpactAllEffects100Years/damageToHumanHealth.py.json +24 -0
- package/json_models/lcImpactAllEffects100Years/damageToHumanHealthClimateChange.py.json +21 -0
- package/json_models/lcImpactAllEffects100Years/damageToHumanHealthHumanToxicityCancerogenic.py.json +25 -0
- package/json_models/lcImpactAllEffects100Years/damageToHumanHealthHumanToxicityNonCancerogenic.py.json +25 -0
- package/json_models/lcImpactAllEffects100Years/damageToHumanHealthParticulateMatterFormation.py.json +28 -0
- package/json_models/lcImpactAllEffects100Years/damageToHumanHealthPhotochemicalOzoneFormation.py.json +28 -0
- package/json_models/lcImpactAllEffects100Years/damageToHumanHealthStratosphericOzoneDepletion.py.json +21 -0
- package/json_models/lcImpactAllEffects100Years/damageToHumanHealthWaterStress.py.json +33 -0
- package/json_models/lcImpactAllEffects100Years/damageToMarineEcosystemsMarineEcotoxicity.py.json +25 -0
- package/json_models/lcImpactAllEffects100Years/damageToMarineEcosystemsMarineEutrophication.py.json +28 -0
- package/json_models/lcImpactAllEffects100Years/damageToMarineEcosystemsPdfYear.py.json +24 -0
- package/json_models/lcImpactAllEffects100Years/damageToTerrestrialEcosystemsClimateChange.py.json +21 -0
- package/json_models/lcImpactAllEffects100Years/damageToTerrestrialEcosystemsPdfYear.py.json +24 -0
- package/json_models/lcImpactAllEffects100Years/damageToTerrestrialEcosystemsPhotochemicalOzoneFormation.py.json +28 -0
- package/json_models/lcImpactAllEffects100Years/damageToTerrestrialEcosystemsTerrestrialAcidification.py.json +28 -0
- package/json_models/lcImpactAllEffects100Years/damageToTerrestrialEcosystemsTerrestrialEcotoxicity.py.json +25 -0
- package/json_models/lcImpactAllEffectsInfinite/damageToFreshwaterEcosystemsClimateChange.py.json +21 -0
- package/json_models/lcImpactAllEffectsInfinite/damageToFreshwaterEcosystemsFreshwaterEcotoxicity.py.json +25 -0
- package/json_models/lcImpactAllEffectsInfinite/damageToFreshwaterEcosystemsFreshwaterEutrophication.py.json +28 -0
- package/json_models/lcImpactAllEffectsInfinite/damageToFreshwaterEcosystemsPdfYear.py.json +24 -0
- package/json_models/lcImpactAllEffectsInfinite/damageToFreshwaterEcosystemsWaterStress.py.json +28 -0
- package/json_models/lcImpactAllEffectsInfinite/damageToHumanHealth.py.json +24 -0
- package/json_models/lcImpactAllEffectsInfinite/damageToHumanHealthClimateChange.py.json +21 -0
- package/json_models/lcImpactAllEffectsInfinite/damageToHumanHealthHumanToxicityCancerogenic.py.json +25 -0
- package/json_models/lcImpactAllEffectsInfinite/damageToHumanHealthHumanToxicityNonCancerogenic.py.json +25 -0
- package/json_models/lcImpactAllEffectsInfinite/damageToHumanHealthParticulateMatterFormation.py.json +28 -0
- package/json_models/lcImpactAllEffectsInfinite/damageToHumanHealthPhotochemicalOzoneFormation.py.json +28 -0
- package/json_models/lcImpactAllEffectsInfinite/damageToHumanHealthStratosphericOzoneDepletion.py.json +21 -0
- package/json_models/lcImpactAllEffectsInfinite/damageToHumanHealthWaterStress.py.json +33 -0
- package/json_models/lcImpactAllEffectsInfinite/damageToMarineEcosystemsMarineEcotoxicity.py.json +25 -0
- package/json_models/lcImpactAllEffectsInfinite/damageToMarineEcosystemsMarineEutrophication.py.json +28 -0
- package/json_models/lcImpactAllEffectsInfinite/damageToMarineEcosystemsPdfYear.py.json +24 -0
- package/json_models/lcImpactAllEffectsInfinite/damageToTerrestrialEcosystemsClimateChange.py.json +21 -0
- package/json_models/lcImpactAllEffectsInfinite/damageToTerrestrialEcosystemsPdfYear.py.json +24 -0
- package/json_models/lcImpactAllEffectsInfinite/damageToTerrestrialEcosystemsPhotochemicalOzoneFormation.py.json +28 -0
- package/json_models/lcImpactAllEffectsInfinite/damageToTerrestrialEcosystemsTerrestrialAcidification.py.json +28 -0
- package/json_models/lcImpactAllEffectsInfinite/damageToTerrestrialEcosystemsTerrestrialEcotoxicity.py.json +25 -0
- package/json_models/lcImpactCertainEffects100Years/damageToFreshwaterEcosystemsFreshwaterEcotoxicity.py.json +25 -0
- package/json_models/lcImpactCertainEffects100Years/damageToFreshwaterEcosystemsFreshwaterEutrophication.py.json +28 -0
- package/json_models/lcImpactCertainEffects100Years/damageToFreshwaterEcosystemsPdfYear.py.json +24 -0
- package/json_models/lcImpactCertainEffects100Years/damageToFreshwaterEcosystemsWaterStress.py.json +28 -0
- package/json_models/lcImpactCertainEffects100Years/damageToHumanHealth.py.json +24 -0
- package/json_models/lcImpactCertainEffects100Years/damageToHumanHealthClimateChange.py.json +21 -0
- package/json_models/lcImpactCertainEffects100Years/damageToHumanHealthHumanToxicityCancerogenic.py.json +25 -0
- package/json_models/lcImpactCertainEffects100Years/damageToHumanHealthHumanToxicityNonCancerogenic.py.json +25 -0
- package/json_models/lcImpactCertainEffects100Years/damageToHumanHealthParticulateMatterFormation.py.json +28 -0
- package/json_models/lcImpactCertainEffects100Years/damageToHumanHealthPhotochemicalOzoneFormation.py.json +28 -0
- package/json_models/lcImpactCertainEffects100Years/damageToHumanHealthStratosphericOzoneDepletion.py.json +21 -0
- package/json_models/lcImpactCertainEffects100Years/damageToHumanHealthWaterStress.py.json +33 -0
- package/json_models/lcImpactCertainEffects100Years/damageToMarineEcosystemsMarineEcotoxicity.py.json +25 -0
- package/json_models/lcImpactCertainEffects100Years/damageToMarineEcosystemsMarineEutrophication.py.json +28 -0
- package/json_models/lcImpactCertainEffects100Years/damageToMarineEcosystemsPdfYear.py.json +24 -0
- package/json_models/lcImpactCertainEffects100Years/damageToTerrestrialEcosystemsClimateChange.py.json +21 -0
- package/json_models/lcImpactCertainEffects100Years/damageToTerrestrialEcosystemsPdfYear.py.json +24 -0
- package/json_models/lcImpactCertainEffects100Years/damageToTerrestrialEcosystemsPhotochemicalOzoneFormation.py.json +28 -0
- package/json_models/lcImpactCertainEffects100Years/damageToTerrestrialEcosystemsTerrestrialAcidification.py.json +28 -0
- package/json_models/lcImpactCertainEffects100Years/damageToTerrestrialEcosystemsTerrestrialEcotoxicity.py.json +25 -0
- package/json_models/lcImpactCertainEffectsInfinite/damageToFreshwaterEcosystemsFreshwaterEcotoxicity.py.json +25 -0
- package/json_models/lcImpactCertainEffectsInfinite/damageToFreshwaterEcosystemsFreshwaterEutrophication.py.json +28 -0
- package/json_models/lcImpactCertainEffectsInfinite/damageToFreshwaterEcosystemsPdfYear.py.json +24 -0
- package/json_models/lcImpactCertainEffectsInfinite/damageToFreshwaterEcosystemsWaterStress.py.json +28 -0
- package/json_models/lcImpactCertainEffectsInfinite/damageToHumanHealth.py.json +24 -0
- package/json_models/lcImpactCertainEffectsInfinite/damageToHumanHealthClimateChange.py.json +21 -0
- package/json_models/lcImpactCertainEffectsInfinite/damageToHumanHealthHumanToxicityCancerogenic.py.json +25 -0
- package/json_models/lcImpactCertainEffectsInfinite/damageToHumanHealthHumanToxicityNonCancerogenic.py.json +25 -0
- package/json_models/lcImpactCertainEffectsInfinite/damageToHumanHealthParticulateMatterFormation.py.json +28 -0
- package/json_models/lcImpactCertainEffectsInfinite/damageToHumanHealthPhotochemicalOzoneFormation.py.json +28 -0
- package/json_models/lcImpactCertainEffectsInfinite/damageToHumanHealthStratosphericOzoneDepletion.py.json +21 -0
- package/json_models/lcImpactCertainEffectsInfinite/damageToHumanHealthWaterStress.py.json +33 -0
- package/json_models/lcImpactCertainEffectsInfinite/damageToMarineEcosystemsMarineEcotoxicity.py.json +25 -0
- package/json_models/lcImpactCertainEffectsInfinite/damageToMarineEcosystemsMarineEutrophication.py.json +28 -0
- package/json_models/lcImpactCertainEffectsInfinite/damageToMarineEcosystemsPdfYear.py.json +24 -0
- package/json_models/lcImpactCertainEffectsInfinite/damageToTerrestrialEcosystemsClimateChange.py.json +21 -0
- package/json_models/lcImpactCertainEffectsInfinite/damageToTerrestrialEcosystemsPdfYear.py.json +24 -0
- package/json_models/lcImpactCertainEffectsInfinite/damageToTerrestrialEcosystemsPhotochemicalOzoneFormation.py.json +28 -0
- package/json_models/lcImpactCertainEffectsInfinite/damageToTerrestrialEcosystemsTerrestrialAcidification.py.json +28 -0
- package/json_models/lcImpactCertainEffectsInfinite/damageToTerrestrialEcosystemsTerrestrialEcotoxicity.py.json +25 -0
- package/json_models/linkedImpactAssessment/emissions.py.json +57 -0
- package/json_models/linkedImpactAssessment/freshwaterWithdrawalsInputsProduction.py.json +46 -0
- package/json_models/linkedImpactAssessment/landOccupationInputsProduction.py.json +47 -0
- package/json_models/linkedImpactAssessment/landTransformation100YearAverageInputsProduction.py.json +48 -0
- package/json_models/linkedImpactAssessment/landTransformation20YearAverageInputsProduction.py.json +48 -0
- package/json_models/mocking/build_mock_search.py.json +3 -0
- package/json_models/pefcrGuidanceDocument2017/pesticideToAirPesticideApplication.py.json +28 -0
- package/json_models/pefcrGuidanceDocument2017/pesticideToSoilPesticideApplication.py.json +28 -0
- package/json_models/pefcrGuidanceDocument2017/pesticideToWaterPesticideApplication.py.json +28 -0
- package/json_models/pooreNemecek2018/aboveGroundCropResidueTotal.py.json +17 -0
- package/json_models/pooreNemecek2018/belowGroundCropResidue.py.json +17 -0
- package/json_models/pooreNemecek2018/ch4ToAirAquacultureSystems.py.json +74 -0
- package/json_models/pooreNemecek2018/excretaKgN.py.json +108 -0
- package/json_models/pooreNemecek2018/excretaKgVs.py.json +157 -0
- package/json_models/pooreNemecek2018/freshwaterWithdrawalsDuringCycle.py.json +54 -0
- package/json_models/pooreNemecek2018/landOccupationDuringCycle.py.json +70 -0
- package/json_models/pooreNemecek2018/longFallowDuration.py.json +23 -0
- package/json_models/pooreNemecek2018/n2OToAirAquacultureSystemsDirect.py.json +45 -0
- package/json_models/pooreNemecek2018/n2ToAirAquacultureSystems.py.json +45 -0
- package/json_models/pooreNemecek2018/nh3ToAirAquacultureSystems.py.json +61 -0
- package/json_models/pooreNemecek2018/no3ToGroundwaterCropResidueDecomposition.py.json +55 -0
- package/json_models/pooreNemecek2018/no3ToGroundwaterExcreta.py.json +74 -0
- package/json_models/pooreNemecek2018/no3ToGroundwaterInorganicFertiliser.py.json +70 -0
- package/json_models/pooreNemecek2018/no3ToGroundwaterOrganicFertiliser.py.json +70 -0
- package/json_models/pooreNemecek2018/no3ToGroundwaterSoilFlux_utils.py.json +81 -0
- package/json_models/pooreNemecek2018/noxToAirAquacultureSystems.py.json +54 -0
- package/json_models/pooreNemecek2018/nurseryDensity.py.json +23 -0
- package/json_models/pooreNemecek2018/nurseryDuration.py.json +23 -0
- package/json_models/pooreNemecek2018/plantationDensity.py.json +23 -0
- package/json_models/pooreNemecek2018/plantationLifespan.py.json +23 -0
- package/json_models/pooreNemecek2018/plantationProductiveLifespan.py.json +23 -0
- package/json_models/pooreNemecek2018/rotationDuration.py.json +26 -0
- package/json_models/pooreNemecek2018/saplingsDepreciatedAmountPerCycle.py.json +32 -0
- package/json_models/poschEtAl2008/terrestrialAcidificationPotentialAccumulatedExceedance.py.json +34 -0
- package/json_models/poschEtAl2008/terrestrialEutrophicationPotentialAccumulatedExceedance.py.json +34 -0
- package/json_models/recipe2016Egalitarian/damageToFreshwaterEcosystemsSpeciesYear.py.json +24 -0
- package/json_models/recipe2016Egalitarian/damageToHumanHealth.py.json +24 -0
- package/json_models/recipe2016Egalitarian/damageToMarineEcosystemsSpeciesYear.py.json +24 -0
- package/json_models/recipe2016Egalitarian/damageToResourceAvailability.py.json +25 -0
- package/json_models/recipe2016Egalitarian/damageToTerrestrialEcosystemsSpeciesYear.py.json +24 -0
- package/json_models/recipe2016Egalitarian/ecosystemDamageOzoneFormation.py.json +33 -0
- package/json_models/recipe2016Egalitarian/fossilResourceScarcity.py.json +25 -0
- package/json_models/recipe2016Egalitarian/freshwaterAquaticEcotoxicityPotential14Dcbeq.py.json +25 -0
- package/json_models/recipe2016Egalitarian/freshwaterEutrophicationPotential.py.json +21 -0
- package/json_models/recipe2016Egalitarian/humanCarcinogenicToxicity.py.json +25 -0
- package/json_models/recipe2016Egalitarian/humanDamageOzoneFormation.py.json +33 -0
- package/json_models/recipe2016Egalitarian/humanNonCarcinogenicToxicity.py.json +25 -0
- package/json_models/recipe2016Egalitarian/marineAquaticEcotoxicityPotential14Dcbeq.py.json +25 -0
- package/json_models/recipe2016Egalitarian/marineEutrophicationPotential.py.json +21 -0
- package/json_models/recipe2016Egalitarian/ozoneDepletionPotential.py.json +21 -0
- package/json_models/recipe2016Egalitarian/terrestrialAcidificationPotential.py.json +21 -0
- package/json_models/recipe2016Egalitarian/terrestrialEcotoxicityPotential14Dcbeq.py.json +25 -0
- package/json_models/recipe2016Hierarchist/damageToFreshwaterEcosystemsSpeciesYear.py.json +24 -0
- package/json_models/recipe2016Hierarchist/damageToHumanHealth.py.json +24 -0
- package/json_models/recipe2016Hierarchist/damageToMarineEcosystemsSpeciesYear.py.json +24 -0
- package/json_models/recipe2016Hierarchist/damageToResourceAvailability.py.json +25 -0
- package/json_models/recipe2016Hierarchist/damageToTerrestrialEcosystemsSpeciesYear.py.json +24 -0
- package/json_models/recipe2016Hierarchist/ecosystemDamageOzoneFormation.py.json +33 -0
- package/json_models/recipe2016Hierarchist/fossilResourceScarcity.py.json +25 -0
- package/json_models/recipe2016Hierarchist/freshwaterAquaticEcotoxicityPotential14Dcbeq.py.json +25 -0
- package/json_models/recipe2016Hierarchist/freshwaterEutrophicationPotential.py.json +21 -0
- package/json_models/recipe2016Hierarchist/humanCarcinogenicToxicity.py.json +25 -0
- package/json_models/recipe2016Hierarchist/humanDamageOzoneFormation.py.json +33 -0
- package/json_models/recipe2016Hierarchist/humanNonCarcinogenicToxicity.py.json +25 -0
- package/json_models/recipe2016Hierarchist/marineAquaticEcotoxicityPotential14Dcbeq.py.json +25 -0
- package/json_models/recipe2016Hierarchist/marineEutrophicationPotential.py.json +21 -0
- package/json_models/recipe2016Hierarchist/ozoneDepletionPotential.py.json +21 -0
- package/json_models/recipe2016Hierarchist/terrestrialAcidificationPotential.py.json +21 -0
- package/json_models/recipe2016Hierarchist/terrestrialEcotoxicityPotential14Dcbeq.py.json +25 -0
- package/json_models/recipe2016Individualist/damageToFreshwaterEcosystemsSpeciesYear.py.json +24 -0
- package/json_models/recipe2016Individualist/damageToHumanHealth.py.json +24 -0
- package/json_models/recipe2016Individualist/damageToMarineEcosystemsSpeciesYear.py.json +24 -0
- package/json_models/recipe2016Individualist/damageToResourceAvailability.py.json +25 -0
- package/json_models/recipe2016Individualist/damageToTerrestrialEcosystemsSpeciesYear.py.json +24 -0
- package/json_models/recipe2016Individualist/ecosystemDamageOzoneFormation.py.json +33 -0
- package/json_models/recipe2016Individualist/fossilResourceScarcity.py.json +25 -0
- package/json_models/recipe2016Individualist/freshwaterAquaticEcotoxicityPotential14Dcbeq.py.json +25 -0
- package/json_models/recipe2016Individualist/freshwaterEutrophicationPotential.py.json +21 -0
- package/json_models/recipe2016Individualist/humanCarcinogenicToxicity.py.json +25 -0
- package/json_models/recipe2016Individualist/humanDamageOzoneFormation.py.json +33 -0
- package/json_models/recipe2016Individualist/humanNonCarcinogenicToxicity.py.json +25 -0
- package/json_models/recipe2016Individualist/marineAquaticEcotoxicityPotential14Dcbeq.py.json +25 -0
- package/json_models/recipe2016Individualist/marineEutrophicationPotential.py.json +21 -0
- package/json_models/recipe2016Individualist/ozoneDepletionPotential.py.json +21 -0
- package/json_models/recipe2016Individualist/terrestrialAcidificationPotential.py.json +21 -0
- package/json_models/recipe2016Individualist/terrestrialEcotoxicityPotential14Dcbeq.py.json +25 -0
- package/json_models/requirements.py.json +3 -0
- package/json_models/resourceUseNotRelevant/__init__.py.json +25 -0
- package/json_models/schererPfister2015/nErosionSoilFlux.py.json +82 -0
- package/json_models/schererPfister2015/pErosionSoilFlux.py.json +82 -0
- package/json_models/schererPfister2015/pToDrainageWaterSoilFlux.py.json +51 -0
- package/json_models/schererPfister2015/pToGroundwaterSoilFlux.py.json +39 -0
- package/json_models/schererPfister2015/pToSurfaceWaterSoilFlux.py.json +51 -0
- package/json_models/schmidt2007/ch4ToAirWasteTreatment.py.json +23 -0
- package/json_models/schmidt2007/h2SToAirWasteTreatment.py.json +23 -0
- package/json_models/schmidt2007/n2OToAirWasteTreatmentDirect.py.json +23 -0
- package/json_models/schmidt2007/nh3ToAirWasteTreatment.py.json +23 -0
- package/json_models/site/defaultMethodClassification.py.json +15 -0
- package/json_models/site/defaultMethodClassificationDescription.py.json +16 -0
- package/json_models/site/grouped_measurement.py.json +31 -0
- package/json_models/site/measurement/value.py.json +20 -0
- package/json_models/site/post_checks/cache.py.json +8 -0
- package/json_models/site/pre_checks/cache_geospatialDatabase.py.json +24 -0
- package/json_models/site/pre_checks/cache_sources.py.json +8 -0
- package/json_models/site/pre_checks/cache_years.py.json +8 -0
- package/json_models/stehfestBouwman2006/n2OToAirCropResidueDecompositionDirect.py.json +69 -0
- package/json_models/stehfestBouwman2006/n2OToAirExcretaDirect.py.json +90 -0
- package/json_models/stehfestBouwman2006/n2OToAirInorganicFertiliserDirect.py.json +86 -0
- package/json_models/stehfestBouwman2006/n2OToAirOrganicFertiliserDirect.py.json +86 -0
- package/json_models/stehfestBouwman2006/n2OToAirSoilFlux_utils.py.json +105 -0
- package/json_models/stehfestBouwman2006/noxToAirCropResidueDecomposition.py.json +48 -0
- package/json_models/stehfestBouwman2006/noxToAirExcreta.py.json +69 -0
- package/json_models/stehfestBouwman2006/noxToAirInorganicFertiliser.py.json +65 -0
- package/json_models/stehfestBouwman2006/noxToAirOrganicFertiliser.py.json +65 -0
- package/json_models/stehfestBouwman2006/noxToAirSoilFlux_utils.py.json +76 -0
- package/json_models/stehfestBouwman2006GisImplementation/noxToAirCropResidueDecomposition.py.json +40 -0
- package/json_models/stehfestBouwman2006GisImplementation/noxToAirExcreta.py.json +61 -0
- package/json_models/stehfestBouwman2006GisImplementation/noxToAirInorganicFertiliser.py.json +57 -0
- package/json_models/stehfestBouwman2006GisImplementation/noxToAirOrganicFertiliser.py.json +57 -0
- package/json_models/stehfestBouwman2006GisImplementation/noxToAirSoilFlux_utils.py.json +68 -0
- package/json_models/transformation/input/excreta.py.json +40 -0
- package/json_models/transformation/input/max.py.json +36 -0
- package/json_models/transformation/input/min.py.json +36 -0
- package/json_models/transformation/input/properties.py.json +36 -0
- package/json_models/transformation/input/sd.py.json +36 -0
- package/json_models/transformation/input/value.py.json +36 -0
- package/json_models/transformation/product/excreta.py.json +31 -0
- package/json_models/usetoxV2/freshwaterEcotoxicityPotentialCtue.py.json +25 -0
- package/json_models/utils/background_emissions.py.json +5 -0
- package/json_models/utils/feedipedia.py.json +3 -0
- package/json_models/webbEtAl2012AndSintermannEtAl2012/nh3ToAirOrganicFertiliser.py.json +44 -0
- package/json_models/worldSteel/cycle.py.json +36 -0
- package/json_models/worldSteel/impact_assessment.py.json +38 -0
- package/package.json +2 -1
- package/dist/content/guide/aggregation-engine/animalProduct.json +0 -1
- package/dist/content/guide/applying-models/content.json +0 -1
- package/dist/content/guide/applying-models/faq.json +0 -1
- package/dist/content/guide/applying-models/file-validation.json +0 -1
- package/dist/content/guide/applying-models/introduction.json +0 -1
- package/dist/content/guide/applying-models/utils.json +0 -1
- package/dist/content/guide/faq/content.json +0 -1
- package/dist/content/guide/hestia-101/content.json +0 -1
- package/dist/content/models/cycleAnimals/fatContent/content.json +0 -1
- package/dist/content/models/cycleAnimals/fatContent/ipcc2019.json +0 -1
- package/dist/content/models/cycleAnimals/hoursWorkedPerDay/content.json +0 -1
- package/dist/content/models/cycleAnimals/hoursWorkedPerDay/ipcc2019.json +0 -1
- package/dist/content/models/cycleAnimals/ipcc2019-animal-milkYieldPerAnimal/content.json +0 -1
- package/dist/content/models/cycleAnimals/ipcc2019-animal-milkYieldPerAnimal/ipcc2019.json +0 -1
- package/dist/content/models/cycleAnimals/liveweightGain/content.json +0 -1
- package/dist/content/models/cycleAnimals/liveweightGain/ipcc2019.json +0 -1
- package/dist/content/models/cycleAnimals/pregnancyRateTotal/content.json +0 -1
- package/dist/content/models/cycleAnimals/pregnancyRateTotal/ipcc2019.json +0 -1
- package/dist/content/models/cycleAnimals/trueProteinContent/content.json +0 -1
- package/dist/content/models/cycleAnimals/trueProteinContent/ipcc2019.json +0 -1
- package/dist/content/models/cycleAnimals/weightAtMaturity/content.json +0 -1
- package/dist/content/models/cycleAnimals/weightAtMaturity/ipcc2019.json +0 -1
- package/dist/content/models/cycleEmissions/landUseChange/nonCo2EmissionsToAirNaturalVegetationBurning/overview.json +0 -1
- package/dist/content/models/cycleEmissions/organicSoil/co2ToAirSoilOrganicCarbonStockChange/content.json +0 -1
- package/dist/content/models/cycleEmissions/organicSoil/co2ToAirSoilOrganicCarbonStockChange/ipcc2019.json +0 -1
- package/dist/content/models/cycleEmissions/other/co2ToAirLimeHydrolysis/ipcc2019.json +0 -1
- package/dist/content/models/impactAssessmentImpacts/abioticResourceDepletionFossilFuels/cml2001Baseline.json +0 -1
- package/dist/content/models/impactAssessmentImpacts/abioticResourceDepletionFossilFuels/content.json +0 -1
- package/dist/content/models/impactAssessmentImpacts/abioticResourceDepletionMineralsAndMetals/cml2001Baseline.json +0 -1
- package/dist/content/models/impactAssessmentImpacts/abioticResourceDepletionMineralsAndMetals/content.json +0 -1
- package/dist/content/models/impactAssessmentImpacts/environmentalFootprintSingleOverallScore/content.json +0 -1
- package/dist/content/models/impactAssessmentImpacts/environmentalFootprintSingleOverallScore/environmentalFootprintv31.json +0 -1
- package/dist/content/models/impactAssessmentImpacts/ionisingRadiationKbqU235Eq/content.json +0 -1
- package/dist/content/models/impactAssessmentImpacts/ionisingRadiationKbqU235Eq/frischknechtetal2000.json +0 -1
- package/dist/content/models/impactAssessmentImpacts/marineEutrophicationPotential/environmentalFootprintv31.json +0 -1
- package/dist/content/models/impactAssessmentImpacts/photochemicalOzoneCreationPotentialHumanHealthNmvocEq/content.json +0 -1
- package/dist/content/models/impactAssessmentImpacts/photochemicalOzoneCreationPotentialHumanHealthNmvocEq/environmentalFootprintv31.json +0 -1
- package/dist/content/models/impactAssessmentImpacts/soilQualityIndexLandOccupation/content.json +0 -1
- package/dist/content/models/impactAssessmentImpacts/soilQualityIndexLandOccupation/environmentalFootprintv31.json +0 -1
- package/dist/content/models/impactAssessmentImpacts/soilQualityIndexLandTransformation/content.json +0 -1
- package/dist/content/models/impactAssessmentImpacts/soilQualityIndexLandTransformation/environmentalFootprintv31.json +0 -1
- package/dist/content/models/impactAssessmentImpacts/soilQualityIndexTotalLandUseEffects/content.json +0 -1
- package/dist/content/models/impactAssessmentImpacts/soilQualityIndexTotalLandUseEffects/environmentalFootprintv31.json +0 -1
- package/dist/content/models/impactAssessmentImpacts/terrestrialAcidificationPotentialAccumulatedExceedance/content.json +0 -1
- package/dist/content/models/impactAssessmentImpacts/terrestrialAcidificationPotentialAccumulatedExceedance/poschetal2008.json +0 -1
- package/dist/content/models/impactAssessmentImpacts/terrestrialEutrophicationPotentialAccumulatedExceedance/content.json +0 -1
- package/dist/content/models/impactAssessmentImpacts/terrestrialEutrophicationPotentialAccumulatedExceedance/poschetal2008.json +0 -1
- /package/dist/content/{guide → models}/applying-models/contributing.json +0 -0
- /package/dist/content/{guide → models}/applying-models/logs.json +0 -0
- /package/dist/content/{guide → models}/applying-models/monte-carlo.json +0 -0
- /package/dist/content/models/cycleEmissions/other/{co2ToAirLimeHydrolysis → co2ToAirLimeNeutralisation}/content.json +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"tags":{"author":["Joseph Poore","Guillaume Royer"],"group":["Cycle: Emissions"],"subgroup":["Fuel"],"tab":["EMEP-EEA (2019)"]},"content":"## TSP, to air, fuel combustion\n\n\n\n\n\n"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"tags":{"author":["Joseph Poore","Guillaume Royer"],"group":["Cycle: Emissions"],"subgroup":["Fuel"],"tab":["EMEP-EEA (2019)"],"modelId":["tspToAirFuelCombustion"],"modelRequires":["electricityFuel"]},"content":"## TSP, to air, fuel combustion\n\n\n\n\n\n\n\n\n\n\n<div class=\"collapsibles\">\n <div class=\"collapsible-group\">\n <div class=\"collapsible-header\">\n <span>Returns</span>\n </div>\n <div class=\"collapsible-content\"><ul>\n<li>A list of <a href=\"https://hestia.earth/schema/Emission\">Emissions</a> with:<ul>\n<li><a href=\"https://hestia.earth/schema/Emission#term\">term</a> with <a href=\"https://hestia.earth/term/tspToAirFuelCombustion\">tspToAirFuelCombustion</a></li>\n<li><a href=\"https://hestia.earth/schema/Emission#methodModel\">methodModel</a> with <a href=\"https://hestia.earth/term/emepEea2019\">emepEea2019</a></li>\n<li><a href=\"https://hestia.earth/schema/Emission#value\">value</a></li>\n<li><a href=\"https://hestia.earth/schema/Emission#inputs\">inputs</a></li>\n<li><a href=\"https://hestia.earth/schema/Emission#operation\">operation</a></li>\n<li><a href=\"https://hestia.earth/schema/Emission#methodTier\">methodTier</a> with <code>tier 1</code></li>\n</ul>\n</li>\n</ul>\n</div>\n </div>\n <div class=\"collapsible-group\">\n <div class=\"collapsible-header\">\n <span>Requirements</span>\n </div>\n <div class=\"collapsible-content\"><ul>\n<li>A <a href=\"https://hestia.earth/schema/Cycle\">Cycle</a> with:<ul>\n<li>either:<ul>\n<li>a list of <a href=\"https://hestia.earth/schema/Cycle#inputs\">inputs</a> with:<ul>\n<li><a href=\"https://hestia.earth/schema/Input#value\">value</a> and <a href=\"https://hestia.earth/schema/Input#term\">term</a> of <a href=\"https://hestia.earth/schema/Term#termType\">termType</a> = <a href=\"https://hestia.earth/glossary?termType=fuel\">fuel</a> and optional:<ul>\n<li><a href=\"https://hestia.earth/schema/Input#operation\">operation</a></li>\n</ul>\n</li>\n</ul>\n</li>\n<li>Data completeness assessment for electricityFuel: <a href=\"https://hestia.earth/schema/Completeness#electricityFuel\">completeness.electricityFuel</a> must be <code>True</code></li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<p>This model works on the following Node type with identical requirements:</p>\n <ul>\n<li><a href=\"https://hestia.earth/schema/Cycle\">Cycle</a></li>\n<li><a href=\"https://hestia.earth/schema/Transformation\">Transformation</a></li>\n<li><a href=\"https://hestia.earth/schema/Transport\">Transport</a></li>\n</ul></div>\n </div>\n <div class=\"collapsible-group\">\n <div class=\"collapsible-header\">\n <span>Lookups used</span>\n </div>\n <div class=\"collapsible-content\"><ul>\n<li><a href=\"https://hestia.earth/glossary/lookups/fuel.csv\">fuel.csv</a> -> <code>tspToAirFuelCombustionEmepEea2019</code></li>\n<li><a href=\"https://hestia.earth/glossary/lookups/operation.csv\">operation.csv</a> -> <code>tspToAirFuelCombustionEmepEea2019</code></li>\n<li><a href=\"https://hestia.earth/glossary/lookups/emission.csv\">emission.csv</a> -> <code>typesAllowed</code></li>\n</ul>\n</div>\n </div>\n \n</div>"}
|
package/dist/content/models/cycleEmissions/inputs/cycle-inputs-background-emissions/content.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"tags":{},"content":"
|
|
1
|
+
{"tags":{},"content":"# Background Emissions"}
|
package/dist/content/models/cycleEmissions/inputs/cycle-inputs-background-emissions/ecoaliMv9.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"tags":{"author":["Joseph Poore","Guillaume Royer","Lloyd Ashby"],"group":["Cycle: Emissions"],"subgroup":["Inputs"],"modelId":["cycle-inputs-background-emissions","cycle"],"tab":["ECOALIM v9"]},"content":"#
|
|
1
|
+
{"tags":{"author":["Joseph Poore","Guillaume Royer","Lloyd Ashby"],"group":["Cycle: Emissions"],"subgroup":["Inputs"],"modelId":["cycle-inputs-background-emissions","cycle"],"tab":["ECOALIM v9"]},"content":"# Background Emissions\n\nThis model calculates background environmental impact data related to the production of feed ingredients from the [ECOALIM database](https://ecoalim.hub.inrae.fr/), version 9 (publ. Dec 2024).\nECOALIM v9 is part of Agribalyse v3.2.\n\n\n\n\n\n\n\n\n\n\n<div class=\"collapsibles\">\n <div class=\"collapsible-group\">\n <div class=\"collapsible-header\">\n <span>Returns</span>\n </div>\n <div class=\"collapsible-content\"><ul>\n<li>A list of <a href=\"https://hestia.earth/schema/Emission\">Emissions</a> with:<ul>\n<li><a href=\"https://hestia.earth/schema/Emission#methodModel\">methodModel</a> with <a href=\"https://hestia.earth/term/ecoalimV9\">ecoalimV9</a></li>\n<li><a href=\"https://hestia.earth/schema/Emission#term\">term</a></li>\n<li><a href=\"https://hestia.earth/schema/Emission#value\">value</a></li>\n<li><a href=\"https://hestia.earth/schema/Emission#methodTier\">methodTier</a> with <code>background</code></li>\n<li><a href=\"https://hestia.earth/schema/Emission#inputs\">inputs</a></li>\n<li><a href=\"https://hestia.earth/schema/Emission#operation\">operation</a></li>\n<li><a href=\"https://hestia.earth/schema/Emission#animals\">animals</a></li>\n</ul>\n</li>\n</ul>\n</div>\n </div>\n <div class=\"collapsible-group\">\n <div class=\"collapsible-header\">\n <span>Requirements</span>\n </div>\n <div class=\"collapsible-content\"><ul>\n<li>A <a href=\"https://hestia.earth/schema/Cycle\">Cycle</a> with:<ul>\n<li>a list of <a href=\"https://hestia.earth/schema/Cycle#inputs\">inputs</a> with:<ul>\n<li><a href=\"https://hestia.earth/schema/Input#value\">value</a> <code>> 0</code> and none of:<ul>\n<li><a href=\"https://hestia.earth/schema/Input#fromCycle\">fromCycle</a> with <code>True</code></li>\n<li><a href=\"https://hestia.earth/schema/Input#producedInCycle\">producedInCycle</a> with <code>True</code></li>\n</ul>\n</li>\n</ul>\n</li>\n<li>optional:<ul>\n<li>a list of <a href=\"https://hestia.earth/schema/Cycle#animals\">animals</a> with:<ul>\n<li>a list of <a href=\"https://hestia.earth/schema/Animal#inputs\">inputs</a> with:<ul>\n<li><a href=\"https://hestia.earth/schema/Input#value\">value</a> <code>> 0</code> and none of:<ul>\n<li><a href=\"https://hestia.earth/schema/Input#fromCycle\">fromCycle</a> with <code>True</code></li>\n<li><a href=\"https://hestia.earth/schema/Input#producedInCycle\">producedInCycle</a> with <code>True</code></li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</div>\n </div>\n <div class=\"collapsible-group\">\n <div class=\"collapsible-header\">\n <span>Lookups used</span>\n </div>\n <div class=\"collapsible-content\"><ul>\n<li><a href=\"https://hestia.earth/glossary/lookups/ecoalim-emission.csv\">ecoalim-emission.csv</a> -> <code>emission-</code></li>\n<li><a href=\"https://hestia.earth/glossary/lookups/emission.csv\">emission.csv</a> -> <code>inputProductionGroupId</code></li>\n<li><a href=\"https://hestia.earth/glossary/lookups/animalProduct.csv\">animalProduct.csv</a> -> <code>ecoalimMapping</code></li>\n<li><a href=\"https://hestia.earth/glossary/lookups/crop.csv\">crop.csv</a> -> <code>ecoalimMapping</code></li>\n<li><a href=\"https://hestia.earth/glossary/lookups/feedFoodAdditive.csv\">feedFoodAdditive.csv</a> -> <code>ecoalimMapping</code></li>\n<li><a href=\"https://hestia.earth/glossary/lookups/forage.csv\">forage.csv</a> -> <code>ecoalimMapping</code></li>\n<li><a href=\"https://hestia.earth/glossary/lookups/processedFood.csv\">processedFood.csv</a> -> <code>ecoalimMapping</code></li>\n</ul>\n</div>\n </div>\n \n</div>"}
|
package/dist/content/models/cycleEmissions/inputs/cycle-inputs-background-emissions/ecoinventv3.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"tags":{"author":["Joseph Poore","Guillaume Royer","Lloyd Ashby"],"group":["Cycle: Emissions"],"subgroup":["Inputs"],"modelId":["cycle-inputs-background-emissions","cycle"],"tab":["ecoinvent v3"]},"content":"#
|
|
1
|
+
{"tags":{"author":["Joseph Poore","Guillaume Royer","Lloyd Ashby"],"group":["Cycle: Emissions"],"subgroup":["Inputs"],"modelId":["cycle-inputs-background-emissions","cycle"],"tab":["ecoinvent v3"]},"content":"# Background Emissions\n\nThis model calculates background emissions related to the production of Inputs from the ecoinvent database, version `3.9`.\n\nNote: to use the `ecoinventV3` model locally or in the [HESTIA Community Edition](https://gitlab.com/hestia-earth/hestia-community-edition) you need a valid ecoinvent license.\n\n\n\n\n\n\n\n\n\n\n<div class=\"collapsibles\">\n <div class=\"collapsible-group\">\n <div class=\"collapsible-header\">\n <span>Returns</span>\n </div>\n <div class=\"collapsible-content\"><ul>\n<li>A list of <a href=\"https://hestia.earth/schema/Emission\">Emissions</a> with:<ul>\n<li><a href=\"https://hestia.earth/schema/Emission#methodModel\">methodModel</a> with <a href=\"https://hestia.earth/term/ecoinventV3\">ecoinventV3</a></li>\n<li><a href=\"https://hestia.earth/schema/Emission#term\">term</a></li>\n<li><a href=\"https://hestia.earth/schema/Emission#value\">value</a></li>\n<li><a href=\"https://hestia.earth/schema/Emission#methodTier\">methodTier</a> with <code>background</code></li>\n<li><a href=\"https://hestia.earth/schema/Emission#inputs\">inputs</a></li>\n<li><a href=\"https://hestia.earth/schema/Emission#operation\">operation</a></li>\n<li><a href=\"https://hestia.earth/schema/Emission#animals\">animals</a></li>\n</ul>\n</li>\n</ul>\n</div>\n </div>\n <div class=\"collapsible-group\">\n <div class=\"collapsible-header\">\n <span>Requirements</span>\n </div>\n <div class=\"collapsible-content\"><ul>\n<li>A <a href=\"https://hestia.earth/schema/Cycle\">Cycle</a> with:<ul>\n<li>a list of <a href=\"https://hestia.earth/schema/Cycle#inputs\">inputs</a> with:<ul>\n<li><a href=\"https://hestia.earth/schema/Input#value\">value</a> <code>> 0</code> and none of:<ul>\n<li><a href=\"https://hestia.earth/schema/Input#fromCycle\">fromCycle</a> with <code>True</code></li>\n<li><a href=\"https://hestia.earth/schema/Input#producedInCycle\">producedInCycle</a> with <code>True</code></li>\n</ul>\n</li>\n</ul>\n</li>\n<li>optional:<ul>\n<li>a list of <a href=\"https://hestia.earth/schema/Cycle#animals\">animals</a> with:<ul>\n<li>a list of <a href=\"https://hestia.earth/schema/Animal#inputs\">inputs</a> with:<ul>\n<li><a href=\"https://hestia.earth/schema/Input#value\">value</a> <code>> 0</code> and none of:<ul>\n<li><a href=\"https://hestia.earth/schema/Input#fromCycle\">fromCycle</a> with <code>True</code></li>\n<li><a href=\"https://hestia.earth/schema/Input#producedInCycle\">producedInCycle</a> with <code>True</code></li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</div>\n </div>\n <div class=\"collapsible-group\">\n <div class=\"collapsible-header\">\n <span>Lookups used</span>\n </div>\n <div class=\"collapsible-content\"><ul>\n<li><a href=\"https://hestia.earth/glossary/lookups/emission.csv\">emission.csv</a> -> <code>inputProductionGroupId</code></li>\n<li><a href=\"https://hestia.earth/glossary/lookups/electricity.csv\">electricity.csv</a> -> <code>ecoinventMapping</code></li>\n<li><a href=\"https://hestia.earth/glossary/lookups/fuel.csv\">fuel.csv</a> -> <code>ecoinventMapping</code></li>\n<li><a href=\"https://hestia.earth/glossary/lookups/inorganicFertiliser.csv\">inorganicFertiliser.csv</a> -> <code>ecoinventMapping</code></li>\n<li><a href=\"https://hestia.earth/glossary/lookups/material.csv\">material.csv</a> -> <code>ecoinventMapping</code></li>\n<li><a href=\"https://hestia.earth/glossary/lookups/pesticideAI.csv\">pesticideAI.csv</a> -> <code>ecoinventMapping</code></li>\n<li><a href=\"https://hestia.earth/glossary/lookups/soilAmendment.csv\">soilAmendment.csv</a> -> <code>ecoinventMapping</code></li>\n<li><a href=\"https://hestia.earth/glossary/lookups/transport.csv\">transport.csv</a> -> <code>ecoinventMapping</code></li>\n<li><a href=\"https://hestia.earth/glossary/lookups/veterinaryDrugs.csv\">veterinaryDrugs.csv</a> -> <code>ecoinventMapping</code></li>\n<li><a href=\"https://hestia.earth/glossary/lookups/feedFoodAdditive.csv\">feedFoodAdditive.csv</a> -> <code>ecoinventMapping</code></li>\n</ul>\n</div>\n </div>\n \n</div>"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"tags":{"author":["Guillaume Royer"],"contributor":["James Bradbury"],"group":["Cycle: Emissions"],"subgroup":["Inputs"],"modelId":["cycle-inputs-background-emissions","cycle"],"tab":["ecoinvent v3 and Ember Climate"],"modelRequires":["electricityFuel","electricityGridMarketMix","electricityGridRenewableMix"]},"content":"#
|
|
1
|
+
{"tags":{"author":["Guillaume Royer"],"contributor":["James Bradbury"],"group":["Cycle: Emissions"],"subgroup":["Inputs"],"modelId":["cycle-inputs-background-emissions","cycle"],"tab":["ecoinvent v3 and Ember Climate"],"modelRequires":["electricityFuel","electricityGridMarketMix","electricityGridRenewableMix"]},"content":"# Background Emissions\n\n## Overview\n\nThis model calculates background emissions related to the production of Inputs from the ecoinvent database, version 3, and using the percentage of production for each energy source from\n[Ember](https://ember-climate.org/data-catalogue/yearly-electricity-data/).\n\n## Data sources\n\n[Ember](https://ember-climate.org/data-catalogue/yearly-electricity-data/) is used to get the percentage of energy production in each country from each source.\n\n[ecoinvent](https://ecoinvent.org/) is used to find the emissions intensity of each source of energy production.\n\nNote: to use the `ecoinventV3AndEmberClimate` model locally or in the [Hestia Community Edition](https://gitlab.com/hestia-earth/hestia-community-edition) you need a valid ecoinvent license.\n\n## Model logic\n\n1. Mappings between Ember and ecoinvent terms are accessed from a glossary lookup.\n2. Emission intensity values are accessed from ecoinvent\n3. Ember ratios for the country of the [cycle](/schema/Cycle) are accessed from glossary lookup\n4. Each input value is multiplied by the intensity (step 2)\n5. Each recalculated Emission is grouped by Input (step 4)\n\n\n\n\n\n\n\n\n\n\n\n\n\n<div class=\"collapsibles\">\n <div class=\"collapsible-group\">\n <div class=\"collapsible-header\">\n <span>Returns</span>\n </div>\n <div class=\"collapsible-content\"><ul>\n<li>A list of <a href=\"https://hestia.earth/schema/Emission\">Emissions</a> with:<ul>\n<li><a href=\"https://hestia.earth/schema/Emission#methodModel\">methodModel</a> with <a href=\"https://hestia.earth/term/ecoinventV3AndEmberClimate\">ecoinventV3AndEmberClimate</a></li>\n<li><a href=\"https://hestia.earth/schema/Emission#term\">term</a></li>\n<li><a href=\"https://hestia.earth/schema/Emission#value\">value</a></li>\n<li><a href=\"https://hestia.earth/schema/Emission#methodTier\">methodTier</a> with <code>background</code></li>\n<li><a href=\"https://hestia.earth/schema/Emission#inputs\">inputs</a></li>\n<li><a href=\"https://hestia.earth/schema/Emission#operation\">operation</a></li>\n<li><a href=\"https://hestia.earth/schema/Emission#animals\">animals</a></li>\n</ul>\n</li>\n</ul>\n</div>\n </div>\n <div class=\"collapsible-group\">\n <div class=\"collapsible-header\">\n <span>Requirements</span>\n </div>\n <div class=\"collapsible-content\"><ul>\n<li>A <a href=\"https://hestia.earth/schema/Cycle\">Cycle</a> with:<ul>\n<li>Data completeness assessment for electricityFuel: <a href=\"https://hestia.earth/schema/Completeness#electricityFuel\">completeness.electricityFuel</a> must be <code>True</code></li>\n<li>a <a href=\"https://hestia.earth/schema/Cycle#site\">site</a> with:<ul>\n<li>a <a href=\"https://hestia.earth/schema/Site#country\">country</a> with:<ul>\n<li><a href=\"https://hestia.earth/schema/Term#termType\">termType</a> = <a href=\"https://hestia.earth/glossary?termType=region\">region</a></li>\n</ul>\n</li>\n</ul>\n</li>\n<li>a list of <a href=\"https://hestia.earth/schema/Cycle#inputs\">inputs</a> with:<ul>\n<li><a href=\"https://hestia.earth/schema/Input#term\">term</a> with <a href=\"https://hestia.earth/term/electricityGridMarketMix\">electricityGridMarketMix</a> <strong>or</strong> <a href=\"https://hestia.earth/term/electricityGridRenewableMix\">electricityGridRenewableMix</a> and <a href=\"https://hestia.earth/schema/Input#value\">value</a> <code>> 0</code> and none of:<ul>\n<li><a href=\"https://hestia.earth/schema/Input#fromCycle\">fromCycle</a> with <code>True</code></li>\n<li><a href=\"https://hestia.earth/schema/Input#producedInCycle\">producedInCycle</a> with <code>True</code></li>\n</ul>\n</li>\n</ul>\n</li>\n<li>optional:<ul>\n<li>a list of <a href=\"https://hestia.earth/schema/Cycle#animals\">animals</a> with:<ul>\n<li>a list of <a href=\"https://hestia.earth/schema/Animal#inputs\">inputs</a> with:<ul>\n<li><a href=\"https://hestia.earth/schema/Input#term\">term</a> with <a href=\"https://hestia.earth/term/electricityGridMarketMix\">electricityGridMarketMix</a> <strong>or</strong> <a href=\"https://hestia.earth/term/electricityGridRenewableMix\">electricityGridRenewableMix</a> and <a href=\"https://hestia.earth/schema/Input#value\">value</a> <code>> 0</code> and none of:<ul>\n<li><a href=\"https://hestia.earth/schema/Input#fromCycle\">fromCycle</a> with <code>True</code></li>\n<li><a href=\"https://hestia.earth/schema/Input#producedInCycle\">producedInCycle</a> with <code>True</code></li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</div>\n </div>\n <div class=\"collapsible-group\">\n <div class=\"collapsible-header\">\n <span>Lookups used</span>\n </div>\n <div class=\"collapsible-content\"><ul>\n<li><a href=\"https://hestia.earth/glossary/lookups/emission.csv\">emission.csv</a> -> <code>inputProductionGroupId</code></li>\n<li><a href=\"https://hestia.earth/glossary/lookups/electricity.csv\">electricity.csv</a> -> <code>ecoinventMapping</code></li>\n<li><a href=\"https://hestia.earth/glossary/lookups/region-ember-energySources.csv\">region-ember-energySources.csv</a></li>\n<li><a href=\"https://hestia.earth/glossary/lookups/ember-ecoinvent-mapping.csv\">ember-ecoinvent-mapping.csv</a> -> <code>ember</code>; <code>ecoinventId</code>; <code>ecoinventName</code></li>\n</ul>\n</div>\n </div>\n \n</div>"}
|
package/dist/content/models/cycleEmissions/inputs/cycle-inputs-background-emissions/freeflow.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"tags":{"author":["Joseph Poore","Guillaume Royer"],"group":["Cycle: Emissions"],"subgroup":["Inputs"],"modelId":["cycle-inputs-background-emissions","default_emissions"],"tab":["Free flow"]},"content":"# Background Emissions\n\
|
|
1
|
+
{"tags":{"author":["Joseph Poore","Guillaume Royer"],"group":["Cycle: Emissions"],"subgroup":["Inputs"],"modelId":["cycle-inputs-background-emissions","default_emissions"],"tab":["Free flow"]},"content":"# Background Emissions\n\nThis model will add emissions with `0` value on Inputs where:\n- The input is manure and some other organic fertilisers, because they are considered free flows in LCA.\n- The input value is `0`.\n\n\n\n\n\n\n\n\n\n<div class=\"collapsibles\">\n <div class=\"collapsible-group\">\n <div class=\"collapsible-header\">\n <span>Returns</span>\n </div>\n <div class=\"collapsible-content\"><ul>\n<li>A list of <a href=\"https://hestia.earth/schema/Emission\">Emissions</a> with:<ul>\n<li><a href=\"https://hestia.earth/schema/Emission#methodModel\">methodModel</a> with <a href=\"https://hestia.earth/term/hestia\">hestia</a></li>\n<li><a href=\"https://hestia.earth/schema/Emission#value\">value</a></li>\n<li><a href=\"https://hestia.earth/schema/Emission#inputs\">inputs</a></li>\n<li><a href=\"https://hestia.earth/schema/Emission#methodTier\">methodTier</a> with <code>background</code></li>\n</ul>\n</li>\n</ul>\n</div>\n </div>\n <div class=\"collapsible-group\">\n <div class=\"collapsible-header\">\n <span>Requirements</span>\n </div>\n <div class=\"collapsible-content\"><ul>\n<li>A <a href=\"https://hestia.earth/schema/Cycle\">Cycle</a> with:<ul>\n<li>a list of <a href=\"https://hestia.earth/schema/Cycle#inputs\">inputs</a> with:<ul>\n<li><a href=\"https://hestia.earth/schema/Input#value\">value</a> <code>>= 0</code> and none of:<ul>\n<li>a <a href=\"https://hestia.earth/schema/Input#impactAssessment\">impactAssessment</a></li>\n<li><a href=\"https://hestia.earth/schema/Input#fromCycle\">fromCycle</a> with <code>True</code></li>\n<li><a href=\"https://hestia.earth/schema/Input#producedInCycle\">producedInCycle</a> with <code>True</code></li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</div>\n </div>\n <div class=\"collapsible-group\">\n <div class=\"collapsible-header\">\n <span>Lookups used</span>\n </div>\n <div class=\"collapsible-content\"><ul>\n<li><a href=\"https://hestia.earth/glossary/lookups/emission.csv\">emission.csv</a> -> <code>inHestiaDefaultSystemBoundary</code></li>\n<li><a href=\"https://hestia.earth/glossary/lookups/organicFertiliser.csv\">organicFertiliser.csv</a> -> <code>backgroundEmissionsResourceUseDefaultValue</code></li>\n</ul>\n</div>\n </div>\n \n</div>"}
|
package/dist/content/models/cycleEmissions/inputs/cycle-inputs-background-emissions/worldsteel.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"tags":{"author":["Lloyd Ashby"],"contributor":["Guillaume Royer"],"group":["Cycle: Emissions"],"subgroup":["Inputs"],"modelId":["cycle-inputs-background-emissions","cycle"],"tab":["World steel"]},"content":"# Background Emissions\n\nThis model calculates background environmental impact data related to the production of steel products from the [World steel 2022 database](https://nexus.openlca.org/database/worldsteel)\n\n\n\n\n\n\n\n\n\n<div class=\"collapsibles\">\n <div class=\"collapsible-group\">\n <div class=\"collapsible-header\">\n <span>Returns</span>\n </div>\n <div class=\"collapsible-content\"><ul>\n<li>A list of <a href=\"https://hestia.earth/schema/Emission\">Emissions</a> with:<ul>\n<li><a href=\"https://hestia.earth/schema/Emission#methodModel\">methodModel</a> with <a href=\"https://hestia.earth/term/worldSteel\">worldSteel</a></li>\n<li><a href=\"https://hestia.earth/schema/Emission#term\">term</a></li>\n<li><a href=\"https://hestia.earth/schema/Emission#value\">value</a></li>\n<li><a href=\"https://hestia.earth/schema/Emission#methodTier\">methodTier</a> with <code>background</code></li>\n<li><a href=\"https://hestia.earth/schema/Emission#inputs\">inputs</a></li>\n<li><a href=\"https://hestia.earth/schema/Emission#operation\">operation</a></li>\n<li><a href=\"https://hestia.earth/schema/Emission#animals\">animals</a></li>\n</ul>\n</li>\n</ul>\n</div>\n </div>\n <div class=\"collapsible-group\">\n <div class=\"collapsible-header\">\n <span>Requirements</span>\n </div>\n <div class=\"collapsible-content\"><ul>\n<li>A <a href=\"https://hestia.earth/schema/Cycle\">Cycle</a> with:<ul>\n<li>a list of <a href=\"https://hestia.earth/schema/Cycle#inputs\">inputs</a> with:<ul>\n<li><a href=\"https://hestia.earth/schema/Input#value\">value</a> <code>> 0</code> and none of:<ul>\n<li><a href=\"https://hestia.earth/schema/Input#fromCycle\">fromCycle</a> with <code>True</code></li>\n<li><a href=\"https://hestia.earth/schema/Input#producedInCycle\">producedInCycle</a> with <code>True</code> and <a href=\"https://hestia.earth/schema/Input#term\">term</a> of <a href=\"https://hestia.earth/schema/Term#termType\">termType</a> = <a href=\"https://hestia.earth/glossary?termType=material\">material</a></li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</div>\n </div>\n <div class=\"collapsible-group\">\n <div class=\"collapsible-header\">\n <span>Lookups used</span>\n </div>\n <div class=\"collapsible-content\"><ul>\n<li><a href=\"https://hestia.earth/glossary/lookups/worldSteel-emission.csv\">worldSteel-emission.csv</a> -> <code>emission-</code></li>\n<li><a href=\"https://hestia.earth/glossary/lookups/emission.csv\">emission.csv</a> -> <code>inputProductionGroupId</code></li>\n<li><a href=\"https://hestia.earth/glossary/lookups/material.csv\">material.csv</a> -> <code>worldsteelMapping</code></li>\n</ul>\n</div>\n </div>\n \n</div>"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"tags":{"author":["Florian Payen"],"group":["Cycle: Emissions"],"subgroup":["Land Use Change"],"tab":["IPCC (2019)"],"citation":["Payen, F. (2025) Above ground biomass modelling on HESTIA."]},"content":"# CO2, to air, above ground biomass stock change\n\nCarbon dioxide emissions to air, from above ground biomass stock change. Above ground biomass is defined as terrestrial living woody or herbaceous vegetation 2 mm in size or greater.\n\n## Overview\n\nThis model calculates the annual emissions from above ground biomass stock changes and assigns them to [Cycles](https://www.hestia.earth/schema/Cycle) that take place during those years. It can allocate these emissions to two HESTIA terms:\n\n1. [`co2ToAirAboveGroundBiomassStockChangeLandUseChange`](https://www.hestia.earth/term/co2ToAirAboveGroundBiomassStockChangeLandUseChange) - stock change emissions that occur in the 20 years after a land-use change event\n2. [`co2ToAirAboveGroundBiomassStockChangeManagementChange`](https://www.hestia.earth/term/co2ToAirAboveGroundBiomassStockChangeManagementChange) - stock change emissions that occur more than 20 years after a land-use change event\n\nThe model is run as a Monte Carlo simulation with 10,000 iterations. Model result values are the row-wise `mean` of simulation results. See our guide on [Monte Carlo simulation](/guide/applying-models-monte-carlo) for more information.\n\n## How the model works\n\n### Step 1. Build an annual inventory of above ground biomass measurements\n\nAn annual inventory of `aboveGroundBiomass` [Measurement](https://www.hestia.earth/schema/Measurement) values is created. These values represent the amount of organic carbon stored in the above ground biomass at the **end of each inventory year**.\n\n[Measurements](https://www.hestia.earth/schema/Measurement) are grouped by `methodClassification`. It is critical that different methods are **never mixed** when calculating changes in carbon stock, as this could lead to large and misleading differences. Instead, the model processes each `methodClassification` separately and includes only the emissions calculated using the **strongest available method** in the final output.\n\nOnly [Measurements](https://www.hestia.earth/schema/Measurement) with specific `methodClassification` values are included. All others are ignored. The valid classifications, listed from strongest to weakest, are:\n\n- `on-site physical measurement`\n- `modelled using other measurements`\n- `tier 3 model`\n- `tier 2 model`\n- `tier 1 model`\n\nEach carbon stock value must correspond to the timestamp `YYYY-12-31T23:59:59` — the end of the inventory year. If no [Measurement](https://www.hestia.earth/schema/Measurement) exists for this exact time, the value is estimated using linear interpolation between the closest available measurements before and after the target date.\n\n| Year | `on-site physical measurement`<sup>\\*</sup> | `tier 1 model`<sup>\\*</sup> |\n| ---- | ------------------------------------------- | --------------------------- |\n| 2002 | 48000 | - |\n| 2003 | 47000 | - |\n| 2004 | 45000 | 52350 |\n| 2005 | 44500 | 51125 |\n| 2006 | 44000 | 49900 |\n| 2007 | 43500 | - |\n\n<sup>\\*</sup>Above ground biomass stock (kg C ha<sup>-1</sup>)\n\nIn this scenario, the values of the `on-site physical measurement` column will be retained because it is the stronger `methodClassification`. The values of the `tier 1 model` will be discarded.\n\n### Step 2. Resample stock values for Monte Carlo simulation\n\nTo run the model as a Monte Carlo simulation, we need to generate an array of random samples for the `aboveGroundBiomass` stock in each inventory year. These samples are drawn from a normal distribution defined by the `value` (mean) and `sd` of each year.\n\nIdeally, we would re-use the full set of iteration results from the [`ipcc2019.aboveGroundBiomass`](./aboveGroundBiomass) model's Monto Carlo simulation. However, HESTIA nodes can only store row-wise summaries of Monte Carlo simulation results. This means the full iteration-level data is not available for use in downstream models, so we lose the correlation between years in each simulation run.\n\nTo maintain realistic, coherent simulation behaviour:\n\n- Within each simulation run (column): Values across years (rows) should be correlated. If year 0 is a high value, we expect subsequent years to also be relatively high\n- Across simulation runs (columns): Values should be independent from one another\n\nFor this, we need to generate our new random samples with correlation by treating the inventory as a time series, where:\n\n- Rows = time steps (years)\n- Columns = independent Monte Carlo runs\n\nTo model the correlation between years, we assume that similarity in stock values decreases with time. Closer years are more correlated than years further apart. This is modelled using exponential decay, with a half-life of 20 years (based on the IPCC's default transition period for carbon stock equilibrium).\n\nUsing this correlation structure, we generate samples from a multivariate normal distribution, ensuring temporal correlation within runs and independence between runs.\n\nSee the Scipy Cookbook on [Correlated Random Samples](https://scipy-cookbook.readthedocs.io/items/CorrelatedRandomSamples.html) for more information.\n\nCarbon stock values without a corresponding `sd` are given a nominal error of 75% ($2*{sd}$ as a percentage of the mean).\n\n### Step 3. Calculate the annual CO<sub>2</sub> emission (or removal) due to above ground biomass stock change\n\nNext, the carbon stock change and the associated CO<sub>2</sub> change can be calculated for each inventory year:\n\n$\\Delta CO_2 = -1 * (C_y - C\\_{y-1}) * \\frac{44.01}{12.012}$\n\nWhere:\n\n- $\\Delta CO_2$ = the CO<sub>2</sub> emission due to carbon stock change for year $y$, kg CO<sub>2</sub> ha<sup>-1</sup>.\n- $C_y$ = the carbon stock in year $y$, kg C ha<sup>-1</sup>.\n- $C_{y-1}$ = the carbon stock in year $y-1$x, kg C ha<sup>-1</sup>.\n- $\\frac{44.01}{12.012}$ = the ratio of the atomic mass of CO<sub>$2$</sub> to C.\n\n_n.b._, the value is multiplied by $-1$ as a reduction in carbon stock is associated with an emission of CO<sub>2</sub> and vice versa.\n\n| Year | C stock (kg C ha<sup>-1</sup>) | C stock change (kg C ha<sup>-1</sup>) | CO<sub>2</sub> emission (kg CO<sub>2</sub> ha<sup>-1</sup>) |\n| ---- | ------------------------------ | ------------------------------------- | ----------------------------------------------------------- |\n| 2002 | 48000 | n/a | n/a |\n| 2003 | 47000 | -1000 | 3664 |\n| 2004 | 45000 | -2000 | 7328 |\n| 2005 | 44500 | -500 | 1832 |\n| 2006 | 44000 | -500 | 1832 |\n| 2007 | 43500 | -500 | 1832 |\n\n### Step 4. Allocate the CO<sub>2</sub> emission to overlapping cycles\n\n[Measurements](https://www.hestia.earth/schema/Measurement), such as `aboveGroundBiomass`, are attached to [Site](https://www.hestia.earth/schema/Site) nodes. In the HESTIA schema, a single [Site](https://www.hestia.earth/schema/Site) can be linked to multiple [Cycle](https://www.hestia.earth/schema/Cycle) nodes. However, emission models are run **per [Cycle](https://www.hestia.earth/schema/Cycle)**.\n\nTo ensure emissions are correctly allocated, the `ipcc2019.co2ToAirAboveGroundBiomassStockChange` model gathers data from all [Cycles](https://www.hestia.earth/schema/Cycle) associated with the same [Site](https://www.hestia.earth/schema/Site).\n\nEmissions from changes in carbon stock should only be assigned to a [Cycle](https://www.hestia.earth/schema/Cycle) if that Cycle meaningfully overlaps with the inventory year in which the stock change occurred.\n\nIf multiple [Cycles](https://www.hestia.earth/schema/Cycle) overlap the same inventory year, the emission for that year is **shared proportionally** based on the number of overlapping days. For example:\n\n- `cycle-y` overlaps by 200 days\n- `cycle-z` overlaps by 100 days\n\nThen:\n\n- `cycle-y` receives **66.6%** of the emission\n- `cycle-z` receives **33.3%**\n\n_n.b._, The total share of emissions across all overlapping [Cycles](https://www.hestia.earth/schema/Cycle) **must always sum to 100%** to avoid under- or over-reporting.\n\n#### Emissions across multiple years\n\nIf a [Cycle](https://www.hestia.earth/schema/Cycle) overlaps with **multiple inventory years**, it should be assigned the **sum of its proportional shares** from each of those years.\n\n<div class=\"table-container is-responsive\">\n <table class=\"table is-fullwidth is-hoverable is-striped\">\n <tr>\n <th>Year</th>\n <th>\n Total emission(kg CO<sub>2</sub> ha<sup>-1</sup>)\n </th>\n <th>Cycle ID</th>\n <th>Share of emission (%)</th>\n <th>\n Cycle emission(kg CO<sub>2</sub> ha<sup>-1</sup>)\n </th>\n </tr>\n <tr>\n <td>2003</td>\n <td>3664</td>\n <td>\n cycle-a0\n </td>\n <td>100</td>\n <td>3664</td>\n </tr>\n <tr>\n <td rowspan=\"2\">2004</td>\n <td rowspan=\"2\">7328</td>\n <td>\n cycle-a1\n </td>\n <td>50</td>\n <td>3664</td>\n </tr>\n <tr>\n <td>\n cycle-a2\n </td>\n <td>50</td>\n <td>3664</td>\n </tr>\n <tr>\n <td>2005</td>\n <td>1832</td>\n <td>\n cycle-a3\n </td>\n <td>100</td>\n <td>1832</td>\n </tr>\n <tr>\n <td>2006</td>\n <td>1832</td>\n <td>\n cycle-a3\n </td>\n <td>100</td>\n <td>1832</td>\n </tr>\n <tr>\n <td>2007</td>\n <td>1832</td>\n <td>\n cycle-a3\n </td>\n <td>100</td>\n <td>1832</td>\n </tr>\n </table>\n</div>\n\n| Cycle ID | `co2ToAirAboveGroundBiomassStockChangeManagementChange`(kg CO<sub>2</sub> ha<sup>-1</sup>) |\n| ---------- | ------------------------------------------------------------------------------------------ |\n| `cycle-a0` | 3664 |\n| `cycle-a1` | 3664 |\n| `cycle-a2` | 3664 |\n| `cycle-a3` | 5496 |\n\n### Step 5. Assign an emission tier\n\nThe `methodTier` assigned to the emission node on each [Cycle](https://www.hestia.earth/schema/Cycle) reflects the **weakest** measurement method used in its calculation.\n\nFor example, if a [Cycle](https://www.hestia.earth/schema/Cycle)'s final emission is calculated by summing together the emissions of two inventory years, where:\n\n- One year uses [Measurements](https://www.hestia.earth/schema/Measurement) with `methodClassification = tier 1 model`\n- The other year uses `methodClassification = tier 2 model`\n\nThe resulting `methodTier` will be `tier 1`, since it is the **weakest** method involved.\n\nThe mapping between Measurement `methodClassification` and Emission `methodTier` is:\n\n| Measurement `methodClassification` | Emission `methodTier` |\n| ----------------------------------- | --------------------- |\n| `on-site physical measurement` | `measured` |\n| `modelled using other measurements` | `measured` |\n| `tier 3 model` | `tier 3` |\n| `tier 2 model` | `tier 2` |\n| `tier 1 model` | `tier 1` |\n\n### Step 6. Allocate the CO<sub>2</sub> emission to land-use change or management change\n\nIn line with reporting requirements, CO<sub>2</sub> emissions from stock changes must be classified as either:\n\n- due to land-use change (LUC), or\n- due to management change.\n\nIn HESTIA, the presence or absence of a blank node matters: returning no node is not the same as returning a node with 0 emissions. To ensure consistency, the model should always return two blank nodes (one for each category) if enough data is available.\n\n**Allocation rules**\n\nIf it is known whether the emission is due to LUC or management:\n\n- Return two blank nodes:\n 1. One node with the emission and the correct term.@id\n 2. One node with 0 emissions and the other term.@id\n\nIf it is unknown:\n\n- Return one blank node, allocating the full emission to management change\n\n**Decision criteria**\n\nAllocation is based on two factors:\n\n1. **Completeness of land-use data:**\n\n - No land-use data\n - Fewer than 20 years of data\n - At least 20 years of data\n\n2. **Presence of a land-use change event:**\n - No land-use change (LUC) event detected\n - LUC event detected\n\n| | No land use data (1) | < 20 years' land use data (2) | >= 20 years' land use data (3) |\n| ----------------------------- | ------------------------------------------------ | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |\n| **No LUC event detected (a)** | allocate all emissions to management change (a1) | allocate all emissions to management change (a2) | allocate all emissions to management change **AND** add a land use change emission with value 0 (a3) |\n| **LUC event detected (b)** | n/a (b1) | allocate all emissions to land use change **AND** add a management change emission with value 0 (b2) | allocate all emissions to land use change **AND** add a management change emission with value 0 (b3) |\n\n## Example\n\nIn this example, we follow the above ground biomass stock of an olive orchard, which has not changed in land use for over 50 years. Therefore, all emissions should be allocated to management changes and a corresponding `0` emission should be allocated to land-use change.\n\nFor simplicity, the uncertainty of model inputs and outputs have been excluded.\n\n### Input\n\n#### Site\n\n```json\n{\n \"@id\": \"site-a\",\n \"@type\": \"Site\",\n \"siteType\": \"cropland\",\n \"management\": [\n {\n \"@type\": \"Management\",\n \"term\": {\n \"@type\": \"Term\",\n \"@id\": \"oliveTree\"\n },\n \"value\": [100],\n \"startDate\": \"1960\",\n \"endDate\": \"2006\"\n }\n ],\n \"measurements\": [\n {\n \"@type\": \"Measurement\",\n \"term\": {\n \"@type\": \"Term\",\n \"@id\": \"aboveGroundBiomass\"\n },\n \"value\": [43000],\n \"method\": {\n \"@type\": \"Term\",\n \"@id\": \"ipcc2019\"\n },\n \"dates\": [\"2003-12-31\"],\n \"methodClassification\": \"tier 1 model\"\n },\n {\n \"@type\": \"Measurement\",\n \"term\": {\n \"@type\": \"Term\",\n \"@id\": \"aboveGroundBiomass\"\n },\n \"value\": [44333.333],\n \"method\": {\n \"@type\": \"Term\",\n \"@id\": \"ipcc2019\"\n },\n \"dates\": [\"2004-12-31\"],\n \"methodClassification\": \"tier 1 model\"\n },\n {\n \"@type\": \"Measurement\",\n \"term\": {\n \"@type\": \"Term\",\n \"@id\": \"aboveGroundBiomass\"\n },\n \"value\": [45666.666],\n \"method\": {\n \"@type\": \"Term\",\n \"@id\": \"ipcc2019\"\n },\n \"dates\": [\"2005-12-31\"],\n \"methodClassification\": \"tier 1 model\"\n },\n {\n \"@type\": \"Measurement\",\n \"term\": {\n \"@type\": \"Term\",\n \"@id\": \"aboveGroundBiomass\"\n },\n \"value\": [47000],\n \"method\": {\n \"@type\": \"Term\",\n \"@id\": \"ipcc2019\"\n },\n \"dates\": [\"2006-12-31\"],\n \"methodClassification\": \"tier 1 model\"\n }\n ]\n}\n```\n\n#### Cycle\n\n```json\n{\n \"@id\": \"cycle-a-04-06\",\n \"@type\": \"Cycle\",\n \"startDate\": \"2004\",\n \"endDate\": \"2006\",\n \"site\": {\n \"@id\": \"site-a\",\n \"@type\": \"Site\"\n },\n \"functionalUnit\": \"1 ha\"\n}\n```\n\n### Output\n\n```json\n[\n {\n \"@type\": \"Emission\",\n \"term\": {\n \"@type\": \"Term\",\n \"@id\": \"co2ToAirAboveGroundBiomassStockChangeLandUseChange\"\n },\n \"methodModel\": {\n \"@type\": \"Term\",\n \"@id\": \"ipcc2019\"\n },\n \"value\": [0],\n \"methodTier\": \"tier 1\"\n },\n {\n \"@type\": \"Emission\",\n \"term\": {\n \"@type\": \"Term\",\n \"@id\": \"co2ToAirAboveGroundBiomassStockChangeManagementChange\"\n },\n \"methodModel\": {\n \"@type\": \"Term\",\n \"@id\": \"ipcc2019\"\n },\n \"value\": [-14655.344655],\n \"methodTier\": \"tier 1\"\n }\n]\n```\n\n\n\n\n\n"}
|
|
1
|
+
{"tags":{"author":["Florian Payen"],"group":["Cycle: Emissions"],"subgroup":["Land Use Change"],"tab":["IPCC (2019)"],"citation":["Payen, F. (2025) Above ground biomass modelling on HESTIA."]},"content":"# CO2, to air, above ground biomass stock change\n\nCarbon dioxide emissions to air, from above ground biomass stock change. Above ground biomass is defined as terrestrial living woody or herbaceous vegetation 2 mm in size or greater.\n\n## Overview\n\nThis model calculates the annual emissions from above ground biomass stock changes and assigns them to [Cycles](/schema/Cycle) that take place during those years. It can allocate these emissions to two HESTIA terms:\n\n1. [`co2ToAirAboveGroundBiomassStockChangeLandUseChange`](/term/co2ToAirAboveGroundBiomassStockChangeLandUseChange) - stock change emissions that occur in the 20 years after a land-use change event\n2. [`co2ToAirAboveGroundBiomassStockChangeManagementChange`](/term/co2ToAirAboveGroundBiomassStockChangeManagementChange) - stock change emissions that occur more than 20 years after a land-use change event\n\nThe model is run as a Monte Carlo simulation with 10,000 iterations. Model result values are the row-wise `mean` of simulation results. See our guide on [Monte Carlo simulation](/guide/models-applying-models-monte-carlo) for more information.\n\n## How the model works\n\n### Step 1. Build an annual inventory of above ground biomass measurements\n\nAn annual inventory of `aboveGroundBiomass` [Measurement](/schema/Measurement) values is created. These values represent the amount of organic carbon stored in the above ground biomass at the **end of each inventory year**.\n\n[Measurements](/schema/Measurement) are grouped by `methodClassification`. It is critical that different methods are **never mixed** when calculating changes in carbon stock, as this could lead to large and misleading differences. Instead, the model processes each `methodClassification` separately and includes only the emissions calculated using the **strongest available method** in the final output.\n\nOnly [Measurements](/schema/Measurement) with specific `methodClassification` values are included. All others are ignored. The valid classifications, listed from strongest to weakest, are:\n\n- `on-site physical measurement`\n- `modelled using other measurements`\n- `tier 3 model`\n- `tier 2 model`\n- `tier 1 model`\n\nEach carbon stock value must correspond to the timestamp `YYYY-12-31T23:59:59` — the end of the inventory year. If no [Measurement](/schema/Measurement) exists for this exact time, the value is estimated using linear interpolation between the closest available measurements before and after the target date.\n\n| Year | `on-site physical measurement`<sup>\\*</sup> | `tier 1 model`<sup>\\*</sup> |\n| ---- | ------------------------------------------- | --------------------------- |\n| 2002 | 48000 | - |\n| 2003 | 47000 | - |\n| 2004 | 45000 | 52350 |\n| 2005 | 44500 | 51125 |\n| 2006 | 44000 | 49900 |\n| 2007 | 43500 | - |\n\n<sup>\\*</sup>Above ground biomass stock (kg C ha<sup>-1</sup>)\n\nIn this scenario, the values of the `on-site physical measurement` column will be retained because it is the stronger `methodClassification`. The values of the `tier 1 model` will be discarded.\n\n### Step 2. Resample stock values for Monte Carlo simulation\n\nTo run the model as a Monte Carlo simulation, we need to generate an array of random samples for the `aboveGroundBiomass` stock in each inventory year. These samples are drawn from a normal distribution defined by the `value` (mean) and `sd` of each year.\n\nIdeally, we would re-use the full set of iteration results from the [`ipcc2019.aboveGroundBiomass`](./aboveGroundBiomass) model's Monto Carlo simulation. However, HESTIA nodes can only store row-wise summaries of Monte Carlo simulation results. This means the full iteration-level data is not available for use in downstream models, so we lose the correlation between years in each simulation run.\n\nTo maintain realistic, coherent simulation behaviour:\n\n- Within each simulation run (column): Values across years (rows) should be correlated. If year 0 is a high value, we expect subsequent years to also be relatively high\n- Across simulation runs (columns): Values should be independent from one another\n\nFor this, we need to generate our new random samples with correlation by treating the inventory as a time series, where:\n\n- Rows = time steps (years)\n- Columns = independent Monte Carlo runs\n\nTo model the correlation between years, we assume that similarity in stock values decreases with time. Closer years are more correlated than years further apart. This is modelled using exponential decay, with a half-life of 20 years (based on the IPCC's default transition period for carbon stock equilibrium).\n\nUsing this correlation structure, we generate samples from a multivariate normal distribution, ensuring temporal correlation within runs and independence between runs.\n\nSee the Scipy Cookbook on [Correlated Random Samples](https://scipy-cookbook.readthedocs.io/items/CorrelatedRandomSamples.html) for more information.\n\nCarbon stock values without a corresponding `sd` are given a nominal error of 75% ($2*{sd}$ as a percentage of the mean).\n\n### Step 3. Calculate the annual CO<sub>2</sub> emission (or removal) due to above ground biomass stock change\n\nNext, the carbon stock change and the associated CO<sub>2</sub> change can be calculated for each inventory year:\n\n$\\Delta CO_2 = -1 * (C_y - C\\_{y-1}) * \\frac{44.01}{12.012}$\n\nWhere:\n\n- $\\Delta CO_2$ = the CO<sub>2</sub> emission due to carbon stock change for year $y$, kg CO<sub>2</sub> ha<sup>-1</sup>.\n- $C_y$ = the carbon stock in year $y$, kg C ha<sup>-1</sup>.\n- $C_{y-1}$ = the carbon stock in year $y-1$x, kg C ha<sup>-1</sup>.\n- $\\frac{44.01}{12.012}$ = the ratio of the atomic mass of CO<sub>$2$</sub> to C.\n\n_n.b._, the value is multiplied by $-1$ as a reduction in carbon stock is associated with an emission of CO<sub>2</sub> and vice versa.\n\n| Year | C stock (kg C ha<sup>-1</sup>) | C stock change (kg C ha<sup>-1</sup>) | CO<sub>2</sub> emission (kg CO<sub>2</sub> ha<sup>-1</sup>) |\n| ---- | ------------------------------ | ------------------------------------- | ----------------------------------------------------------- |\n| 2002 | 48000 | n/a | n/a |\n| 2003 | 47000 | -1000 | 3664 |\n| 2004 | 45000 | -2000 | 7328 |\n| 2005 | 44500 | -500 | 1832 |\n| 2006 | 44000 | -500 | 1832 |\n| 2007 | 43500 | -500 | 1832 |\n\n### Step 4. Allocate the CO<sub>2</sub> emission to overlapping cycles\n\n[Measurements](/schema/Measurement), such as `aboveGroundBiomass`, are attached to [Site](/schema/Site) nodes. In the HESTIA schema, a single [Site](/schema/Site) can be linked to multiple [Cycle](/schema/Cycle) nodes. However, emission models are run **per [Cycle](/schema/Cycle)**.\n\nTo ensure emissions are correctly allocated, the `ipcc2019.co2ToAirAboveGroundBiomassStockChange` model gathers data from all [Cycles](/schema/Cycle) associated with the same [Site](/schema/Site).\n\nEmissions from changes in carbon stock should only be assigned to a [Cycle](/schema/Cycle) if that Cycle meaningfully overlaps with the inventory year in which the stock change occurred.\n\nIf multiple [Cycles](/schema/Cycle) overlap the same inventory year, the emission for that year is **shared proportionally** based on the number of overlapping days. For example:\n\n- `cycle-y` overlaps by 200 days\n- `cycle-z` overlaps by 100 days\n\nThen:\n\n- `cycle-y` receives **66.6%** of the emission\n- `cycle-z` receives **33.3%**\n\n_n.b._, The total share of emissions across all overlapping [Cycles](/schema/Cycle) **must always sum to 100%** to avoid under- or over-reporting.\n\n#### Emissions across multiple years\n\nIf a [Cycle](/schema/Cycle) overlaps with **multiple inventory years**, it should be assigned the **sum of its proportional shares** from each of those years.\n\n<div class=\"table-container is-responsive\">\n <table class=\"table is-fullwidth is-hoverable is-striped\">\n <tr>\n <th>Year</th>\n <th>\n Total emission(kg CO<sub>2</sub> ha<sup>-1</sup>)\n </th>\n <th>Cycle ID</th>\n <th>Share of emission (%)</th>\n <th>\n Cycle emission(kg CO<sub>2</sub> ha<sup>-1</sup>)\n </th>\n </tr>\n <tr>\n <td>2003</td>\n <td>3664</td>\n <td>\n cycle-a0\n </td>\n <td>100</td>\n <td>3664</td>\n </tr>\n <tr>\n <td rowspan=\"2\">2004</td>\n <td rowspan=\"2\">7328</td>\n <td>\n cycle-a1\n </td>\n <td>50</td>\n <td>3664</td>\n </tr>\n <tr>\n <td>\n cycle-a2\n </td>\n <td>50</td>\n <td>3664</td>\n </tr>\n <tr>\n <td>2005</td>\n <td>1832</td>\n <td>\n cycle-a3\n </td>\n <td>100</td>\n <td>1832</td>\n </tr>\n <tr>\n <td>2006</td>\n <td>1832</td>\n <td>\n cycle-a3\n </td>\n <td>100</td>\n <td>1832</td>\n </tr>\n <tr>\n <td>2007</td>\n <td>1832</td>\n <td>\n cycle-a3\n </td>\n <td>100</td>\n <td>1832</td>\n </tr>\n </table>\n</div>\n\n| Cycle ID | `co2ToAirAboveGroundBiomassStockChangeManagementChange`(kg CO<sub>2</sub> ha<sup>-1</sup>) |\n| ---------- | ------------------------------------------------------------------------------------------ |\n| `cycle-a0` | 3664 |\n| `cycle-a1` | 3664 |\n| `cycle-a2` | 3664 |\n| `cycle-a3` | 5496 |\n\n### Step 5. Assign an emission tier\n\nThe `methodTier` assigned to the emission node on each [Cycle](/schema/Cycle) reflects the **weakest** measurement method used in its calculation.\n\nFor example, if a [Cycle](/schema/Cycle)'s final emission is calculated by summing together the emissions of two inventory years, where:\n\n- One year uses [Measurements](/schema/Measurement) with `methodClassification = tier 1 model`\n- The other year uses `methodClassification = tier 2 model`\n\nThe resulting `methodTier` will be `tier 1`, since it is the **weakest** method involved.\n\nThe mapping between Measurement `methodClassification` and Emission `methodTier` is:\n\n| Measurement `methodClassification` | Emission `methodTier` |\n| ----------------------------------- | --------------------- |\n| `on-site physical measurement` | `measured` |\n| `modelled using other measurements` | `measured` |\n| `tier 3 model` | `tier 3` |\n| `tier 2 model` | `tier 2` |\n| `tier 1 model` | `tier 1` |\n\n### Step 6. Allocate the CO<sub>2</sub> emission to land-use change or management change\n\nIn line with reporting requirements, CO<sub>2</sub> emissions from stock changes must be classified as either:\n\n- due to land-use change (LUC), or\n- due to management change.\n\nIn HESTIA, the presence or absence of a blank node matters: returning no node is not the same as returning a node with 0 emissions. To ensure consistency, the model should always return two blank nodes (one for each category) if enough data is available.\n\n**Allocation rules**\n\nIf it is known whether the emission is due to LUC or management:\n\n- Return two blank nodes:\n 1. One node with the emission and the correct term.@id\n 2. One node with 0 emissions and the other term.@id\n\nIf it is unknown:\n\n- Return one blank node, allocating the full emission to management change\n\n**Decision criteria**\n\nAllocation is based on two factors:\n\n1. **Completeness of land-use data:**\n\n - No land-use data\n - Fewer than 20 years of data\n - At least 20 years of data\n\n2. **Presence of a land-use change event:**\n - No land-use change (LUC) event detected\n - LUC event detected\n\n| | No land use data (1) | < 20 years' land use data (2) | >= 20 years' land use data (3) |\n| ----------------------------- | ------------------------------------------------ | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |\n| **No LUC event detected (a)** | allocate all emissions to management change (a1) | allocate all emissions to management change (a2) | allocate all emissions to management change **AND** add a land use change emission with value 0 (a3) |\n| **LUC event detected (b)** | n/a (b1) | allocate all emissions to land use change **AND** add a management change emission with value 0 (b2) | allocate all emissions to land use change **AND** add a management change emission with value 0 (b3) |\n\n## Example\n\nIn this example, we follow the above ground biomass stock of an olive orchard, which has not changed in land use for over 50 years. Therefore, all emissions should be allocated to management changes and a corresponding `0` emission should be allocated to land-use change.\n\nFor simplicity, the uncertainty of model inputs and outputs have been excluded.\n\n### Input\n\n#### Site\n\n```json\n{\n \"@id\": \"site-a\",\n \"@type\": \"Site\",\n \"siteType\": \"cropland\",\n \"management\": [\n {\n \"@type\": \"Management\",\n \"term\": {\n \"@type\": \"Term\",\n \"@id\": \"oliveTree\"\n },\n \"value\": [100],\n \"startDate\": \"1960\",\n \"endDate\": \"2006\"\n }\n ],\n \"measurements\": [\n {\n \"@type\": \"Measurement\",\n \"term\": {\n \"@type\": \"Term\",\n \"@id\": \"aboveGroundBiomass\"\n },\n \"value\": [43000],\n \"method\": {\n \"@type\": \"Term\",\n \"@id\": \"ipcc2019\"\n },\n \"dates\": [\"2003-12-31\"],\n \"methodClassification\": \"tier 1 model\"\n },\n {\n \"@type\": \"Measurement\",\n \"term\": {\n \"@type\": \"Term\",\n \"@id\": \"aboveGroundBiomass\"\n },\n \"value\": [44333.333],\n \"method\": {\n \"@type\": \"Term\",\n \"@id\": \"ipcc2019\"\n },\n \"dates\": [\"2004-12-31\"],\n \"methodClassification\": \"tier 1 model\"\n },\n {\n \"@type\": \"Measurement\",\n \"term\": {\n \"@type\": \"Term\",\n \"@id\": \"aboveGroundBiomass\"\n },\n \"value\": [45666.666],\n \"method\": {\n \"@type\": \"Term\",\n \"@id\": \"ipcc2019\"\n },\n \"dates\": [\"2005-12-31\"],\n \"methodClassification\": \"tier 1 model\"\n },\n {\n \"@type\": \"Measurement\",\n \"term\": {\n \"@type\": \"Term\",\n \"@id\": \"aboveGroundBiomass\"\n },\n \"value\": [47000],\n \"method\": {\n \"@type\": \"Term\",\n \"@id\": \"ipcc2019\"\n },\n \"dates\": [\"2006-12-31\"],\n \"methodClassification\": \"tier 1 model\"\n }\n ]\n}\n```\n\n#### Cycle\n\n```json\n{\n \"@id\": \"cycle-a-04-06\",\n \"@type\": \"Cycle\",\n \"startDate\": \"2004\",\n \"endDate\": \"2006\",\n \"site\": {\n \"@id\": \"site-a\",\n \"@type\": \"Site\"\n },\n \"functionalUnit\": \"1 ha\"\n}\n```\n\n### Output\n\n```json\n[\n {\n \"@type\": \"Emission\",\n \"term\": {\n \"@type\": \"Term\",\n \"@id\": \"co2ToAirAboveGroundBiomassStockChangeLandUseChange\"\n },\n \"methodModel\": {\n \"@type\": \"Term\",\n \"@id\": \"ipcc2019\"\n },\n \"value\": [0],\n \"methodTier\": \"tier 1\"\n },\n {\n \"@type\": \"Emission\",\n \"term\": {\n \"@type\": \"Term\",\n \"@id\": \"co2ToAirAboveGroundBiomassStockChangeManagementChange\"\n },\n \"methodModel\": {\n \"@type\": \"Term\",\n \"@id\": \"ipcc2019\"\n },\n \"value\": [-14655.344655],\n \"methodTier\": \"tier 1\"\n }\n]\n```\n\n## Cases in which the model can run without above-ground biomass Measurements\n\nBecause emissions are allocated to either land-use change or management change (depending on whether a land-use change has been detected in the Site's `landCover` history), in some cases it is possible for this model to return partial results when there are no above-ground biomass Measurements.\n\nIf a land-use change is detected during the 20 years prior to a Cycle, all emissions should be allocated to the land-use change emission term (`co2ToAirAboveGroundBiomassStockChangeLandUseChange`). Therefore, we can allocate `0` emissions to the management change emission term (`co2ToAirAboveGroundBiomassStockChangeManagementChange`) even whem we can't calculate a value for the land-use change emission. To be certain that a land-use change has occurred, we require up to 20 year's `landCover` data prior to the Cycle's `startDate`.\n\nThe inverse is also true for when a land-use change is **not** detected in the 20 years prior to a Cycle. In this case, all emissions should be allocated to the management change emission term (`co2ToAirAboveGroundBiomassStockChangeManagementChange`). Therefore, we can allocate `0` emissions to the land-use change emission term (`co2ToAirAboveGroundBiomassStockChangeLandUseChange`) even when we can't calculate a value for the management change emission. To be certain that a land-use change has **not** occurred, we require a minimum of 20 year's `landCover` data prior to the Cycle's `startDate`.\n\nIf there is insufficient `landCover` data to determine whether a land-use change has occurred, the model will be unable to return partial results.\n\n\n\n\n\n"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"tags":{"author":["Florian Payen"],"group":["Cycle: Emissions"],"subgroup":["Land Use Change"],"tab":["IPCC (2019)"],"citation":["Payen, F. (2025) Above ground biomass modelling on HESTIA."],"modelId":["co2ToAirAboveGroundBiomassStockChangeLandUseChange","co2ToAirAboveGroundBiomassStockChangeManagementChange"],"modelRequires":["aboveGroundBiomass"]},"content":"# CO2, to air, above ground biomass stock change\n\nCarbon dioxide emissions to air, from above ground biomass stock change. Above ground biomass is defined as terrestrial living woody or herbaceous vegetation 2 mm in size or greater.\n\n## Overview\n\nThis model calculates the annual emissions from above ground biomass stock changes and assigns them to [Cycles](https://www.hestia.earth/schema/Cycle) that take place during those years. It can allocate these emissions to two HESTIA terms:\n\n1. [`co2ToAirAboveGroundBiomassStockChangeLandUseChange`](https://www.hestia.earth/term/co2ToAirAboveGroundBiomassStockChangeLandUseChange) - stock change emissions that occur in the 20 years after a land-use change event\n2. [`co2ToAirAboveGroundBiomassStockChangeManagementChange`](https://www.hestia.earth/term/co2ToAirAboveGroundBiomassStockChangeManagementChange) - stock change emissions that occur more than 20 years after a land-use change event\n\nThe model is run as a Monte Carlo simulation with 10,000 iterations. Model result values are the row-wise `mean` of simulation results. See our guide on [Monte Carlo simulation](/guide/applying-models-monte-carlo) for more information.\n\n## How the model works\n\n### Step 1. Build an annual inventory of above ground biomass measurements\n\nAn annual inventory of `aboveGroundBiomass` [Measurement](https://www.hestia.earth/schema/Measurement) values is created. These values represent the amount of organic carbon stored in the above ground biomass at the **end of each inventory year**.\n\n[Measurements](https://www.hestia.earth/schema/Measurement) are grouped by `methodClassification`. It is critical that different methods are **never mixed** when calculating changes in carbon stock, as this could lead to large and misleading differences. Instead, the model processes each `methodClassification` separately and includes only the emissions calculated using the **strongest available method** in the final output.\n\nOnly [Measurements](https://www.hestia.earth/schema/Measurement) with specific `methodClassification` values are included. All others are ignored. The valid classifications, listed from strongest to weakest, are:\n\n- `on-site physical measurement`\n- `modelled using other measurements`\n- `tier 3 model`\n- `tier 2 model`\n- `tier 1 model`\n\nEach carbon stock value must correspond to the timestamp `YYYY-12-31T23:59:59` — the end of the inventory year. If no [Measurement](https://www.hestia.earth/schema/Measurement) exists for this exact time, the value is estimated using linear interpolation between the closest available measurements before and after the target date.\n\n| Year | `on-site physical measurement`<sup>\\*</sup> | `tier 1 model`<sup>\\*</sup> |\n| ---- | ------------------------------------------- | --------------------------- |\n| 2002 | 48000 | - |\n| 2003 | 47000 | - |\n| 2004 | 45000 | 52350 |\n| 2005 | 44500 | 51125 |\n| 2006 | 44000 | 49900 |\n| 2007 | 43500 | - |\n\n<sup>\\*</sup>Above ground biomass stock (kg C ha<sup>-1</sup>)\n\nIn this scenario, the values of the `on-site physical measurement` column will be retained because it is the stronger `methodClassification`. The values of the `tier 1 model` will be discarded.\n\n### Step 2. Resample stock values for Monte Carlo simulation\n\nTo run the model as a Monte Carlo simulation, we need to generate an array of random samples for the `aboveGroundBiomass` stock in each inventory year. These samples are drawn from a normal distribution defined by the `value` (mean) and `sd` of each year.\n\nIdeally, we would re-use the full set of iteration results from the [`ipcc2019.aboveGroundBiomass`](./aboveGroundBiomass) model's Monto Carlo simulation. However, HESTIA nodes can only store row-wise summaries of Monte Carlo simulation results. This means the full iteration-level data is not available for use in downstream models, so we lose the correlation between years in each simulation run.\n\nTo maintain realistic, coherent simulation behaviour:\n\n- Within each simulation run (column): Values across years (rows) should be correlated. If year 0 is a high value, we expect subsequent years to also be relatively high\n- Across simulation runs (columns): Values should be independent from one another\n\nFor this, we need to generate our new random samples with correlation by treating the inventory as a time series, where:\n\n- Rows = time steps (years)\n- Columns = independent Monte Carlo runs\n\nTo model the correlation between years, we assume that similarity in stock values decreases with time. Closer years are more correlated than years further apart. This is modelled using exponential decay, with a half-life of 20 years (based on the IPCC's default transition period for carbon stock equilibrium).\n\nUsing this correlation structure, we generate samples from a multivariate normal distribution, ensuring temporal correlation within runs and independence between runs.\n\nSee the Scipy Cookbook on [Correlated Random Samples](https://scipy-cookbook.readthedocs.io/items/CorrelatedRandomSamples.html) for more information.\n\nCarbon stock values without a corresponding `sd` are given a nominal error of 75% ($2*{sd}$ as a percentage of the mean).\n\n### Step 3. Calculate the annual CO<sub>2</sub> emission (or removal) due to above ground biomass stock change\n\nNext, the carbon stock change and the associated CO<sub>2</sub> change can be calculated for each inventory year:\n\n$\\Delta CO_2 = -1 * (C_y - C\\_{y-1}) * \\frac{44.01}{12.012}$\n\nWhere:\n\n- $\\Delta CO_2$ = the CO<sub>2</sub> emission due to carbon stock change for year $y$, kg CO<sub>2</sub> ha<sup>-1</sup>.\n- $C_y$ = the carbon stock in year $y$, kg C ha<sup>-1</sup>.\n- $C_{y-1}$ = the carbon stock in year $y-1$x, kg C ha<sup>-1</sup>.\n- $\\frac{44.01}{12.012}$ = the ratio of the atomic mass of CO<sub>$2$</sub> to C.\n\n_n.b._, the value is multiplied by $-1$ as a reduction in carbon stock is associated with an emission of CO<sub>2</sub> and vice versa.\n\n| Year | C stock (kg C ha<sup>-1</sup>) | C stock change (kg C ha<sup>-1</sup>) | CO<sub>2</sub> emission (kg CO<sub>2</sub> ha<sup>-1</sup>) |\n| ---- | ------------------------------ | ------------------------------------- | ----------------------------------------------------------- |\n| 2002 | 48000 | n/a | n/a |\n| 2003 | 47000 | -1000 | 3664 |\n| 2004 | 45000 | -2000 | 7328 |\n| 2005 | 44500 | -500 | 1832 |\n| 2006 | 44000 | -500 | 1832 |\n| 2007 | 43500 | -500 | 1832 |\n\n### Step 4. Allocate the CO<sub>2</sub> emission to overlapping cycles\n\n[Measurements](https://www.hestia.earth/schema/Measurement), such as `aboveGroundBiomass`, are attached to [Site](https://www.hestia.earth/schema/Site) nodes. In the HESTIA schema, a single [Site](https://www.hestia.earth/schema/Site) can be linked to multiple [Cycle](https://www.hestia.earth/schema/Cycle) nodes. However, emission models are run **per [Cycle](https://www.hestia.earth/schema/Cycle)**.\n\nTo ensure emissions are correctly allocated, the `ipcc2019.co2ToAirAboveGroundBiomassStockChange` model gathers data from all [Cycles](https://www.hestia.earth/schema/Cycle) associated with the same [Site](https://www.hestia.earth/schema/Site).\n\nEmissions from changes in carbon stock should only be assigned to a [Cycle](https://www.hestia.earth/schema/Cycle) if that Cycle meaningfully overlaps with the inventory year in which the stock change occurred.\n\nIf multiple [Cycles](https://www.hestia.earth/schema/Cycle) overlap the same inventory year, the emission for that year is **shared proportionally** based on the number of overlapping days. For example:\n\n- `cycle-y` overlaps by 200 days\n- `cycle-z` overlaps by 100 days\n\nThen:\n\n- `cycle-y` receives **66.6%** of the emission\n- `cycle-z` receives **33.3%**\n\n_n.b._, The total share of emissions across all overlapping [Cycles](https://www.hestia.earth/schema/Cycle) **must always sum to 100%** to avoid under- or over-reporting.\n\n#### Emissions across multiple years\n\nIf a [Cycle](https://www.hestia.earth/schema/Cycle) overlaps with **multiple inventory years**, it should be assigned the **sum of its proportional shares** from each of those years.\n\n<div class=\"table-container is-responsive\">\n <table class=\"table is-fullwidth is-hoverable is-striped\">\n <tr>\n <th>Year</th>\n <th>\n Total emission(kg CO<sub>2</sub> ha<sup>-1</sup>)\n </th>\n <th>Cycle ID</th>\n <th>Share of emission (%)</th>\n <th>\n Cycle emission(kg CO<sub>2</sub> ha<sup>-1</sup>)\n </th>\n </tr>\n <tr>\n <td>2003</td>\n <td>3664</td>\n <td>\n cycle-a0\n </td>\n <td>100</td>\n <td>3664</td>\n </tr>\n <tr>\n <td rowspan=\"2\">2004</td>\n <td rowspan=\"2\">7328</td>\n <td>\n cycle-a1\n </td>\n <td>50</td>\n <td>3664</td>\n </tr>\n <tr>\n <td>\n cycle-a2\n </td>\n <td>50</td>\n <td>3664</td>\n </tr>\n <tr>\n <td>2005</td>\n <td>1832</td>\n <td>\n cycle-a3\n </td>\n <td>100</td>\n <td>1832</td>\n </tr>\n <tr>\n <td>2006</td>\n <td>1832</td>\n <td>\n cycle-a3\n </td>\n <td>100</td>\n <td>1832</td>\n </tr>\n <tr>\n <td>2007</td>\n <td>1832</td>\n <td>\n cycle-a3\n </td>\n <td>100</td>\n <td>1832</td>\n </tr>\n </table>\n</div>\n\n| Cycle ID | `co2ToAirAboveGroundBiomassStockChangeManagementChange`(kg CO<sub>2</sub> ha<sup>-1</sup>) |\n| ---------- | ------------------------------------------------------------------------------------------ |\n| `cycle-a0` | 3664 |\n| `cycle-a1` | 3664 |\n| `cycle-a2` | 3664 |\n| `cycle-a3` | 5496 |\n\n### Step 5. Assign an emission tier\n\nThe `methodTier` assigned to the emission node on each [Cycle](https://www.hestia.earth/schema/Cycle) reflects the **weakest** measurement method used in its calculation.\n\nFor example, if a [Cycle](https://www.hestia.earth/schema/Cycle)'s final emission is calculated by summing together the emissions of two inventory years, where:\n\n- One year uses [Measurements](https://www.hestia.earth/schema/Measurement) with `methodClassification = tier 1 model`\n- The other year uses `methodClassification = tier 2 model`\n\nThe resulting `methodTier` will be `tier 1`, since it is the **weakest** method involved.\n\nThe mapping between Measurement `methodClassification` and Emission `methodTier` is:\n\n| Measurement `methodClassification` | Emission `methodTier` |\n| ----------------------------------- | --------------------- |\n| `on-site physical measurement` | `measured` |\n| `modelled using other measurements` | `measured` |\n| `tier 3 model` | `tier 3` |\n| `tier 2 model` | `tier 2` |\n| `tier 1 model` | `tier 1` |\n\n### Step 6. Allocate the CO<sub>2</sub> emission to land-use change or management change\n\nIn line with reporting requirements, CO<sub>2</sub> emissions from stock changes must be classified as either:\n\n- due to land-use change (LUC), or\n- due to management change.\n\nIn HESTIA, the presence or absence of a blank node matters: returning no node is not the same as returning a node with 0 emissions. To ensure consistency, the model should always return two blank nodes (one for each category) if enough data is available.\n\n**Allocation rules**\n\nIf it is known whether the emission is due to LUC or management:\n\n- Return two blank nodes:\n 1. One node with the emission and the correct term.@id\n 2. One node with 0 emissions and the other term.@id\n\nIf it is unknown:\n\n- Return one blank node, allocating the full emission to management change\n\n**Decision criteria**\n\nAllocation is based on two factors:\n\n1. **Completeness of land-use data:**\n\n - No land-use data\n - Fewer than 20 years of data\n - At least 20 years of data\n\n2. **Presence of a land-use change event:**\n - No land-use change (LUC) event detected\n - LUC event detected\n\n| | No land use data (1) | < 20 years' land use data (2) | >= 20 years' land use data (3) |\n| ----------------------------- | ------------------------------------------------ | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |\n| **No LUC event detected (a)** | allocate all emissions to management change (a1) | allocate all emissions to management change (a2) | allocate all emissions to management change **AND** add a land use change emission with value 0 (a3) |\n| **LUC event detected (b)** | n/a (b1) | allocate all emissions to land use change **AND** add a management change emission with value 0 (b2) | allocate all emissions to land use change **AND** add a management change emission with value 0 (b3) |\n\n## Example\n\nIn this example, we follow the above ground biomass stock of an olive orchard, which has not changed in land use for over 50 years. Therefore, all emissions should be allocated to management changes and a corresponding `0` emission should be allocated to land-use change.\n\nFor simplicity, the uncertainty of model inputs and outputs have been excluded.\n\n### Input\n\n#### Site\n\n```json\n{\n \"@id\": \"site-a\",\n \"@type\": \"Site\",\n \"siteType\": \"cropland\",\n \"management\": [\n {\n \"@type\": \"Management\",\n \"term\": {\n \"@type\": \"Term\",\n \"@id\": \"oliveTree\"\n },\n \"value\": [100],\n \"startDate\": \"1960\",\n \"endDate\": \"2006\"\n }\n ],\n \"measurements\": [\n {\n \"@type\": \"Measurement\",\n \"term\": {\n \"@type\": \"Term\",\n \"@id\": \"aboveGroundBiomass\"\n },\n \"value\": [43000],\n \"method\": {\n \"@type\": \"Term\",\n \"@id\": \"ipcc2019\"\n },\n \"dates\": [\"2003-12-31\"],\n \"methodClassification\": \"tier 1 model\"\n },\n {\n \"@type\": \"Measurement\",\n \"term\": {\n \"@type\": \"Term\",\n \"@id\": \"aboveGroundBiomass\"\n },\n \"value\": [44333.333],\n \"method\": {\n \"@type\": \"Term\",\n \"@id\": \"ipcc2019\"\n },\n \"dates\": [\"2004-12-31\"],\n \"methodClassification\": \"tier 1 model\"\n },\n {\n \"@type\": \"Measurement\",\n \"term\": {\n \"@type\": \"Term\",\n \"@id\": \"aboveGroundBiomass\"\n },\n \"value\": [45666.666],\n \"method\": {\n \"@type\": \"Term\",\n \"@id\": \"ipcc2019\"\n },\n \"dates\": [\"2005-12-31\"],\n \"methodClassification\": \"tier 1 model\"\n },\n {\n \"@type\": \"Measurement\",\n \"term\": {\n \"@type\": \"Term\",\n \"@id\": \"aboveGroundBiomass\"\n },\n \"value\": [47000],\n \"method\": {\n \"@type\": \"Term\",\n \"@id\": \"ipcc2019\"\n },\n \"dates\": [\"2006-12-31\"],\n \"methodClassification\": \"tier 1 model\"\n }\n ]\n}\n```\n\n#### Cycle\n\n```json\n{\n \"@id\": \"cycle-a-04-06\",\n \"@type\": \"Cycle\",\n \"startDate\": \"2004\",\n \"endDate\": \"2006\",\n \"site\": {\n \"@id\": \"site-a\",\n \"@type\": \"Site\"\n },\n \"functionalUnit\": \"1 ha\"\n}\n```\n\n### Output\n\n```json\n[\n {\n \"@type\": \"Emission\",\n \"term\": {\n \"@type\": \"Term\",\n \"@id\": \"co2ToAirAboveGroundBiomassStockChangeLandUseChange\"\n },\n \"methodModel\": {\n \"@type\": \"Term\",\n \"@id\": \"ipcc2019\"\n },\n \"value\": [0],\n \"methodTier\": \"tier 1\"\n },\n {\n \"@type\": \"Emission\",\n \"term\": {\n \"@type\": \"Term\",\n \"@id\": \"co2ToAirAboveGroundBiomassStockChangeManagementChange\"\n },\n \"methodModel\": {\n \"@type\": \"Term\",\n \"@id\": \"ipcc2019\"\n },\n \"value\": [-14655.344655],\n \"methodTier\": \"tier 1\"\n }\n]\n```\n\n\n\n\n\n\n\n\n\n\n\n<div class=\"collapsibles\">\n <div class=\"collapsible-group\">\n <div class=\"collapsible-header\">\n <span>Returns</span>\n </div>\n <div class=\"collapsible-content\"><ul>\n<li>A list of <a href=\"https://hestia.earth/schema/Emission\">Emissions</a> with:<ul>\n<li><a href=\"https://hestia.earth/schema/Emission#term\">term</a> with <a href=\"https://hestia.earth/term/co2ToAirAboveGroundBiomassStockChangeLandUseChange\">co2ToAirAboveGroundBiomassStockChangeLandUseChange</a> <strong>or</strong> <a href=\"https://hestia.earth/term/co2ToAirAboveGroundBiomassStockChangeManagementChange\">co2ToAirAboveGroundBiomassStockChangeManagementChange</a></li>\n<li><a href=\"https://hestia.earth/schema/Emission#methodModel\">methodModel</a> with <a href=\"https://hestia.earth/term/ipcc2019\">ipcc2019</a></li>\n<li><a href=\"https://hestia.earth/schema/Emission#value\">value</a></li>\n<li><a href=\"https://hestia.earth/schema/Emission#sd\">sd</a></li>\n<li><a href=\"https://hestia.earth/schema/Emission#min\">min</a></li>\n<li><a href=\"https://hestia.earth/schema/Emission#max\">max</a></li>\n<li><a href=\"https://hestia.earth/schema/Emission#statsDefinition\">statsDefinition</a> with <code>simulated</code></li>\n<li><a href=\"https://hestia.earth/schema/Emission#observations\">observations</a></li>\n<li><a href=\"https://hestia.earth/schema/Emission#methodTier\">methodTier</a></li>\n</ul>\n</li>\n</ul>\n</div>\n </div>\n <div class=\"collapsible-group\">\n <div class=\"collapsible-header\">\n <span>Requirements</span>\n </div>\n <div class=\"collapsible-content\"><ul>\n<li>A <a href=\"https://hestia.earth/schema/Cycle\">Cycle</a> with:<ul>\n<li>a <a href=\"https://hestia.earth/schema/Cycle#site\">site</a> with:<ul>\n<li><a href=\"https://hestia.earth/schema/Site#siteType\">siteType</a> with <code>forest</code> <strong>or</strong> <code>other natural vegetation</code> <strong>or</strong> <code>cropland</code> <strong>or</strong> <code>glass or high accessible cover</code> <strong>or</strong> <code>permanent pasture</code> and a list of <a href=\"https://hestia.earth/schema/Site#measurements\">measurements</a> with:<ul>\n<li><a href=\"https://hestia.earth/schema/Measurement#value\">value</a> and <a href=\"https://hestia.earth/schema/Measurement#dates\">dates</a> and <a href=\"https://hestia.earth/schema/Measurement#depthUpper\">depthUpper</a> with <code>0</code> and <a href=\"https://hestia.earth/schema/Measurement#depthLower\">depthLower</a> with <code>30</code> and <a href=\"https://hestia.earth/schema/Measurement#term\">term</a> with <a href=\"https://hestia.earth/term/aboveGroundBiomass\">aboveGroundBiomass</a></li>\n</ul>\n</li>\n</ul>\n</li>\n<li><a href=\"https://hestia.earth/schema/Cycle#functionalUnit\">functionalUnit</a> with <code>1 ha</code></li>\n<li><a href=\"https://hestia.earth/schema/Cycle#endDate\">endDate</a></li>\n<li>optional:<ul>\n<li><a href=\"https://hestia.earth/schema/Cycle#startDate\">startDate</a></li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</div>\n </div>\n <div class=\"collapsible-group\">\n <div class=\"collapsible-header\">\n <span>Lookups used</span>\n </div>\n <div class=\"collapsible-content\"><ul>\n<li><a href=\"https://hestia.earth/glossary/lookups/emission.csv\">emission.csv</a> -> <code>siteTypesAllowed</code>; <code>typesAllowed</code></li>\n</ul>\n</div>\n </div>\n \n</div>"}
|
|
1
|
+
{"tags":{"author":["Florian Payen"],"group":["Cycle: Emissions"],"subgroup":["Land Use Change"],"tab":["IPCC (2019)"],"citation":["Payen, F. (2025) Above ground biomass modelling on HESTIA."],"modelId":["co2ToAirAboveGroundBiomassStockChangeLandUseChange","co2ToAirAboveGroundBiomassStockChangeManagementChange"],"modelRequires":["aboveGroundBiomass"]},"content":"# CO2, to air, above ground biomass stock change\n\nCarbon dioxide emissions to air, from above ground biomass stock change. Above ground biomass is defined as terrestrial living woody or herbaceous vegetation 2 mm in size or greater.\n\n## Overview\n\nThis model calculates the annual emissions from above ground biomass stock changes and assigns them to [Cycles](/schema/Cycle) that take place during those years. It can allocate these emissions to two HESTIA terms:\n\n1. [`co2ToAirAboveGroundBiomassStockChangeLandUseChange`](/term/co2ToAirAboveGroundBiomassStockChangeLandUseChange) - stock change emissions that occur in the 20 years after a land-use change event\n2. [`co2ToAirAboveGroundBiomassStockChangeManagementChange`](/term/co2ToAirAboveGroundBiomassStockChangeManagementChange) - stock change emissions that occur more than 20 years after a land-use change event\n\nThe model is run as a Monte Carlo simulation with 10,000 iterations. Model result values are the row-wise `mean` of simulation results. See our guide on [Monte Carlo simulation](/guide/models-applying-models-monte-carlo) for more information.\n\n## How the model works\n\n### Step 1. Build an annual inventory of above ground biomass measurements\n\nAn annual inventory of `aboveGroundBiomass` [Measurement](/schema/Measurement) values is created. These values represent the amount of organic carbon stored in the above ground biomass at the **end of each inventory year**.\n\n[Measurements](/schema/Measurement) are grouped by `methodClassification`. It is critical that different methods are **never mixed** when calculating changes in carbon stock, as this could lead to large and misleading differences. Instead, the model processes each `methodClassification` separately and includes only the emissions calculated using the **strongest available method** in the final output.\n\nOnly [Measurements](/schema/Measurement) with specific `methodClassification` values are included. All others are ignored. The valid classifications, listed from strongest to weakest, are:\n\n- `on-site physical measurement`\n- `modelled using other measurements`\n- `tier 3 model`\n- `tier 2 model`\n- `tier 1 model`\n\nEach carbon stock value must correspond to the timestamp `YYYY-12-31T23:59:59` — the end of the inventory year. If no [Measurement](/schema/Measurement) exists for this exact time, the value is estimated using linear interpolation between the closest available measurements before and after the target date.\n\n| Year | `on-site physical measurement`<sup>\\*</sup> | `tier 1 model`<sup>\\*</sup> |\n| ---- | ------------------------------------------- | --------------------------- |\n| 2002 | 48000 | - |\n| 2003 | 47000 | - |\n| 2004 | 45000 | 52350 |\n| 2005 | 44500 | 51125 |\n| 2006 | 44000 | 49900 |\n| 2007 | 43500 | - |\n\n<sup>\\*</sup>Above ground biomass stock (kg C ha<sup>-1</sup>)\n\nIn this scenario, the values of the `on-site physical measurement` column will be retained because it is the stronger `methodClassification`. The values of the `tier 1 model` will be discarded.\n\n### Step 2. Resample stock values for Monte Carlo simulation\n\nTo run the model as a Monte Carlo simulation, we need to generate an array of random samples for the `aboveGroundBiomass` stock in each inventory year. These samples are drawn from a normal distribution defined by the `value` (mean) and `sd` of each year.\n\nIdeally, we would re-use the full set of iteration results from the [`ipcc2019.aboveGroundBiomass`](./aboveGroundBiomass) model's Monto Carlo simulation. However, HESTIA nodes can only store row-wise summaries of Monte Carlo simulation results. This means the full iteration-level data is not available for use in downstream models, so we lose the correlation between years in each simulation run.\n\nTo maintain realistic, coherent simulation behaviour:\n\n- Within each simulation run (column): Values across years (rows) should be correlated. If year 0 is a high value, we expect subsequent years to also be relatively high\n- Across simulation runs (columns): Values should be independent from one another\n\nFor this, we need to generate our new random samples with correlation by treating the inventory as a time series, where:\n\n- Rows = time steps (years)\n- Columns = independent Monte Carlo runs\n\nTo model the correlation between years, we assume that similarity in stock values decreases with time. Closer years are more correlated than years further apart. This is modelled using exponential decay, with a half-life of 20 years (based on the IPCC's default transition period for carbon stock equilibrium).\n\nUsing this correlation structure, we generate samples from a multivariate normal distribution, ensuring temporal correlation within runs and independence between runs.\n\nSee the Scipy Cookbook on [Correlated Random Samples](https://scipy-cookbook.readthedocs.io/items/CorrelatedRandomSamples.html) for more information.\n\nCarbon stock values without a corresponding `sd` are given a nominal error of 75% ($2*{sd}$ as a percentage of the mean).\n\n### Step 3. Calculate the annual CO<sub>2</sub> emission (or removal) due to above ground biomass stock change\n\nNext, the carbon stock change and the associated CO<sub>2</sub> change can be calculated for each inventory year:\n\n$\\Delta CO_2 = -1 * (C_y - C\\_{y-1}) * \\frac{44.01}{12.012}$\n\nWhere:\n\n- $\\Delta CO_2$ = the CO<sub>2</sub> emission due to carbon stock change for year $y$, kg CO<sub>2</sub> ha<sup>-1</sup>.\n- $C_y$ = the carbon stock in year $y$, kg C ha<sup>-1</sup>.\n- $C_{y-1}$ = the carbon stock in year $y-1$x, kg C ha<sup>-1</sup>.\n- $\\frac{44.01}{12.012}$ = the ratio of the atomic mass of CO<sub>$2$</sub> to C.\n\n_n.b._, the value is multiplied by $-1$ as a reduction in carbon stock is associated with an emission of CO<sub>2</sub> and vice versa.\n\n| Year | C stock (kg C ha<sup>-1</sup>) | C stock change (kg C ha<sup>-1</sup>) | CO<sub>2</sub> emission (kg CO<sub>2</sub> ha<sup>-1</sup>) |\n| ---- | ------------------------------ | ------------------------------------- | ----------------------------------------------------------- |\n| 2002 | 48000 | n/a | n/a |\n| 2003 | 47000 | -1000 | 3664 |\n| 2004 | 45000 | -2000 | 7328 |\n| 2005 | 44500 | -500 | 1832 |\n| 2006 | 44000 | -500 | 1832 |\n| 2007 | 43500 | -500 | 1832 |\n\n### Step 4. Allocate the CO<sub>2</sub> emission to overlapping cycles\n\n[Measurements](/schema/Measurement), such as `aboveGroundBiomass`, are attached to [Site](/schema/Site) nodes. In the HESTIA schema, a single [Site](/schema/Site) can be linked to multiple [Cycle](/schema/Cycle) nodes. However, emission models are run **per [Cycle](/schema/Cycle)**.\n\nTo ensure emissions are correctly allocated, the `ipcc2019.co2ToAirAboveGroundBiomassStockChange` model gathers data from all [Cycles](/schema/Cycle) associated with the same [Site](/schema/Site).\n\nEmissions from changes in carbon stock should only be assigned to a [Cycle](/schema/Cycle) if that Cycle meaningfully overlaps with the inventory year in which the stock change occurred.\n\nIf multiple [Cycles](/schema/Cycle) overlap the same inventory year, the emission for that year is **shared proportionally** based on the number of overlapping days. For example:\n\n- `cycle-y` overlaps by 200 days\n- `cycle-z` overlaps by 100 days\n\nThen:\n\n- `cycle-y` receives **66.6%** of the emission\n- `cycle-z` receives **33.3%**\n\n_n.b._, The total share of emissions across all overlapping [Cycles](/schema/Cycle) **must always sum to 100%** to avoid under- or over-reporting.\n\n#### Emissions across multiple years\n\nIf a [Cycle](/schema/Cycle) overlaps with **multiple inventory years**, it should be assigned the **sum of its proportional shares** from each of those years.\n\n<div class=\"table-container is-responsive\">\n <table class=\"table is-fullwidth is-hoverable is-striped\">\n <tr>\n <th>Year</th>\n <th>\n Total emission(kg CO<sub>2</sub> ha<sup>-1</sup>)\n </th>\n <th>Cycle ID</th>\n <th>Share of emission (%)</th>\n <th>\n Cycle emission(kg CO<sub>2</sub> ha<sup>-1</sup>)\n </th>\n </tr>\n <tr>\n <td>2003</td>\n <td>3664</td>\n <td>\n cycle-a0\n </td>\n <td>100</td>\n <td>3664</td>\n </tr>\n <tr>\n <td rowspan=\"2\">2004</td>\n <td rowspan=\"2\">7328</td>\n <td>\n cycle-a1\n </td>\n <td>50</td>\n <td>3664</td>\n </tr>\n <tr>\n <td>\n cycle-a2\n </td>\n <td>50</td>\n <td>3664</td>\n </tr>\n <tr>\n <td>2005</td>\n <td>1832</td>\n <td>\n cycle-a3\n </td>\n <td>100</td>\n <td>1832</td>\n </tr>\n <tr>\n <td>2006</td>\n <td>1832</td>\n <td>\n cycle-a3\n </td>\n <td>100</td>\n <td>1832</td>\n </tr>\n <tr>\n <td>2007</td>\n <td>1832</td>\n <td>\n cycle-a3\n </td>\n <td>100</td>\n <td>1832</td>\n </tr>\n </table>\n</div>\n\n| Cycle ID | `co2ToAirAboveGroundBiomassStockChangeManagementChange`(kg CO<sub>2</sub> ha<sup>-1</sup>) |\n| ---------- | ------------------------------------------------------------------------------------------ |\n| `cycle-a0` | 3664 |\n| `cycle-a1` | 3664 |\n| `cycle-a2` | 3664 |\n| `cycle-a3` | 5496 |\n\n### Step 5. Assign an emission tier\n\nThe `methodTier` assigned to the emission node on each [Cycle](/schema/Cycle) reflects the **weakest** measurement method used in its calculation.\n\nFor example, if a [Cycle](/schema/Cycle)'s final emission is calculated by summing together the emissions of two inventory years, where:\n\n- One year uses [Measurements](/schema/Measurement) with `methodClassification = tier 1 model`\n- The other year uses `methodClassification = tier 2 model`\n\nThe resulting `methodTier` will be `tier 1`, since it is the **weakest** method involved.\n\nThe mapping between Measurement `methodClassification` and Emission `methodTier` is:\n\n| Measurement `methodClassification` | Emission `methodTier` |\n| ----------------------------------- | --------------------- |\n| `on-site physical measurement` | `measured` |\n| `modelled using other measurements` | `measured` |\n| `tier 3 model` | `tier 3` |\n| `tier 2 model` | `tier 2` |\n| `tier 1 model` | `tier 1` |\n\n### Step 6. Allocate the CO<sub>2</sub> emission to land-use change or management change\n\nIn line with reporting requirements, CO<sub>2</sub> emissions from stock changes must be classified as either:\n\n- due to land-use change (LUC), or\n- due to management change.\n\nIn HESTIA, the presence or absence of a blank node matters: returning no node is not the same as returning a node with 0 emissions. To ensure consistency, the model should always return two blank nodes (one for each category) if enough data is available.\n\n**Allocation rules**\n\nIf it is known whether the emission is due to LUC or management:\n\n- Return two blank nodes:\n 1. One node with the emission and the correct term.@id\n 2. One node with 0 emissions and the other term.@id\n\nIf it is unknown:\n\n- Return one blank node, allocating the full emission to management change\n\n**Decision criteria**\n\nAllocation is based on two factors:\n\n1. **Completeness of land-use data:**\n\n - No land-use data\n - Fewer than 20 years of data\n - At least 20 years of data\n\n2. **Presence of a land-use change event:**\n - No land-use change (LUC) event detected\n - LUC event detected\n\n| | No land use data (1) | < 20 years' land use data (2) | >= 20 years' land use data (3) |\n| ----------------------------- | ------------------------------------------------ | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |\n| **No LUC event detected (a)** | allocate all emissions to management change (a1) | allocate all emissions to management change (a2) | allocate all emissions to management change **AND** add a land use change emission with value 0 (a3) |\n| **LUC event detected (b)** | n/a (b1) | allocate all emissions to land use change **AND** add a management change emission with value 0 (b2) | allocate all emissions to land use change **AND** add a management change emission with value 0 (b3) |\n\n## Example\n\nIn this example, we follow the above ground biomass stock of an olive orchard, which has not changed in land use for over 50 years. Therefore, all emissions should be allocated to management changes and a corresponding `0` emission should be allocated to land-use change.\n\nFor simplicity, the uncertainty of model inputs and outputs have been excluded.\n\n### Input\n\n#### Site\n\n```json\n{\n \"@id\": \"site-a\",\n \"@type\": \"Site\",\n \"siteType\": \"cropland\",\n \"management\": [\n {\n \"@type\": \"Management\",\n \"term\": {\n \"@type\": \"Term\",\n \"@id\": \"oliveTree\"\n },\n \"value\": [100],\n \"startDate\": \"1960\",\n \"endDate\": \"2006\"\n }\n ],\n \"measurements\": [\n {\n \"@type\": \"Measurement\",\n \"term\": {\n \"@type\": \"Term\",\n \"@id\": \"aboveGroundBiomass\"\n },\n \"value\": [43000],\n \"method\": {\n \"@type\": \"Term\",\n \"@id\": \"ipcc2019\"\n },\n \"dates\": [\"2003-12-31\"],\n \"methodClassification\": \"tier 1 model\"\n },\n {\n \"@type\": \"Measurement\",\n \"term\": {\n \"@type\": \"Term\",\n \"@id\": \"aboveGroundBiomass\"\n },\n \"value\": [44333.333],\n \"method\": {\n \"@type\": \"Term\",\n \"@id\": \"ipcc2019\"\n },\n \"dates\": [\"2004-12-31\"],\n \"methodClassification\": \"tier 1 model\"\n },\n {\n \"@type\": \"Measurement\",\n \"term\": {\n \"@type\": \"Term\",\n \"@id\": \"aboveGroundBiomass\"\n },\n \"value\": [45666.666],\n \"method\": {\n \"@type\": \"Term\",\n \"@id\": \"ipcc2019\"\n },\n \"dates\": [\"2005-12-31\"],\n \"methodClassification\": \"tier 1 model\"\n },\n {\n \"@type\": \"Measurement\",\n \"term\": {\n \"@type\": \"Term\",\n \"@id\": \"aboveGroundBiomass\"\n },\n \"value\": [47000],\n \"method\": {\n \"@type\": \"Term\",\n \"@id\": \"ipcc2019\"\n },\n \"dates\": [\"2006-12-31\"],\n \"methodClassification\": \"tier 1 model\"\n }\n ]\n}\n```\n\n#### Cycle\n\n```json\n{\n \"@id\": \"cycle-a-04-06\",\n \"@type\": \"Cycle\",\n \"startDate\": \"2004\",\n \"endDate\": \"2006\",\n \"site\": {\n \"@id\": \"site-a\",\n \"@type\": \"Site\"\n },\n \"functionalUnit\": \"1 ha\"\n}\n```\n\n### Output\n\n```json\n[\n {\n \"@type\": \"Emission\",\n \"term\": {\n \"@type\": \"Term\",\n \"@id\": \"co2ToAirAboveGroundBiomassStockChangeLandUseChange\"\n },\n \"methodModel\": {\n \"@type\": \"Term\",\n \"@id\": \"ipcc2019\"\n },\n \"value\": [0],\n \"methodTier\": \"tier 1\"\n },\n {\n \"@type\": \"Emission\",\n \"term\": {\n \"@type\": \"Term\",\n \"@id\": \"co2ToAirAboveGroundBiomassStockChangeManagementChange\"\n },\n \"methodModel\": {\n \"@type\": \"Term\",\n \"@id\": \"ipcc2019\"\n },\n \"value\": [-14655.344655],\n \"methodTier\": \"tier 1\"\n }\n]\n```\n\n## Cases in which the model can run without above-ground biomass Measurements\n\nBecause emissions are allocated to either land-use change or management change (depending on whether a land-use change has been detected in the Site's `landCover` history), in some cases it is possible for this model to return partial results when there are no above-ground biomass Measurements.\n\nIf a land-use change is detected during the 20 years prior to a Cycle, all emissions should be allocated to the land-use change emission term (`co2ToAirAboveGroundBiomassStockChangeLandUseChange`). Therefore, we can allocate `0` emissions to the management change emission term (`co2ToAirAboveGroundBiomassStockChangeManagementChange`) even whem we can't calculate a value for the land-use change emission. To be certain that a land-use change has occurred, we require up to 20 year's `landCover` data prior to the Cycle's `startDate`.\n\nThe inverse is also true for when a land-use change is **not** detected in the 20 years prior to a Cycle. In this case, all emissions should be allocated to the management change emission term (`co2ToAirAboveGroundBiomassStockChangeManagementChange`). Therefore, we can allocate `0` emissions to the land-use change emission term (`co2ToAirAboveGroundBiomassStockChangeLandUseChange`) even when we can't calculate a value for the management change emission. To be certain that a land-use change has **not** occurred, we require a minimum of 20 year's `landCover` data prior to the Cycle's `startDate`.\n\nIf there is insufficient `landCover` data to determine whether a land-use change has occurred, the model will be unable to return partial results.\n\n\n\n\n\n\n\n\n\n\n\n<div class=\"collapsibles\">\n <div class=\"collapsible-group\">\n <div class=\"collapsible-header\">\n <span>Returns</span>\n </div>\n <div class=\"collapsible-content\"><ul>\n<li>A list of <a href=\"https://hestia.earth/schema/Emission\">Emissions</a> with:<ul>\n<li><a href=\"https://hestia.earth/schema/Emission#term\">term</a> with <a href=\"https://hestia.earth/term/co2ToAirAboveGroundBiomassStockChangeLandUseChange\">co2ToAirAboveGroundBiomassStockChangeLandUseChange</a> <strong>or</strong> <a href=\"https://hestia.earth/term/co2ToAirAboveGroundBiomassStockChangeManagementChange\">co2ToAirAboveGroundBiomassStockChangeManagementChange</a></li>\n<li><a href=\"https://hestia.earth/schema/Emission#methodModel\">methodModel</a> with <a href=\"https://hestia.earth/term/ipcc2019\">ipcc2019</a></li>\n<li><a href=\"https://hestia.earth/schema/Emission#value\">value</a></li>\n<li><a href=\"https://hestia.earth/schema/Emission#sd\">sd</a></li>\n<li><a href=\"https://hestia.earth/schema/Emission#min\">min</a></li>\n<li><a href=\"https://hestia.earth/schema/Emission#max\">max</a></li>\n<li><a href=\"https://hestia.earth/schema/Emission#statsDefinition\">statsDefinition</a> with <code>simulated</code></li>\n<li><a href=\"https://hestia.earth/schema/Emission#observations\">observations</a></li>\n<li><a href=\"https://hestia.earth/schema/Emission#methodTier\">methodTier</a></li>\n</ul>\n</li>\n</ul>\n</div>\n </div>\n <div class=\"collapsible-group\">\n <div class=\"collapsible-header\">\n <span>Requirements</span>\n </div>\n <div class=\"collapsible-content\"><ul>\n<li>A <a href=\"https://hestia.earth/schema/Cycle\">Cycle</a> with:<ul>\n<li>a <a href=\"https://hestia.earth/schema/Cycle#site\">site</a> with:<ul>\n<li><a href=\"https://hestia.earth/schema/Site#siteType\">siteType</a> with <code>forest</code> <strong>or</strong> <code>other natural vegetation</code> <strong>or</strong> <code>cropland</code> <strong>or</strong> <code>glass or high accessible cover</code> <strong>or</strong> <code>permanent pasture</code> and a list of <a href=\"https://hestia.earth/schema/Site#measurements\">measurements</a> with:<ul>\n<li><a href=\"https://hestia.earth/schema/Measurement#value\">value</a> and <a href=\"https://hestia.earth/schema/Measurement#dates\">dates</a> and <a href=\"https://hestia.earth/schema/Measurement#depthUpper\">depthUpper</a> with <code>0</code> and <a href=\"https://hestia.earth/schema/Measurement#depthLower\">depthLower</a> with <code>30</code> and <a href=\"https://hestia.earth/schema/Measurement#term\">term</a> with <a href=\"https://hestia.earth/term/aboveGroundBiomass\">aboveGroundBiomass</a></li>\n</ul>\n</li>\n</ul>\n</li>\n<li><a href=\"https://hestia.earth/schema/Cycle#functionalUnit\">functionalUnit</a> with <code>1 ha</code></li>\n<li><a href=\"https://hestia.earth/schema/Cycle#endDate\">endDate</a></li>\n<li>optional:<ul>\n<li><a href=\"https://hestia.earth/schema/Cycle#startDate\">startDate</a></li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</div>\n </div>\n <div class=\"collapsible-group\">\n <div class=\"collapsible-header\">\n <span>Lookups used</span>\n </div>\n <div class=\"collapsible-content\"><ul>\n<li><a href=\"https://hestia.earth/glossary/lookups/emission.csv\">emission.csv</a> -> <code>siteTypesAllowed</code>; <code>typesAllowed</code></li>\n</ul>\n</div>\n </div>\n \n</div>"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"tags":{"author":["Florian Payen"],"group":["Cycle: Emissions"],"subgroup":["Land Use Change"],"tab":["IPCC (2019)"],"citation":["Payen, F. (2025) Below ground biomass modelling on HESTIA."]},"content":"# CO2, to air, below ground biomass stock change\n\nCarbon dioxide emissions to air, from below ground biomass stock change. Below ground biomass is defined as terrestrial living woody or herbaceous vegetation 2 mm in size or greater.\n\n## Overview\n\nThis model calculates the annual emissions from below ground biomass stock changes and assigns them to [Cycles](https://www.hestia.earth/schema/Cycle) that take place during those years. It can allocate these emissions to two HESTIA terms:\n\n1. [`co2ToAirBelowGroundBiomassStockChangeLandUseChange`](https://www.hestia.earth/term/co2ToAirBelowGroundBiomassStockChangeLandUseChange) - stock change emissions that occur in the 20 years after a land-use change event\n2. [`co2ToAirBelowGroundBiomassStockChangeManagementChange`](https://www.hestia.earth/term/co2ToAirBelowGroundBiomassStockChangeManagementChange) - stock change emissions that occur more than 20 years after a land-use change event\n\nThe model is run as a Monte Carlo simulation with 10,000 iterations. Model result values are the row-wise `mean` of simulation results. See our guide on [Monte Carlo simulation](/guide/applying-models-monte-carlo) for more information.\n\n## How the model works\n\n### Step 1. Build an annual inventory of below ground biomass measurements\n\nAn annual inventory of `belowGroundBiomass` [Measurement](https://www.hestia.earth/schema/Measurement) values is created. These values represent the amount of organic carbon stored in the below ground biomass at the **end of each inventory year**.\n\n[Measurements](https://www.hestia.earth/schema/Measurement) are grouped by `methodClassification`. It is critical that different methods are **never mixed** when calculating changes in carbon stock, as this could lead to large and misleading differences. Instead, the model processes each `methodClassification` separately, and includes only the emissions calculated using the **strongest available method** in the final output.\n\nOnly [Measurements](https://www.hestia.earth/schema/Measurement) with specific `methodClassification` values are included. All others are ignored. The valid classifications, listed from strongest to weakest, are:\n\n- `on-site physical measurement`\n- `modelled using other measurements`\n- `tier 3 model`\n- `tier 2 model`\n- `tier 1 model`\n\nEach carbon stock value must correspond to the timestamp `YYYY-12-31T23:59:59` — the end of the inventory year. If no [Measurement](https://www.hestia.earth/schema/Measurement) exists for this exact time, the value is estimated using linear interpolation between the closest available measurements before and after the target date.\n\n| Year | `on-site physical measurement`<sup>\\*</sup> | `tier 1 model`<sup>\\*</sup> |\n| ---- | ------------------------------------------- | --------------------------- |\n| 2002 | 48000 | - |\n| 2003 | 47000 | - |\n| 2004 | 45000 | 52350 |\n| 2005 | 44500 | 51125 |\n| 2006 | 44000 | 49900 |\n| 2007 | 43500 | - |\n\n<sup>\\*</sup>Below ground biomass stock (kg C ha<sup>-1</sup>)\n\nIn this scenario, the values of the `on-site physical measurement` column will be retained because it is the stronger `methodClassification`. The values of the `tier 1 model` will be discarded.\n\n### Step 2. Resample stock values for Monte Carlo simulation\n\nTo run the model as a Monte Carlo simulation, we need to generate an array of random samples for the `belowGroundBiomass` stock in each inventory year. These samples are drawn from a normal distribution defined by the `value` (mean) and `sd` of each year.\n\nIdeally, we would re-use the full set of iteration results from the [`ipcc2019.belowGroundBiomass`](./belowGroundBiomass) model's Monto Carlo simulation. However, HESTIA nodes can only store row-wise summaries of Monte Carlo simulation results. This means the full iteration-level data is not available for use in downstream models, so we lose the correlation between years in each simulation run.\n\nTo maintain realistic, coherent simulation behaviour:\n\n- Within each simulation run (column): Values across years (rows) should be correlated. If year 0 is a high value, we expect subsequent years to also be relatively high\n- Across simulation runs (columns): Values should be independent from one another\n\nFor this, we need to generate our new random samples with correlation by treating the inventory as a time series, where:\n\n- Rows = time steps (years)\n- Columns = independent Monte Carlo runs\n\nTo model the correlation between years, we assume that similarity in stock values decreases with time. Closer years are more correlated than years further apart. This is modelled using exponential decay, with a half-life of 20 years (based on the IPCC's default transition period for carbon stock equilibrium).\n\nUsing this correlation structure, we generate samples from a multivariate normal distribution, ensuring temporal correlation within runs and independence between runs.\n\nSee the Scipy Cookbook on [Correlated Random Samples](https://scipy-cookbook.readthedocs.io/items/CorrelatedRandomSamples.html) for more information.\n\nCarbon stock values without a corresponding `sd` are given a nominal error of 75% ($2*{sd}$ as a percentage of the mean).\n\n### Step 3. Calculate the annual CO<sub>2</sub> emission (or removal) due to below ground biomass stock change\n\nNext, the carbon stock change and the associated CO<sub>2</sub> change can be calculated for each inventory year:\n\n$\\Delta CO_2 = -1 * (C_y - C\\_{y-1}) * \\frac{44.01}{12.012}$\n\nWhere:\n\n- $\\Delta CO_2$ = the CO<sub>2</sub> emission due to carbon stock change for year $y$, kg CO<sub>2</sub> ha<sup>-1</sup>.\n- $C_y$ = the carbon stock in year $y$, kg C ha<sup>-1</sup>.\n- $C_{y-1}$ = the carbon stock in year $y-1$x, kg C ha<sup>-1</sup>.\n- $\\frac{44.01}{12.012}$ = the ratio of the atomic mass of CO<sub>$2$</sub> to C.\n\n_n.b._, the value is multiplied by $-1$ as a reduction in carbon stock is associated with an emission of CO<sub>2</sub> and vice versa.\n\n| Year | C stock (kg C ha<sup>-1</sup>) | C stock change (kg C ha<sup>-1</sup>) | CO<sub>2</sub> emission (kg CO<sub>2</sub> ha<sup>-1</sup>) |\n| ---- | ------------------------------ | ------------------------------------- | ----------------------------------------------------------- |\n| 2002 | 48000 | n/a | n/a |\n| 2003 | 47000 | -1000 | 3664 |\n| 2004 | 45000 | -2000 | 7328 |\n| 2005 | 44500 | -500 | 1832 |\n| 2006 | 44000 | -500 | 1832 |\n| 2007 | 43500 | -500 | 1832 |\n\n### Step 4. Allocate the CO<sub>2</sub> emission to overlapping Cycles\n\n[Measurements](https://www.hestia.earth/schema/Measurement), such as `belowGroundBiomass`, are attached to [Site](https://www.hestia.earth/schema/Site) nodes. In the HESTIA schema, a single [Site](https://www.hestia.earth/schema/Site) can be linked to multiple [Cycle](https://www.hestia.earth/schema/Cycle) nodes. However, emission models are run **per [Cycle](https://www.hestia.earth/schema/Cycle)**.\n\nTo ensure emissions are correctly allocated, the `ipcc2019.co2ToAirBelowGroundBiomassStockChange` model gathers data from all [Cycles](https://www.hestia.earth/schema/Cycle) associated with the same [Site](https://www.hestia.earth/schema/Site).\n\nEmissions from changes in carbon stock should only be assigned to a [Cycle](https://www.hestia.earth/schema/Cycle) if that Cycle meaningfully overlaps with the inventory year in which the stock change occurred.\n\nIf multiple [Cycles](https://www.hestia.earth/schema/Cycle) overlap the same inventory year, the emission for that year is **shared proportionally** based on the number of overlapping days. For example:\n\n- `cycle-y` overlaps by 200 days\n- `cycle-z` overlaps by 100 days\n\nThen:\n\n- `cycle-y` receives **66.6%** of the emission\n- `cycle-z` receives **33.3%**\n\n_n.b._, The total share of emissions across all overlapping [Cycles](https://www.hestia.earth/schema/Cycle) **must always sum to 100%** to avoid under- or over-reporting.\n\n#### Emissions across multiple years\n\nIf a [Cycle](https://www.hestia.earth/schema/Cycle) overlaps with **multiple inventory years**, it should be assigned the **sum of its proportional shares** from each of those years.\n\n<div class=\"table-container is-responsive\">\n <table class=\"table is-fullwidth is-hoverable is-striped\">\n <tr>\n <th>Year</th>\n <th>\n Total emission(kg CO<sub>2</sub> ha<sup>-1</sup>)\n </th>\n <th>Cycle ID</th>\n <th>Share of emission (%)</th>\n <th>\n Cycle emission(kg CO<sub>2</sub> ha<sup>-1</sup>)\n </th>\n </tr>\n <tr>\n <td>2003</td>\n <td>3664</td>\n <td>\n cycle-a0\n </td>\n <td>100</td>\n <td>3664</td>\n </tr>\n <tr>\n <td rowspan=\"2\">2004</td>\n <td rowspan=\"2\">7328</td>\n <td>\n cycle-a1\n </td>\n <td>50</td>\n <td>3664</td>\n </tr>\n <tr>\n <td>\n cycle-a2\n </td>\n <td>50</td>\n <td>3664</td>\n </tr>\n <tr>\n <td>2005</td>\n <td>1832</td>\n <td>\n cycle-a3\n </td>\n <td>100</td>\n <td>1832</td>\n </tr>\n <tr>\n <td>2006</td>\n <td>1832</td>\n <td>\n cycle-a3\n </td>\n <td>100</td>\n <td>1832</td>\n </tr>\n <tr>\n <td>2007</td>\n <td>1832</td>\n <td>\n cycle-a3\n </td>\n <td>100</td>\n <td>1832</td>\n </tr>\n </table>\n</div>\n\n| Cycle ID | `co2ToAirBelowGroundBiomassStockChangeManagementChange`(kg CO<sub>2</sub> ha<sup>-1</sup>) |\n| ---------- | ------------------------------------------------------------------------------------------ |\n| `cycle-a0` | 3664 |\n| `cycle-a1` | 3664 |\n| `cycle-a2` | 3664 |\n| `cycle-a3` | 5496 |\n\n### Step 5. Assign an emission tier\n\nThe `methodTier` assigned to the emission node on each [Cycle](https://www.hestia.earth/schema/Cycle) reflects the **weakest** measurement method used in its calculation.\n\nFor example, if a [Cycle](https://www.hestia.earth/schema/Cycle)'s final emission is calculated by summing together the emissions of two inventory years, where:\n\n- One year uses [Measurements](https://www.hestia.earth/schema/Measurement) with `methodClassification = tier 1 model`\n- The other year uses `methodClassification = tier 2 model`\n\nThe resulting `methodTier` will be `tier 1`, since it is the **weakest** method involved.\n\nThe mapping between Measurement `methodClassification` and Emission `methodTier` is:\n\n| Measurement `methodClassification` | Emission `methodTier` |\n| ----------------------------------- | --------------------- |\n| `on-site physical measurement` | `measured` |\n| `modelled using other measurements` | `measured` |\n| `tier 3 model` | `tier 3` |\n| `tier 2 model` | `tier 2` |\n| `tier 1 model` | `tier 1` |\n\n### Step 6. Allocate the CO<sub>2</sub> emission to land-use change or management change\n\nIn line with reporting requirements, CO<sub>2</sub> emissions from stock changes must be classified as either:\n\n- due to land-use change (LUC), or\n- due to management change.\n\nIn HESTIA, the presence or absence of a blank node matters: returning no node is not the same as returning a node with 0 emissions. To ensure consistency, the model should always return two blank nodes (one for each category) if enough data is available.\n\n**Allocation rules**\n\nIf it is known whether the emission is due to LUC or management:\n\n- Return two blank nodes:\n 1. One node with the emission and the correct term.@id\n 2. One node with 0 emissions and the other term.@id\n\nIf it is unknown:\n\n- Return one blank node, allocating the full emission to management change\n\n**Decision criteria**\n\nAllocation is based on two factors:\n\n1. **Completeness of land-use data:**\n\n - No land-use data\n - Fewer than 20 years of data\n - At least 20 years of data\n\n2. **Presence of a land-use change event:**\n - No land-use change (LUC) event detected\n - LUC event detected\n\n| | No land use data (1) | < 20 years' land use data (2) | >= 20 years' land use data (3) |\n| ----------------------------- | ------------------------------------------------ | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |\n| **No LUC event detected (a)** | allocate all emissions to management change (a1) | allocate all emissions to management change (a2) | allocate all emissions to management change **AND** add a land use change emission with value 0 (a3) |\n| **LUC event detected (b)** | n/a (b1) | allocate all emissions to land use change **AND** add a management change emission with value 0 (b2) | allocate all emissions to land use change **AND** add a management change emission with value 0 (b3) |\n\n## Example\n\nIn this example, we follow the below ground biomass stock of an olive orchard, which has not changed in land use for over 50 years. Therefore, all emissions should be allocated to management changes and a corresponding `0` emission should be allocated to land-use change.\n\nFor simplicity, the uncertainty of model inputs and outputs have been excluded.\n\n### Input\n\n#### Site\n\n```json\n{\n \"@id\": \"site-a\",\n \"@type\": \"Site\",\n \"siteType\": \"cropland\",\n \"management\": [\n {\n \"@type\": \"Management\",\n \"term\": {\n \"@type\": \"Term\",\n \"@id\": \"oliveTree\"\n },\n \"value\": [100],\n \"startDate\": \"1960\",\n \"endDate\": \"2006\"\n }\n ],\n \"measurements\": [\n {\n \"@type\": \"Measurement\",\n \"term\": {\n \"@type\": \"Term\",\n \"@id\": \"organicCarbonPerHa\"\n },\n \"value\": [43000],\n \"method\": {\n \"@type\": \"Term\",\n \"@id\": \"ipcc2019\"\n },\n \"depthUpper\": 0,\n \"depthLower\": 30,\n \"dates\": [\"2003-12-31\"],\n \"methodClassification\": \"tier 1 model\"\n },\n {\n \"@type\": \"Measurement\",\n \"term\": {\n \"@type\": \"Term\",\n \"@id\": \"organicCarbonPerHa\"\n },\n \"value\": [44333.333],\n \"method\": {\n \"@type\": \"Term\",\n \"@id\": \"ipcc2019\"\n },\n \"depthUpper\": 0,\n \"depthLower\": 30,\n \"dates\": [\"2004-12-31\"],\n \"methodClassification\": \"tier 1 model\"\n },\n {\n \"@type\": \"Measurement\",\n \"term\": {\n \"@type\": \"Term\",\n \"@id\": \"organicCarbonPerHa\"\n },\n \"value\": [45666.666],\n \"method\": {\n \"@type\": \"Term\",\n \"@id\": \"ipcc2019\"\n },\n \"depthUpper\": 0,\n \"depthLower\": 30,\n \"dates\": [\"2005-12-31\"],\n \"methodClassification\": \"tier 1 model\"\n },\n {\n \"@type\": \"Measurement\",\n \"term\": {\n \"@type\": \"Term\",\n \"@id\": \"organicCarbonPerHa\"\n },\n \"value\": [47000],\n \"method\": {\n \"@type\": \"Term\",\n \"@id\": \"ipcc2019\"\n },\n \"depthUpper\": 0,\n \"depthLower\": 30,\n \"dates\": [\"2006-12-31\"],\n \"methodClassification\": \"tier 1 model\"\n }\n ]\n}\n```\n\n#### Cycle\n\n```json\n{\n \"@id\": \"cycle-a-04-06\",\n \"@type\": \"Cycle\",\n \"startDate\": \"2004\",\n \"endDate\": \"2006\",\n \"site\": {\n \"@id\": \"site-a\",\n \"@type\": \"Site\"\n },\n \"functionalUnit\": \"1 ha\"\n}\n```\n\n### Output\n\n```json\n[\n {\n \"@type\": \"Emission\",\n \"term\": {\n \"@type\": \"Term\",\n \"@id\": \"co2ToAirSoilCarbonStockChangeLandUseChange\"\n },\n \"methodModel\": {\n \"@type\": \"Term\",\n \"@id\": \"ipcc2019\"\n },\n \"depth\": 30,\n \"value\": [0],\n \"methodTier\": \"tier 1\"\n },\n {\n \"@type\": \"Emission\",\n \"term\": {\n \"@type\": \"Term\",\n \"@id\": \"co2ToAirSoilCarbonStockChangeManagementChange\"\n },\n \"methodModel\": {\n \"@type\": \"Term\",\n \"@id\": \"ipcc2019\"\n },\n \"depth\": 30,\n \"value\": [-14655.344655],\n \"methodTier\": \"tier 1\"\n }\n]\n```\n\n\n\n\n\n"}
|
|
1
|
+
{"tags":{"author":["Florian Payen"],"group":["Cycle: Emissions"],"subgroup":["Land Use Change"],"tab":["IPCC (2019)"],"citation":["Payen, F. (2025) Below ground biomass modelling on HESTIA."]},"content":"# CO2, to air, below ground biomass stock change\n\nCarbon dioxide emissions to air, from below ground biomass stock change. Below ground biomass is defined as terrestrial living woody or herbaceous vegetation 2 mm in size or greater.\n\n## Overview\n\nThis model calculates the annual emissions from below ground biomass stock changes and assigns them to [Cycles](/schema/Cycle) that take place during those years. It can allocate these emissions to two HESTIA terms:\n\n1. [`co2ToAirBelowGroundBiomassStockChangeLandUseChange`](/term/co2ToAirBelowGroundBiomassStockChangeLandUseChange) - stock change emissions that occur in the 20 years after a land-use change event\n2. [`co2ToAirBelowGroundBiomassStockChangeManagementChange`](/term/co2ToAirBelowGroundBiomassStockChangeManagementChange) - stock change emissions that occur more than 20 years after a land-use change event\n\nThe model is run as a Monte Carlo simulation with 10,000 iterations. Model result values are the row-wise `mean` of simulation results. See our guide on [Monte Carlo simulation](/guide/models-applying-models-monte-carlo) for more information.\n\n## How the model works\n\n### Step 1. Build an annual inventory of below ground biomass measurements\n\nAn annual inventory of `belowGroundBiomass` [Measurement](/schema/Measurement) values is created. These values represent the amount of organic carbon stored in the below ground biomass at the **end of each inventory year**.\n\n[Measurements](/schema/Measurement) are grouped by `methodClassification`. It is critical that different methods are **never mixed** when calculating changes in carbon stock, as this could lead to large and misleading differences. Instead, the model processes each `methodClassification` separately, and includes only the emissions calculated using the **strongest available method** in the final output.\n\nOnly [Measurements](/schema/Measurement) with specific `methodClassification` values are included. All others are ignored. The valid classifications, listed from strongest to weakest, are:\n\n- `on-site physical measurement`\n- `modelled using other measurements`\n- `tier 3 model`\n- `tier 2 model`\n- `tier 1 model`\n\nEach carbon stock value must correspond to the timestamp `YYYY-12-31T23:59:59` — the end of the inventory year. If no [Measurement](/schema/Measurement) exists for this exact time, the value is estimated using linear interpolation between the closest available measurements before and after the target date.\n\n| Year | `on-site physical measurement`<sup>\\*</sup> | `tier 1 model`<sup>\\*</sup> |\n| ---- | ------------------------------------------- | --------------------------- |\n| 2002 | 48000 | - |\n| 2003 | 47000 | - |\n| 2004 | 45000 | 52350 |\n| 2005 | 44500 | 51125 |\n| 2006 | 44000 | 49900 |\n| 2007 | 43500 | - |\n\n<sup>\\*</sup>Below ground biomass stock (kg C ha<sup>-1</sup>)\n\nIn this scenario, the values of the `on-site physical measurement` column will be retained because it is the stronger `methodClassification`. The values of the `tier 1 model` will be discarded.\n\n### Step 2. Resample stock values for Monte Carlo simulation\n\nTo run the model as a Monte Carlo simulation, we need to generate an array of random samples for the `belowGroundBiomass` stock in each inventory year. These samples are drawn from a normal distribution defined by the `value` (mean) and `sd` of each year.\n\nIdeally, we would re-use the full set of iteration results from the [`ipcc2019.belowGroundBiomass`](./belowGroundBiomass) model's Monto Carlo simulation. However, HESTIA nodes can only store row-wise summaries of Monte Carlo simulation results. This means the full iteration-level data is not available for use in downstream models, so we lose the correlation between years in each simulation run.\n\nTo maintain realistic, coherent simulation behaviour:\n\n- Within each simulation run (column): Values across years (rows) should be correlated. If year 0 is a high value, we expect subsequent years to also be relatively high\n- Across simulation runs (columns): Values should be independent from one another\n\nFor this, we need to generate our new random samples with correlation by treating the inventory as a time series, where:\n\n- Rows = time steps (years)\n- Columns = independent Monte Carlo runs\n\nTo model the correlation between years, we assume that similarity in stock values decreases with time. Closer years are more correlated than years further apart. This is modelled using exponential decay, with a half-life of 20 years (based on the IPCC's default transition period for carbon stock equilibrium).\n\nUsing this correlation structure, we generate samples from a multivariate normal distribution, ensuring temporal correlation within runs and independence between runs.\n\nSee the Scipy Cookbook on [Correlated Random Samples](https://scipy-cookbook.readthedocs.io/items/CorrelatedRandomSamples.html) for more information.\n\nCarbon stock values without a corresponding `sd` are given a nominal error of 75% ($2*{sd}$ as a percentage of the mean).\n\n### Step 3. Calculate the annual CO<sub>2</sub> emission (or removal) due to below ground biomass stock change\n\nNext, the carbon stock change and the associated CO<sub>2</sub> change can be calculated for each inventory year:\n\n$\\Delta CO_2 = -1 * (C_y - C\\_{y-1}) * \\frac{44.01}{12.012}$\n\nWhere:\n\n- $\\Delta CO_2$ = the CO<sub>2</sub> emission due to carbon stock change for year $y$, kg CO<sub>2</sub> ha<sup>-1</sup>.\n- $C_y$ = the carbon stock in year $y$, kg C ha<sup>-1</sup>.\n- $C_{y-1}$ = the carbon stock in year $y-1$x, kg C ha<sup>-1</sup>.\n- $\\frac{44.01}{12.012}$ = the ratio of the atomic mass of CO<sub>$2$</sub> to C.\n\n_n.b._, the value is multiplied by $-1$ as a reduction in carbon stock is associated with an emission of CO<sub>2</sub> and vice versa.\n\n| Year | C stock (kg C ha<sup>-1</sup>) | C stock change (kg C ha<sup>-1</sup>) | CO<sub>2</sub> emission (kg CO<sub>2</sub> ha<sup>-1</sup>) |\n| ---- | ------------------------------ | ------------------------------------- | ----------------------------------------------------------- |\n| 2002 | 48000 | n/a | n/a |\n| 2003 | 47000 | -1000 | 3664 |\n| 2004 | 45000 | -2000 | 7328 |\n| 2005 | 44500 | -500 | 1832 |\n| 2006 | 44000 | -500 | 1832 |\n| 2007 | 43500 | -500 | 1832 |\n\n### Step 4. Allocate the CO<sub>2</sub> emission to overlapping Cycles\n\n[Measurements](/schema/Measurement), such as `belowGroundBiomass`, are attached to [Site](/schema/Site) nodes. In the HESTIA schema, a single [Site](/schema/Site) can be linked to multiple [Cycle](/schema/Cycle) nodes. However, emission models are run **per [Cycle](/schema/Cycle)**.\n\nTo ensure emissions are correctly allocated, the `ipcc2019.co2ToAirBelowGroundBiomassStockChange` model gathers data from all [Cycles](/schema/Cycle) associated with the same [Site](/schema/Site).\n\nEmissions from changes in carbon stock should only be assigned to a [Cycle](/schema/Cycle) if that Cycle meaningfully overlaps with the inventory year in which the stock change occurred.\n\nIf multiple [Cycles](/schema/Cycle) overlap the same inventory year, the emission for that year is **shared proportionally** based on the number of overlapping days. For example:\n\n- `cycle-y` overlaps by 200 days\n- `cycle-z` overlaps by 100 days\n\nThen:\n\n- `cycle-y` receives **66.6%** of the emission\n- `cycle-z` receives **33.3%**\n\n_n.b._, The total share of emissions across all overlapping [Cycles](/schema/Cycle) **must always sum to 100%** to avoid under- or over-reporting.\n\n#### Emissions across multiple years\n\nIf a [Cycle](/schema/Cycle) overlaps with **multiple inventory years**, it should be assigned the **sum of its proportional shares** from each of those years.\n\n<div class=\"table-container is-responsive\">\n <table class=\"table is-fullwidth is-hoverable is-striped\">\n <tr>\n <th>Year</th>\n <th>\n Total emission(kg CO<sub>2</sub> ha<sup>-1</sup>)\n </th>\n <th>Cycle ID</th>\n <th>Share of emission (%)</th>\n <th>\n Cycle emission(kg CO<sub>2</sub> ha<sup>-1</sup>)\n </th>\n </tr>\n <tr>\n <td>2003</td>\n <td>3664</td>\n <td>\n cycle-a0\n </td>\n <td>100</td>\n <td>3664</td>\n </tr>\n <tr>\n <td rowspan=\"2\">2004</td>\n <td rowspan=\"2\">7328</td>\n <td>\n cycle-a1\n </td>\n <td>50</td>\n <td>3664</td>\n </tr>\n <tr>\n <td>\n cycle-a2\n </td>\n <td>50</td>\n <td>3664</td>\n </tr>\n <tr>\n <td>2005</td>\n <td>1832</td>\n <td>\n cycle-a3\n </td>\n <td>100</td>\n <td>1832</td>\n </tr>\n <tr>\n <td>2006</td>\n <td>1832</td>\n <td>\n cycle-a3\n </td>\n <td>100</td>\n <td>1832</td>\n </tr>\n <tr>\n <td>2007</td>\n <td>1832</td>\n <td>\n cycle-a3\n </td>\n <td>100</td>\n <td>1832</td>\n </tr>\n </table>\n</div>\n\n| Cycle ID | `co2ToAirBelowGroundBiomassStockChangeManagementChange`(kg CO<sub>2</sub> ha<sup>-1</sup>) |\n| ---------- | ------------------------------------------------------------------------------------------ |\n| `cycle-a0` | 3664 |\n| `cycle-a1` | 3664 |\n| `cycle-a2` | 3664 |\n| `cycle-a3` | 5496 |\n\n### Step 5. Assign an emission tier\n\nThe `methodTier` assigned to the emission node on each [Cycle](/schema/Cycle) reflects the **weakest** measurement method used in its calculation.\n\nFor example, if a [Cycle](/schema/Cycle)'s final emission is calculated by summing together the emissions of two inventory years, where:\n\n- One year uses [Measurements](/schema/Measurement) with `methodClassification = tier 1 model`\n- The other year uses `methodClassification = tier 2 model`\n\nThe resulting `methodTier` will be `tier 1`, since it is the **weakest** method involved.\n\nThe mapping between Measurement `methodClassification` and Emission `methodTier` is:\n\n| Measurement `methodClassification` | Emission `methodTier` |\n| ----------------------------------- | --------------------- |\n| `on-site physical measurement` | `measured` |\n| `modelled using other measurements` | `measured` |\n| `tier 3 model` | `tier 3` |\n| `tier 2 model` | `tier 2` |\n| `tier 1 model` | `tier 1` |\n\n### Step 6. Allocate the CO<sub>2</sub> emission to land-use change or management change\n\nIn line with reporting requirements, CO<sub>2</sub> emissions from stock changes must be classified as either:\n\n- due to land-use change (LUC), or\n- due to management change.\n\nIn HESTIA, the presence or absence of a blank node matters: returning no node is not the same as returning a node with 0 emissions. To ensure consistency, the model should always return two blank nodes (one for each category) if enough data is available.\n\n**Allocation rules**\n\nIf it is known whether the emission is due to LUC or management:\n\n- Return two blank nodes:\n 1. One node with the emission and the correct term.@id\n 2. One node with 0 emissions and the other term.@id\n\nIf it is unknown:\n\n- Return one blank node, allocating the full emission to management change\n\n**Decision criteria**\n\nAllocation is based on two factors:\n\n1. **Completeness of land-use data:**\n\n - No land-use data\n - Fewer than 20 years of data\n - At least 20 years of data\n\n2. **Presence of a land-use change event:**\n - No land-use change (LUC) event detected\n - LUC event detected\n\n| | No land use data (1) | < 20 years' land use data (2) | >= 20 years' land use data (3) |\n| ----------------------------- | ------------------------------------------------ | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |\n| **No LUC event detected (a)** | allocate all emissions to management change (a1) | allocate all emissions to management change (a2) | allocate all emissions to management change **AND** add a land use change emission with value 0 (a3) |\n| **LUC event detected (b)** | n/a (b1) | allocate all emissions to land use change **AND** add a management change emission with value 0 (b2) | allocate all emissions to land use change **AND** add a management change emission with value 0 (b3) |\n\n## Example\n\nIn this example, we follow the below ground biomass stock of an olive orchard, which has not changed in land use for over 50 years. Therefore, all emissions should be allocated to management changes and a corresponding `0` emission should be allocated to land-use change.\n\nFor simplicity, the uncertainty of model inputs and outputs have been excluded.\n\n### Input\n\n#### Site\n\n```json\n{\n \"@id\": \"site-a\",\n \"@type\": \"Site\",\n \"siteType\": \"cropland\",\n \"management\": [\n {\n \"@type\": \"Management\",\n \"term\": {\n \"@type\": \"Term\",\n \"@id\": \"oliveTree\"\n },\n \"value\": [100],\n \"startDate\": \"1960\",\n \"endDate\": \"2006\"\n }\n ],\n \"measurements\": [\n {\n \"@type\": \"Measurement\",\n \"term\": {\n \"@type\": \"Term\",\n \"@id\": \"organicCarbonPerHa\"\n },\n \"value\": [43000],\n \"method\": {\n \"@type\": \"Term\",\n \"@id\": \"ipcc2019\"\n },\n \"depthUpper\": 0,\n \"depthLower\": 30,\n \"dates\": [\"2003-12-31\"],\n \"methodClassification\": \"tier 1 model\"\n },\n {\n \"@type\": \"Measurement\",\n \"term\": {\n \"@type\": \"Term\",\n \"@id\": \"organicCarbonPerHa\"\n },\n \"value\": [44333.333],\n \"method\": {\n \"@type\": \"Term\",\n \"@id\": \"ipcc2019\"\n },\n \"depthUpper\": 0,\n \"depthLower\": 30,\n \"dates\": [\"2004-12-31\"],\n \"methodClassification\": \"tier 1 model\"\n },\n {\n \"@type\": \"Measurement\",\n \"term\": {\n \"@type\": \"Term\",\n \"@id\": \"organicCarbonPerHa\"\n },\n \"value\": [45666.666],\n \"method\": {\n \"@type\": \"Term\",\n \"@id\": \"ipcc2019\"\n },\n \"depthUpper\": 0,\n \"depthLower\": 30,\n \"dates\": [\"2005-12-31\"],\n \"methodClassification\": \"tier 1 model\"\n },\n {\n \"@type\": \"Measurement\",\n \"term\": {\n \"@type\": \"Term\",\n \"@id\": \"organicCarbonPerHa\"\n },\n \"value\": [47000],\n \"method\": {\n \"@type\": \"Term\",\n \"@id\": \"ipcc2019\"\n },\n \"depthUpper\": 0,\n \"depthLower\": 30,\n \"dates\": [\"2006-12-31\"],\n \"methodClassification\": \"tier 1 model\"\n }\n ]\n}\n```\n\n#### Cycle\n\n```json\n{\n \"@id\": \"cycle-a-04-06\",\n \"@type\": \"Cycle\",\n \"startDate\": \"2004\",\n \"endDate\": \"2006\",\n \"site\": {\n \"@id\": \"site-a\",\n \"@type\": \"Site\"\n },\n \"functionalUnit\": \"1 ha\"\n}\n```\n\n### Output\n\n```json\n[\n {\n \"@type\": \"Emission\",\n \"term\": {\n \"@type\": \"Term\",\n \"@id\": \"co2ToAirSoilCarbonStockChangeLandUseChange\"\n },\n \"methodModel\": {\n \"@type\": \"Term\",\n \"@id\": \"ipcc2019\"\n },\n \"depth\": 30,\n \"value\": [0],\n \"methodTier\": \"tier 1\"\n },\n {\n \"@type\": \"Emission\",\n \"term\": {\n \"@type\": \"Term\",\n \"@id\": \"co2ToAirSoilCarbonStockChangeManagementChange\"\n },\n \"methodModel\": {\n \"@type\": \"Term\",\n \"@id\": \"ipcc2019\"\n },\n \"depth\": 30,\n \"value\": [-14655.344655],\n \"methodTier\": \"tier 1\"\n }\n]\n```\n\n## Cases in which the model can run without below-ground biomass Measurements\n\nBecause emissions are allocated to either land-use change or management change (depending on whether a land-use change has been detected in the Site's `landCover` history), in some cases it is possible for this model to return partial results when there are no below-ground biomass Measurements.\n\nIf a land-use change is detected during the 20 years prior to a Cycle, all emissions should be allocated to the land-use change emission term (`co2ToAirBelowGroundBiomassStockChangeLandUseChange`). Therefore, we can allocate `0` emissions to the management change emission term (`co2ToAirBelowGroundBiomassStockChangeManagementChange`) even whem we can't calculate a value for the land-use change emission. To be certain that a land-use change has occurred, we require up to 20 year's `landCover` data prior to the Cycle's `startDate`.\n\nThe inverse is also true for when a land-use change is **not** detected in the 20 years prior to a Cycle. In this case, all emissions should be allocated to the management change emission term (`co2ToAirBelowGroundBiomassStockChangeManagementChange`). Therefore, we can allocate `0` emissions to the land-use change emission term (`co2ToAirBelowGroundBiomassStockChangeLandUseChange`) even when we can't calculate a value for the management change emission. To be certain that a land-use change has **not** occurred, we require a minimum of 20 year's `landCover` data prior to the Cycle's `startDate`.\n\nIf there is insufficient `landCover` data to determine whether a land-use change has occurred, the model will be unable to return partial results.\n\n\n\n\n\n"}
|