Here is the list of validations running on a Cycle.
This validation prevents using 1 ha as a functionalUnit when the siteType is:
agri-food processor;retailer.If the Cycle contains aboveGroundCropResidueTotal and any of:
aboveGroundCropResidueBurntaboveGroundCropResidueIncorporatedaboveGroundCropResidueLeftOnFieldaboveGroundCropResidueRemovedThen the total must be euqal to the sun of the other terms.
When cropResidue is marked as complete, this validation will make sure that these conditions are true:
cropResidueManagement practices is 100%,If any of these conditions fail, then the cropResidue should not be set as complete.
When cropResidue is marked as incomplete, this validation will check if these terms are specified:
cropResidueManagement practice;If any of these conditions apply, then the cropResidue should be set as complete, and a warning will be given.
When the startDate and endDate of the Cycle are provided, the cycleDuration must be equal to the difference in days. Validated to integer precision.
If harvestedArea and siteArea are both provided, the harvestedArea must be lower or equal to siteArea.
This validation verifies the cycleDuration provided in the Cycle is not greater than our maximumCycleDuration lookup. Validated to integer precision.
Using the lookup Rice_croppingDuration_days_min, this validation will make sure that the cycleDuration specified in the Cycle is not below this minimum duration. Validated to integer precision.
Note: the minimum duration depends on the country specified on the Site.
This validation validates siteDuration for temporary crop production Cycles only. It uses the startDateDefinition to validate siteDuration compared to cycleDuration:
startDateDefinition = harvest of previous crop, then siteDuration must be equal to cycleDuration.startDateDefinition = sowing date or soil preparation date or transplanting date, then siteDurationcycleDuration.This validations validates siteDuration for animal production Cycle only:
otherSites is set, it ensures siteDruation is less than cycleDuration,cycleDuration when accounting for otherSitesDuration.otherSites is not set, it ensures siteDuration is equal to cycleDuration.This validation will encourage the user to add the following fields, for a relative functionalUnit Cycle:
siteDurationsiteAreaotherSitesDuration (when otherSites is set)otherSitesArea (when otherSites is set)This validation prevents using a crop Product, set as a "cover crop" (Practice), that can not be a crover crop. To fix this error, the Product or the Practice needs to be adjusted. This uses the lookup possibleCoverCrop on the Product to check if the Product can be a cover crop.
When experimentDesign is used, this will encourage the user to set treatment as well.
This validation will show a warning when both liveAnimal and animalProduct are added to the Cycle.
Incite users to add the practice "Stocking density" when:
functionalUnit is relative;permanent pasture;animals as liveAnimal or animalProduct.In some cases, the same product could be added multiple times with different unique properties, in which case an ImpactAssessment should exist for each.
Note: on HESTIA, Impact Assessments are automatically generated during upload.
This validation makes sure that the liveAnimal added as Animal have a corresponding animalProduct in the Cycle products.
This validation ensures that the substrate Inputs are added to the Cycle when the siteType = glass or high accessible cover, and a "substrate" practice has been set.
This validation ensures two things:
endDate must be later than startDate;endDate must be the same as startDate.This validation is to ensure that the startDate and endDate formats match, for any blank node.
This validation ensures that the number of items in value and dates are identical.
For any blank node, if the value is not between the min and max fields, an error will be given.
For any blank node, if the max is not greater than the min field, an error will be given.
For some Terms, HESTIA has defined some minimum and maximum value. If the specified value does not fall within these, an error is raised.
This validation checks if the property value provided is consistent with the value stored in a lookup table. For example, we can use the lookup region-liveAnimal-liveweightPerHead.csv file to determine if the liveweightPerHead value provided is within 75% of the high value contained in the lookup, for the country.
This validation gives a warning when 2 identical nodes, with different id value`, are detected.
For all Terms that are in percentages, the value must be between 0 and 100.
Some Terms are part of a group from the lookup sumIs100Group, meaning when summed up, their total value must be exactly 100% (with a 5% tolerance).
For all Terms that are set as percentages, the value must be provided.
Using the lookup "valueType", this validation will make sure the provided value is of the correct type. Example: a Term that should be either True or False will only accept True/False value.
Using the lookup recommendedPropertyTermIds on a blank node term, this validation will suggest the user to add any missing Property. These properties are necessary to run the models, and should be specified to prevent HESTIA from using default properties.
When using the region field, it must point to GADM Terms that are not countries. This can be identified with the gadmLevel field: it must be > 0 to be a region.
When using both country and region, the region must be within the country specified.
When using the country field, it must point to GADM Terms that are countries. This can be identified with the gadmLevel field: it must be == 0 to be a country.
When providing longitude and latitude, the coordinates must fall within the region or country provided.
HESTIA will calculate the boundary area during upload, and this validation will show a warning when the area does not match. Please verify that the area provided is correct and in the correct unit.
HESTIA will only gap-fill data from Geospatial datasets when the site area is less than 5000km2. If you see this warning, it means the calculation will be incomplete, and the measurements will need to be manually provided. Please provide a smaller polygon instead.
HESTIA will only gap-fill data from Geospatial datasets when the site area is less than 5000km2. If you see this warning, it means the calculation will be incomplete, and the measurements will need to be manually provided. Please provide a smaller region/country instead.
This validation returns warnings when fields are added without a value (or using 'no data' for example).
When adding a Source to a Cycle or an ImpactAssessment, this validation ensures that the same level of privacy is used on both.
Example:
dataPrivate=true, the Source it is linked to must also be dataPrivate=true;dataPrivate=false, the Source it is linked to must also be dataPrivate=false.It is recommended to always link a Cycle, Site, or ImpactAssessment, to a Source, even when private.
This validation will use the models library to recalculate the value of a blank node, and will give an error when the value too different from the models value. Note: the default tolerance is 5%, but we use the lookup valueToleranceToHestiaRecalculatedValue when available.
Some of the terms in the Glossary have been added with different units, e.g., kg / kg N / kg VS. This validation returns a warning when those terms have been used together in the same Node.
The "Other model" Term has been added in the eventuality that HESTIA has not added the required model yet. However, to use this Term, the methodModelDescription must be set.
When uploading Cycle, Site, etc., the referenced nodes must also be uploaded. Example:
This validation makes sure that some inputs, mapped by the lookup aggregationInputTermIds on the primary product, have a corresponding impactAssessment linked to them. This validation can throw an error in the following cases:
aggregationInputTermIds has not been set correctly. Please verify the primary product of the Cycle,aggregationInputTermIds has been set correctly.If the Cycle is an aggregated cycle and the primary Product is a plantation, the Cycle must include the following practices: plantationLifespan and plantationProductiveLifespan.
Validate the node id has been correctly formatted. If this validation fails, it indicates an error in the aggregation engine, and an issue must be raised.
For liveAnimal production Cycles, it is recommended to include animal blank nodes.
This validation ensures that the same Input marked with isAnimalFeed are not added in both inputs and animals.
Using the lookup milkYieldPracticeTermIds on the Animal term, this validation will recommend the user to add any Practice that matches one of the Term, if none has been set.
Using the lookup recommendedProductTermIds on the Animal term, this validation will recommend the user to add any Product that matches one of the Term, if none has been set.
The model emissionNotRelevant is reserved for the model emissionNotRelevant. This validation will therefore raise a warning when it is being used, and the methodModel should be replaced.
The methodTier not relevant is reserved for the model emissionNotRelevant. This validation will therefore raise a warning when it is being used, and the methodTier should be replaced.
Only specific emissions can use the methodTier=background. For all emissions that are not allowed to use it, this validation will throw an error, and another methodTier must be used instead. Example of emission that can use it: CO2, to air, inputs production.
Certain emissions are depth dependent, and depthUpper and depthLower fields should be provided. This validation will show a warning if the depthUpper and depthLower fields are missing for these emissions.
Some fertilizers contain more than one nutrient. For example Monoammonium Phosphate has the formula (NH4)(H2PO4) and therefore contains both nitrogen (N) and phosphorus (P). If only Monoammonium Phosphate (as N) is added, HESTIA will underrepresent the amount of nutrients added.
This validation ensures that no loop is being created, such as Cycle -> ImpactAssessment -> Cycle, e.g., that it is not possible to link a Cycle back to itself through the inputs.impactAssessment field.
This validation will make sure that the Product linked to the Input via an ImpactAssessment is correct. We either use the lookup linkedImpactAssessmentTermId if set, or we default to only allow the Input term itself.
This validation returns an error when:
siteType is cropland, permanent pasture, animal housing,river or stream, lake, sea or ocean, tank, or pond;isAnimalFeed set.To fix this error, please set isAnimalFeed on all relevant inputs.
This validation will force using the input saplingsDepreciatedAmountPerCycle when:
functionalUnit is equal to 1 ha;Crop;is_Plantation is TRUE for the Crop;Saplings input.Some Terms can only be used a Product. When any of these terms are used as Input, an error will be given.
This validation ensures the longFallowDuration value is not longer than 5 years.
This validation ensures that the correct waterRegime practice can be used with the specified Rice product.
When "Rice, grain (in husk), flooded" is used as a product, this validation will check the practice croppingDuration, and make sure the value is between Rice_croppingDuration_days_min and Rice_croppingDuration_days_max lookup values.
If there is a Practice of termType = excretaManagement, there must be an Input of termType = excreta.
Some practices require tillage, and adding the practice noTillage is not allowed.
For cropland, it is preferable to set the tillage type.
Validate these 2 cases:
noTillage is set, the number of tillages must be 0;fullTillage is set, the number of tillages can not be 0.To fix this error, you either need to change the tillage, or add the correct number of tillages.
For animal production Cycles, it is recommended to add a system Practice. We are using the lookup recommendedSystemTermIds to determine which Practice should be set, according to the primary Product.
This validation encourages the user to specify the pastureGrass practice, when production occurs on a permanent pasture.
When adding the pastureGrass practice, you must specify a key using a Term from the landCover glossary.
This validation ensures that the sum of all pastureGrass.value is equal to 100%.
This validation makes sure the following term is adding for pemanent crops, when the primary product value is 0: productivePhasePermanentCrops.
This validation:
primaryPercent on practices when the siteType is not agri-food processor.primaryPercent on non-processing practices when the siteType is agri-food processor.When the siteType=agri-food processor, at least one operation Practice with primaryPercent must be set. Note: we also use the lookup isProcessingOperation on the operation to know if they qualify.
When adding a landCover Practice to a Cycle, the Practice must match a Product. We use the lookup landCoverTermId on existing Products to match the 2 together. If no correspondance is found, an error is shown.
This validation is to ensure that the same Management and Practices added on the Site and related Cycles, with the same term and startDate + endDate, have the same value. Since HESTIA will automatically gap-fill the Management node from the Cycle, removing them will fix this error.
When the Cycle water completeness is set to True, and "irrigation" practices are used, there must be at least 1 Input of termType=water. Otherwise, the completeness should be marked as False.
When "rainfed" practices are used, there must not be more than 250 m3 of water added to the Cycle. If more than 250 m3 of water was used, an "irrigated" practice must be used instead.
Validates that Cycles with an irrigating operation must have an irrigated waterRegime.
Only the fates with at least one practice specifying a value are included, so that a missing practice is never treated as a 0 share.
nothing for it once every other fate is accounted for.
A cropResidueManagement practice states the share of the above ground crop residue which took that fate, so a fate given a 0 share cannot also have produced crop residue. A fate is given a 0 share either explicitly, or implicitly when the other practices already share out all of the crop residue.
Practices which are not specified leave the fate unknown, and never contradict a product.
The sum of the economicValueShare must be equal or less than 100% across all products.
This raises a warning for any product that does not have a non-zero value.
When the Product value is 0:
economicValueShare must also be 0;revenue must also be 0.It is not allowed in HESTIA to add multiple primary product.
When using a 1 ha functionalUnit, all products with units=ha must have a value of 0 or 1. To fix this error, use a different product or change the functionalUnit.
For animal production cycles, it is recommended to specify the excreta product as well. This validation will:
excreta specified is allowed for the products specify;excreta is set.In case of doubt, it is recommended to only set the system, and HESTIA will gap-fill the excreta.
When all completeness fields are set to False, this might be an error. This validation will give a warning.
This validation will give an error when:
material is set as complete;fuel inputs (like gasoline or petrol);material inputs.To fix the error, set the completeness to false, or add any missing material inputs.
This validation will give an error when:
freshForage is set as complete;siteType is cropland or permanent pasture;isGrazingAnimal on the animal products);forage inputs.To fix this error, set the completeness to false, or add any missing forage inputs.
This validation will give an error when:
ingredient is set as complete, and siteType = agri-food processor, but there are no inputs;ingredient is set as incomplete, but the siteType is not agri-food processor.To fix this error, either change the siteType, or only set as complete if ingredients have been specified as inputs.
This validation will give an error when:
animalPopulation is set as complete;termType = liveAnimal or liveAquaticSpecies;To fix this error, set the completeness to false, or add any missing animal blank nodes.
This validation uses a mapping from a completeness field to a list of blank nodes, and gives an error when any corresponding blank node has been added without a value.
For example:
cropResidue is set as complete, then all cropResidue products or cropResidueManagement practicesvalue;animalFeed is complete, then all animalProduct, crop, or processedFood inputs must contain a value.The mapping can be found in the Completeness yaml source file.
To fix this error, make sure all blank nodes with matching completeness have a value, when set as complete.
The field previousTransformationId must point to a transformation that has been included before the current transformation. To fix this error, either change the index of the current transformation so it is after the previous one, or set the correct previousTransformationId.
This validation will ensure that the current transformation contains at least one Product that matches an Input of the previous transformation. Example:
previousTransformationId=tr1, and contains a single Input=wheatGrain;transformationId=tr1 must therefore contain a Product wheatGrain,This validation uses the transformedShare field to validate that the Input value is correct, using the previous transformation matching Product, and the transformedShare. To fix this error, make sure the Input/Product value is correct, or change the transformedShare.
Each emissions added on a transformation must also be present on the Cycle itself. HESTIA will automatically gap-fill the emissions, so this only returns a warning. Note: if you manually add the emissions on the Cycle, you must also set the correct transformation.
This validation ensures that the excreta products used are the correct ones, base on the inputs. It is not possible to start with excreta from one animal and get excreta from another. E.g., you cannot go from Excreta, dairy cattle (kg ...) to Excreta, pigs (kg ...). However there are three exceptions. You can get: Excreta (kg ...), Excreta mixtures (kg ...), and Processed excreta (kg ...) from any Inputs.
This validation checks the type of the Property value, according to the lookup "valueType". To fix this error, you need to change the type of the value, according to the expected type.
Some properties can only be used on some term types. When the termType is not allowed, an error is given. To fix this error, you either need to use a different property, or you need to change the term of the blank node. Note: this validation uses the lookup termTypesAllowed on the property.
For some properties, HESTIA has set a default value. This validation will give a warning when the provided value is more than 25% different that HESTIA's default value.
This validation validates these cases:
kg mass, Volatile solids content must be between 0% and 100%;kg VS, Volatile solids content must be 100%;kg N, Volatile solids content must be above 0%.This validation uses the min and max fields of the Property, or the lookups minimum and maximum, to validate the value.
mu and sd are carried alongside the interval because the interval does not determine them: min is clamped at 0, so any distribution whose lower bound is negative - common for the deliberately wide priors - cannot be reconstructed from min/max alone. Consumers that want to draw the curve need the parameters themselves.