From bbdbebc7bde1732859e387091e938ffb653ec7de Mon Sep 17 00:00:00 2001 From: Jason Brider Date: Fri, 10 Dec 2021 14:54:50 +1000 Subject: [PATCH] cleaning up code creating separate plausibility file --- Models/PMF/Organs/Root.cs | 40 - Models/PMF/Organs/SorghumLeaf.cs | 23 +- Models/PMF/Structure/Culm.cs | 320 +- Models/PMF/Structure/LeafCulms.cs | 844 +- .../Structure/Tillering/DynamicTillering.cs | 438 +- .../PMF/Structure/Tillering/FixedTillering.cs | 57 +- Tests/UnderReview/Sorghum/Sorghum.apsimx | 10308 +--------- .../UnderReview/Sorghum/SorghumExample.apsimx | 4460 +---- .../Sorghum/SorghumPlausibilityRuns.apsimx | 15799 ++++++++++++++++ 9 files changed, 16190 insertions(+), 16099 deletions(-) create mode 100644 Tests/UnderReview/Sorghum/SorghumPlausibilityRuns.apsimx diff --git a/Models/PMF/Organs/Root.cs b/Models/PMF/Organs/Root.cs index 0fe3a7481b..fa991ac9ec 100644 --- a/Models/PMF/Organs/Root.cs +++ b/Models/PMF/Organs/Root.cs @@ -944,46 +944,6 @@ public double TotalExtractableWater() return supply; } - /// Plant Avaliable water supply used by sorghum. - /// It adds an extra layer proportion calc to extractableWater calc. - public double PlantAvailableWaterSupply() - { - double[] LL = soilCrop.LL; - double[] KL = soilCrop.KL; - double[] SWmm = PlantZone.WaterBalance.SWmm; - double[] DZ = PlantZone.Physical.Thickness; - double[] available = new double[PlantZone.Physical.Thickness.Length]; - double[] supply = new double[PlantZone.Physical.Thickness.Length]; - - var currentLayer = SoilUtilities.LayerIndexOfDepth(PlantZone.Physical.Thickness, Depth); - var layertop = MathUtilities.Sum(PlantZone.Physical.Thickness, 0, Math.Max(0, currentLayer - 1)); - var layerBottom = MathUtilities.Sum(PlantZone.Physical.Thickness, 0, currentLayer); - var layerProportion = Math.Min(MathUtilities.Divide(Depth - layertop, layerBottom - layertop, 0.0), 1.0); - - for (int layer = 0; layer < LL.Length; layer++) - { - if (layer <= currentLayer) - { - available[layer] = Math.Max(0.0, SWmm[layer] - LL[layer] * DZ[layer] * PlantZone.LLModifier[layer]); - } - } - available[currentLayer] *= layerProportion; - - double supplyTotal = 0; - for (int layer = 0; layer < LL.Length; layer++) - { - if (layer <= currentLayer) - { - supply[layer] = Math.Max(0.0, available[layer] * KL[layer] * klModifier.Value(layer) * KLModiferDueToDamage(layer) * - PlantZone.RootProportions[layer]); - - supplyTotal += supply[layer]; - } - } - return supplyTotal; - } - - /// Document this model. public override IEnumerable Document() { diff --git a/Models/PMF/Organs/SorghumLeaf.cs b/Models/PMF/Organs/SorghumLeaf.cs index 3acaf170df..19fd1be918 100644 --- a/Models/PMF/Organs/SorghumLeaf.cs +++ b/Models/PMF/Organs/SorghumLeaf.cs @@ -12,6 +12,7 @@ using System.Linq; using System.Text; using APSIM.Shared.Documentation; +using Models.Utilities; namespace Models.PMF.Organs { @@ -43,9 +44,7 @@ public class SorghumLeaf : Model, IHasWaterDemand, IOrgan, IArbitration, IOrganD [Link] private ISummary summary = null; - /// - /// Culms on the leaf - /// + /// Culms on the leaf controls tillering [Link] public LeafCulms culms = null; @@ -141,9 +140,6 @@ public class SorghumLeaf : Model, IHasWaterDemand, IOrgan, IArbitration, IOrganD private double nDeadLeaves; private double dltDeadLeaves; - /// The SMM2SM - private const double smm2sm = 1.0 / 1000000.0; //! conversion factor of mm^2 to m^2 - /// Tolerance for biomass comparisons protected double biomassToleranceValue = 0.0000000001; @@ -314,11 +310,6 @@ public double PotentialEP /// Gets or sets the lai dead. public double LAIDead { get; set; } - - ///// Gets the total radiation intercepted. - //[Units("MJ/m^2/day")] - //public double RadiationIntercepted => CoverGreen * metData.Radn; - /// /// Intercepted radiation value that is passed to the RUE class to calculate DM supply. /// @@ -342,7 +333,6 @@ public double RadiationIntercepted } } - /// Nitrogen Photosynthesis Stress. public double NitrogenPhotoStress { get; set; } @@ -557,11 +547,6 @@ public void UpdateArea() // culms.AreaActual() will update this.DltLAI DltLAI = culms.CalculateActualArea(); SenesceArea(); - - double dltDmGreen = potentialDMAllocation.Structural; - //if (Live.Wt + dltDmGreen > 0.0) - // sla = (LAI + DltStressedLAI) / (Live.Wt + dltDmGreen) * 10000; // (cm^2/g) - } } } @@ -906,7 +891,6 @@ private double calcSLN(double laiToday, double nGreenToday) return MathUtilities.Divide(nGreenToday, laiToday, 0.0); } - /// Called when [simulation commencing]. /// The sender. /// The instance containing the event data. @@ -979,7 +963,7 @@ private void OnPhaseChanged(object sender, PhaseChangedType phaseChange) Live.StructuralWt = InitialDMWeight * SowingDensity; Live.StorageWt = 0.0; - LAI = InitialLAI * smm2sm * SowingDensity; + LAI = InitialLAI * SowingDensity.ConvertSqM2SqMM(); SLN = InitialSLN; Live.StructuralN = LAI * SLN; @@ -1102,6 +1086,7 @@ private void setDMSupply(object sender, EventArgs e) private void SetNSupply(object sender, EventArgs e) { UpdateArea(); //must be calculated before potential N partitioning + var availableLaiN = DltLAI * NewLeafSLN; double laiToday = CalcLAI(); diff --git a/Models/PMF/Structure/Culm.cs b/Models/PMF/Structure/Culm.cs index 7c4c1149f6..ac6eb911ad 100644 --- a/Models/PMF/Structure/Culm.cs +++ b/Models/PMF/Structure/Culm.cs @@ -1,5 +1,6 @@ using APSIM.Shared.Utilities; using Models.Core; +using Models.Utilities; using System; using System.Collections.Generic; using System.Linq; @@ -12,84 +13,50 @@ namespace Models.PMF.Struct [Serializable] public class Culm { - private const double smm2sm = 1e-6; - //Birch, Hammer bell shaped curve parameters - private double largestLeafPlateau; - //private double finalLeafCorrection; - /// Used to allow for offset of number of leaves on the tiller public double LeafNoAtAppearance; /// Potential leaf growth for the day public double dltLeafNo; - /// - /// Vertical leaf adjustment. - /// + /// Vertical leaf adjustment. public double VertAdjValue { get; set; } - //double noEmergence; - //double initialTPLA; - //double tplaInflectionRatio,tplaProductionCoef; - // leaf appearance - - /// - /// temporary exposure - /// + /// Culm Parameters public CulmParams parameters; - /// - /// Culm number. - /// + /// Culm number. public int CulmNo { get; set; } - /// - /// Leaf proportion? - /// + /// Leaf proportion? public double Proportion { get; set; } - /// - /// Final leaf number. - /// + /// Final leaf number. public double FinalLeafNo { get; set; } - /// - /// Current leaf number. - /// + /// Current leaf number. public double CurrentLeafNo { get; set; } - /// - /// Leaf area. - /// - /// - /// Changes each day. - /// + /// Leaf area. + /// Changes each day. public double LeafArea { get; set; } - /// - /// Accumulated lai for this culm. - /// + /// Accumulated lai for this culm. public double TotalLAI { get; set; } - /// - /// - /// + /// Calculated potential sizes for each leaf public List LeafSizes { get; set; } // public Methods ------------------------------------------------------- - /// - /// Constructor. - /// + /// Constructor. /// /// public Culm(double leafAppearance, CulmParams parameters) { - //plant = p; LeafNoAtAppearance = leafAppearance; this.parameters = parameters; Initialize(); - //doRegistrations(); } /// Potential Leaf sizes can be calculated early and then referenced @@ -122,7 +89,6 @@ public virtual void Initialize() // leaf number FinalLeafNo = 0.0; dltLeafNo = 0.0; - largestLeafPlateau = 0; //value less than 1 means ignore it CurrentLeafNo = parameters.LeafNoAtEmergence?.Value() ?? 0.0; VertAdjValue = 0.0; Proportion = 1.0; @@ -132,89 +98,6 @@ public virtual void Initialize() //readParams(); } - /// - /// TBI - but this may not be needed in apsimx. - /// - public virtual void ReadParams() - { - /* - // leaf area individual leaf - //Birch, Hammer bell shaped curve parameters - scienceAPI.read("aX0", "", false, aX0); // Eqn 14 - //scienceAPI.read("aMaxA" ,"", false, aMaxA); // Eqn 13 - scienceAPI.read("aMaxI", "", false, aMaxI); - scienceAPI.read("aMaxS", "", false, aMaxS); - scienceAPI.read("largestLeafPlateau", "", true, largestLeafPlateau); - - scienceAPI.read("leaf_no_correction", "", false, leafNoCorrection); // - - // leaf appearance rates - scienceAPI.read("leaf_app_rate1", "", false, appearanceRate1); - scienceAPI.read("leaf_app_rate2", "", false, appearanceRate2); - scienceAPI.read("leaf_no_rate_change", "", false, noRateChange); - - scienceAPI.read("leaf_no_seed", "", false, noSeed); - scienceAPI.read("leaf_init_rate", "", false, initRate); - //scienceAPI.read("leaf_no_at_emerg", "", false, noEmergence); - scienceAPI.read("leaf_no_min", "", false, minLeafNo); - scienceAPI.read("leaf_no_max", "", false, maxLeafNo); - - density = plant->getPlantDensity(); - */ - } - - /// - /// Update Leaf state variables at the end of the day. - /// - public virtual void UpdateVars() - { - //currentLeafNo = currentLeafNo + dltLeafNo; - } - - /// - /// Calculate final leaf number. - /// - public void calcFinalLeafNo() - { - double initRate = parameters.InitRate.Value(); - double noSeed = parameters.NoSeed.Value(); - double minLeafNo = parameters.MinLeafNo.Value(); - double maxLeafNo = parameters.MaxLeafNo.Value(); - double ttFi = parameters.TTEmergToFI.Value(); - - FinalLeafNo = MathUtilities.Bound(MathUtilities.Divide(ttFi, initRate, 0) + noSeed, minLeafNo, maxLeafNo); - } - - /// - /// Calculate leaf appearance. Called from LeafCulms::calcLeafNo(). - /// - public double calcLeafAppearance() - { - dltLeafNo = 0.0; - double remainingLeaves = FinalLeafNo - LeafNoAtAppearance - CurrentLeafNo;//nLeaves is used in partitionDM, so need to retain it in Leaf - if (remainingLeaves <= 0.0) - { - return 0.0; - } - - // Peter's 2 stage version used here, modified to apply to last few leaves before flag - // i.e. c_leaf_no_rate_change is leaf number from the top down (e.g. 4) - // dh - todo - need to check this works with sorghum. - double leafAppRate = parameters.AppearanceRate1.Value(); - if (remainingLeaves <= parameters.NoRateChange2.Value()) - leafAppRate = parameters.AppearanceRate3.Value(); - else if (remainingLeaves <= parameters.NoRateChange.Value()) - leafAppRate = parameters.AppearanceRate2.Value(); - else - leafAppRate = parameters.AppearanceRate1.Value(); - - // if leaves are still growing, the cumulative number of phyllochrons or fully expanded - // leaves is calculated from thermal time for the day. - dltLeafNo = MathUtilities.Bound(MathUtilities.Divide(parameters.DltTT.Value(), leafAppRate, 0), 0.0, remainingLeaves); - - CurrentLeafNo = CurrentLeafNo + dltLeafNo; - return dltLeafNo; - } /// /// Get leaf appearance rate. @@ -227,184 +110,5 @@ public double getLeafAppearanceRate(double remainingLeaves) return parameters.AppearanceRate2.Value(); return parameters.AppearanceRate1.Value(); } - - /// - /// Calculate potential leaf area. - /// - /// - public double calcPotentialLeafArea() - { - //once leaf no is calculated leaf area of largest expanding leaf is determined - double leafNoEffective = Math.Min(CurrentLeafNo + parameters.LeafNoCorrection.Value(), FinalLeafNo - LeafNoAtAppearance); - LeafArea = calcIndividualLeafSize(leafNoEffective); - //leafArea = getAreaOfCurrentLeaf(leafNoEffective); HACK - //leafArea *= proportion; //proportion is 1 unless this tiller is a fraction ie: Fertile Tiller Number is 2.2, then 1 tiller is 0.2 - LeafArea = LeafArea * smm2sm * parameters.Density * dltLeafNo; // in dltLai - TotalLAI += LeafArea; - return (LeafArea * Proportion); - } - - /// - /// Note: this is using the sorghum code (not Maize!). - /// - /// - public double calcIndividualLeafSize(double leafNo) - { - // use finalLeafNo to calculate the size of the individual leafs - // Eqn 5 from Improved methods for predicting individual leaf area and leaf senescence in maize - // (Zea mays) C.J. Birch, G.L. Hammer and K.G. Ricket. Aust. J Agric. Res., 1998, 49, 249-62 - // - double correctedFinalLeafNo = FinalLeafNo;// - leafNoAtAppearance; - double largestLeafPos = parameters.AX0.Value() * correctedFinalLeafNo; //aX0 = position of the final leaf - //double leafPlateauStart = 24; - //adding new code to handle varieties that grow very high number of leaves - if (largestLeafPlateau > 1) - { - if (correctedFinalLeafNo > largestLeafPlateau) - { - largestLeafPos = parameters.AX0.Value() * largestLeafPlateau; - - if (leafNo > largestLeafPos) - { - double tailCount = largestLeafPlateau - largestLeafPos; - if (leafNo < correctedFinalLeafNo - tailCount) - { - leafNo = largestLeafPos; - } - else - { - leafNo = largestLeafPlateau - (correctedFinalLeafNo - leafNo); - } - } - } - } - double a0 = parameters.A0.Value(); - double a1 = parameters.A1.Value(); - double b0 = parameters.B0.Value(); - double b1 = parameters.B1.Value(); - - double a = a0 - Math.Exp(a1 * correctedFinalLeafNo); - double b = b0 - Math.Exp(b1 * correctedFinalLeafNo); - - //Relationship for calculating maximum individual leaf area from Total Leaf No - //Source: Modelling genotypic and environmental control of leaf area dynamics in grain sorghum. II. Individual leaf level - //Carberry, Muchow, Hammer,1992 - //written as Y = Y0*exp(a*pow(X-X0,2)+b*(pow(X-X0,3))) - //pg314 -Leaf area production model - - //Largest Leaf calculation - //originally from "Improved methods for predicting individual leaf area and leaf senescence in maize" - Birch, Hammer, Rickert 1998 - //double aMaxB = 4.629148, aMaxC = 6.6261562; - //double aMax = aMaxA * (1 - exp(-aMaxB * (finalLeafNo - aMaxC))); // maximum individual leaf area - //Calculation then changed to use the relationship as described in the Carberry paper in Table 2 - //The actual intercept and slope will be determined by the cultivar, and read from the config file (sorghum.xml) - //aMaxS = 19.5; //not 100% sure what this number should be - tried a range and this provided the best fit forthe test data - double largestLeafSize = parameters.AMaxS.Value() * FinalLeafNo + parameters.AMaxI.Value(); //aMaxI is the intercept - - //a vertical adjustment is applied to each tiller - this was discussed in a meeting on 22/08/12 and derived - //from a set of graphs that I cant find that compared the curves of each tiller - //the effect is to decrease the size of the largest leaf by 10% - largestLeafSize *= (1 - VertAdjValue); - double leafSize = largestLeafSize * Math.Exp(a * Math.Pow((leafNo - largestLeafPos), 2) + b * Math.Pow((leafNo - largestLeafPos), 3)) * 100; - return leafSize; - } - - /// - /// TBI - doesn't exist in old model. - /// - public void setFinalLeafCorrection(double finalLeafCorrection) - { - // Oddly, there is no implementation for this method in the old sorghum model. - throw new NotImplementedException(); - } - - /// - /// Calculate leaf sizes. - /// - public void calculateLeafSizes() - { - // calculate the leaf sizes for this culm - LeafSizes.Clear(); - List sizes = new List(); - for (int i = 1; i < Math.Ceiling(FinalLeafNo) + 1; i++) - sizes.Add(calcIndividualLeafSize(i)); - // offset for less leaves - int offset = 0; - if (CulmNo > 0) - offset = 3 + CulmNo; - for (int i = 0; i < Math.Ceiling(FinalLeafNo - (offset)); i++) - LeafSizes.Add(sizes[i + offset]); - } - - /// - /// Calculate leaf sizes. Used when leafAreaCalcTypeSwitch is present. - /// - public void CalcLeafSizes() - { - LeafSizes.Clear(); - for (int i = 0; i < FinalLeafNo; i++) - LeafSizes.Add(calcIndividualLeafSize2(i + 1)); - } - - /// - /// Temp hack - fixme - /// - /// - private double calcIndividualLeafSize2(double leafNo) - { - // use finalLeafNo to calculate the size of the individual leafs - // Eqn 5 from Improved methods for predicting individual leaf area and leaf senescence in maize - // (Zea mays) C.J. Birch, G.L. Hammer and K.G. Ricket. Aust. J Agric. Res., 1998, 49, 249-62 - // TODO externalise these variables - - double a0 = parameters.A0.Value(); - double a1 = parameters.A1.Value(); - double b0 = parameters.B0.Value(); - double b1 = parameters.B1.Value(); - - double aMaxA = parameters.AMaxA.Value(); - double aMaxB = parameters.AMaxB.Value(); - double aMaxC = parameters.AMaxC.Value(); - - double a = a0 - Math.Exp(a1 * FinalLeafNo); // Eqn 18 - double b = b0 - Math.Exp(b1 * FinalLeafNo); // Eqn 19 - - double aMax = aMaxA * Math.Exp(aMaxB + aMaxC * FinalLeafNo); // Eqn 13 - - double x0 = parameters.AX0.Value() * FinalLeafNo; // Eqn 14 - - return aMax * Math.Exp(a * Math.Pow((leafNo - x0), 2) + b * Math.Pow((leafNo - x0), 3)) * 100; // Eqn 5 - } - - /// - /// Calculate potential leaf area (used in Maize only - to be refactored out?). - /// - /// - public double LeafAreaPotBellShapeCurve(double[] leafNo) - { - //once leaf no is calculated leaf area of largest expanding leaf is determined - double leafNoEffective = Math.Min(leafNo.Sum() + parameters.LeafNoCorrection.Value(), FinalLeafNo); - - return dltLeafNo * calcIndividualLeafSize2(leafNoEffective) * smm2sm * parameters.Density; - } - - /// - /// Get area of current leaf. - /// - /// - public double getAreaOfCurrentLeaf(double leafNo) - { - // interpolate leaf sizes to get area of this leaf - // check upper - if (leafNo > LeafSizes.Count) - return LeafSizes.LastOrDefault(); - else - { - int leafIndx = (int)Math.Floor(leafNo) - 1; - double leafPart = leafNo - Math.Floor(leafNo); - double size = LeafSizes[leafIndx] + (LeafSizes[leafIndx + 1] - LeafSizes[leafIndx]) * leafPart; - return size; - } - } } } diff --git a/Models/PMF/Structure/LeafCulms.cs b/Models/PMF/Structure/LeafCulms.cs index 6b0af318a3..3252afe842 100644 --- a/Models/PMF/Structure/LeafCulms.cs +++ b/Models/PMF/Structure/LeafCulms.cs @@ -6,6 +6,7 @@ using Models.PMF.Interfaces; using Models.PMF.Organs; using Models.PMF.Phen; +using Models.Utilities; using Newtonsoft.Json; using System; using System.Collections.Generic; @@ -35,24 +36,6 @@ public class LeafCulms : Model [Link] private Plant plant = null; - /// - /// Link to phenology model. - /// - [Link] - private Phenology phenology = null; - - /// - /// Link to leaf model. - /// - [Link] - private SorghumLeaf leaf = null; - - /// - /// Link to summary. - /// - [Link] - private Summary summary = null; - /// /// Link to clock (used for FTN calculations at time of sowing). /// @@ -69,18 +52,6 @@ public class LeafCulms : Model [Link(Type = LinkType.Child, ByName = true)] private ITilleringMethod tillering = null; - /// - /// Vertical Offset for Largest Leaf Calc. - /// - [Link(Type = LinkType.Child, ByName = true)] - private IFunction aMaxVert = null; - - /// - /// Additional Vertical Offset for each additional Tiller. - /// - [Link(Type = LinkType.Child, ByName = true)] - private IFunction aTillerVert = null; - /// /// Expansion stress. /// @@ -115,12 +86,6 @@ public class LeafCulms : Model [Link(Type = LinkType.Child, ByName = true)] protected IFunction appearanceRate3 = null; - /// - /// Total accumulated TT from emergence to flag leaf. - /// - [Link(Type = LinkType.Child, ByName = true)] - private IFunction ttEmergToFlag = null; - /// /// Corrects for other growing leaves. /// @@ -157,68 +122,9 @@ public class LeafCulms : Model [Link(Type = LinkType.Child, ByName = true)] private IFunction dltTT = null; - [Link(Type = LinkType.Child, ByName = true)] - private IFunction aMaxSlope = null; - - [Link(Type = LinkType.Child, ByName = true)] - private IFunction aMaxIntercept = null; - [Link(Type = LinkType.Child, ByName = true)] private IFunction leafNoAtEmergence = null; - [Link(Type = LinkType.Child, ByName = true)] - private IFunction slaMax = null; - - [Link(Type = LinkType.Child, ByName = true, IsOptional = true)] - private IFunction leafAreaCalcTypeSwitch = null; - - /// bellCurveParams[0] - [Link(Type = LinkType.Child, ByName = true)] - private IFunction a0 = null; - - /// bellCurveParams[1] - [Link(Type = LinkType.Child, ByName = true)] - private IFunction a1 = null; - - /// bellCurveParams[2] - [Link(Type = LinkType.Child, ByName = true)] - private IFunction b0 = null; - - /// bellCurveParams[3] - [Link(Type = LinkType.Child, ByName = true)] - private IFunction b1 = null; - - /// largestLeafParams[0] - [Link(Type = LinkType.Child, ByName = true)] - private IFunction aMaxA = null; - - /// largestLeafParams[1] - [Link(Type = LinkType.Child, ByName = true)] - private IFunction aMaxB = null; - - /// largestLeafParams[2] - [Link(Type = LinkType.Child, ByName = true)] - private IFunction aMaxC = null; - - /// - /// Propensity to tiller. - /// - [Link(Type = LinkType.Child, ByName = true)] - private IFunction tilleringPropensity = null; - - /// - /// Tiller supply/demand ratio ratio slope. - /// - [Link(Type = LinkType.Child, ByName = true)] - private IFunction tillerSdSlope = null; - - /// - /// SLA Range. - /// - [Units("%")] - [Link(Type = LinkType.Child, ByName = true)] - private IFunction tillerSlaBound = null; - /// Subsequent tillers are slightly smaller - adjust that size using a percentage [Link(Type = LinkType.Child, ByName = true)] public IFunction VerticalTillerAdjustment = null; @@ -242,21 +148,6 @@ public class LeafCulms : Model [Description("Dynamic tillering enabled")] public bool DynamicTillering { get; set; } - /// - /// Number of tillers added. - /// - private double tillersAdded; - - /// - /// - /// - private double tillers; - - /// - /// Phenological stage, updated at end-of-day. - /// - private double stage; - /// /// /// @@ -282,16 +173,6 @@ public class LeafCulms : Model /// public double dltStressedLAI { get; set; } - /// - /// Specific leaf area. - /// - private double sla; - - /// - /// Leaf area index. - /// - private double lai { get { return leaf.LAI; } } - /// /// Number of leaves? /// @@ -302,11 +183,6 @@ public class LeafCulms : Model /// private List leafNo; - /// - /// Total plant leaf area. - /// - private double tpla; - // All variables below here existed in old sorghum. /// @@ -314,92 +190,11 @@ public class LeafCulms : Model /// public List Culms; - /// - /// Vertical adjustment. - /// - private double verticalAdjustment; - - /// - /// Number of calculated tillers? - /// - private double calculatedTillers; - - /// - /// Tiller supply factor. - /// - private double supply; - - /// - /// Tiller demand factor. - /// - private double demand; - - /// - /// Moving average of daily radiation during leaf 5 expansion. - /// - [Units("R/oCd")] - private List radiationValues; - - /// - /// Don't think this is used anywhere. - /// - /// - /// fixme: temporarily making this protected so it doesn't trigger an - /// unused variable warning. - /// - protected double avgRadiation; - - /// - /// Don't think this is used anywhere. - /// - /// - /// fixme: temporarily making this protected so it doesn't trigger an - /// unused variable warning. - /// - protected double thermalTimeCount; - /// /// Fixme /// private const int emergence = 3; - /// - /// Fixme - /// - private const int endJuv = 4; - - /// - /// Fixme - /// - private const int fi = 5; - - /// - /// Fixme - /// - private const int flag = 6; - - /// - /// Maximum LAI for tillering. Fixme - move to tree. - /// - private const double maxLAIForTillering = 0.325; - - /// - /// Leaf number at which to start aggregation of . - /// - private const int startThermalQuotientLeafNo = 3; - - /// - /// FTN is calculated after the emergence of this leaf number. - /// - private const int endThermalQuotientLeafNo = 5; - - private const double smm2sm = 1e-6; - - /// - /// Linear LAI. - /// - private double linearLAI; - /// Total TT required to get from emergence to floral init. [JsonIgnore] public double TTTargetFI { get; private set; } @@ -411,14 +206,7 @@ public class LeafCulms : Model /// public LeafCulms() { - verticalAdjustment = 0.1; - avgRadiation = 0.0; - calculatedTillers = 0.0; - thermalTimeCount = 0.0; - - linearLAI = 0.0; Culms = new List(); - //initialize(); } /// @@ -456,35 +244,17 @@ public void Initialize() TTEmergToFI = ttEmergToFI, Density = plant?.SowingData?.Population ?? 0, DltTT = dltTT, - AMaxS = aMaxSlope, - AMaxI = aMaxIntercept, - A0 = a0, - A1 = a1, - B0 = b0, - B1 = b1, - AMaxA = aMaxA, - AMaxB = aMaxB, - AMaxC = aMaxC, }; // Initialise Main - Culms.Add(new Culm(0, culmParams)); - tillersAdded = 0; - supply = 0; - demand = 0; - tillers = 0.0; TTTargetFI = 0; - //Culms[0]->initialize(); leafNo = Enumerable.Repeat(0d, 13).ToList(); //new List(phenology.Phases.Count); leafNo[emergence] = leafNoAtEmergence.Value(); FinalLeafNo = 0; dltLeafNo = 0; - tpla = 0; - radiationValues = new List(); - NLeaves = 0; } @@ -512,35 +282,35 @@ private void OnSowing(object sender, EventArgs e) plant.SowingData.BudNumber = CalculateFtn(); } - /// - /// Update daily variables. Shouldn't be called manually. - /// - /// Sender object. - /// Event arguments. - [EventSubscribe("EndOfDay")] - private void UpdateVars(object sender, EventArgs e) - { - if (!plant.IsAlive) - return; - - stage = phenology.Stage; - tillers = 0.0; - for (int i = 0; i < Culms.Count; ++i) - { - Culms[i].UpdateVars(); - tillers += Culms[i].Proportion; - } - tillers--; - - double gpla = lai / plant.SowingData.Population * 10000; - double spla = leaf.SenescedLai / plant.SowingData.Population * 10000; - tpla = gpla + spla; - - int iStage = (int)Math.Floor(stage); - if (iStage < leafNo.Count) - leafNo[(int)Math.Floor(stage)] += dltLeafNo; - NLeaves = leafNo.Sum(); - } + ///// + ///// Update daily variables. Shouldn't be called manually. + ///// + ///// Sender object. + ///// Event arguments. + //[EventSubscribe("EndOfDay")] + //private void UpdateVars(object sender, EventArgs e) + //{ + // if (!plant.IsAlive) + // return; + + // stage = phenology.Stage; + // tillers = 0.0; + // for (int i = 0; i < Culms.Count; ++i) + // { + // Culms[i].UpdateVars(); + // tillers += Culms[i].Proportion; + // } + // tillers--; + + // double gpla = lai / plant.SowingData.Population * 10000; + // double spla = leaf.SenescedLai / plant.SowingData.Population * 10000; + // tpla = gpla + spla; + + // int iStage = (int)Math.Floor(stage); + // if (iStage < leafNo.Count) + // leafNo[(int)Math.Floor(stage)] += dltLeafNo; + // NLeaves = leafNo.Sum(); + //} /// Event from sequencer telling us to do our potential growth. /// The sender. @@ -570,560 +340,6 @@ public double CalculateActualArea() return tillering.CalcActualLeafArea(dltStressedLAI); } - - /// - /// In old apsim, we update the stage variable of each plant part - /// immediately after the call to phenology::development(); - /// - /// This stage variable can probably be refactored out now - /// in favour of just using phenology.Stage, but I will - /// do a separate pull request for this to ensure that the - /// changes don't get masked by the effects of the tillering - /// implementation. - /// - /// Sender object. - /// Event arguments. - [EventSubscribe("PostPhenology")] - private void PostPhenology(object sender, EventArgs e) - { - stage = phenology.Stage; - } - - private double GetTTFi() - { - // fixme - return (double)this.FindByPath("[Phenology].TTEmergToFloralInit.Value()")?.Value; - } - - /// - /// Calculate leaf number. - /// - public void CalcLeafNo() - { - dltLeafNo = tillering.CalcLeafNumber(); - //var tmp = tillering.Name; - //if (DynamicTillering) - // CalcLeafNoDynamic(); - //else - // CalcLeafNoFixed(); - } - - private void CalcLeafNoDynamic() - { - //overriding this function to retain existing code on Leaf class, but changing this one to manage tillers and leaves - //first culm is the main one, that also provides timing for remaining tiller appearance - - // calculate final leaf number up to initiation - would finalLeafNo need a different calc for each culm? - if (Culms.Count > 0 && stage >= emergence) - { - //calc finalLeafNo for first culm (main), and then calc it's dltLeafNo - //add any new tillers and then calc each tiller in turn - if (stage <= fi) - { - Culms[0].calcFinalLeafNo(); - Culms[0].CulmNo = 0; - Culms[0].calculateLeafSizes(); - FinalLeafNo = Culms[0].FinalLeafNo; - } - double currentLeafNo = Culms[0].CurrentLeafNo; - double dltLeafNoMainCulm = Culms[0].calcLeafAppearance(); - dltLeafNo = dltLeafNoMainCulm; //updates nLeaves - double newLeafNo = Culms[0].CurrentLeafNo; - - CalcTillerNumber((int)Math.Floor(newLeafNo), (int)Math.Floor(currentLeafNo)); - CalcTillerAppearance((int)Math.Floor(newLeafNo), (int)Math.Floor(currentLeafNo)); - - for (int i = 1; i < (int)Culms.Count; ++i) - { - if (stage <= fi) - { - Culms[i].calcFinalLeafNo(); - Culms[i].calculateLeafSizes(); - } - Culms[i].calcLeafAppearance(); - } - } - } - - /// - /// Calculate leaf number. - /// - private void CalcLeafNoFixed() - { - //overriding this function to retain existing code on Leaf class, but changing this one to manage tillers and leaves - //first culm is the main one, that also provides timing for remaining tiller appearance - - // calculate final leaf number up to initiation - would finalLeafNo need a different calc for each culm? - - if (Culms.Count > 0 && stage >= emergence) - { - //calc finalLeafNo for first culm (main), and then calc it's dltLeafNo - //add any new tillers and then calc each tiller in turn - if (stage <= fi) - { - Culms[0].calcFinalLeafNo(); - Culms[0].CulmNo = 0; - FinalLeafNo = Culms[0].FinalLeafNo; - if (leafAreaCalcTypeSwitch == null) - Culms[0].calculateLeafSizes(); - else - Culms[0].CalcLeafSizes(); - } - - double currentLeafNo = Culms[0].CurrentLeafNo; - double dltLeafNoMainCulm = Culms[0].calcLeafAppearance(); - dltLeafNo = dltLeafNoMainCulm; //updates nLeaves - double newLeafNo = Culms[0].CurrentLeafNo; - - CalcTillerAppearance((int)Math.Floor(newLeafNo), (int)Math.Floor(currentLeafNo)); - - for (int i = 1; i < Culms.Count; i++) - { - if (stage <= fi) - { - Culms[i].calcFinalLeafNo(); - if (leafAreaCalcTypeSwitch == null) - Culms[i].calculateLeafSizes(); - else - Culms[i].CalcLeafSizes(); - } - Culms[i].calcLeafAppearance(); - } - } - } - - /// - /// Calculate potential area. For now, this is manually called by leaf. - /// - public void CalcPotentialArea() - { - dltPotentialLAI = 0.0; - dltStressedLAI = 0.0; - - if (stage >= emergence && stage <= flag) - { - // Fixme - this function can be simplified. Just need to double-check the effects of doing so. - if (leafAreaCalcTypeSwitch != null) - { - dltPotentialLAI = Culms[0].LeafAreaPotBellShapeCurve(leafNo.ToArray()); - dltStressedLAI = CalcStressedLeafArea(); - } - else - { - for (int i = 0; i < Culms.Count; ++i) - { - dltPotentialLAI += Culms[i].calcPotentialLeafArea(); - dltStressedLAI = CalcStressedLeafArea(); // dltPotentialLAI * totalStress(0-1) - } - } - } - } - - /// - /// Calculate dltLAI. For now, this is manually called by leaf. - /// - public void AreaActual() - { - if (DynamicTillering) - AreaActualDynamic(); - else - AreaActualFixed(); - } - - private void AreaActualDynamic() - { - // calculate new sla and see if it is less than slaMax - // if so then reduce tillers - - double eTT = ttEmergToFlag.Value(); - - if (stage > 4 && stage < 6) // if(stage >= endJuv && stage < flag)? - { - double stress = expansionStress.Value(); - double dmGreen = leaf.Live.Wt; - double dltDmGreen = leaf.potentialDMAllocation.Structural; - - if (dmGreen + dltDmGreen > 0.0) - sla = (lai + dltStressedLAI) / (dmGreen + dltDmGreen) * 10000; // (cm^2/g) - - // max SLN (thinnest leaf) possible using Reeves (1960's Kansas) SLA = 429.72 - 18.158 * LeafNo - double maxSLA = 429.72 - 18.158 * (NLeaves + dltLeafNo); - maxSLA *= ((100 - tillerSlaBound.Value()) / 100.0); // sla bound vary 30 - 40% - maxSLA = Math.Min(400, maxSLA); - maxSLA = Math.Max(150, maxSLA); - - // if(SLA > maxSLA && eTT < 400) // vary 400 -- Try flag - 3 leaves or 100dd - bool moreToAdd = (tillersAdded < calculatedTillers) && (linearLAI < maxLAIForTillering); - // if(SLA > maxSLA && eTT < 500 && !moreToAdd) // vary 400 -- Try flag - 3 leaves or 100dd - if (sla > maxSLA && (leafNo[0] + dltLeafNo) < FinalLeafNo && !moreToAdd) // vary 400 -- Try flag - 3 leaves or 100dd - { - double maxLaiPossible = maxSLA * (dmGreen + dltDmGreen) / 10000; - double remainingLaiAvailable = maxLaiPossible; - double dltLaiAcc = Culms[0].LeafArea * stress; - - remainingLaiAvailable -= Culms[0].TotalLAI;//main culm existing Lai - remainingLaiAvailable -= Culms[0].LeafArea * stress;//main culm - deltaLai (todays growth) - - // limit the decrease in tillering to 0.3 tillers per day - double accProportion = 0.0; - double maxTillerLoss = 0.4; - for (int i = 1; i < Culms.Count; i++) - { - double laiExisting = Culms[i].TotalLAI * Culms[i].Proportion; - double laiRequired = Culms[i].LeafArea * stress * Culms[i].Proportion; - if (remainingLaiAvailable < laiExisting + laiRequired && accProportion < maxTillerLoss) //can't grow all this culm - { - double propn = Math.Max(0.0, (remainingLaiAvailable / (laiRequired + laiExisting))); - double prevPRoportion = Culms[i].Proportion; - propn = Math.Max(propn, prevPRoportion - maxTillerLoss); - accProportion += propn; - - Culms[i].Proportion = Math.Min(propn, Culms[i].Proportion);//can't increase the proportion - - remainingLaiAvailable = 0; - dltLaiAcc += Culms[i].LeafArea * Culms[i].Proportion; - } - else - { - remainingLaiAvailable -= laiExisting + laiRequired; - dltLaiAcc += laiRequired; - } - } - leaf.DltLAI = dltLaiAcc; - } - else - leaf.DltLAI = dltStressedLAI; - - - } - leaf.DltLAI = dltStressedLAI; - - /* tLai = 0; - for(unsigned i=0;i < Culms.size();i++) - tLai += Culms[i]->getLeafArea()* Culms[i]->getProportion(); - double newSLA = (lai + tLai) / (dmGreen + dltDmGreen) * 10000; - */ - - - //dltLAI = tLai; - - // // if there is not enough carbon to meet the daily delta lai then reduce the fraction of the last tiller until slaMax is met - // if(stage >= endJuv && stage < flag) - // { - // double maxDltLai = dltDmGreen * slaMax * smm2sm; - // if(maxDltLai < dltStressedLAI) - // { - // reduceTillers(dltStressedLAI - maxDltLai); - // dltLAI = Min(dltStressedLAI,dltDmGreen * slaMax * smm2sm); - // } - // } - // else dltLAI = dltStressedLAI; - //// if (dltLAI < 0.001)dltLAI = 0.0; - } - - /// - /// Calculate DltLAI. Called manually by leaf for now. - /// - private void AreaActualFixed() - { - if (stage >= endJuv && stage < flag) - { - double dltDmGreen = leaf.potentialDMAllocation.Structural; - leaf.DltLAI = Math.Min(dltStressedLAI, dltDmGreen * slaMax.Value() * smm2sm); - double stress = expansionStress.Value(); - - if (leaf.Live.Wt + dltDmGreen > 0.0) - sla = (lai + dltStressedLAI) / (leaf.Live.Wt + dltDmGreen) * 10000; // (cm^2/g) - } - else - leaf.DltLAI = dltStressedLAI; - } - - /// - /// Calculate tiller appearance. - /// - /// - /// - public void CalcTillerAppearance(int newLeafNo, int currentLeafNo) - { - if (DynamicTillering) - CalcTillerAppearanceDynamic(newLeafNo, currentLeafNo); - else - CalcTillerAppearanceFixed(newLeafNo, currentLeafNo); - } - - private void CalcTillerAppearanceDynamic(int newLeafNo, int currentLeafNo) - { - //if there are still more tillers to add - //and the newleaf is greater than 3 - if (calculatedTillers > tillersAdded) - { - // calculate linear LAI - double pltsPerMetre = plant.SowingData.Population * plant.SowingData.RowSpacing / 1000.0 * plant.SowingData.SkipDensityScale; - linearLAI = pltsPerMetre * tpla / 10000.0; - - double laiToday = leaf.CalcLAI(); - bool newLeaf = newLeafNo > currentLeafNo; - //is it a new leaf, and it is > leaf 6 (leaf 5 appearance triggers initial tiller appeaance) - // bool newTiller = newLeaf && newLeafNo >= 6 && laiToday < maxLAIForTillering; - //bool newTiller = newLeaf && newLeafNo >= 6 && linearLAI < maxLAIForTillering; - bool newTiller = newLeafNo >= 6 && linearLAI < maxLAIForTillering; - double fractionToAdd = dltTT.Value() / appearanceRate1.Value(); - fractionToAdd = 0.2; - if (newTiller) - { - AddTiller(currentLeafNo, currentLeafNo - 1, fractionToAdd); - } - } - } - - private void CalcTillerAppearanceFixed(int newLeafNo, int currentLeafNo) - { - //if there are still more tillers to add - //and the newleaf is greater than 3 - if (plant.SowingData.BudNumber > tillersAdded) - { - //tiller emergence is more closely aligned with tip apearance, but we don't track tip, so will use ligule appearance - //could also use Thermal Time calcs if needed - //Environmental & Genotypic Control of Tillering in Sorghum ppt - Hae Koo Kim - //T2=L3, T3=L4, T4=L5, T5=L6 - - //logic to add new tillers depends on which tiller, which is defined by FTN (fertileTillerNo) - //this should be provided at sowing //what if fertileTillers == 1? - //2 tillers = T3 + T4 - //3 tillers = T2 + T3 + T4 - //4 tillers = T2 + T3 + T4 + T5 - //more than that is too many tillers - but will assume existing pattern for 3 and 4 - //5 tillers = T2 + T3 + T4 + T5 + T6 - - bool newLeaf = newLeafNo > currentLeafNo; - bool newTiller = newLeaf && newLeafNo >= 3; //is it a new leaf, and it is leaf 3 or more - if (newTiller) - { - //tiller 2 emergences with leaf 3, and then adds 1 each time - //not sure what I'm supposed to do with tiller 1 - //if there are only 2 tillers, then t2 is not present - T3 & T4 are - //if there is a fraction - between 2 and 3, - //this can be interpreted as a proportion of plants that have 2 and a proportion that have 3. - //to keep it simple, the fraction will be applied to the 2nd tiller - double leafAppearance = Culms.Count + 2; //first culm added will equal 3 - double fraction = 1.0; - if (plant.SowingData.BudNumber > 2 && plant.SowingData.BudNumber < 3 && leafAppearance < 4) - { - fraction = plant.SowingData.BudNumber % 1;// fmod(plant->getFtn(), 1); - //tillersAdded += fraction; - } - else - { - if (plant.SowingData.BudNumber - tillersAdded < 1) - fraction = plant.SowingData.BudNumber - tillersAdded; - //tillersAdded += 1; - } - - AddTiller(leafAppearance, currentLeafNo, fraction); - ////a new tiller is created with each new leaf, up the number of fertileTillers - //Culm* newCulm = new Culm(scienceAPI, plant, leafAppearance); - //newCulm->readParams(); - //newCulm->setCurrentLeafNo(leafAppearance-1); - //verticalAdjustment = aMaxVert; - //verticalAdjustment += (Culms.size() - 1) * 0.05; - //newCulm->setVertLeafAdj(verticalAdjustment); - //newCulm->setProportion(fraction); - //newCulm->calcFinalLeafNo(); - //newCulm->calcLeafAppearance(); - //newCulm->calculateLeafSizes(); - //Culms.push_back(newCulm); - - //bell curve distribution is adjusted horizontally by moving the curve to the left. - //This will cause the first leaf to have the same value as the nth leaf on the main culm. - //T3&T4 were defined during dicussion at initial tillering meeting 27/06/12 - //all others are an assumption - //T2 = 3 Leaves - //T3 = 4 Leaves - //T4 = 5 leaves - //T5 = 6 leaves - //T6 = 7 leaves - } - } - } - - /// - /// Calculate tiller number. - /// - /// - /// - public void CalcTillerNumber(int newLeafNo, int currentLeafNo) - { - //need to calculate the average R/oCd per day during leaf 5 expansion - if (newLeafNo == startThermalQuotientLeafNo) - { - double avgradn = weather.Radn / dltTT.Value(); - radiationValues.Add(avgradn); - } - - if (newLeafNo == endThermalQuotientLeafNo && currentLeafNo < endThermalQuotientLeafNo) - { - //the final tiller number (Ftn) is calculated after the full appearance of LeafNo 5 - when leaf 6 emerges. - //Calc Supply = R/oCd * LA5 * Phy5 - double L5Area = Culms[0].calcIndividualLeafSize(5); - double L9Area = Culms[0].calcIndividualLeafSize(9); - double Phy5 = Culms[0].getLeafAppearanceRate(FinalLeafNo - Culms[0].CurrentLeafNo); - - supply = MathUtilities.Average(radiationValues) * L5Area * Phy5; - //Calc Demand = LA9 - LA5 - demand = L9Area - L5Area; - //double tilleringPropensity = 2.3; - //double tillerSdSlope = 0.13; - double sd = supply / demand; - calculatedTillers = tilleringPropensity.Value() + tillerSdSlope.Value() * sd; - calculatedTillers = Math.Max(calculatedTillers, 0.0); - // calculatedTillers = min(calculatedTillers, 5.0); - - summary.WriteMessage(this, $"Calculated Tiller Number = {calculatedTillers}", MessageType.Diagnostic); - summary.WriteMessage(this, $"Calculated Supply = {supply}", MessageType.Diagnostic); - summary.WriteMessage(this, $"Calculated Demand = {demand}", MessageType.Diagnostic); - - AddInitialTillers(); - } - } - - /// - /// Add initial tillers. - /// - public void AddInitialTillers() - { - //tiller emergence is more closely aligned with tip apearance, but we don't track tip, so will use ligule appearance - //could also use Thermal Time calcs if needed - //Environmental & Genotypic Control of Tillering in Sorghum ppt - Hae Koo Kim - //T2=L3, T3=L4, T4=L5, T5=L6 - - //logic to add new tillers depends on which tiller, which is defined by FTN (calculatedTillers) - //2 tillers = T3 + T4 - //3 tillers = T2 + T3 + T4 - //4 tillers = T2 + T3 + T4 + T5 - //more than that is too many tillers - but will assume existing pattern for 3 and 4 - //5 tillers = T2 + T3 + T4 + T5 + T6 - - //T3, T4, T2, T1, T5, T6 - - //as the tiller calc requires leaf 5 to be fully expanded, we can add all tillers up to T5 immediately - - if (calculatedTillers > 2) //add 2, & 3 & 4 - { - AddTiller(3, 2, 1); - AddTiller(4, 1, 1); - AddTiller(5, 0, 1); - } - else if (calculatedTillers > 1) //add 3&4 - { - AddTiller(4, 1, 1); - AddTiller(5, 0, 1); - } - else if (calculatedTillers > 0) - { - AddTiller(4, 1, 1); //add 3 - } - - //bell curve distribution is adjusted horizontally by moving the curve to the left. - //This will cause the first leaf to have the same value as the nth leaf on the main culm. - //T3&T4 were defined during dicussion at initial tillering meeting 27/06/12 - //all others are an assumption - //T2 = 3 Leaves - //T3 = 4 Leaves - //T4 = 5 leaves - //T5 = 6 leaves - //T6 = 7 leaves - } - - /// - /// Add a tiller. - /// - /// - /// - /// - private void AddTiller(double leafAtAppearance, double Leaves, double fractionToAdd) - { - double fraction = 1; - if (calculatedTillers - tillersAdded < 1) - fraction = calculatedTillers - tillersAdded; - - // get number if tillers - // add fractionToAdd - // if new tiller is neded add one - // fraction goes to proportions - double tillerFraction = Culms.Last().Proportion; - //tillerFraction +=fractionToAdd; - fraction = tillerFraction + fractionToAdd - Math.Floor(tillerFraction); - //a new tiller is created with each new leaf, up the number of fertileTillers - if (tillerFraction + fractionToAdd > 1) - { - Culm newCulm = new Culm(leafAtAppearance, culmParams); - - //bell curve distribution is adjusted horizontally by moving the curve to the left. - //This will cause the first leaf to have the same value as the nth leaf on the main culm. - //T3&T4 were defined during dicussion at initial tillering meeting 27/06/12 - //all others are an assumption - //T2 = 3 Leaves - //T3 = 4 Leaves - //T4 = 5 leaves - //T5 = 6 leaves - //T6 = 7 leaves - newCulm.CulmNo = Culms.Count; - newCulm.CurrentLeafNo = 0;//currentLeaf); - verticalAdjustment = aMaxVert.Value() + (tillersAdded * aTillerVert.Value()); - newCulm.VertAdjValue = verticalAdjustment; - newCulm.Proportion = fraction; - newCulm.calcFinalLeafNo(); - newCulm.calcLeafAppearance(); - newCulm.calculateLeafSizes(); - Culms.Add(newCulm); - } - else - { - Culms.Last().Proportion = fraction; - } - tillersAdded += fractionToAdd; - } - - /// - /// Reduce tillers. - /// - /// - public void ReduceTillers(double reduceLAI) - { - // when there is not enough biomass reduce the proportion of the last tiller to compensate - double reduceArea = reduceLAI / plant.SowingData.Population * 10000; - // get the area of the last tiller - int nTillers = Culms.Count; - int lastTiller = Culms.Count - 1; - - double propn = Culms[lastTiller].Proportion; - if (propn == 0.0) - { - lastTiller--; - propn = Culms[lastTiller].Proportion; - } - double culmArea = 0.0; - // area of this tiller - List ls = Culms[lastTiller].LeafSizes; - for (int i = 0; i < ls.Count; i++) - culmArea += ls[i]; - - //culmArea *= propn; - // set the proportion - double newPropn = (culmArea * propn - reduceArea) / culmArea; - Culms[nTillers - 1].Proportion = newPropn; - } - - /// - /// Calculate stressed leaf area. - /// - /// - private double CalcStressedLeafArea() - { - return dltPotentialLAI * expansionStress.Value(); - } - private double CalculateFtn() { // Estimate tillering given latitude, density, time of planting and diff --git a/Models/PMF/Structure/Tillering/DynamicTillering.cs b/Models/PMF/Structure/Tillering/DynamicTillering.cs index 491e7c47d0..e990ce2bcc 100644 --- a/Models/PMF/Structure/Tillering/DynamicTillering.cs +++ b/Models/PMF/Structure/Tillering/DynamicTillering.cs @@ -1,6 +1,14 @@ -using Models.Core; +using APSIM.Shared.Utilities; +using Models.Core; +using Models.Functions; +using Models.Interfaces; using Models.PMF.Interfaces; +using Models.PMF.Organs; +using Models.PMF.Phen; +using SixLabors.ImageSharp; using System; +using System.Collections.Generic; +using System.Linq; namespace Models.PMF.Struct { @@ -13,146 +21,338 @@ namespace Models.PMF.Struct [ValidParent(ParentType = typeof(LeafCulms))] public class DynamicTillering : Model, ITilleringMethod { + /// The parent Plant + [Link] + Plant plant = null; + /// Culms on the leaf [Link] public LeafCulms culms = null; + /// The parent tilering class + [Link] + Phenology phenology = null; + + /// The parent tilering class + [Link] + SorghumLeaf leaf = null; + + /// The met data + [Link] + private IWeather metData = null; + + /// Culms on the leaf + [Link(Type = LinkType.Child, ByName = true)] + IFunction areaCalc = null; + + ///// Maximum SLA + //[Link(Type = LinkType.Child, ByName = true)] + //IFunction slaMax = null; + + /// Propoensity to Tiller + [Link(Type = LinkType.Child, ByName = true)] + IFunction propensityToTiller = null; + + /// Propoensity to Tiller Intercept + [Link(Type = LinkType.Child, ByName = true)] + IFunction tillerSdIntercept = null; + + /// Propsenity to Tiller Slope + [Link(Type = LinkType.Child, ByName = true)] + IFunction tillerSdSlope = null; + + /// LAI Value where tillers are no longer added + [Link(Type = LinkType.Child, ByName = true)] + IFunction maxLAIForTillerAddition = null; + + ///// LAI Value where tillers are no longer added + //[Link(Type = LinkType.Child, ByName = true)] + //IFunction tillerSlaBound = null; + + /// Number of Fertile Tillers at Harvest + public double FertileTillerNumber { get; private set; } + + /// Supply Demand Ratio used to calculate Tiller No + public double SupplyDemandRatio { get; private set; } + + private int floweringStage; + private int endJuvenilePhase; + private double tillersAdded; + private int startThermalQuotientLeafNo = 3; + private int endThermalQuotientLeafNo = 5; + private double plantsPerMetre; + private double linearLAI; + + private List radiationAverages = new List(); + + private bool beforeFlowering() + { + if (floweringStage < 1) floweringStage = phenology.EndStagePhaseIndex("Flowering"); + return phenology.BeforePhase(floweringStage); + } + private bool beforeEndJuvenileStage() + { + if (endJuvenilePhase < 1) endJuvenilePhase = phenology.StartStagePhaseIndex("EndJuvenile"); + return phenology.BeforePhase(endJuvenilePhase); + } + /// Calculate number of leaves public double CalcLeafNumber() + { + if (culms.Culms?.Count == 0) return 0.0; + if (!plant.IsEmerged) return 0.0; + + var currentLeafNo = culms.Culms[0].CurrentLeafNo; + double dltLeafNoMainCulm = 0.0; + if (beforeEndJuvenileStage()) + { + //ThermalTime Targets to EndJuv are not known until the end of the Juvenile Phase + //FinalLeafNo is not known until the TT Target is known - meaning the potential leaf sizes aren't known + culms.Culms.ForEach(c => c.UpdatePotentialLeafSizes(areaCalc as ICulmLeafArea)); + } + + dltLeafNoMainCulm = calcLeafAppearance(culms.Culms[0]); + culms.dltLeafNo = dltLeafNoMainCulm; + double newLeafNo = culms.Culms[0].CurrentLeafNo; + + //should there be any growth after flowering? + calcTillerAppearance((int)Math.Floor(newLeafNo), (int)Math.Floor(currentLeafNo)); + + for (int i = 1; i < culms.Culms.Count; i++) + { + calcLeafAppearance(culms.Culms[i]); + } + return dltLeafNoMainCulm; + } + + private double calcLeafAppearance(Culm culm) + { + var leavesRemaining = culms.FinalLeafNo - culm.CurrentLeafNo; + var leafAppearanceRate = culms.LeafAppearanceRate.ValueForX(leavesRemaining); + // if leaves are still growing, the cumulative number of phyllochrons or fully expanded leaves is calculated from thermal time for the day. + var dltLeafNo = MathUtilities.Bound(MathUtilities.Divide(phenology.thermalTime.Value(), leafAppearanceRate, 0), 0.0, leavesRemaining); + + culm.AddNewLeaf(dltLeafNo); + + return dltLeafNo; + } + void calcTillerNumber(int newLeafNo, int currentLeafNo) + { + //need to calculate the average R/oCd per day during leaf 5 expansion + if (newLeafNo == startThermalQuotientLeafNo) + { + double avgradn = metData.Radn / phenology.thermalTime.Value(); + radiationAverages.Add(avgradn); + } + // + if (newLeafNo == endThermalQuotientLeafNo && currentLeafNo < endThermalQuotientLeafNo) + { + //the final tiller number (Ftn) is calculated after the full appearance of LeafNo 5 - when leaf 6 emerges. + //Calc Supply = R/oCd * LA5 * Phy5 + var areaMethod = areaCalc as ICulmLeafArea; + double L5Area = areaMethod.CalculateIndividualLeafArea(5, culms.FinalLeafNo); + double L9Area = areaMethod.CalculateIndividualLeafArea(9, culms.FinalLeafNo); + double Phy5 = culms.Culms[0].getLeafAppearanceRate(culms.FinalLeafNo - culms.Culms[0].CurrentLeafNo); + + //Calc Demand = LA9 - LA5 + var demand = L9Area - L5Area; + var supply = radiationAverages.Average() * L5Area * Phy5; + + SupplyDemandRatio = supply / demand; + FertileTillerNumber = propensityToTiller.Value(); + var calculatedTillers = tillerSdIntercept.Value() + tillerSdSlope.Value() * SupplyDemandRatio; + FertileTillerNumber = Math.Max(FertileTillerNumber, 0.0); + + //char msg[120]; + //sprintf(msg, "Calculated Tiller Number = %.3f\n", calculatedTillers); + //scienceAPI.write(msg); + //sprintf(msg, "Calculated Supply = %.3f\n", supply); + //scienceAPI.write(msg); + //sprintf(msg, "Calculated Demand = %.3f\n", demand); + //scienceAPI.write(msg); + + AddInitialTillers(); + } + } + + void AddInitialTillers() { - ////overriding this function to retain existing code on Leaf class, but changing this one to manage tillers and leaves - ////first culm is the main one, that also provides timing for remaining tiller appearance + if (FertileTillerNumber <= 0) return; - //// calculate final leaf number up to initiation - would finalLeafNo need a different calc for each culm? - //if (Culms.Count > 0 && stage >= emergence) - //{ - // //calc finalLeafNo for first culm (main), and then calc it's dltLeafNo - // //add any new tillers and then calc each tiller in turn - // if (stage <= fi) - // { - // Culms[0].calcFinalLeafNo(); - // Culms[0].CulmNo = 0; - // Culms[0].calculateLeafSizes(); - // FinalLeafNo = Culms[0].FinalLeafNo; - // } - // double currentLeafNo = Culms[0].CurrentLeafNo; - // double dltLeafNoMainCulm = Culms[0].calcLeafAppearance(); - // dltLeafNo = dltLeafNoMainCulm; //updates nLeaves - // double newLeafNo = Culms[0].CurrentLeafNo; + if (FertileTillerNumber > 3) //initiate T2:2 & T3:1 + { + InitiateTiller(2, 1, 2); + tillersAdded = 1; // Reporting. + } - // CalcTillerNumber((int)Math.Floor(newLeafNo), (int)Math.Floor(currentLeafNo)); - // CalcTillerAppearance((int)Math.Floor(newLeafNo), (int)Math.Floor(currentLeafNo)); + } + void calcTillerAppearance(int newLeafNo, int currentLeafNo) + { + //if there are still more tillers to add + //and the newleaf is greater than 3 + // get number of tillers added so far - // for (int i = 1; i < (int)Culms.Count; ++i) - // { - // if (stage <= fi) - // { - // Culms[i].calcFinalLeafNo(); - // Culms[i].calculateLeafSizes(); - // } - // Culms[i].calcLeafAppearance(); - // } - //} - return 0.0; + if (tillersAdded >= FertileTillerNumber) return; + // calculate linear LAI - plantsPerMeter is calculated at sowing + //tpla is LAI/density - remove x density from plantspermetre calc? + linearLAI = plantsPerMetre * (leaf.LAI + leaf.SenescedLai) / 10000.0; + + if (linearLAI < maxLAIForTillerAddition.Value()) + { + var appRate = culms.Culms[0].getLeafAppearanceRate(5); + double fractionToAdd = Math.Min(phenology.thermalTime.Value() / appRate, FertileTillerNumber - tillersAdded); + AddTillerProportion(1, fractionToAdd); + tillersAdded += fractionToAdd; + + //AddTiller(leafAppearance, currentLeafNo, fraction); + } + } + + /// + /// Add a tiller. + /// + void InitiateTiller(int tillerNumber, double fractionToAdd, double initialLeaf) + { + double leafNoAtAppearance = 1.0; // DEBUG parameter? + double nTillersPresent = culms.Culms.Count - 1; + + Culm newCulm = new Culm(leafNoAtAppearance, culms.Culms[0].parameters); + + newCulm.CulmNo = tillerNumber; + newCulm.CurrentLeafNo = initialLeaf; + newCulm.VertAdjValue = culms.MaxVerticalTillerAdjustment.Value() + (tillersAdded * culms.VerticalTillerAdjustment.Value()); + newCulm.Proportion = fractionToAdd; + newCulm.FinalLeafNo = culms.Culms[0].FinalLeafNo; + //newCulm.calcLeafAppearance(); + newCulm.UpdatePotentialLeafSizes(areaCalc as ICulmLeafArea); + calcLeafAppearance(newCulm); + //newCulm.calculateLeafSizes(); + culms.Culms.Add(newCulm); + } + + /// + /// Add a tiller. + /// + /// + /// + private void AddTillerProportion(double leafAtAppearance, double fractionToAdd) + { + //Add a fraction of a tiller every day. + var lastCulm = culms.Culms.Last(); + double currentTillerFraction = lastCulm.Proportion; + + var tillerFraction = currentTillerFraction + fractionToAdd; + lastCulm.Proportion = Math.Min(1.0, tillerFraction); + + if (tillerFraction > 1) + { + InitiateTiller(lastCulm.CulmNo + 1, tillerFraction - 1.0, 1); + } + + tillersAdded += fractionToAdd; } /// calculate the potential leaf area public double CalcPotentialLeafArea() { + if (beforeFlowering()) + return areaCalc.Value(); return 0.0; } /// calculate the actual leaf area public double CalcActualLeafArea(double dltStressedLAI) { - // calculate new sla and see if it is less than slaMax - // if so then reduce tillers - return dltStressedLAI; -// double eTT = ttEmergToFlag.Value(); - -// if (stage > 4 && stage < 6) // if(stage >= endJuv && stage < flag)? -// { -// double stress = expansionStress.Value(); -// double dmGreen = leaf.Live.Wt; -// double dltDmGreen = leaf.potentialDMAllocation.Structural; - -// if (dmGreen + dltDmGreen > 0.0) -// sla = (lai + dltStressedLAI) / (dmGreen + dltDmGreen) * 10000; // (cm^2/g) - -// // max SLN (thinnest leaf) possible using Reeves (1960's Kansas) SLA = 429.72 - 18.158 * LeafNo -// double maxSLA = 429.72 - 18.158 * (NLeaves + dltLeafNo); -// maxSLA *= ((100 - tillerSlaBound.Value()) / 100.0); // sla bound vary 30 - 40% -// maxSLA = Math.Min(400, maxSLA); -// maxSLA = Math.Max(150, maxSLA); - -// // if(SLA > maxSLA && eTT < 400) // vary 400 -- Try flag - 3 leaves or 100dd -// bool moreToAdd = (tillersAdded < calculatedTillers) && (linearLAI < maxLAIForTillering); -// // if(SLA > maxSLA && eTT < 500 && !moreToAdd) // vary 400 -- Try flag - 3 leaves or 100dd -// if (sla > maxSLA && (leafNo[0] + dltLeafNo) < FinalLeafNo && !moreToAdd) // vary 400 -- Try flag - 3 leaves or 100dd -// { -// double maxLaiPossible = maxSLA * (dmGreen + dltDmGreen) / 10000; -// double remainingLaiAvailable = maxLaiPossible; -// double dltLaiAcc = Culms[0].LeafArea * stress; - -// remainingLaiAvailable -= Culms[0].TotalLAI;//main culm existing Lai -// remainingLaiAvailable -= Culms[0].LeafArea * stress;//main culm - deltaLai (todays growth) - -// // limit the decrease in tillering to 0.3 tillers per day -// double accProportion = 0.0; -// double maxTillerLoss = 0.4; -// for (int i = 1; i < Culms.Count; i++) -// { -// double laiExisting = Culms[i].TotalLAI * Culms[i].Proportion; -// double laiRequired = Culms[i].LeafArea * stress * Culms[i].Proportion; -// if (remainingLaiAvailable < laiExisting + laiRequired && accProportion < maxTillerLoss) //can't grow all this culm -// { -// double propn = Math.Max(0.0, (remainingLaiAvailable / (laiRequired + laiExisting))); -// double prevPRoportion = Culms[i].Proportion; -// propn = Math.Max(propn, prevPRoportion - maxTillerLoss); -// accProportion += propn; - -// Culms[i].Proportion = Math.Min(propn, Culms[i].Proportion);//can't increase the proportion - -// remainingLaiAvailable = 0; -// dltLaiAcc += Culms[i].LeafArea * Culms[i].Proportion; -// } -// else -// { -// remainingLaiAvailable -= laiExisting + laiRequired; -// dltLaiAcc += laiRequired; -// } -// } -// leaf.DltLAI = dltLaiAcc; -//} -// else -// leaf.DltLAI = dltStressedLAI; - - -// } -// leaf.DltLAI = dltStressedLAI; - - /* tLai = 0; - for(unsigned i=0;i < Culms.size();i++) - tLai += Culms[i]->getLeafArea()* Culms[i]->getProportion(); - double newSLA = (lai + tLai) / (dmGreen + dltDmGreen) * 10000; - */ - - - //dltLAI = tLai; - - // // if there is not enough carbon to meet the daily delta lai then reduce the fraction of the last tiller until slaMax is met - // if(stage >= endJuv && stage < flag) - // { - // double maxDltLai = dltDmGreen * slaMax * smm2sm; - // if(maxDltLai < dltStressedLAI) - // { - // reduceTillers(dltStressedLAI - maxDltLai); - // dltLAI = Min(dltStressedLAI,dltDmGreen * slaMax * smm2sm); - // } - // } - // else dltLAI = dltStressedLAI; - //// if (dltLAI < 0.001)dltLAI = 0.0; + return 0.0; + //// Calculate todays SLA and LAI. + //double todaysBiomass = dmGreen + dltDmGreen; + //var todaysLAI = culms.Culms.Sum(c => c.TotalLAI + c.Proportion); + + //var SLA = MathUtilities.Divide(todaysLAI,todaysBiomass,0) * 10000; // (cm^2/g) + + //// Calculate maximum possible SLA (thinnest leaf) + //// Max SLA possible using Reeves (1960's Kansas) SLA = 429.72 - 18.158 * LeafNo. + ////maxSLA = 429.72 - 18.158 * (nLeaves + dltLeafNo); + //var maxSLA = 429.72 - 18.158 * (culms.Culms[0].CurrentLeafNo); + //maxSLA *= ((100 - tillerSlaBound.Value()) / 100.0); // sla bound vary 30 - 40% + //maxSLA = Math.Min(400, maxSLA); + //maxSLA = Math.Max(150, maxSLA); + + //// If there is not enough biomass to support dltStressedLAI at slaMax, reduce todays lai contribution from each culm. + //double reductionFactor = 1.0; + //if (stage >= endJuv && stage < flag) + //{ + // reductionFactor = Math.Min((dltDmGreen * slaMax).ConvertSqM2SqMM() / dltStressedLAI, 1.0); + //} + //for (int i = 0; i < (int)Culms.size(); ++i) + //{ + // culms.Culms[i].calcDltLAI(reductionFactor); + //} + //dltLAI = dltStressedLAI * reductionFactor; + + //// Reduce tillers if SLA is above maxSLA and conditions are right. + + //// Don't reduce tillers if we are still adding them. + //bool moreTillersToAdd = (tillersAdded < FertileTillerNumber) && (linearLAI < maxLAIForTillerAddition); + //double nLeaves = culms.Culms[0].CurrentLeafNo; + + //// See if there are any active tillers to reduce! + //int lastActiveTiller = 0; + //for (int i = 1; i < Culms.size(); i++) + //{ + // if (Culms[i]->getProportion() > 0.0) + // lastActiveTiller++; + //} + + //if (!moreTillersToAdd && stage <= flag && lastActiveTiller > 0) + //// if (!moreTillersToAdd && Culms[lastActiveTiller]->getCurrentLeafNo() < 6 && lastActiveTiller > 0) + //{ + + // // Calculate todays SLA and LAI. + // double todaysBiomass = dmGreen + dltDmGreen; + // double todaysLAI = 0; + // for (int i = 0; i < Culms.size(); i++) + // { + // todaysLAI += Culms[i]->getTotalLAI() * Culms[i]->getProportion(); + // } + // if (todaysBiomass > 0.0) + // SLA = todaysLAI / todaysBiomass * 10000; // (cm^2/g) + + // // Reduce tillers if SLA > maxSLA + // if (SLA > maxSLA) + // { + // // How much LAI can maxSLA support? + // double maxSlaLai = maxSLA * todaysBiomass / 10000; + // double laiReduction = todaysLAI - maxSlaLai; + + // // Achieve this maxSlaLai by reducing the proportion of tillers, starting at the last tiller. + // // What proportion of the last active tiller (lat) is the laiReduction? + // // Limit the decrease in tillering to 0.3 tillers per day. + // double latPropn = Min(laiReduction / Culms[lastActiveTiller]->getTotalLAI(), 0.3); + // double newLatProporn = Max(Culms[lastActiveTiller]->getProportion() - latPropn, 0); + + // Culms[lastActiveTiller]->setProportion(newLatProporn); + // } + //} + + } + /// Called when crop is sowed + /// The sender. + /// The instance containing the event data. + [EventSubscribe("PlantSowing")] + protected void OnPlantSowing(object sender, SowingParameters data) + { + if (data.Plant == plant) + { + radiationAverages = new List(); + plantsPerMetre = data.RowSpacing / 1000.0 * data.SkipDensityScale; + //plantsPerMetre = data.Population * data.RowSpacing / 1000.0 * data.SkipDensityScale; + + FertileTillerNumber = data.BudNumber; + tillersAdded = 0.0; + } + } } } diff --git a/Models/PMF/Structure/Tillering/FixedTillering.cs b/Models/PMF/Structure/Tillering/FixedTillering.cs index fc8d0654cd..7bd0a756ea 100644 --- a/Models/PMF/Structure/Tillering/FixedTillering.cs +++ b/Models/PMF/Structure/Tillering/FixedTillering.cs @@ -129,41 +129,32 @@ void calcTillerAppearance(int newLeafNo, int currentLeafNo) //if there are still more tillers to add and the newleaf is greater than 3 if (tillersAdded >= FertileTillerNumber) return; - + //tiller emergence is more closely aligned with tip apearance, but we don't track tip, so will use ligule appearance + //could also use Thermal Time calcs if needed + //Environmental & Genotypic Control of Tillering in Sorghum ppt - Hae Koo Kim + //T2=L3, T3=L4, T4=L5, T5=L6 + + //logic to add new tillers depends on which tiller, which is defined by FTN (fertileTillerNo) + //this should be provided at sowing + //2 tillers = T3 + T4 + //3 tillers = T2 + T3 + T4 + //4 tillers = T2 + T3 + T4 + T5 + //more than that is too many tillers - but will assume existing pattern for 3 and 4 + //5 tillers = T2 + T3 + T4 + T5 + T6 + + double leafAppearance = culms.Culms.Count + 2; //first culm added will equal 3 + double fraction = 1.0; + + if (FertileTillerNumber > 2 && FertileTillerNumber < 3 && leafAppearance < 4) + { + fraction = FertileTillerNumber % 1; + } + else { - //tiller emergence is more closely aligned with tip apearance, but we don't track tip, so will use ligule appearance - //could also use Thermal Time calcs if needed - //Environmental & Genotypic Control of Tillering in Sorghum ppt - Hae Koo Kim - //T2=L3, T3=L4, T4=L5, T5=L6 - - //logic to add new tillers depends on which tiller, which is defined by FTN (fertileTillerNo) - //this should be provided at sowing //what if fertileTillers == 1? - //2 tillers = T3 + T4 - //3 tillers = T2 + T3 + T4 - //4 tillers = T2 + T3 + T4 + T5 - //more than that is too many tillers - but will assume existing pattern for 3 and 4 - //5 tillers = T2 + T3 + T4 + T5 + T6 - - //tiller 2 emergences with leaf 3, and then adds 1 each time - //not sure what I'm supposed to do with tiller 1 - //if there are only 2 tillers, then t2 is not present - T3 & T4 are - //if there is a fraction - between 2 and 3, - //this can be interpreted as a proportion of plants that have 2 and a proportion that have 3. - //to keep it simple, the fraction will be applied to the 2nd tiller - double leafAppearance = culms.Culms.Count + 2; //first culm added will equal 3 - double fraction = 1.0; - - if (FertileTillerNumber > 2 && FertileTillerNumber < 3 && leafAppearance < 4) - { - fraction = FertileTillerNumber % 1; - } - else - { - if (FertileTillerNumber - tillersAdded < 1) - fraction = FertileTillerNumber - tillersAdded; - } - AddTiller(leafAppearance, currentLeafNo, fraction); + if (FertileTillerNumber - tillersAdded < 1) + fraction = FertileTillerNumber - tillersAdded; } + AddTiller(leafAppearance, currentLeafNo, fraction); } /// /// Add a tiller. diff --git a/Tests/UnderReview/Sorghum/Sorghum.apsimx b/Tests/UnderReview/Sorghum/Sorghum.apsimx index 979065ceb2..9db37d2d5a 100644 --- a/Tests/UnderReview/Sorghum/Sorghum.apsimx +++ b/Tests/UnderReview/Sorghum/Sorghum.apsimx @@ -1,6 +1,6 @@ { "$type": "Models.Core.Simulations, Models", - "ExplorerWidth": 326, + "ExplorerWidth": 285, "Version": 147, "Name": "Simulations", "Children": [ @@ -33605,10312 +33605,6 @@ ], "Enabled": true, "ReadOnly": false - }, - { - "$type": "Models.Core.Folder, Models", - "ShowInDocs": false, - "GraphsPerPage": 6, - "Name": "Sensibility", - "Children": [ - { - "$type": "Models.Memo, Models", - "Text": "Need to verify that these sensibility tests are actually sensible. They were mostly adapted from the other validation files.", - "Name": "readme", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Core.Simulation, Models", - "IsRunning": false, - "Descriptors": null, - "Name": "Continuous_Sorghum", - "Children": [ - { - "$type": "Models.Clock, Models", - "Start": "1996-12-01T00:00:00", - "End": "1998-07-01T00:00:00", - "Name": "Clock", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Summary, Models", - "Verbosity": 100, - "Name": "Summary", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Climate.Weather, Models", - "ConstantsFile": null, - "FileName": "%root%\\Examples\\WeatherFiles\\Dalby.met", - "ExcelWorkSheetName": "", - "Name": "Weather", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.Arbitrator.SoilArbitrator, Models", - "Name": "SoilArbitrator", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Core.Zone, Models", - "Area": 1.0, - "Slope": 0.0, - "AspectAngle": 0.0, - "Altitude": 50.0, - "Name": "Paddock", - "Children": [ - { - "$type": "Models.Report, Models", - "VariableNames": [ - "GrainTempFactor", - "GrainTempFactor" - ], - "EventNames": null, - "GroupByVariableName": null, - "Name": "DailyReport", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Report, Models", - "VariableNames": null, - "EventNames": [ - "[Sorghum].Harvesting" - ], - "GroupByVariableName": null, - "Name": "HarvestReport", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Core.Folder, Models", - "ShowInDocs": false, - "GraphsPerPage": 6, - "Name": "Manager folder", - "Children": [ - { - "$type": "Models.Manager, Models", - "Code": "using APSIM.Shared.Utilities;\r\nusing Models.PMF;\r\nusing Models.Core;\r\nusing System;\r\n\r\nnamespace Models\r\n{\r\n [Serializable]\r\n public class Script : Model\r\n {\r\n [Description(\"Enter sowing date (dd-MMM) : \")]\r\n public string Date { get; set; }\r\n\r\n [Description(\"Enter sowing density (plants/m2) : \")]\r\n public double Density { get; set; }\r\n\r\n [Description(\"Enter sowing depth (mm) : \")]\r\n public double Depth { get; set; }\r\n\r\n [Description(\"Enter cultivar : \")]\r\n [Display(Type = DisplayType.CultivarName)]\r\n public string Cultivar { get; set; } // QL41xQL36\r\n\r\n [Description(\"Enter row spacing (mm) : \")]\r\n public double RowSpacing { get; set; }\r\n\r\n [Description(\"Enter skip row configuration : \")]\r\n public RowConfigurationType RowConfiguration { get; set; }\r\n\r\n [Description(\"Enter Fertile Tiller No. : \")]\r\n public double Ftn { get; set; }\r\n\r\n public enum RowConfigurationType \r\n {\r\n solid, single, _double /*replaces double*/\r\n }\r\n\r\n [Link]\r\n private Zone paddock;\r\n\r\n [Link]\r\n private Clock clock;\r\n\r\n [Link]\r\n private IPlant crop;\r\n\r\n [EventSubscribe(\"DoManagement\")]\r\n private void OnDoManagement(object sender, EventArgs e)\r\n {\r\n if (DateUtilities.DatesEqual(Date, clock.Today))\r\n {\r\n double population = Density * paddock.Area;\r\n crop.Sow(Cultivar, population, Depth, RowSpacing, budNumber: Ftn, rowConfig: (double)RowConfiguration);\r\n }\r\n }\r\n }\r\n}\r\n", - "Parameters": [ - { - "Key": "Date", - "Value": "09-Jan" - }, - { - "Key": "Density", - "Value": "10" - }, - { - "Key": "Depth", - "Value": "30" - }, - { - "Key": "Cultivar", - "Value": "QL41xQL36" - }, - { - "Key": "RowSpacing", - "Value": "500" - }, - { - "Key": "RowConfiguration", - "Value": "solid" - }, - { - "Key": "Ftn", - "Value": "0" - } - ], - "Name": "Sow SkipRow on a fixed date", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Manager, Models", - "Code": "using Models.PMF;\r\nusing Models.Core;\r\nusing System;\r\n\r\nnamespace Models\r\n{\r\n [Serializable]\r\n\r\n public class Script : Model\r\n {\r\n [Link]\r\n private Clock clock;\r\n\r\n [Link]\r\n private IPlant crop;\r\n\r\n [EventSubscribe(\"EndOfDay\")]\r\n private void OnDoCalculations(object sender, EventArgs e)\r\n {\r\n if (crop.IsReadyForHarvesting)\r\n {\r\n crop.Harvest();\r\n crop.EndCrop();\r\n }\r\n /*\r\n \r\n\r\n if [crop].StageName = 'harvest_ripe' or [crop].plant_status = 'dead' then\r\n [crop] harvest\r\n [crop] end_crop\r\n endif\r\n\r\n \r\n */\r\n }\r\n }\r\n}\r\n", - "Parameters": [], - "Name": "Harvesting rule", - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Operations, Models", - "Operation": [ - { - "$type": "Models.Operation, Models", - "Date": "1997-01-09", - "Action": "[Irrigation].Apply(52);", - "Enabled": true - }, - { - "$type": "Models.Operation, Models", - "Date": "1997-01-16", - "Action": "[Irrigation].Apply(36);", - "Enabled": true - }, - { - "$type": "Models.Operation, Models", - "Date": "1997-01-21", - "Action": "[Irrigation].Apply(18);", - "Enabled": true - }, - { - "$type": "Models.Operation, Models", - "Date": "1997-01-29", - "Action": "[Irrigation].Apply(20);", - "Enabled": true - }, - { - "$type": "Models.Operation, Models", - "Date": "1997-02-07", - "Action": "[Irrigation].Apply(14);", - "Enabled": true - }, - { - "$type": "Models.Operation, Models", - "Date": "1997-03-13", - "Action": "[Irrigation].Apply(30);", - "Enabled": true - }, - { - "$type": "Models.Operation, Models", - "Date": "1997-03-21", - "Action": "[Irrigation].Apply(45);", - "Enabled": true - }, - { - "$type": "Models.Operation, Models", - "Date": "1997-04-10", - "Action": "[Irrigation].Apply(27);", - "Enabled": true - }, - { - "$type": "Models.Operation, Models", - "Date": "1997-04-17", - "Action": "[Irrigation].Apply(42);", - "Enabled": true - }, - { - "$type": "Models.Operation, Models", - "Date": "1997-05-02", - "Action": "[Irrigation].Apply(27);", - "Enabled": true - }, - { - "$type": "Models.Operation, Models", - "Date": "1996-12-20", - "Action": "[Fertiliser].Apply(33, Fertiliser.Types.NO3N, 50);", - "Enabled": true - }, - { - "$type": "Models.Operation, Models", - "Date": "1996-12-23", - "Action": "[Fertiliser].Apply(0, Fertiliser.Types.NO3N, 50);", - "Enabled": true - }, - { - "$type": "Models.Operation, Models", - "Date": "1996-12-23", - "Action": "[Fertiliser].Apply(119, Fertiliser.Types.NO3N, 50);", - "Enabled": true - }, - { - "$type": "Models.Operation, Models", - "Date": "1997-02-12", - "Action": "[Fertiliser].Apply(59, Fertiliser.Types.NO3N, 50);", - "Enabled": true - }, - { - "$type": "Models.Operation, Models", - "Date": "1997-03-21", - "Action": "[Fertiliser].Apply(59, Fertiliser.Types.NO3N, 50);", - "Enabled": true - } - ], - "Name": "Operations", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Irrigation, Models", - "Name": "Irrigation", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Fertiliser, Models", - "ResourceName": "Fertiliser", - "Name": "Fertiliser", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.MicroClimate, Models", - "a_interception": 0.0, - "b_interception": 1.0, - "c_interception": 0.0, - "d_interception": 0.0, - "SoilHeatFluxFraction": 0.4, - "MinimumHeightDiffForNewLayer": 0.0, - "NightInterceptionFraction": 0.5, - "ReferenceHeight": 2.0, - "Name": "MicroClimate", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.Soil, Models", - "RecordNumber": 0, - "ASCOrder": null, - "ASCSubOrder": null, - "SoilType": "HMM", - "LocalName": null, - "Site": "HRS", - "NearestTown": "Unknown", - "Region": "SE Queensland", - "State": null, - "Country": null, - "NaturalVegetation": "Unknown", - "ApsoilNumber": null, - "Latitude": 0.0, - "Longitude": 0.0, - "LocationAccuracy": null, - "YearOfSampling": null, - "DataSource": null, - "Comments": null, - "Name": "HRS", - "Children": [ - { - "$type": "Models.Soils.Physical, Models", - "Depth": [ - "0-10", - "10-20", - "20-40", - "40-60", - "60-80", - "80-100", - "100-120", - "120-140", - "140-160", - "160-180" - ], - "Thickness": [ - 100.0, - 100.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0 - ], - "ParticleSizeClay": null, - "ParticleSizeSand": null, - "ParticleSizeSilt": null, - "Rocks": null, - "Texture": null, - "BD": [ - 1.34, - 1.34, - 1.33, - 1.38, - 1.4, - 1.55, - 1.59, - 1.63, - 1.66, - 1.68 - ], - "AirDry": [ - 0.08, - 0.19, - 0.23, - 0.26, - 0.26, - 0.28, - 0.25, - 0.28, - 0.3, - 0.31 - ], - "LL15": [ - 0.226, - 0.226, - 0.258, - 0.27, - 0.268, - 0.304, - 0.335, - 0.33, - 0.32, - 0.33 - ], - "DUL": [ - 0.42, - 0.42, - 0.46, - 0.46, - 0.43, - 0.4, - 0.37, - 0.33, - 0.32, - 0.33 - ], - "SAT": [ - 0.45, - 0.45, - 0.48, - 0.47, - 0.45, - 0.41, - 0.38, - 0.37, - 0.37, - 0.36 - ], - "KS": null, - "BDMetadata": null, - "AirDryMetadata": null, - "LL15Metadata": null, - "DULMetadata": null, - "SATMetadata": null, - "KSMetadata": null, - "RocksMetadata": null, - "TextureMetadata": null, - "ParticleSizeSandMetadata": null, - "ParticleSizeSiltMetadata": null, - "ParticleSizeClayMetadata": null, - "Name": "Physical", - "Children": [ - { - "$type": "Models.Soils.SoilCrop, Models", - "LL": [ - 0.226, - 0.226, - 0.258, - 0.27, - 0.268, - 0.304, - 0.335, - 0.33, - 0.32, - 0.33 - ], - "KL": [ - 0.07, - 0.07, - 0.07, - 0.07, - 0.06, - 0.06, - 0.06, - 0.05, - 0.05, - 0.04 - ], - "XF": [ - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0 - ], - "LLMetadata": null, - "KLMetadata": null, - "XFMetadata": null, - "Name": "SorghumSoil", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.WaterModel.WaterBalance, Models", - "SummerDate": "1-Nov", - "SummerU": 1.5, - "SummerCona": 6.5, - "WinterDate": "1-Apr", - "WinterU": 1.5, - "WinterCona": 6.5, - "DiffusConst": 40.0, - "DiffusSlope": 16.0, - "Salb": 0.2, - "CN2Bare": 85.0, - "CNRed": 20.0, - "CNCov": 0.8, - "DischargeWidth": "NaN", - "CatchmentArea": "NaN", - "Thickness": [ - 100.0, - 100.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0 - ], - "SWCON": [ - 0.3, - 0.3, - 0.3, - 0.3, - 0.3, - 0.3, - 0.3, - 0.3, - 0.3, - 0.3 - ], - "KLAT": null, - "ResourceName": "WaterBalance", - "Name": "SoilWater", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.SoilNitrogen, Models", - "fom_types": [ - "default", - "manure", - "mucuna", - "lablab", - "shemp", - "stable" - ], - "fract_carb": [ - 0.2, - 0.3, - 0.54, - 0.57, - 0.45, - 0.0 - ], - "fract_cell": [ - 0.7, - 0.3, - 0.37, - 0.37, - 0.47, - 0.1 - ], - "fract_lign": [ - 0.1, - 0.4, - 0.09, - 0.06, - 0.08, - 0.9 - ], - "NPartitionApproach": 0, - "Name": "SoilNitrogen", - "Children": [ - { - "$type": "Models.Soils.SoilNitrogenNO3, Models", - "Name": "NO3", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.SoilNitrogenNH4, Models", - "Name": "NH4", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.SoilNitrogenUrea, Models", - "Name": "Urea", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.Organic, Models", - "Depth": [ - "0-10", - "10-20", - "20-40", - "40-60", - "60-80", - "80-100", - "100-120", - "120-140", - "140-160", - "160-180" - ], - "FOMCNRatio": 50.0, - "Thickness": [ - 100.0, - 100.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0 - ], - "Carbon": [ - 1.19, - 0.59, - 0.45, - 0.3, - 0.2, - 0.16, - 0.17, - 0.17, - 0.17, - 0.17 - ], - "SoilCNRatio": [ - 12.5, - 12.5, - 12.5, - 12.5, - 12.5, - 12.5, - 12.5, - 12.5, - 12.5, - 12.5 - ], - "FBiom": [ - 0.05, - 0.02, - 0.01, - 0.01, - 0.01, - 0.01, - 0.01, - 0.05, - 0.02, - 0.01 - ], - "FInert": [ - 0.45, - 0.6, - 0.75, - 0.9, - 0.9, - 0.9, - 0.9, - 0.9, - 0.9, - 0.9 - ], - "FOM": [ - 260.58740315916066, - 220.5824745109322, - 158.0542495509277, - 113.25081857248298, - 81.14775745529565, - 58.14490899956697, - 41.66264784865344, - 29.852591664969907, - 21.390316629725067, - 15.32683160828522 - ], - "CarbonMetadata": null, - "FOMMetadata": null, - "Name": "Organic", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.Chemical, Models", - "Depth": [ - "0-10", - "10-20", - "20-40", - "40-60", - "60-80", - "80-100", - "100-120", - "120-140", - "140-160", - "160-180" - ], - "Thickness": [ - 100.0, - 100.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0 - ], - "NO3N": [ - 10.4, - 1.6329999999999996, - 1.2330000000000008, - 0.9, - 1.1, - 1.4670000000000005, - 3.6329999999999996, - 5.667000000000001, - 5.8, - 7.267000000000003 - ], - "NH4N": [ - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1 - ], - "PH": [ - 6.3, - 6.4, - 6.5, - 6.6, - 6.6, - 6.5, - 6.5, - 6.5, - 6.5, - 6.5 - ], - "CL": null, - "EC": null, - "ESP": null, - "LabileP": null, - "UnavailableP": null, - "ECMetadata": null, - "CLMetadata": null, - "ESPMetadata": null, - "PHMetadata": null, - "Name": "Chemical", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.Sample, Models", - "Depth": [ - "0-10", - "10-20", - "20-40", - "40-60", - "60-80", - "80-100", - "100-120", - "120-140", - "140-160", - "160-180" - ], - "Thickness": [ - 100.0, - 100.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0 - ], - "NO3": null, - "NH4": null, - "LabileP": null, - "UnavailableP": null, - "SW": [ - 0.235, - 0.252, - 0.27, - 0.3, - 0.268, - 0.304, - 0.335, - 0.33, - 0.32, - 0.33 - ], - "OC": null, - "EC": null, - "CL": null, - "ESP": null, - "PH": null, - "SWUnits": 0, - "OCUnits": 0, - "PHUnits": 0, - "Name": "Initial water", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.CERESSoilTemperature, Models", - "Name": "Temperature", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.PMF.Plant, Models", - "ResourceName": "Sorghum", - "Name": "Sorghum", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Surface.SurfaceOrganicMatter, Models", - "InitialResidueName": "wheat_stubble", - "InitialResidueType": "wheat", - "InitialResidueMass": 0.0, - "InitialStandingFraction": 0.0, - "InitialCPR": 0.0, - "InitialCNR": 80.0, - "ResourceName": "SurfaceOrganicMatter", - "Name": "SurfaceOrganicMatter", - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Core.Folder, Models", - "ShowInDocs": false, - "GraphsPerPage": 6, - "Name": "Graphs", - "Children": [ - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "OrganBiomass", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16736653, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "LeafGreenWt", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "LeafWt710", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "StemGreenWt", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "StemWt710", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -2793984, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "RootGreenWt", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "RootWt710", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -3376729, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "RachisGreenWt", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "RachisWt710", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16736653, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "LeafGreenWt", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "LeafWtPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "StemGreenWt", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "StemWtPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -2793984, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "RootGreenWt", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "RootWtPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -3376729, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "RachisGreenWt", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "RachisWtPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "OrganN", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16736653, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "LeafGreenN", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "LeafN710", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "StemGreenN", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "StemN710", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -2793984, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "RootGreenN", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "RootN710", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -3376729, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "RachisGreenN", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "RachisN710", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16736653, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "LeafGreenN", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "LeafNPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "StemGreenN", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "StemNPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -2793984, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "RootGreenN", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "RootNPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -3376729, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "RachisGreenN", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "RachisNPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Core.Folder, Models", - "ShowInDocs": false, - "GraphsPerPage": 6, - "Name": "N", - "Children": [ - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "Leaf", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "LeafGreenN", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "LeafNPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "LeafGreenN", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "LeafN710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "Stem", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "StemGreenN", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "StemNPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "StemGreenN", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "StemN710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "Root", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "RootGreenN", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "RootNPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "RootGreenN", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "RootN710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "Rachis", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "RachisGreenN", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "RachisNPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "RachisGreenN", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "RachisN710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "Grain", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "GrainGreenN", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "GrainNPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "GrainGreenN", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "RachisN710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "BiomassN", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "BiomassN", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "LeafNPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "biomass_n", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "LeafN710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Core.Folder, Models", - "ShowInDocs": false, - "GraphsPerPage": 6, - "Name": "DM", - "Children": [ - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "Leaf", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "LeafGreenWt", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "LeafWtPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "LeafGreenWt", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "LeafWt710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "Stem", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "StemGreenWt", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "StemWtPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "StemGreenWt", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "StemWt710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "Root", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "RootGreenWt", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "RootWtPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "RootGreenWt", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "RootWt710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "Rachis", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "RachisGreenWt", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "RachisWtPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "RachisGreenWt", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "RachisWt710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "Grain", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "GrainGreenWt", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "GrainWtPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "GrainGreenWt", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "RachisWt710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Core.Folder, Models", - "ShowInDocs": false, - "GraphsPerPage": 6, - "Name": "Phenology", - "Children": [ - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "Stage", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "Stage", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "StagePMF", - "Children": [ - { - "$type": "Models.EventNamesOnGraph, Models", - "ColumnName": "Sorghum.Phenology.CurrentStageName", - "SimulationName": null, - "Name": "EventNamesOnGraph", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "Stage", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "Stage710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "dltTT", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "Arbitrator.DltTT", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "dltTTPMF", - "Children": [ - { - "$type": "Models.EventNamesOnGraph, Models", - "ColumnName": "Sorghum.Phenology.CurrentStageName", - "SimulationName": null, - "Name": "EventNamesOnGraph", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "DeltaTT", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "dltTT710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "dltTTFM", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "Phenology.DltTTFM", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "dltTTFMPMF", - "Children": [ - { - "$type": "Models.EventNamesOnGraph, Models", - "ColumnName": "Sorghum.Phenology.CurrentStageName", - "SimulationName": null, - "Name": "EventNamesOnGraph", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "DeltaTTFM", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "dltTTFM710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Core.Folder, Models", - "ShowInDocs": false, - "GraphsPerPage": 6, - "Name": "Misc", - "Children": [ - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "Stress", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "Leaf.NitrogenPhenoStress", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "nPhenoPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "nfact_pheno", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "nPheno710", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16736653, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "Phenology.PhenoWaterStress", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "WatPhenoPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -3376729, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "swdef_pheno", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "WatPheno710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Core.Folder, Models", - "ShowInDocs": false, - "GraphsPerPage": 6, - "Name": "Leaf", - "Children": [ - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "LeafNo", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "Structure.CurrentLeafNo", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "LeafNoPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "LeafNo", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "LeafNo710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "LeafSLN", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "Leaf.SLN", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "slnPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "SLN", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "sln710", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16736653, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "Leaf.LAI", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "LaiPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -3376729, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "LAI", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "Lai710", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -2793984, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "LeafGreenN", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "LeafNPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -990142, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "LeafGreenN", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "LeafN710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "LAI", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "Leaf.LAI", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "LaiPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "LAI", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "Lai710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "CoverGreen", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "Leaf.CoverGreen", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "CoverGreenPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "cover_green", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "CoverGreen710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "CoverTotal", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "Leaf.CoverTotal", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "CoverTotalPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "cover_tot", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "CoverTotal710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "TPLA", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "TPLA", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "LaiPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "TPLA", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "Lai710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Core.Folder, Models", - "ShowInDocs": false, - "GraphsPerPage": 6, - "Name": "Root", - "Children": [ - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "WSupply", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "Arbitrator.WatSupply", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "WSupplyPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "sw_supply", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "WSupply710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "WUptake", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "Arbitrator.WAllocated", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "WUptakePMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "sum(sw_uptake)", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "WUptake710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "Depth", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "Root.Depth", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "DepthPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "RootDepth", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "Depth710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "NUptake", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "Root.NTakenUp", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "NUptakePMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "n_total_uptake", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "NUptake710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "NMassFlow", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "Arbitrator.NMassFlowSupply", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "NMassFlowPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "n_massflow_uptake", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "NMassFlow710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "NDiffusion", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "Arbitrator.NDiffusionSupply", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "NDiffusionPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "n_diffusion_uptake", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "NDiffusion710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "SupplyDemand", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "Arbitrator.N.SupplyDemandRatioN", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "SupplyDemandPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "n_sd_ratio", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "SupplyDemand710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "NDemand", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "PlantDemand", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "NDemandPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "no3_demand", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "NDemand710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "NSupply", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "nSupply", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "NSupplyPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "n_supply_soil", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "NSupply710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Core.Folder, Models", - "ShowInDocs": false, - "GraphsPerPage": 6, - "Name": "Folder", - "Children": [ - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "RootLength1", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "Root.RootLength(1)", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": false, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": null, - "Name": "RootLength1PMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "RootLength(1)", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": false, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": null, - "Name": "RootLength1PMF710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Core.Folder, Models", - "ShowInDocs": false, - "GraphsPerPage": 6, - "Name": "NLayer", - "Children": [ - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "Layer1", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "Soil.SoilNitrogen.NO3.kgha(1)", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "Layer1PMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "no3(1)", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "Layer1710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "Layer2", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "Soil.SoilNitrogen.NO3.kgha(2)", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "Layer2PMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "no3(2)", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "Layer2710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "Layer3", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "Soil.SoilNitrogen.NO3.kgha(3)", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "Layer3PMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "no3(3)", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "Layer3710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "Layer4", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "Soil.SoilNitrogen.NO3.kgha(4)", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "Layer4PMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "no3(4)", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "Layer4710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "Layer5", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "Soil.SoilNitrogen.NO3.kgha(5)", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "Layer5PMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "no3(5)", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "Layer5710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "Layer6", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "Soil.SoilNitrogen.NO3.kgha(6)", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "Layer6PMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "no3(6)", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "Layer6710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "Layer7", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "Soil.SoilNitrogen.NO3.kgha(7)", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "Layer7PMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "no3(7)", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "Layer7710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "Layer8", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "Soil.SoilNitrogen.NO3.kgha(8)", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "Layer8PMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "no3(8)", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "Layer8710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "Layer9", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "Soil.SoilNitrogen.NO3.kgha(9)", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "Layer9PMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "no3(9)", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "Layer9710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Core.Folder, Models", - "ShowInDocs": false, - "GraphsPerPage": 6, - "Name": "Water", - "Children": [ - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "Layer1", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "Soil.SoilWater.SW(1)", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "Layer1PMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "sw(1)", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "Layer1710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "Layer2", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "Soil.SoilWater.SW(2)", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "Layer2PMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "sw(2)", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "Layer2710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "Layer3", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "Soil.SoilWater.SW(3)", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "Layer3PMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "sw(3)", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "Layer3710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "Layer4", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "Soil.SoilWater.SW(4)", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "Layer4PMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "sw(4)", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "Layer4710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "Layer5", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "Soil.SoilWater.SW(5)", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "Layer5PMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "sw(5)", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "Layer5710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "Layer6", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "Soil.SoilWater.SW(6)", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "Layer6PMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "sw(6)", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "Layer6710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "Layer7", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "Soil.SoilWater.SW(7)", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "Layer7PMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "sw(7)", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "Layer7710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "Layer8", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "Soil.SoilWater.SW(8)", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "Layer8PMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "sw(8)", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "Layer8710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "Layer9", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "Soil.SoilWater.SW(9)", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "Layer9PMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "sw(9)", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "Layer9710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Core.Folder, Models", - "ShowInDocs": false, - "GraphsPerPage": 6, - "Name": "Panel", - "Children": [ - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "Biomass", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "Sorghum.TotalLive.Wt", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "BiomassPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "BiomassWt", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "Biomass710", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -2793984, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "GrainGreenWt", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "YieldPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -11094807, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "GrainGreenWt", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "Yield710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "StemLeafWt", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "Sorghum.TotalLive.Wt", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "BiomassPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "BiomassWt", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "Biomass710", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -2793984, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "StemGreenWt", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "StemWtPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -11094807, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "StemGreenWt", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "StemWt710", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16736653, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "LeafGreenWt", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "LeafWtPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -3376729, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "LeafGreenWt", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "LeafWt710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 2, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "Grain", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "GrainNo", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "GrainNoPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "GrainNo", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "GrainNo710", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 2, - "ColourArgb": -2793984, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "GrainGreenNConc", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "GrainNConcPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 2, - "ColourArgb": -11094807, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "GrainGreenNConc", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "GrainNConc710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "LAI", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "Leaf.LAI", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "laiPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "LAI", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "lai710", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -2793984, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "Leaf.SenescedLai", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "slaiPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -11094807, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "SLAI", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "slai710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "LeafNo", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "LeafNo", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "LeafNoPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "LeafNo", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "LeafNo710", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -2793984, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "WaterSD", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "WaterSDPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -11094807, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "WaterSD", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "WaterSD710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "Stage", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "Stage", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "StagePMF", - "Children": [ - { - "$type": "Models.EventNamesOnGraph, Models", - "ColumnName": "Sorghum.Phenology.CurrentStageName", - "SimulationName": null, - "Name": "EventNamesOnGraph", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "Stage", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "Stage710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "BiomassN", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "Sorghum.TotalLive.N", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "BiomassNPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "biomass_n", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "BiomassN710", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -2793984, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "Grain.Live.N", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "YieldNPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -11094807, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "GrainGreenN", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "YieldN710", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16736653, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "RachisGreenN", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "RachisNPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -3376729, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "RachisGreenN", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "RachisN710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "StemLeafN", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "Sorghum.TotalLive.N", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "BiomassNPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "biomass_n", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "BiomassN710", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -2793984, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "StemGreenN", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "StemNPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -11094807, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "StemGreenN", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "StemN710", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16736653, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "LeafGreenN", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "RachisNPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -3376729, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "LeafGreenN", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "RachisN710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 2, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "SLN", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "NO3", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "no3PMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "NO3", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "no3710", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 2, - "ColourArgb": -2793984, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "Leaf.SLN", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "slnPMF", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 2, - "ColourArgb": -11094807, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "Multiyear_HE1_T1", - "XFieldName": "Date", - "YFieldName": "SLN", - "X2FieldName": "", - "Y2FieldName": "", - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": "", - "Name": "sln710", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Core.Folder, Models", - "ShowInDocs": false, - "GraphsPerPage": 6, - "Name": "CO2AndTranspirationEfficiency", - "Children": [ - { - "$type": "Models.Factorial.Experiment, Models", - "DisabledSimNames": null, - "Name": "CO2TE", - "Children": [ - { - "$type": "Models.Memo, Models", - "Text": "This test examines the impact of a doubling of CO2 from historical (350ppm) on Transpiration Efficiency. [Reyenga1999] suggest an increase of approximately 37% in Transpiration Efficiency over this range in CO2 concentration.\nIn this test, a series of wheat crops are simulated for Dalby, Queensland, Australia. Nitrogen limitation is removed. The slope of plots of biomass production vs crop water use is used to quantify a gross seasonal TE. The change in slope should approximate the response suggested by [Reyenga1999].", - "Name": "Memo", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Factorial.Factors, Models", - "Name": "Factors", - "Children": [ - { - "$type": "Models.Factorial.Factor, Models", - "Specification": "[SetCO2]", - "Name": "CO2", - "Children": [ - { - "$type": "Models.Manager, Models", - "Code": "using Models.Climate;\r\nusing System;\r\nusing Models.Core;\r\nusing APSIM.Shared.Utilities;\r\nusing System.Collections.Generic;\r\nusing System.Text;\r\nusing Models.PMF;\r\nusing Models;\r\nusing System.Xml.Serialization;\r\n\r\nnamespace Models\r\n{\r\n [Serializable] \r\n [System.Xml.Serialization.XmlInclude(typeof(Model))]\r\n public class Script : Model\r\n {\r\n [Link] Weather Met;\r\n [Link] Clock Clock;\r\n \r\n [Description(\"CO2 conc\")]\r\n public double CO2 { get; set; }\r\n \r\n \r\n [EventSubscribe(\"PreparingNewWeatherData\")]\r\n private void OnPreparingNewWeatherData(object sender, EventArgs e)\r\n {\r\n Met.CO2 = CO2; \r\n }\r\n }\r\n}\r\n", - "Parameters": [ - { - "Key": "CO2", - "Value": "350" - } - ], - "Name": "350ppm", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Manager, Models", - "Code": "using Models.Climate;\r\nusing System;\r\nusing Models.Core;\r\nusing APSIM.Shared.Utilities;\r\nusing System.Collections.Generic;\r\nusing System.Text;\r\nusing Models.PMF;\r\nusing Models;\r\nusing System.Xml.Serialization;\r\n\r\nnamespace Models\r\n{\r\n [Serializable] \r\n [System.Xml.Serialization.XmlInclude(typeof(Model))]\r\n public class Script : Model\r\n {\r\n [Link] Weather Met;\r\n [Link] Clock Clock;\r\n \r\n [Description(\"CO2 conc\")]\r\n public double CO2 { get; set; }\r\n \r\n \r\n [EventSubscribe(\"PreparingNewWeatherData\")]\r\n private void OnPreparingNewWeatherData(object sender, EventArgs e)\r\n {\r\n Met.CO2 = CO2; \r\n }\r\n }\r\n}\r\n", - "Parameters": [ - { - "Key": "CO2", - "Value": "700" - } - ], - "Name": "700ppm", - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Core.Simulation, Models", - "IsRunning": false, - "Descriptors": null, - "Name": "CO2TEBaseSimulation", - "Children": [ - { - "$type": "Models.Clock, Models", - "Start": "1900-01-01T00:00:00", - "End": "2000-12-31T00:00:00", - "Name": "Clock", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Summary, Models", - "Verbosity": 100, - "Name": "summaryfile", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Climate.Weather, Models", - "ConstantsFile": null, - "FileName": "%root%\\Examples\\WeatherFiles\\Dalby.met", - "ExcelWorkSheetName": "", - "Name": "Weather", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.Arbitrator.SoilArbitrator, Models", - "Name": "Soil Arbitrator", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Core.Zone, Models", - "Area": 1.0, - "Slope": 0.0, - "AspectAngle": 0.0, - "Altitude": 50.0, - "Name": "Field", - "Children": [ - { - "$type": "Models.Fertiliser, Models", - "ResourceName": "Fertiliser", - "Name": "Fertiliser", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Surface.SurfaceOrganicMatter, Models", - "InitialResidueName": "wheat_stubble", - "InitialResidueType": "wheat", - "InitialResidueMass": 500.0, - "InitialStandingFraction": 0.0, - "InitialCPR": 0.0, - "InitialCNR": 100.0, - "ResourceName": "SurfaceOrganicMatter", - "Name": "SurfaceOrganicMatter", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.MicroClimate, Models", - "a_interception": 0.0, - "b_interception": 1.0, - "c_interception": 0.0, - "d_interception": 0.0, - "SoilHeatFluxFraction": 0.4, - "MinimumHeightDiffForNewLayer": 0.0, - "NightInterceptionFraction": 0.5, - "ReferenceHeight": 2.0, - "Name": "MicroClimate", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Report, Models", - "VariableNames": [ - "[Clock].Today.Date", - "[Sorghum].Grain.Wt", - "[Sorghum].AboveGround.Wt", - "Sum of [Sorghum].Leaf.Transpiration from [Sorghum].Sowing to [Sorghum].Harvesting as CropET" - ], - "EventNames": [ - "[Sorghum].Harvesting" - ], - "GroupByVariableName": null, - "Name": "SensibilityReport", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.PMF.Plant, Models", - "ResourceName": "Sorghum", - "Name": "Sorghum", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Manager, Models", - "Code": "using Models.Climate;\r\nusing System;\r\nusing Models.Core;\r\nusing APSIM.Shared.Utilities;\r\nusing System.Collections.Generic;\r\nusing System.Text;\r\nusing Models.PMF;\r\nusing Models;\r\nusing System.Xml.Serialization;\r\n\r\nnamespace Models\r\n{\r\n [Serializable] \r\n [System.Xml.Serialization.XmlInclude(typeof(Model))]\r\n public class Script : Model\r\n {\r\n [Link] Weather Met;\r\n [Link] Clock Clock;\r\n [Link] Zone zone;\r\n \r\n [Description(\"CO2 conc\")]\r\n public double CO2 { get; set; }\r\n \r\n \r\n [EventSubscribe(\"PreparingNewWeatherData\")]\r\n private void OnPreparingNewWeatherData(object sender, EventArgs e)\r\n {\r\n zone.Set(\"Weather.CO2\", CO2);\r\n }\r\n }\r\n}\r\n", - "Parameters": [ - { - "Key": "CO2", - "Value": "0" - } - ], - "Name": "SetCO2", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Manager, Models", - "Code": "using Models.Interfaces;\nusing System;\nusing Models.Core;\nusing Models.PMF;\nusing Models.Soils;\nusing Models.Soils.Nutrients;\nusing Models.Utilities;\nusing APSIM.Shared.Utilities;\nusing Models.Climate;\n\nnamespace Models\n{\n [Serializable]\n public class Script : Model\n {\n [Link] private Clock Clock;\n [Link] private Fertiliser Fertiliser;\n [Link] private Summary Summary;\n [Link] private Plant Sorghum;\n [Link] private Soil Soil;\n private Accumulator accumulatedRain;\n [Link]\n private ISoilWater waterBalance;\n \n [Description(\"Start of sowing window (d-mmm)\")]\n public string StartDate { get; set;}\n [Description(\"End of sowing window (d-mmm)\")]\n public string EndDate { get; set;}\n [Description(\"Minimum extractable soil water for sowing (mm)\")]\n public double MinESW { get; set;}\n [Description(\"Accumulated rainfall required for sowing (mm)\")]\n public double MinRain { get; set;}\n [Description(\"Duration of rainfall accumulation (d)\")]\n public int RainDays { get; set;}\n [Description(\"Cultivar to be sown\")]\n [Display(Type=DisplayType.CultivarName)]\n public string CultivarName { get; set;}\n [Description(\"Sowing depth (mm)\")]\n public double SowingDepth { get; set;} \n [Description(\"Row spacing (mm)\")]\n public double RowSpacing { get; set;} \n [Description(\"Plant population (/m2)\")]\n public double Population { get; set;} \n \n \n [EventSubscribe(\"StartOfSimulation\")]\n private void OnSimulationCommencing(object sender, EventArgs e)\n {\n accumulatedRain = new Accumulator(this, \"[Weather].Rain\", RainDays);\n }\n \n\n [EventSubscribe(\"DoManagement\")]\n private void OnDoManagement(object sender, EventArgs e)\n {\n accumulatedRain.Update();\n \n if (DateUtilities.WithinDates(StartDate,Clock.Today,EndDate) &&\n !Sorghum.IsAlive &&\n MathUtilities.Sum(waterBalance.ESW) > MinESW &&\n accumulatedRain.Sum > MinRain)\n {\n Sorghum.Sow(population:Population, cultivar:CultivarName, depth:SowingDepth, rowSpacing:RowSpacing); \n }\n \n }\n \n }\n}\n", - "Parameters": [ - { - "Key": "StartDate", - "Value": "1-may" - }, - { - "Key": "EndDate", - "Value": "10-jul" - }, - { - "Key": "MinESW", - "Value": "100" - }, - { - "Key": "MinRain", - "Value": "25" - }, - { - "Key": "RainDays", - "Value": "7" - }, - { - "Key": "CultivarName", - "Value": "Buster" - }, - { - "Key": "SowingDepth", - "Value": "30" - }, - { - "Key": "RowSpacing", - "Value": "250" - }, - { - "Key": "Population", - "Value": "120" - } - ], - "Name": "SowingRule", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Manager, Models", - "Code": "using Models.Soils.Nutrients;\r\nusing System;\r\nusing Models.Core;\r\nusing Models.PMF;\r\nusing Models.Soils;\r\nusing Models.Soils.Nutrients;\r\nusing Models.Utilities;\r\nusing APSIM.Shared.Utilities;\r\n\r\nnamespace Models\r\n{\r\n [Serializable]\r\n public class Script : Model\r\n {\r\n [Link] Plant Sorghum;\r\n\r\n [EventSubscribe(\"DoManagement\")]\r\n private void OnDoManagement(object sender, EventArgs e)\r\n {\r\n if (Sorghum.IsReadyForHarvesting)\r\n {\r\n Sorghum.Harvest();\r\n Sorghum.EndCrop(); \r\n }\r\n \r\n }\r\n \r\n }\r\n}\r\n", - "Parameters": [], - "Name": "Harvest", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Manager, Models", - "Code": "using Models.PMF;\r\nusing Models.Core;\r\nusing System;\r\nnamespace Models\r\n{\r\n [Serializable]\r\n public class Script : Model\r\n {\r\n [Link] Clock Clock;\r\n [Link] Fertiliser Fertiliser;\r\n [Link] Summary Summary;\r\n \r\n \r\n [Description(\"Amount of fertiliser to be applied (kg/ha)\")]\r\n public double Amount { get; set;}\r\n \r\n [Description(\"Crop to be fertilised\")]\r\n public string CropName { get; set;}\r\n \r\n \r\n \r\n\r\n [EventSubscribe(\"Sowing\")]\r\n private void OnSowing(object sender, EventArgs e)\r\n {\r\n Model crop = sender as Model;\r\n if (crop.Name.ToLower()==CropName.ToLower())\r\n Fertiliser.Apply(Amount: Amount, Type: Fertiliser.Types.NO3N);\r\n }\r\n \r\n }\r\n}\r\n", - "Parameters": [ - { - "Key": "Amount", - "Value": "300" - }, - { - "Key": "CropName", - "Value": "Sorghum" - } - ], - "Name": "SowingFertiliser", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.Soil, Models", - "RecordNumber": 0, - "ASCOrder": null, - "ASCSubOrder": null, - "SoilType": "HMM", - "LocalName": null, - "Site": "HRS", - "NearestTown": "Unknown", - "Region": "SE Queensland", - "State": null, - "Country": null, - "NaturalVegetation": "Unknown", - "ApsoilNumber": null, - "Latitude": 0.0, - "Longitude": 0.0, - "LocationAccuracy": null, - "YearOfSampling": null, - "DataSource": null, - "Comments": null, - "Name": "Soil", - "Children": [ - { - "$type": "Models.Soils.Physical, Models", - "Depth": [ - "0-10", - "10-20", - "20-40", - "40-60", - "60-80", - "80-100", - "100-120", - "120-140", - "140-160", - "160-180" - ], - "Thickness": [ - 100.0, - 100.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0 - ], - "ParticleSizeClay": null, - "ParticleSizeSand": null, - "ParticleSizeSilt": null, - "Rocks": null, - "Texture": null, - "BD": [ - 1.34, - 1.34, - 1.33, - 1.38, - 1.4, - 1.55, - 1.59, - 1.63, - 1.66, - 1.68 - ], - "AirDry": [ - 0.08, - 0.19, - 0.23, - 0.26, - 0.26, - 0.28, - 0.25, - 0.28, - 0.3, - 0.31 - ], - "LL15": [ - 0.226, - 0.226, - 0.258, - 0.27, - 0.268, - 0.304, - 0.335, - 0.33, - 0.32, - 0.33 - ], - "DUL": [ - 0.42, - 0.42, - 0.46, - 0.46, - 0.43, - 0.4, - 0.37, - 0.33, - 0.32, - 0.33 - ], - "SAT": [ - 0.45, - 0.45, - 0.48, - 0.47, - 0.45, - 0.41, - 0.38, - 0.37, - 0.37, - 0.36 - ], - "KS": null, - "BDMetadata": null, - "AirDryMetadata": null, - "LL15Metadata": null, - "DULMetadata": null, - "SATMetadata": null, - "KSMetadata": null, - "RocksMetadata": null, - "TextureMetadata": null, - "ParticleSizeSandMetadata": null, - "ParticleSizeSiltMetadata": null, - "ParticleSizeClayMetadata": null, - "Name": "Physical", - "Children": [ - { - "$type": "Models.Soils.SoilCrop, Models", - "LL": [ - 0.226, - 0.226, - 0.258, - 0.27, - 0.268, - 0.304, - 0.335, - 0.33, - 0.32, - 0.33 - ], - "KL": [ - 0.07, - 0.07, - 0.07, - 0.07, - 0.06, - 0.06, - 0.06, - 0.05, - 0.05, - 0.04 - ], - "XF": [ - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0 - ], - "LLMetadata": null, - "KLMetadata": null, - "XFMetadata": null, - "Name": "SorghumSoil", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.WaterModel.WaterBalance, Models", - "SummerDate": "1-Nov", - "SummerU": 1.5, - "SummerCona": 6.5, - "WinterDate": "1-Apr", - "WinterU": 1.5, - "WinterCona": 6.5, - "DiffusConst": 40.0, - "DiffusSlope": 16.0, - "Salb": 0.2, - "CN2Bare": 85.0, - "CNRed": 20.0, - "CNCov": 0.8, - "DischargeWidth": "NaN", - "CatchmentArea": "NaN", - "Thickness": [ - 100.0, - 100.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0 - ], - "SWCON": [ - 0.3, - 0.3, - 0.3, - 0.3, - 0.3, - 0.3, - 0.3, - 0.3, - 0.3, - 0.3 - ], - "KLAT": null, - "ResourceName": "WaterBalance", - "Name": "SoilWater", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.SoilNitrogen, Models", - "fom_types": [ - "default", - "manure", - "mucuna", - "lablab", - "shemp", - "stable" - ], - "fract_carb": [ - 0.2, - 0.3, - 0.54, - 0.57, - 0.45, - 0.0 - ], - "fract_cell": [ - 0.7, - 0.3, - 0.37, - 0.37, - 0.47, - 0.1 - ], - "fract_lign": [ - 0.1, - 0.4, - 0.09, - 0.06, - 0.08, - 0.9 - ], - "NPartitionApproach": 0, - "Name": "SoilNitrogen", - "Children": [ - { - "$type": "Models.Soils.SoilNitrogenNO3, Models", - "Name": "NO3", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.SoilNitrogenNH4, Models", - "Name": "NH4", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.SoilNitrogenUrea, Models", - "Name": "Urea", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.Organic, Models", - "Depth": [ - "0-10", - "10-20", - "20-40", - "40-60", - "60-80", - "80-100", - "100-120", - "120-140", - "140-160", - "160-180" - ], - "FOMCNRatio": 50.0, - "Thickness": [ - 100.0, - 100.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0 - ], - "Carbon": [ - 1.19, - 0.59, - 0.45, - 0.3, - 0.2, - 0.16, - 0.17, - 0.17, - 0.17, - 0.17 - ], - "SoilCNRatio": [ - 12.5, - 12.5, - 12.5, - 12.5, - 12.5, - 12.5, - 12.5, - 12.5, - 12.5, - 12.5 - ], - "FBiom": [ - 0.05, - 0.02, - 0.01, - 0.01, - 0.01, - 0.01, - 0.01, - 0.05, - 0.02, - 0.01 - ], - "FInert": [ - 0.45, - 0.6, - 0.75, - 0.9, - 0.9, - 0.9, - 0.9, - 0.9, - 0.9, - 0.9 - ], - "FOM": [ - 260.58740315916066, - 220.5824745109322, - 158.0542495509277, - 113.25081857248298, - 81.14775745529565, - 58.14490899956697, - 41.66264784865344, - 29.852591664969907, - 21.390316629725067, - 15.32683160828522 - ], - "CarbonMetadata": null, - "FOMMetadata": null, - "Name": "Organic", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.Chemical, Models", - "Depth": [ - "0-10", - "10-20", - "20-40", - "40-60", - "60-80", - "80-100", - "100-120", - "120-140", - "140-160", - "160-180" - ], - "Thickness": [ - 100.0, - 100.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0 - ], - "NO3N": [ - 10.4, - 1.6329999999999996, - 1.2330000000000008, - 0.9, - 1.1, - 1.4670000000000005, - 3.6329999999999996, - 5.667000000000001, - 5.8, - 7.267000000000003 - ], - "NH4N": [ - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1 - ], - "PH": [ - 6.3, - 6.4, - 6.5, - 6.6, - 6.6, - 6.5, - 6.5, - 6.5, - 6.5, - 6.5 - ], - "CL": null, - "EC": null, - "ESP": null, - "LabileP": null, - "UnavailableP": null, - "ECMetadata": null, - "CLMetadata": null, - "ESPMetadata": null, - "PHMetadata": null, - "Name": "Chemical", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.Sample, Models", - "Depth": [ - "0-10", - "10-20", - "20-40", - "40-60", - "60-80", - "80-100", - "100-120", - "120-140", - "140-160", - "160-180" - ], - "Thickness": [ - 100.0, - 100.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0 - ], - "NO3": null, - "NH4": null, - "LabileP": null, - "UnavailableP": null, - "SW": [ - 0.235, - 0.252, - 0.27, - 0.3, - 0.268, - 0.304, - 0.335, - 0.33, - 0.32, - 0.33 - ], - "OC": null, - "EC": null, - "CL": null, - "ESP": null, - "PH": null, - "SWUnits": 0, - "OCUnits": 0, - "PHUnits": 0, - "Name": "Initial Water", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.CERESSoilTemperature, Models", - "Name": "Temperature", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Report, Models", - "VariableNames": [ - "GrainTempFactor", - "GrainTempFactor" - ], - "EventNames": null, - "GroupByVariableName": null, - "Name": "DailyReport", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "BiomassWt", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 0, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": 0, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 0, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "DailyReport", - "XFieldName": "Date", - "YFieldName": "Date", - "X2FieldName": null, - "Y2FieldName": null, - "ShowInLegend": false, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": null, - "Name": "Series", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "Biomass production vs Crop water Use", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16777216, - "FactorToVaryColours": "CO2", - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 0, - "MarkerSize": 0, - "Line": 4, - "LineThickness": 0, - "TableName": "SensibilityReport", - "XFieldName": "CropET", - "YFieldName": "Sorghum.AboveGround.Wt", - "X2FieldName": null, - "Y2FieldName": null, - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": null, - "Name": "Series 0", - "Children": [ - { - "$type": "Models.Regression, Models", - "ForEachSeries": true, - "showOneToOne": false, - "showEquation": false, - "Name": "Regression", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Factorial.Experiment, Models", - "DisabledSimNames": null, - "Name": "Bugesera", - "Children": [ - { - "$type": "Models.Memo, Models", - "Text": "# Copied from maize validation set - this needs editing!\n\nMaize is grown in the Bugesera region of southern Rwanda in Central Africa. The region has a bimodal rainfall distribution which allows two plantings per year. For low input situations the maize yields should vary between 1 and 3 t/ha per crop. Under fertilised conditions the yield should increase up to 5 t/ha per crop.", - "Name": "Memo", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Factorial.Factors, Models", - "Name": "Factors", - "Children": [ - { - "$type": "Models.Factorial.Factor, Models", - "Specification": "[SowingFertiliser].Script.Amount = 0, 50", - "Name": "NRate", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Core.Simulation, Models", - "IsRunning": false, - "Descriptors": null, - "Name": "Bugesera", - "Children": [ - { - "$type": "Models.Clock, Models", - "Start": "2000-01-01T00:00:00", - "End": "2013-12-31T00:00:00", - "Name": "Clock", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Summary, Models", - "Verbosity": 100, - "Name": "SummaryFile", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Climate.Weather, Models", - "ConstantsFile": null, - "FileName": "%root%\\Tests\\Validation\\Maize\\Bugesera.met", - "ExcelWorkSheetName": "", - "Name": "Weather", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Manager, Models", - "Code": "using Models.Climate;\r\nusing APSIM.Shared.Utilities;\r\nusing Models.Utilities;\r\nusing Models.Soils.Nutrients;\r\nusing Models.Soils;\r\nusing Models.PMF;\r\nusing Models.Core;\r\nusing System;\r\nusing Models.Soils.Nutrients;\r\n\r\nnamespace Models\r\n{\r\n [Serializable]\r\n public class Script : Model\r\n {\r\n [Link] Clock Clock;\r\n [Link] Weather Weather;\r\n [Link] Summary Summary;\r\n \r\n [Description(\"Change in Maximum Temperature (oC)\")]\r\n public double DeltaMaxT { get; set; }\r\n [Description(\"Change in SolarRadiation (%)\")]\r\n public double DeltaRadiation { get; set; }\r\n [Description(\"Change in Rainfall (%)\")]\r\n public double DeltaRain { get; set; }\r\n \r\n [EventSubscribe(\"StartOfSimulation\")]\r\n private void OnSimulationCommencing(object sender, EventArgs e)\r\n {\r\n }\r\n \r\n\r\n [EventSubscribe(\"PreparingNewWeatherData\")]\r\n private void OnPreparingNewWeatherData(object sender, EventArgs e)\r\n {\r\n Weather.MaxT += DeltaMaxT;\r\n Weather.Radn *= (1.0 + DeltaRadiation / 100);\r\n Weather.Rain *= (1.0 + DeltaRain / 100);\r\n }\r\n \r\n }\r\n}\r\n", - "Parameters": [ - { - "Key": "DeltaMaxT", - "Value": "0" - }, - { - "Key": "DeltaRadiation", - "Value": "0" - }, - { - "Key": "DeltaRain", - "Value": "0" - } - ], - "Name": "ClimateChange", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.Arbitrator.SoilArbitrator, Models", - "Name": "Soil Arbitrator", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Core.Zone, Models", - "Area": 1.0, - "Slope": 0.0, - "AspectAngle": 0.0, - "Altitude": 50.0, - "Name": "Field", - "Children": [ - { - "$type": "Models.Report, Models", - "VariableNames": [ - "[Clock].Today", - "[Sorghum].Phenology.CurrentStageName", - "[Sorghum].AboveGround.Wt", - "[Sorghum].AboveGround.N", - "[Sorghum].Grain.Size", - "[Sorghum].Grain.Number", - "[Sorghum].Grain.Wt", - "[Sorghum].Grain.N", - "[Sorghum].Total.Wt", - "[Sorghum].Phenology.FloweringDAS as FloweringDAS", - "[Sorghum].Phenology.MaturityDAS as MaturityDAS", - "[Sorghum].DaysAfterSowing", - "sum of [Weather].Rain from [Sorghum].Sowing to [Sorghum].Harvesting as InCropRain", - "[Soil].SoilNitrogen.OC[1] as SurfaceOC" - ], - "EventNames": [ - "[Sorghum].Harvesting" - ], - "GroupByVariableName": null, - "Name": "BugeseraSensibility", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Fertiliser, Models", - "ResourceName": "Fertiliser", - "Name": "Fertiliser", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Surface.SurfaceOrganicMatter, Models", - "InitialResidueName": "wheat_stubble", - "InitialResidueType": "wheat", - "InitialResidueMass": 500.0, - "InitialStandingFraction": 0.0, - "InitialCPR": 0.0, - "InitialCNR": 100.0, - "ResourceName": "SurfaceOrganicMatter", - "Name": "SurfaceOrganicMatter", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.MicroClimate, Models", - "a_interception": 0.0, - "b_interception": 1.0, - "c_interception": 0.0, - "d_interception": 0.0, - "SoilHeatFluxFraction": 0.4, - "MinimumHeightDiffForNewLayer": 0.0, - "NightInterceptionFraction": 0.5, - "ReferenceHeight": 2.0, - "Name": "MicroClimate", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Manager, Models", - "Code": "using Models.PMF;\r\nusing Models.Core;\r\nusing System;\r\nnamespace Models\r\n{\r\n [Serializable]\r\n public class Script : Model\r\n {\r\n [Link] Clock Clock;\r\n [Link] Fertiliser Fertiliser;\r\n [Link] Summary Summary;\r\n \r\n \r\n [Description(\"Amount of fertiliser to be applied (kg/ha)\")]\r\n public double Amount { get; set; }\r\n \r\n [Description(\"Crop to be fertilised\")]\r\n public string CropName { get; set; }\r\n \r\n \r\n \r\n\r\n [EventSubscribe(\"Sowing\")]\r\n private void OnSowing(object sender, EventArgs e)\r\n {\r\n Model crop = sender as Model;\r\n if (crop.Name.ToLower() == CropName.ToLower())\r\n Fertiliser.Apply(Amount: Amount, Type: Fertiliser.Types.NO3N);\r\n }\r\n \r\n }\r\n}\r\n", - "Parameters": [ - { - "Key": "Amount", - "Value": "0" - }, - { - "Key": "CropName", - "Value": "Sorghum" - } - ], - "Name": "SowingFertiliser", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Manager, Models", - "Code": "using Models.Interfaces;\nusing System;\nusing Models.Core;\nusing Models.PMF;\nusing Models.Soils;\nusing Models.Soils.Nutrients;\nusing Models.Utilities;\nusing APSIM.Shared.Utilities;\nusing Models.Climate;\n\nnamespace Models\n{\n [Serializable]\n public class Script : Model\n {\n [Link] private Clock Clock;\n [Link] private Fertiliser Fertiliser;\n [Link] private Summary Summary;\n [Link] private Plant sorghum;\n [Link] private Soil Soil;\n private Accumulator accumulatedRain;\n [Link]\n private ISoilWater waterBalance;\n \n [Description(\"Start of sowing window (d-mmm)\")]\n public string StartDate { get; set; }\n [Description(\"End of sowing window (d-mmm)\")]\n public string EndDate { get; set; }\n [Description(\"Minimum extractable soil water for sowing (mm)\")]\n public double MinESW { get; set; }\n [Description(\"Accumulated rainfall required for sowing (mm)\")]\n public double MinRain { get; set; }\n [Description(\"Duration of rainfall accumulation (d)\")]\n public int RainDays { get; set; }\n [Description(\"Cultivar to be sown\")]\n [Display(Type = DisplayType.CultivarName)]\n public string CultivarName { get; set; }\n [Description(\"Sowing depth (mm)\")]\n public double SowingDepth { get; set; }\n [Description(\"Row spacing (mm)\")]\n public double RowSpacing { get; set; }\n [Description(\"Plant population (/m2)\")]\n public double Population { get; set; }\n [Description(\"Must sow at end of window (T/F)\")]\n public bool MustSow{ get; set; }\n \n \n [EventSubscribe(\"StartOfSimulation\")]\n private void OnSimulationCommencing(object sender, EventArgs e)\n {\n accumulatedRain = new Accumulator(this, \"[Weather].Rain\", RainDays);\n }\n \n\n [EventSubscribe(\"DoManagement\")]\n private void OnDoManagement(object sender, EventArgs e)\n {\n accumulatedRain.Update();\n \n if ((DateUtilities.WithinDates(StartDate, Clock.Today, EndDate) &&\n sorghum.IsAlive == false &&\n MathUtilities.Sum(waterBalance.ESW) > MinESW &&\n accumulatedRain.Sum > MinRain)\n || (DateUtilities.WithinDates(EndDate, Clock.Today, EndDate) && sorghum.IsAlive == false && MustSow == true))\n {\n sorghum.Sow(population: Population, cultivar: CultivarName, depth: SowingDepth, rowSpacing: RowSpacing); \n }\n \n }\n \n }\n}\n", - "Parameters": [ - { - "Key": "StartDate", - "Value": "15-sep" - }, - { - "Key": "EndDate", - "Value": "15-oct" - }, - { - "Key": "MinESW", - "Value": "30" - }, - { - "Key": "MinRain", - "Value": "30" - }, - { - "Key": "RainDays", - "Value": "3" - }, - { - "Key": "CultivarName", - "Value": "Buster" - }, - { - "Key": "SowingDepth", - "Value": "30" - }, - { - "Key": "RowSpacing", - "Value": "750" - }, - { - "Key": "Population", - "Value": "5.3" - }, - { - "Key": "MustSow", - "Value": "True" - } - ], - "Name": "SowingRuleA", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Manager, Models", - "Code": "using Models.Interfaces;\nusing System;\nusing Models.Core;\nusing Models.PMF;\nusing Models.Soils;\nusing Models.Soils.Nutrients;\nusing Models.Utilities;\nusing APSIM.Shared.Utilities;\nusing Models.Climate;\n\nnamespace Models\n{\n [Serializable]\n public class Script : Model\n {\n [Link] private Clock Clock;\n [Link] private Fertiliser Fertiliser;\n [Link] private Summary Summary;\n [Link] private Plant sorghum;\n [Link] private Soil Soil;\n private Accumulator accumulatedRain;\n [Link]\n private ISoilWater waterBalance;\n \n [Description(\"Start of sowing window (d-mmm)\")]\n public string StartDate { get; set; }\n [Description(\"End of sowing window (d-mmm)\")]\n public string EndDate { get; set; }\n [Description(\"Minimum extractable soil water for sowing (mm)\")]\n public double MinESW { get; set; }\n [Description(\"Accumulated rainfall required for sowing (mm)\")]\n public double MinRain { get; set; }\n [Description(\"Duration of rainfall accumulation (d)\")]\n public int RainDays { get; set; }\n [Description(\"Cultivar to be sown\")]\n [Display(Type = DisplayType.CultivarName)]\n public string CultivarName { get; set; }\n [Description(\"Sowing depth (mm)\")]\n public double SowingDepth { get; set; }\n [Description(\"Row spacing (mm)\")]\n public double RowSpacing { get; set; }\n [Description(\"Plant population (/m2)\")]\n public double Population { get; set; }\n [Description(\"Must sow at end of window (T/F)\")]\n public bool MustSow{ get; set; }\n \n \n [EventSubscribe(\"StartOfSimulation\")]\n private void OnSimulationCommencing(object sender, EventArgs e)\n {\n accumulatedRain = new Accumulator(this, \"[Weather].Rain\", RainDays);\n }\n \n\n [EventSubscribe(\"DoManagement\")]\n private void OnDoManagement(object sender, EventArgs e)\n {\n accumulatedRain.Update();\n \n if ((DateUtilities.WithinDates(StartDate, Clock.Today, EndDate) &&\n sorghum.IsAlive == false &&\n MathUtilities.Sum(waterBalance.ESW) > MinESW &&\n accumulatedRain.Sum > MinRain)\n || (DateUtilities.WithinDates(EndDate, Clock.Today, EndDate) && sorghum.IsAlive == false && MustSow == true))\n {\n sorghum.Sow(population: Population, cultivar: CultivarName, depth: SowingDepth, rowSpacing: RowSpacing); \n }\n \n }\n \n }\n}\n", - "Parameters": [ - { - "Key": "StartDate", - "Value": "1-mar" - }, - { - "Key": "EndDate", - "Value": "30-mar" - }, - { - "Key": "MinESW", - "Value": "30" - }, - { - "Key": "MinRain", - "Value": "30" - }, - { - "Key": "RainDays", - "Value": "3" - }, - { - "Key": "CultivarName", - "Value": "Buster" - }, - { - "Key": "SowingDepth", - "Value": "30" - }, - { - "Key": "RowSpacing", - "Value": "750" - }, - { - "Key": "Population", - "Value": "5.3" - }, - { - "Key": "MustSow", - "Value": "True" - } - ], - "Name": "SowingRuleB", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Manager, Models", - "Code": "using Models.PMF.Phen;\r\nusing APSIM.Shared.Utilities;\r\nusing System.Xml.Serialization;\r\nusing Models;\r\nusing Models.Surface;\r\nusing Models.PMF;\r\nusing Models.Soils;\r\nusing System.Text;\r\nusing System.Collections.Generic;\r\nusing Models.Core;\r\nusing System;\r\nusing Models.Soils.Nutrients;\r\n\r\nnamespace Models\r\n{\r\n [Serializable] \r\n public class Script : Model\r\n {\r\n [Link] private Plant Maize;\r\n [Link] private Zone zone;\r\n [Link] private SurfaceOrganicMatter SOM;\r\n [Link]\r\n private Phenology phenology;\r\n\r\n [Description(\"Fraction of resiudes to remove at harvest (0-1)\")]\r\n public double RemoveFraction { get; set; }\r\n\r\n \r\n [EventSubscribe(\"DoManagement\")]\r\n private void OnDoManagement(object sender, EventArgs e)\r\n {\r\n if (phenology.CurrentPhase.Name == \"ReadyForHarvesting\")\r\n {\r\n Maize.Harvest();\r\n Maize.EndCrop();\r\n if (RemoveFraction > 0)\r\n SOM.Incorporate(RemoveFraction, 0.0); \r\n }\r\n }\r\n \r\n [EventSubscribe(\"DoManagementCalculations\")]\r\n private void OnDoManagementCalculations(object sender, EventArgs e)\r\n {\r\n \r\n }\r\n }\r\n}\r\n \r\n", - "Parameters": [ - { - "Key": "RemoveFraction", - "Value": "1" - } - ], - "Name": "Harvesting", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.Soil, Models", - "RecordNumber": 0, - "ASCOrder": null, - "ASCSubOrder": null, - "SoilType": "HMM", - "LocalName": null, - "Site": "HRS", - "NearestTown": "Unknown", - "Region": "SE Queensland", - "State": null, - "Country": null, - "NaturalVegetation": "Unknown", - "ApsoilNumber": null, - "Latitude": 0.0, - "Longitude": 0.0, - "LocationAccuracy": null, - "YearOfSampling": null, - "DataSource": null, - "Comments": null, - "Name": "Soil", - "Children": [ - { - "$type": "Models.Soils.Physical, Models", - "Depth": [ - "0-10", - "10-20", - "20-40", - "40-60", - "60-80", - "80-100", - "100-120", - "120-140", - "140-160", - "160-180" - ], - "Thickness": [ - 100.0, - 100.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0 - ], - "ParticleSizeClay": null, - "ParticleSizeSand": null, - "ParticleSizeSilt": null, - "Rocks": null, - "Texture": null, - "BD": [ - 1.34, - 1.34, - 1.33, - 1.38, - 1.4, - 1.55, - 1.59, - 1.63, - 1.66, - 1.68 - ], - "AirDry": [ - 0.08, - 0.19, - 0.23, - 0.26, - 0.26, - 0.28, - 0.25, - 0.28, - 0.3, - 0.31 - ], - "LL15": [ - 0.226, - 0.226, - 0.258, - 0.27, - 0.268, - 0.304, - 0.335, - 0.33, - 0.32, - 0.33 - ], - "DUL": [ - 0.42, - 0.42, - 0.46, - 0.46, - 0.43, - 0.4, - 0.37, - 0.33, - 0.32, - 0.33 - ], - "SAT": [ - 0.45, - 0.45, - 0.48, - 0.47, - 0.45, - 0.41, - 0.38, - 0.37, - 0.37, - 0.36 - ], - "KS": null, - "BDMetadata": null, - "AirDryMetadata": null, - "LL15Metadata": null, - "DULMetadata": null, - "SATMetadata": null, - "KSMetadata": null, - "RocksMetadata": null, - "TextureMetadata": null, - "ParticleSizeSandMetadata": null, - "ParticleSizeSiltMetadata": null, - "ParticleSizeClayMetadata": null, - "Name": "Physical", - "Children": [ - { - "$type": "Models.Soils.SoilCrop, Models", - "LL": [ - 0.226, - 0.226, - 0.258, - 0.27, - 0.268, - 0.304, - 0.335, - 0.33, - 0.32, - 0.33 - ], - "KL": [ - 0.07, - 0.07, - 0.07, - 0.07, - 0.06, - 0.06, - 0.06, - 0.05, - 0.05, - 0.04 - ], - "XF": [ - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0 - ], - "LLMetadata": null, - "KLMetadata": null, - "XFMetadata": null, - "Name": "SorghumSoil", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.WaterModel.WaterBalance, Models", - "SummerDate": "1-Nov", - "SummerU": 1.5, - "SummerCona": 6.5, - "WinterDate": "1-Apr", - "WinterU": 1.5, - "WinterCona": 6.5, - "DiffusConst": 40.0, - "DiffusSlope": 16.0, - "Salb": 0.2, - "CN2Bare": 85.0, - "CNRed": 20.0, - "CNCov": 0.8, - "DischargeWidth": "NaN", - "CatchmentArea": "NaN", - "Thickness": [ - 100.0, - 100.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0 - ], - "SWCON": [ - 0.3, - 0.3, - 0.3, - 0.3, - 0.3, - 0.3, - 0.3, - 0.3, - 0.3, - 0.3 - ], - "KLAT": null, - "ResourceName": "WaterBalance", - "Name": "SoilWater", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.SoilNitrogen, Models", - "fom_types": [ - "default", - "manure", - "mucuna", - "lablab", - "shemp", - "stable" - ], - "fract_carb": [ - 0.2, - 0.3, - 0.54, - 0.57, - 0.45, - 0.0 - ], - "fract_cell": [ - 0.7, - 0.3, - 0.37, - 0.37, - 0.47, - 0.1 - ], - "fract_lign": [ - 0.1, - 0.4, - 0.09, - 0.06, - 0.08, - 0.9 - ], - "NPartitionApproach": 0, - "Name": "SoilNitrogen", - "Children": [ - { - "$type": "Models.Soils.SoilNitrogenNO3, Models", - "Name": "NO3", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.SoilNitrogenNH4, Models", - "Name": "NH4", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.SoilNitrogenUrea, Models", - "Name": "Urea", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.Organic, Models", - "Depth": [ - "0-10", - "10-20", - "20-40", - "40-60", - "60-80", - "80-100", - "100-120", - "120-140", - "140-160", - "160-180" - ], - "FOMCNRatio": 50.0, - "Thickness": [ - 100.0, - 100.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0 - ], - "Carbon": [ - 1.19, - 0.59, - 0.45, - 0.3, - 0.2, - 0.16, - 0.17, - 0.17, - 0.17, - 0.17 - ], - "SoilCNRatio": [ - 12.5, - 12.5, - 12.5, - 12.5, - 12.5, - 12.5, - 12.5, - 12.5, - 12.5, - 12.5 - ], - "FBiom": [ - 0.05, - 0.02, - 0.01, - 0.01, - 0.01, - 0.01, - 0.01, - 0.05, - 0.02, - 0.01 - ], - "FInert": [ - 0.45, - 0.6, - 0.75, - 0.9, - 0.9, - 0.9, - 0.9, - 0.9, - 0.9, - 0.9 - ], - "FOM": [ - 260.58740315916066, - 220.5824745109322, - 158.0542495509277, - 113.25081857248298, - 81.14775745529565, - 58.14490899956697, - 41.66264784865344, - 29.852591664969907, - 21.390316629725067, - 15.32683160828522 - ], - "CarbonMetadata": null, - "FOMMetadata": null, - "Name": "Organic", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.Chemical, Models", - "Depth": [ - "0-10", - "10-20", - "20-40", - "40-60", - "60-80", - "80-100", - "100-120", - "120-140", - "140-160", - "160-180" - ], - "Thickness": [ - 100.0, - 100.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0 - ], - "NO3N": [ - 10.4, - 1.6329999999999996, - 1.2330000000000008, - 0.9, - 1.1, - 1.4670000000000005, - 3.6329999999999996, - 5.667000000000001, - 5.8, - 7.267000000000003 - ], - "NH4N": [ - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1 - ], - "PH": [ - 6.3, - 6.4, - 6.5, - 6.6, - 6.6, - 6.5, - 6.5, - 6.5, - 6.5, - 6.5 - ], - "CL": null, - "EC": null, - "ESP": null, - "LabileP": null, - "UnavailableP": null, - "ECMetadata": null, - "CLMetadata": null, - "ESPMetadata": null, - "PHMetadata": null, - "Name": "Chemical", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.Sample, Models", - "Depth": [ - "0-10", - "10-20", - "20-40", - "40-60", - "60-80", - "80-100", - "100-120", - "120-140", - "140-160", - "160-180" - ], - "Thickness": [ - 100.0, - 100.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0 - ], - "NO3": null, - "NH4": null, - "LabileP": null, - "UnavailableP": null, - "SW": [ - 0.235, - 0.252, - 0.27, - 0.3, - 0.268, - 0.304, - 0.335, - 0.33, - 0.32, - 0.33 - ], - "OC": null, - "EC": null, - "CL": null, - "ESP": null, - "PH": null, - "SWUnits": 0, - "OCUnits": 0, - "PHUnits": 0, - "Name": "Initial Water", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.CERESSoilTemperature, Models", - "Name": "Temperature", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.PMF.Plant, Models", - "ResourceName": "Sorghum", - "Name": "Sorghum", - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "Yield CDF", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -990142, - "FactorToVaryColours": "NRate", - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 10, - "MarkerSize": 1, - "Line": 4, - "LineThickness": 0, - "TableName": "Probability", - "XFieldName": "Sorghum.Grain.Wt", - "YFieldName": "Probability", - "X2FieldName": null, - "Y2FieldName": null, - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": null, - "Name": "Yield", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Factorial.Experiment, Models", - "DisabledSimNames": null, - "Name": "WaterByNFactorial", - "Children": [ - { - "$type": "Models.Memo, Models", - "Text": "# Stolen from Barley validation set - this might need edits\n\nThis is a hypothetical experiment with Barley sown on the 15th of October every year for 20 years at Lincoln, New Zealand. The treatments applied are as follows:\r\n\r\n- Two water treatments; Dry (nil irrigation) and Wet, with irrigation applied when soil water deficit reaches 60% to return water content to 100% of capacity. \r\n- five fertiliser N treatments; 0, 50, 100, 200 and 400 kg N/ha with half of the N applied at sowing and the other half applied at growth stage 32.\r\n", - "Name": "Experimental Details", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Factorial.Factors, Models", - "Name": "Factors", - "Children": [ - { - "$type": "Models.Factorial.Permutation, Models", - "Name": "Permutation", - "Children": [ - { - "$type": "Models.Factorial.Factor, Models", - "Specification": "", - "Name": "Irrigation", - "Children": [ - { - "$type": "Models.Factorial.CompositeFactor, Models", - "Specifications": [ - "[AutoIrrigation].Script.AutoIrrigationOn = false" - ], - "Paths": null, - "Values": null, - "Name": "Dry", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Factorial.CompositeFactor, Models", - "Specifications": [ - "[AutoIrrigation].Script.AutoIrrigationOn = true" - ], - "Paths": null, - "Values": null, - "Name": "Wet", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Factorial.Factor, Models", - "Specification": "", - "Name": "Nitrogen", - "Children": [ - { - "$type": "Models.Factorial.CompositeFactor, Models", - "Specifications": [ - "[FertiliseAtSowing].Script.Amount = 0" - ], - "Paths": null, - "Values": null, - "Name": "0", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Factorial.CompositeFactor, Models", - "Specifications": [ - "[FertiliseAtSowing].Script.Amount = 50" - ], - "Paths": null, - "Values": null, - "Name": "50", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Factorial.CompositeFactor, Models", - "Specifications": [ - "[FertiliseAtSowing].Script.Amount = 100" - ], - "Paths": null, - "Values": null, - "Name": "100", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Factorial.CompositeFactor, Models", - "Specifications": [ - "[FertiliseAtSowing].Script.Amount = 200" - ], - "Paths": null, - "Values": null, - "Name": "200", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Factorial.CompositeFactor, Models", - "Specifications": [ - "[FertiliseAtSowing].Script.Amount = 400" - ], - "Paths": null, - "Values": null, - "Name": "400", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Core.Simulation, Models", - "IsRunning": false, - "Descriptors": null, - "Name": "SensibilityBase", - "Children": [ - { - "$type": "Models.Climate.Weather, Models", - "ConstantsFile": null, - "FileName": "%root%\\Examples\\WeatherFiles\\Goond.met", - "ExcelWorkSheetName": "", - "Name": "Weather", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Clock, Models", - "Start": "1968-12-01T00:00:00", - "End": "1989-01-01T00:00:00", - "Name": "Clock", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Summary, Models", - "Verbosity": 100, - "Name": "summaryfile", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.Arbitrator.SoilArbitrator, Models", - "Name": "Soil Arbitrator", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Core.Zone, Models", - "Area": 1.0, - "Slope": 0.0, - "AspectAngle": 0.0, - "Altitude": 50.0, - "Name": "Paddock", - "Children": [ - { - "$type": "Models.Soils.Soil, Models", - "RecordNumber": 0, - "ASCOrder": null, - "ASCSubOrder": null, - "SoilType": "NZ_sedementary", - "LocalName": null, - "Site": null, - "NearestTown": null, - "Region": "Plains", - "State": "Canterbury ", - "Country": "New Zealnd", - "NaturalVegetation": null, - "ApsoilNumber": null, - "Latitude": 0.0, - "Longitude": 0.0, - "LocationAccuracy": null, - "YearOfSampling": null, - "DataSource": null, - "Comments": null, - "Name": "Soil", - "Children": [ - { - "$type": "Models.Soils.Chemical, Models", - "Depth": [ - "0-15", - "15-30", - "30-60", - "60-90", - "90-120", - "120-150" - ], - "Thickness": [ - 150.0, - 150.0, - 300.0, - 300.0, - 300.0, - 300.0 - ], - "NO3N": [ - 0.5420054200542005, - 0.5420054200542005, - 0.27548209366391185, - 0.27777777777777773, - 0.2777777777777779, - 0.2777777777777779 - ], - "NH4N": [ - 0.05420054200542006, - 0.05420054200542006, - 0.027548209366391192, - 0.027777777777777787, - 0.027777777777777762, - 0.027777777777777762 - ], - "PH": [ - 6.6, - 6.2, - 5.7, - 5.5, - 5.5, - 5.5 - ], - "CL": null, - "EC": null, - "ESP": null, - "LabileP": null, - "UnavailableP": null, - "ECMetadata": null, - "CLMetadata": null, - "ESPMetadata": null, - "PHMetadata": null, - "Name": "Chemical", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.Physical, Models", - "Depth": [ - "0-20", - "20-40", - "40-60", - "60-80", - "80-100", - "100-120", - "120-140", - "140-160" - ], - "Thickness": [ - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0 - ], - "ParticleSizeClay": null, - "ParticleSizeSand": null, - "ParticleSizeSilt": null, - "Rocks": null, - "Texture": null, - "BD": [ - 1.23, - 1.23, - 1.2, - 1.2, - 1.2, - 1.2, - 1.2, - 1.2 - ], - "AirDry": [ - 0.14, - 0.14, - 0.15, - 0.16, - 0.16, - 0.21, - 0.28, - 0.28 - ], - "LL15": [ - 0.14, - 0.14, - 0.15, - 0.16, - 0.16, - 0.21, - 0.28, - 0.28 - ], - "DUL": [ - 0.33, - 0.33, - 0.3, - 0.31, - 0.32, - 0.33, - 0.34, - 0.33 - ], - "SAT": [ - 0.48, - 0.48, - 0.4, - 0.38, - 0.37, - 0.36, - 0.38, - 0.38 - ], - "KS": [ - 4832.039, - 389.229, - 16.362, - 97.995, - 97.995, - 97.995, - 98.0, - 98.0 - ], - "BDMetadata": null, - "AirDryMetadata": null, - "LL15Metadata": null, - "DULMetadata": null, - "SATMetadata": null, - "KSMetadata": null, - "RocksMetadata": null, - "TextureMetadata": null, - "ParticleSizeSandMetadata": null, - "ParticleSizeSiltMetadata": null, - "ParticleSizeClayMetadata": null, - "Name": "Physical", - "Children": [ - { - "$type": "Models.Soils.SoilCrop, Models", - "LL": [ - 0.14, - 0.14, - 0.15, - 0.16, - 0.16, - 0.21, - 0.28, - 0.28 - ], - "KL": [ - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1 - ], - "XF": [ - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0 - ], - "LLMetadata": null, - "KLMetadata": null, - "XFMetadata": null, - "Name": "SorghumSoil", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.WaterModel.WaterBalance, Models", - "SummerDate": "1-Nov", - "SummerU": 6.0, - "SummerCona": 2.0, - "WinterDate": "1-Apr", - "WinterU": 9.0, - "WinterCona": 4.4, - "DiffusConst": 0.0, - "DiffusSlope": 0.0, - "Salb": 0.18, - "CN2Bare": 68.0, - "CNRed": 20.0, - "CNCov": 0.8, - "DischargeWidth": 0.0, - "CatchmentArea": 0.0, - "Thickness": [ - 150.0, - 150.0, - 300.0, - 300.0, - 300.0, - 300.0 - ], - "SWCON": [ - 0.9, - 0.6, - 0.4, - 0.4, - 0.4, - 0.9 - ], - "KLAT": [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - "ResourceName": "WaterBalance", - "Name": "SoilWater", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.SoilNitrogen, Models", - "fom_types": [ - "default", - "manure", - "mucuna", - "lablab", - "shemp", - "stable" - ], - "fract_carb": [ - 0.2, - 0.3, - 0.54, - 0.57, - 0.45, - 0.0 - ], - "fract_cell": [ - 0.7, - 0.3, - 0.37, - 0.37, - 0.47, - 0.1 - ], - "fract_lign": [ - 0.1, - 0.4, - 0.09, - 0.06, - 0.08, - 0.9 - ], - "NPartitionApproach": 0, - "Name": "SoilNitrogen", - "Children": [ - { - "$type": "Models.Soils.SoilNitrogenNO3, Models", - "Name": "NO3", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.SoilNitrogenNH4, Models", - "Name": "NH4", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.SoilNitrogenUrea, Models", - "Name": "Urea", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.Organic, Models", - "Depth": [ - "0-15", - "15-30", - "30-60", - "60-90", - "90-120", - "120-150" - ], - "FOMCNRatio": 31.5, - "Thickness": [ - 150.0, - 150.0, - 300.0, - 300.0, - 300.0, - 300.0 - ], - "Carbon": [ - 2.0, - 1.5, - 1.0, - 0.38, - 0.24, - 0.24 - ], - "SoilCNRatio": [ - 11.0, - 11.0, - 11.0, - 11.0, - 11.0, - 11.0 - ], - "FBiom": [ - 0.025, - 0.025, - 0.015, - 0.01, - 0.01, - 0.01 - ], - "FInert": [ - 0.45, - 0.6, - 0.75, - 0.9, - 0.96, - 0.96 - ], - "FOM": [ - 0.0, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - "CarbonMetadata": null, - "FOMMetadata": null, - "Name": "Organic", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.CERESSoilTemperature, Models", - "Name": "Temperature", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.InitialWater, Models", - "PercentMethod": 1, - "FractionFull": 0.75, - "DepthWetSoil": "NaN", - "RelativeTo": null, - "Name": "InitialWater", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Surface.SurfaceOrganicMatter, Models", - "InitialResidueName": "Barley_stubble", - "InitialResidueType": "Barley", - "InitialResidueMass": 0.0, - "InitialStandingFraction": 0.0, - "InitialCPR": 0.0, - "InitialCNR": 80.0, - "ResourceName": "SurfaceOrganicMatter", - "Name": "Surface Organic Matter", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.MicroClimate, Models", - "a_interception": 0.0, - "b_interception": 1.0, - "c_interception": 0.0, - "d_interception": 0.0, - "SoilHeatFluxFraction": 0.4, - "MinimumHeightDiffForNewLayer": 0.0, - "NightInterceptionFraction": 0.5, - "ReferenceHeight": 2.0, - "Name": "MicroClimate", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Irrigation, Models", - "Name": "Irrigation", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Fertiliser, Models", - "ResourceName": "Fertiliser", - "Name": "Fertiliser", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Report, Models", - "VariableNames": [ - "[Clock].Today", - "[Sorghum].Grain.Wt" - ], - "EventNames": [ - "[Sorghum].Harvesting" - ], - "GroupByVariableName": null, - "Name": "WaterByNSensibilityReport", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Manager, Models", - "Code": "using APSIM.Shared.Utilities;\r\nusing Models.Utilities;\r\nusing Models.Soils;\r\nusing Models.PMF;\r\nusing Models.Core;\r\nusing System;\r\n\r\nnamespace Models\r\n{\r\n [Serializable]\r\n public class Script : Model\r\n {\r\n [Link] Clock Clock;\r\n [Link] Fertiliser Fertiliser;\r\n [Link] Summary Summary;\r\n [Link] Soil Soil;\r\n Accumulator accumulatedRain;\r\n \r\n [Description(\"Crop\")]\r\n public IPlant Crop { get; set; }\r\n [Description(\"Sowing date (d-mmm)\")]\r\n public string SowDate { get; set; }\r\n [Display(Type = DisplayType.CultivarName)]\r\n [Description(\"Cultivar to be sown\")]\r\n public string CultivarName { get; set; }\r\n [Description(\"Sowing depth (mm)\")]\r\n public double SowingDepth { get; set; }\r\n [Description(\"Row spacing (mm)\")]\r\n public double RowSpacing { get; set; }\r\n [Description(\"Plant population (/m2)\")]\r\n public double Population { get; set; }\r\n \r\n\r\n\r\n [EventSubscribe(\"DoManagement\")]\r\n private void OnDoManagement(object sender, EventArgs e)\r\n {\r\n if (DateUtilities.WithinDates(SowDate, Clock.Today, SowDate))\r\n {\r\n Crop.Sow(population: Population, cultivar: CultivarName, depth: SowingDepth, rowSpacing: RowSpacing); \r\n }\r\n \r\n }\r\n \r\n }\r\n}\r\n", - "Parameters": [ - { - "Key": "Crop", - "Value": "[Sorghum]" - }, - { - "Key": "SowDate", - "Value": "28-Dec" - }, - { - "Key": "CultivarName", - "Value": "Buster" - }, - { - "Key": "SowingDepth", - "Value": "30" - }, - { - "Key": "RowSpacing", - "Value": "500" - }, - { - "Key": "Population", - "Value": "10" - } - ], - "Name": "Sow", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Manager, Models", - "Code": "using Models.PMF;\r\nusing Models.Core;\r\nusing System;\r\nnamespace Models\r\n{\r\n [Serializable]\r\n public class Script : Model\r\n {\r\n [Link] Clock Clock;\r\n [Link] Fertiliser Fertiliser;\r\n [Link] Summary Summary; \r\n\r\n public double CumulativeSowFert {get; set;} \r\n\r\n [Description(\"Type of fertiliser to apply? \")] public Fertiliser.Types FertiliserType { get; set; }\r\n\r\n [Description(\"Amount of fertiliser to be applied (kg/ha)\")]\r\n public double Amount { get; set; }\r\n \r\n [EventSubscribe(\"Sowing\")]\r\n private void OnSowing(object sender, EventArgs e)\r\n {\r\n Fertiliser.Apply(Amount: Amount, Type: FertiliserType);\r\n CumulativeSowFert += Amount;\r\n Summary.WriteMessage(this, \"Fertilising!! applying \" + Amount.ToString(), MessageType.Diagnostic); \r\n }\r\n \r\n }\r\n}\r\n", - "Parameters": [ - { - "Key": "CumulativeSowFert", - "Value": "0" - }, - { - "Key": "FertiliserType", - "Value": "UreaN" - }, - { - "Key": "Amount", - "Value": "0" - } - ], - "Name": "FertiliseAtSowing", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Manager, Models", - "Code": "using Models.Interfaces;\nusing System;\nusing Models.Core;\nusing System.Collections.Generic;\nusing System.Text;\nusing Models.Soils;\nusing Models.PMF;\nusing Models;\nusing System.Xml.Serialization;\nusing APSIM.Shared.Utilities;\n\nnamespace Models\n{\n [Serializable] \n public class Script : Model\n {\n [Link] private Zone zone;\n [Link] private Irrigation irrigation;\n [Link] private Soil soil;\n [Link]\n private IPhysical soilPhysical;\n [Link]\n private ISoilWater waterBalance;\n public double FASW { get; set; }\n public double WaterDeficit { get; set; }\n \n \n [Description(\"Auto irrigation on?\")]\n public bool AutoIrrigationOn { get; set; }\n\n [Description(\"Threshold fraction available water (0-1)\")]\n public double FASWThreshold { get; set; }\n\n [Description(\"Soil depth (mm) to which fraction available water is calculated\")]\n public double FASWDepth { get; set; }\n\n [EventSubscribe(\"DoManagement\")]\n private void OnDoManagement(object sender, EventArgs e)\n {\n CalculateFASW();\n if (AutoIrrigationOn)\n {\n if (FASW < FASWThreshold)\n {\n double amount = 10;\n irrigation.Apply(WaterDeficit, depth: 0);\n }\n }\n }\n \n private void CalculateFASW()\n {\n double[] LL15 = MathUtilities.Multiply(soilPhysical.LL15, soilPhysical.Thickness);\n double[] DUL = MathUtilities.Multiply(soilPhysical.DUL, soilPhysical.Thickness);\n \n int nlayr = GetLayerIndex();\n double cumdep = MathUtilities.Sum(soilPhysical.Thickness, 0, nlayr, 0.0);\n\n double excess_fr = MathUtilities.Divide((cumdep - FASWDepth), soilPhysical.Thickness[nlayr], 0.0);\n\n // note that results may be strange if swdep < ll15\n double avail_sw = (MathUtilities.Sum(waterBalance.SWmm, 0, nlayr, 0.0)\n - excess_fr * waterBalance.SWmm[nlayr])\n - (MathUtilities.Sum(LL15, 0, nlayr, 0.0)\n - excess_fr * LL15[nlayr]);\n\n\n double pot_avail_sw = (MathUtilities.Sum(DUL, 0, nlayr, 0.0)\n - excess_fr * DUL[nlayr])\n - (MathUtilities.Sum(LL15, 0, nlayr, 0.0)\n - excess_fr * LL15[nlayr]);\n\n FASW = MathUtilities.Divide(avail_sw, pot_avail_sw, 0.0);\n WaterDeficit = MathUtilities.Constrain(pot_avail_sw - avail_sw, 0.0, 100000);\n }\n\n private int GetLayerIndex()\n {\n double[] cumThickness = soilPhysical.ThicknessCumulative;\n for (int i = 1; i < cumThickness.Length; i++)\n {\n if (FASWDepth < cumThickness[i])\n return i - 1;\n }\n \n return cumThickness.Length - 1;\n }\n\n }\n}\n \n", - "Parameters": [ - { - "Key": "FASW", - "Value": "0" - }, - { - "Key": "WaterDeficit", - "Value": "0" - }, - { - "Key": "AutoIrrigationOn", - "Value": "False" - }, - { - "Key": "FASWThreshold", - "Value": "0.9" - }, - { - "Key": "FASWDepth", - "Value": "600" - } - ], - "Name": "AutoIrrigation", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Manager, Models", - "Code": "using APSIM.Shared.Utilities;\r\nusing Models.Utilities;\r\nusing Models.Soils;\r\nusing Models.PMF;\r\nusing Models.Core;\r\nusing System;\r\n\r\nnamespace Models\r\n{\r\n [Serializable] \r\n public class Script : Model\r\n {\r\n [Description(\"Crop\")]\r\n public IPlant Crop { get; set; }\r\n \r\n [EventSubscribe(\"DoManagement\")]\r\n private void OnDoManagement(object sender, EventArgs e)\r\n {\r\n if (Crop.IsReadyForHarvesting)\r\n {\r\n Crop.Harvest();\r\n Crop.EndCrop();\r\n }\r\n }\r\n }\r\n}\r\n \r\n", - "Parameters": [ - { - "Key": "Crop", - "Value": "[Sorghum]" - } - ], - "Name": "Harvesting", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.PMF.Plant, Models", - "ResourceName": "Sorghum", - "Name": "Sorghum", - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 3, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "CPD", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16777216, - "FactorToVaryColours": "Nitrogen", - "FactorToVaryMarkers": "Irrigation", - "FactorToVaryLines": null, - "Marker": 0, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "WaterByNProbability", - "XFieldName": "Sorghum.Grain.Wt", - "YFieldName": "Probability", - "X2FieldName": null, - "Y2FieldName": null, - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": null, - "Name": "Series", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Memo, Models", - "Text": "The results for irrigted, High N treatments the range of yields are inline with expectations for the location of the simulations. There is no sensitivity to irrigation with zero nitrogen as N supply is the factor limiting production. As N inputs increase the crop becomes increasingly sensitive to water application and the crop is more responsive to nitrogen with irrigation. These results show the model is giving sensible predictions \r\n", - "Name": "Interpretation", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false } ], "Enabled": true, diff --git a/Tests/UnderReview/Sorghum/SorghumExample.apsimx b/Tests/UnderReview/Sorghum/SorghumExample.apsimx index 35fe09de28..c155ceb8e1 100644 --- a/Tests/UnderReview/Sorghum/SorghumExample.apsimx +++ b/Tests/UnderReview/Sorghum/SorghumExample.apsimx @@ -1,6 +1,6 @@ { "$type": "Models.Core.Simulations, Models", - "ExplorerWidth": 285, + "ExplorerWidth": 300, "Version": 147, "Name": "Simulations", "Children": [ @@ -9794,4464 +9794,6 @@ ], "Enabled": true, "ReadOnly": false - }, - { - "$type": "Models.Core.Simulation, Models", - "IsRunning": false, - "Descriptors": null, - "Name": "Forage Crop Grazing", - "Children": [ - { - "$type": "Models.Memo, Models", - "Text": "“Forage Crop Grazing” is a simple single-paddock simulation. The paddock contains a sorghum crop that is irrigated and fertilised. The sorghum is sown in summer of the first year and is rejuvenated thereafter at the frequency set on the sowing rule in the paddock. In this simulation a new mob of animals are ‘bought’ every time the sorghum (or any forage crop or crops) are ready to be grazed. \nThe user sets the characteristics of the stock, the grazing rules and if/how any supplementary feeding is done.\n\n**Stock Type Information** \n\nThis section contains parameters for the genotype (e.g. Jersey, Small merino), reproductive type (e.g. Castrated male), age, weight, and fertility status. Every time the crop is to be grazed the animals of these characteristics are brought into the simulation. They will change status while grazing but will reset at each grazing event (they exit the simulation between grazing events).\n\n**Grazing event information**\n\nThe stock parameters controlling the grazing event are the stocking rate (the numbers of animals bought will be controlled by this and the paddock area) and their location when the simulation is initialised. \n\nThere are several parameters to control the timing of grazing events. Initially the paddock is assessed for the amount of grazable herbage at which the animals can enter and graze the cropand at which they must leave. \n\nThe biomass is the sum of all the grazable components in the paddock. There is an option to set a rough minimum number of days that it might be anticipated that the animals might stay on the paddock if they enter. This is designed to prevent many, very short-duration, grazing events. The estimate is based on a potential intake of 3% of body mass per day and is applied as an additional amount of biomass above the post-grazing biomass. Apart from the biomass based rules there is also an optional no-grazing window. Note that there is no control of grazing based on growth stage (as there might be for a cereal crop for example).\n\n**Supplementary feeding**\n\nThe management script also allows for optional supplementary feeding. A specified supplement can be feed every day and/or when the biomass in the grazed paddock falls below a set value. The supplement can be fed before grazing (i.e. as an intake priority) or animals can choose between offered supplement and forage depending on digestibility and availability (see the Stock Science Documentation for more information). Every time that a supplement about to be fed out the script buys sufficient supplement to last about a month.\n\n**Reporting Outputs**\n\nThere are several example outputs included in the Report model. The documentation for the Report model for the general syntax which here is set up to accommodate means, sums or last values of the reporting interval. In this short example the reporting interval is every day but for longer simulations it might be desirable to set up reporting at the end of each month or grazing event for example.\n\nThe first plots shows the location of the stock (on the paddock or ‘away’), the grazable biomass in the paddock and the supplement remaining in the store. The second plot shows average body mass and average dry matter intake. Note how body mass resets to a consistent value at the start of each grazing event. This is because a new mob of animals is bought at the start of each grazing event.\n\nThe shaded area behind the plots shows the location of the stock (get this to show but adding a \"ShadedBarsOnGraph\" model to a Graph|Series). Clicking on one of the shaded areas will pop up the name of the location.\n", - "Name": "Memo", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Clock, Models", - "Start": "2010-09-01T00:00:00", - "End": "2012-08-31T00:00:00", - "Name": "Clock", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Climate.Weather, Models", - "ConstantsFile": null, - "FileName": "%root%/Examples/WeatherFiles/Gatton.met", - "ExcelWorkSheetName": "", - "Name": "Weather", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Summary, Models", - "Verbosity": 100, - "Name": "Summary", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.Arbitrator.SoilArbitrator, Models", - "Name": "Soil Arbitrator", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.MicroClimate, Models", - "a_interception": 0.0, - "b_interception": 1.0, - "c_interception": 0.0, - "d_interception": 0.0, - "SoilHeatFluxFraction": 0.4, - "MinimumHeightDiffForNewLayer": 0.0, - "NightInterceptionFraction": 0.5, - "ReferenceHeight": 2.0, - "Name": "MicroClimate", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.GrazPlan.Supplement, Models", - "SpoilageTime": 0.0, - "Stores": [ - { - "$type": "Models.GrazPlan.StoreType, Models", - "Name": "fodder", - "Stored": 0.0, - "IsRoughage": true, - "DMContent": 0.85, - "DMD": 0.0, - "MEContent": 0.0, - "CPConc": 0.0, - "ProtDg": 0.0, - "PConc": 0.0, - "SConc": 0.0, - "EEConc": 0.0, - "ADIP2CP": 0.0, - "AshAlk": 0.0, - "MaxPassage": 0.0 - }, - { - "$type": "Models.GrazPlan.StoreType, Models", - "Name": "silage", - "Stored": 0.0, - "IsRoughage": true, - "DMContent": 1.0, - "DMD": 0.75, - "MEContent": 12.0, - "CPConc": 0.18, - "ProtDg": 0.8, - "PConc": 0.0032, - "SConc": 0.0024, - "EEConc": 0.02, - "ADIP2CP": 0.06, - "AshAlk": 0.6, - "MaxPassage": 0.0 - } - ], - "PaddockList": [], - "Name": "Supplement", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.GrazPlan.Stock, Models", - "randFactory": { - "$type": "StdUnits.MyRandom, Models" - }, - "RandSeed": 9999, - "StockModel": null, - "Name": "Stock", - "Children": [ - { - "$type": "Models.GrazPlan.GenotypeCross, Models", - "AnimalType": "Sheep", - "PureBredBreed": "Small Merino", - "DamBreed": null, - "SireBreed": "", - "MatureDeathRate": 0.02, - "WeanerDeathRate": 0.02, - "Conception": [ - 0.0, - 0.54, - 0.41000000000000003, - 0.0 - ], - "Generation": 0, - "SRW": 40.0, - "PotFleeceWt": 3.6, - "MaxFibreDiam": 19.0, - "FleeceYield": 0.7000000000000001, - "PeakMilk": 0.0, - "Name": "Small Merino", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.ForageDigestibility.Forages, Models", - "Parameters": null, - "Name": "Forages", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Manager, Models", - "Code": "using Models.PMF.Interfaces;\r\nusing System.Diagnostics;\r\nusing Models.AgPasture;\r\nusing System.Linq;\r\nusing System.Collections.Generic;\r\nusing System.Collections;\r\nusing Models.Soils;\r\nusing Models.PMF;\r\nusing System.Xml.Serialization;\r\nusing APSIM.Shared.Utilities;\r\nusing Models.GrazPlan;\r\nusing Models.Utilities;\r\nusing Models.Core;\r\nusing Models;\r\nusing System;\r\n\r\nnamespace Models\r\n{\r\n\r\n [Serializable]\r\n public class Script : Model\r\n {\r\n [Link] Clock clock;\r\n [Link] Stock stock;\r\n [Link] Supplement supplement;\r\n [Link] List paddocks;\r\n [Link] ISummary summary;\r\n [Link] Simulation farm;\r\n [Link] List forages = null;\r\n\r\n private int CurrentGroupNum = 1; // animal group number\r\n private int CurrentLocationNum { get; set; }\r\n\r\n [Separator(\"Stock type info, the same type of stock are brought onto the paddock at each grazing\")]\r\n\r\n [Description(\"Stock: genotype (e.g. Small Merino, Angus, Friesian):\")] \r\n [Display(Values=\"GetGenotypes\")]\r\n public string Genotype { get; set; }\r\n\r\n [Description(\"Stock: sex (Female, Male, Castrate):\")] \r\n public ReproductiveType Sex { get; set; }\r\n\r\n [Description(\"Stock: age (months):\")] \r\n public double Age { get; set; }\r\n\r\n [Description(\"Stock: weight (kg liveweight /head):\")] \r\n public double Weight { get; set; }\r\n\r\n [Description(\"Stock: fertility status (0 if non-pregnant or days since conception):\")] \r\n public int Pregnant { get; set; }\r\n\r\n [Description(\"Stock: lactation status (0 if non-lactating or days since parturition):\")]\r\n public int Lactating { get; set; }\r\n\r\n [Description(\"Stock: number of unweaned young:\")]\r\n public int YoungNumber { get; set; }\r\n\r\n [Description(\"Stock: weight of unweaned young:\")] \r\n public double YoungWt { get; set; }\r\n\r\n [Separator(\"Grazing event information\")]\r\n\r\n [Description(\"Paddock stocking rate (head/ha): \")] \r\n public double StockingRate { get; set; }\r\n\r\n [Description(\"Initial location of the cows (give either the paddock name or 'Away'): \")] \r\n public string CurrentLocation { get; set; }\r\n\r\n [Description(\"Standing biomass at which to bring the stock into the simulation (kg DM/ha): \")] \r\n public double PreGrazingDM { get; set; }\r\n\r\n [Description(\"Don't move the stock onto the crop unless there is approx. X days of grazable forage available: \")] \r\n public int MinGrazingDays { get; set; }\r\n\r\n [Description(\"Standing biomass at which to exit stock from the simulation (kg DM/ha): \")] \r\n public double PostGrazingDM { get; set; }\r\n\r\n [Description(\"Implement a no-grazing window? (tick for yes): \")] \r\n public bool DoNoGrazingWindow { get; set; }\r\n\r\n [Description(\"Start of the no-grazing window (dd-MMM)\")] \r\n public string NoGrazeStart { get; set; }\r\n\r\n [Description(\"End of the no-grazing window (dd-MMM)\")] \r\n public string NoGrazeEnd { get; set; }\r\n\r\n [Separator(\"Supplementary feeding\")]\r\n\r\n [Description(\"Name of the supplement to feed: \")] \r\n public string SupplementName { get; set; }\r\n\r\n [Description(\"Feed the supplement first (i.e. before the new forage is available to the stock)?: \")] \r\n public bool SupplementFirst { get; set; }\r\n\r\n [Description(\"Amount of supplementary feeding offered every day (kg DM /head /day): \")] \r\n public double SupplementEveryDay { get; set; }\r\n\r\n [Description(\"Additional amount of supplement offered when available biomass is low (kg DM /head /day): \")] \r\n public double SupplementOnPastureMass { get; set; }\r\n\r\n [Description(\"Trigger biomass for above rule (kg DM /ha): \")] \r\n public double TriggerPastureMass { get; set; }\r\n\r\n public int NumStock { get; set; }\r\n public bool GrazingSeasonIsOpen { get; set; } // number of cows on the whole farm\r\n public double HarvestableBiomass { get; set; }\r\n public double HarvestableBiomassYesterday { get; set; }\r\n\r\n // Return a list of genotypes to the properties tab.\r\n public string[] GetGenotypes()\r\n {\r\n if (stock != null)\r\n return stock.Genotypes.Names.ToArray();\r\n return null;\r\n }\r\n\r\n [EventSubscribe(\"StartOfSimulation\")]\r\n private void OnStartOfSimulation(object sender, EventArgs e)\r\n {\r\n\r\n //Debugger.Break();\r\n\r\n summary.WriteMessage(this, \"Initialising the paddock information\", MessageType.Diagnostic);\r\n\r\n NumStock = (int)(Math.Round(StockingRate * farm.Area, 0));\r\n\r\n if (CurrentLocation.ToLower() != \"away\")\r\n {\r\n BuyStock();\r\n stock.Move(CurrentLocation);\r\n summary.WriteMessage(this, \" The Stock have been moved to \" + CurrentLocation, MessageType.Diagnostic);\r\n }\r\n\r\n summary.WriteMessage(this, \" The number of animals has been rounded to \" + NumStock + \" from \" + (StockingRate * farm.Area), MessageType.Diagnostic);\r\n summary.WriteMessage(this, \" The animals will begin in \" + CurrentLocation + \" which is paddock number \" + CurrentLocationNum + \" in the simulation\", MessageType.Diagnostic);\r\n summary.WriteMessage(this, \" The area of the whole farm is \" + farm.Area + \" ha\", MessageType.Diagnostic);\r\n\r\n }\r\n\r\n [EventSubscribe(\"DoManagement\")]\r\n private void OnDoManagement(object sender, EventArgs e)\r\n {\r\n GrazingSeasonIsOpen = true;\r\n if (DoNoGrazingWindow)\r\n GrazingSeasonIsOpen = !DateUtilities.WithinDates(NoGrazeStart, clock.Today, NoGrazeEnd);\r\n\r\n bool sellSomeStock = false;\r\n if (!GrazingSeasonIsOpen)\r\n sellSomeStock = true;\r\n\r\n // Calculate forage mass in the paddock\r\n HarvestableBiomass = 0.0;\r\n foreach (var forage in forages)\r\n foreach (var forageOrgan in forage.Organs)\r\n if (forageOrgan.IsAboveGround)\r\n HarvestableBiomass += forageOrgan.Live.Wt + forageOrgan.Dead.Wt;\r\n \r\n HarvestableBiomass *= 10; // Convert to kg/ha\r\n\r\n if (clock.Today == clock.StartDate)\r\n HarvestableBiomassYesterday = HarvestableBiomass;\r\n\r\n double deltaHarvestableBiomass = Math.Max(0.0, HarvestableBiomass - HarvestableBiomassYesterday);\r\n\r\n if (HarvestableBiomass <= PostGrazingDM)\r\n sellSomeStock = true;\r\n\r\n if (CurrentLocation == \"Away\")\r\n sellSomeStock = false;\r\n\r\n // The 0.03 is the propostion of body mass that the stock might eat\r\n double minFodder = Math.Max(PreGrazingDM, Math.Max(0.0, (0.03 * MinGrazingDays * NumStock * Weight) - (deltaHarvestableBiomass * MinGrazingDays))); \r\n HarvestableBiomassYesterday = HarvestableBiomass;\r\n\r\n if (CurrentLocation == \"Away\" && (HarvestableBiomass >= PreGrazingDM) && HarvestableBiomass >= (PostGrazingDM + minFodder) && GrazingSeasonIsOpen)\r\n {\r\n CurrentLocation = paddocks[0].Name;\r\n CurrentLocationNum = paddocks[0].Index;\r\n BuyStock();\r\n stock.Move(CurrentLocation);\r\n summary.WriteMessage(this, \" Buying stock \", MessageType.Diagnostic);\r\n }\r\n\r\n if (sellSomeStock)\r\n {\r\n CurrentLocation = \"Away\";\r\n CurrentLocationNum = -1;\r\n SellStock();\r\n summary.WriteMessage(this, \" Selling stock \", MessageType.Diagnostic);\r\n }\r\n\r\n if (CurrentLocation != \"Away\")\r\n {\r\n if (SupplementEveryDay > 0)\r\n {\r\n double silageOnHand = supplement.Stores[2 - 1].Stored;\r\n if (silageOnHand < SupplementEveryDay * stock.NumberAll)\r\n {\r\n supplement.Buy(SupplementEveryDay * 30.0 * stock.NumberAll, SupplementName); // i.e. 1 months worth\r\n summary.WriteMessage(this, \"SupplementEveryDay: Buying \" + SupplementName + \" of total amount : \" + (SupplementEveryDay * 90 * stock.NumberAll) + \" kg DM\", MessageType.Diagnostic);\r\n }\r\n supplement.Feed(SupplementName, SupplementEveryDay * stock.NumberAll, CurrentLocation, SupplementFirst);\r\n }\r\n\r\n if (SupplementOnPastureMass > 0 && HarvestableBiomass <= TriggerPastureMass)\r\n {\r\n double silageOnHand = supplement.Stores[2 - 1].Stored;\r\n if (silageOnHand < SupplementOnPastureMass * stock.NumberAll)\r\n {\r\n supplement.Buy(SupplementOnPastureMass * 30.0 * stock.NumberAll, SupplementName); // i.e. 1 months worth\r\n summary.WriteMessage(this, \"SupplementOnBiomass: Buying \" + SupplementName + \" of total amount : \" + (SupplementOnPastureMass * 90 * stock.NumberAll) + \" kg DM\", MessageType.Diagnostic);\r\n }\r\n supplement.Feed(SupplementName, SupplementOnPastureMass * stock.NumberAll, CurrentLocation, SupplementFirst);\r\n }\r\n }\r\n }\r\n\r\n\r\n public void BuyStock()\r\n {\r\n CurrentGroupNum = stock.NoGroups + 1;\r\n StockBuy purchase = new StockBuy();\r\n purchase.Genotype = Genotype;\r\n purchase.Number = NumStock;\r\n purchase.Sex = Sex;\r\n purchase.Age = Age; // age in months\r\n purchase.Weight = Weight; // live weight in kg\r\n purchase.UseTag = CurrentGroupNum + 1;\r\n purchase.MatedTo = purchase.Genotype;\r\n purchase.Pregnant = Pregnant; // days pregnant, 0 = non pregnant, 1 = pregnant\r\n purchase.Lactating = Lactating; // 0 for dry, 1 for lactating\r\n purchase.NumYoung = YoungNumber;\r\n purchase.YoungWt = YoungWt;\r\n\r\n stock.Buy(purchase);\r\n }\r\n\r\n public void SellStock()\r\n {\r\n int NumGroups = stock.NoGroups;\r\n\r\n NumGroups = stock.NoGroups;\r\n for (int gg = 1; gg <= NumGroups; gg++)\r\n {\r\n stock.Sell(stock.Number[gg - 1]);\r\n }\r\n }\r\n }\r\n}\r\n", - "Parameters": [ - { - "Key": "Genotype", - "Value": "Friesian" - }, - { - "Key": "Sex", - "Value": "Female" - }, - { - "Key": "Age", - "Value": "12" - }, - { - "Key": "Weight", - "Value": "280" - }, - { - "Key": "Pregnant", - "Value": "0" - }, - { - "Key": "Lactating", - "Value": "0" - }, - { - "Key": "YoungNumber", - "Value": "0" - }, - { - "Key": "YoungWt", - "Value": "0" - }, - { - "Key": "StockingRate", - "Value": "50" - }, - { - "Key": "CurrentLocation", - "Value": "Away" - }, - { - "Key": "PreGrazingDM", - "Value": "2000" - }, - { - "Key": "MinGrazingDays", - "Value": "7" - }, - { - "Key": "PostGrazingDM", - "Value": "1500" - }, - { - "Key": "DoNoGrazingWindow", - "Value": "False" - }, - { - "Key": "NoGrazeStart", - "Value": "1-Jun" - }, - { - "Key": "NoGrazeEnd", - "Value": "31-Jul" - }, - { - "Key": "SupplementName", - "Value": "silage" - }, - { - "Key": "SupplementFirst", - "Value": "False" - }, - { - "Key": "SupplementEveryDay", - "Value": "0" - }, - { - "Key": "SupplementOnPastureMass", - "Value": "2" - }, - { - "Key": "TriggerPastureMass", - "Value": "2100" - }, - { - "Key": "NumStock", - "Value": "0" - }, - { - "Key": "GrazingSeasonIsOpen", - "Value": "False" - }, - { - "Key": "HarvestableBiomass", - "Value": "0" - }, - { - "Key": "HarvestableBiomassYesterday", - "Value": "0" - } - ], - "Name": "GrazeForageCrop", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Report, Models", - "VariableNames": [ - "[Clock].Today as Date", - "Mean of [Stock].NumberAll from [Report].DayAfterLastOutput to [Clock].Today as NumStock", - "Mean of [Stock].IntakeAll.Weight from [Report].DayAfterLastOutput to [Clock].Today as AveDMIntake", - "Mean of [Stock].MEIntakeAll from [Report].DayAfterLastOutput to [Clock].Today as AveMEIntake", - "Mean of [Stock].WeightAll from [Report].DayAfterLastOutput to [Clock].Today as AveBodyMass", - "Mean of [Stock].CondScoreAll from [Report].DayAfterLastOutput to [Clock].Today as AveConditionScore", - "Mean of [Stock].MilkWtAll from [Report].DayAfterLastOutput to [Clock].Today as AveMilkWeight4pcCorr", - "Mean of ([Stock].MilkWtAll * 0.04 * 1.8) from [Report].DayAfterLastOutput to [Clock].Today as AveMilkSolids // note the \"0.04\" is to convert the 4% fat corrected to dry milk fat, the \"1.8\" is on the assumption that protein is 80% of the fat content", - "Last of [GrazeForageCrop].Script.HarvestableBiomass from [Report].DayAfterLastOutput to [Clock].Today as HarvestableBiomass", - "Last of [Supplement].stores[2].Stored from [Report].DayAfterLastOutput to [Clock].Today as SupplementRemaining", - "Last of [Field].Sorghum.AboveGround.Wt * 10.0 from [Report].DayAfterLastOutput to [Clock].Today as SorghumMass", - "Last of [Field].Sorghum.Leaf.LAI from [Report].DayAfterLastOutput to [Clock].Today as SorghumLAI", - "Last of [Field].Sorghum.AboveGround.N * 10.0 from [Report].DayAfterLastOutput to [Clock].Today as SorghumN", - "//Last of [GrazeForageCrop].Script.CurrentLocation from [Report].DayAfterLastOutput to [Clock].Today as StockLocation", - "[GrazeForageCrop].Script.CurrentLocation as StockLocation" - ], - "EventNames": [ - "[Clock].EndOfDay" - ], - "GroupByVariableName": null, - "Name": "GrazingReport", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Core.Folder, Models", - "ShowInDocs": true, - "GraphsPerPage": 6, - "Name": "Stock and Biomass Plots", - "Children": [ - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": "Date", - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 2, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "Biomass HeadCount and Supps", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16736653, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "GrazingReport", - "XFieldName": "Date", - "YFieldName": "HarvestableBiomass", - "X2FieldName": null, - "Y2FieldName": null, - "ShowInLegend": true, - "IncludeSeriesNameInLegend": true, - "Cumulative": false, - "CumulativeX": false, - "Filter": null, - "Name": "Grazable Biomass", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16777216, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "GrazingReport", - "XFieldName": "Date", - "YFieldName": "SupplementRemaining", - "X2FieldName": null, - "Y2FieldName": null, - "ShowInLegend": true, - "IncludeSeriesNameInLegend": true, - "Cumulative": false, - "CumulativeX": false, - "Filter": null, - "Name": "Supplement Remaining", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 2, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "GrazingReport", - "XFieldName": "Date", - "YFieldName": "NumStock", - "X2FieldName": null, - "Y2FieldName": null, - "ShowInLegend": true, - "IncludeSeriesNameInLegend": true, - "Cumulative": false, - "CumulativeX": false, - "Filter": null, - "Name": "NumStock", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": "Date", - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 2, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "Stock Performance", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16777216, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "GrazingReport", - "XFieldName": "Date", - "YFieldName": "AveBodyMass", - "X2FieldName": null, - "Y2FieldName": null, - "ShowInLegend": true, - "IncludeSeriesNameInLegend": true, - "Cumulative": false, - "CumulativeX": false, - "Filter": null, - "Name": "Body Mass", - "Children": [ - { - "$type": "Models.ShadedBarsOnGraph, Models", - "ColumnName": "Stock.Paddock(1)", - "SimulationName": "Forage Crop Grazing", - "Name": "ShadedBarsOnGraph", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 2, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 1, - "LineThickness": 0, - "TableName": "GrazingReport", - "XFieldName": "Date", - "YFieldName": "AveDMIntake", - "X2FieldName": null, - "Y2FieldName": null, - "ShowInLegend": true, - "IncludeSeriesNameInLegend": true, - "Cumulative": false, - "CumulativeX": false, - "Filter": null, - "Name": "Dry Matter Intake", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": "Date", - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 2, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "Sorghum Metrics", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -16736653, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "GrazingReport", - "XFieldName": "Date", - "YFieldName": "HarvestableBiomass", - "X2FieldName": null, - "Y2FieldName": null, - "ShowInLegend": true, - "IncludeSeriesNameInLegend": true, - "Cumulative": false, - "CumulativeX": false, - "Filter": null, - "Name": "Grazable Biomass", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 2, - "ColourArgb": -16747854, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "GrazingReport", - "XFieldName": "Date", - "YFieldName": "SorghumLAI", - "X2FieldName": null, - "Y2FieldName": null, - "ShowInLegend": true, - "IncludeSeriesNameInLegend": true, - "Cumulative": false, - "CumulativeX": false, - "Filter": null, - "Name": "LAI", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 2, - "ColourArgb": -3376729, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "GrazingReport", - "XFieldName": "Date", - "YFieldName": "SorghumN", - "X2FieldName": null, - "Y2FieldName": null, - "ShowInLegend": true, - "IncludeSeriesNameInLegend": true, - "Cumulative": false, - "CumulativeX": false, - "Filter": null, - "Name": "Sorghum N", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Memo, Models", - "Text": "The first plots shows the location of the stock (on the paddock or ‘away’), the grazable biomass in the paddock and the supplement remaining in the store. The second plot shows average body mass and average dry matter intake. Note how body mass resets to a consistent value at the start of each grazing event. This is because a new mob of animals is bought at the start of each grazing event.\n\nThe shaded area behind the plots shows the location of the stock (get this to show but adding a \"ShadedBarsOnGraph\" model to a Graph|Series). Clicking on one of the shaded areas will pop up the name of the location.", - "Name": "Memo1", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Core.Zone, Models", - "Area": 1.0, - "Slope": 0.0, - "AspectAngle": 0.0, - "Altitude": 50.0, - "Name": "Field", - "Children": [ - { - "$type": "Models.Manager, Models", - "Code": "using Models.Interfaces;\nusing System.Linq;\nusing System;\nusing Models.Core;\nusing Models.PMF;\nusing Models.Soils;\nusing Models.Utilities;\nusing APSIM.Shared.Utilities;\nusing Models.Climate;\n\nnamespace Models\n{\n [Serializable]\n public class Script : Model\n {\n [Link] private Clock Clock;\n [Link] private Fertiliser Fertiliser;\n [Link] private Summary Summary;\n [Link(ByName = true)] private Plant sorghum;\n [Link] private Soil Soil;\n private Accumulator accumulatedRain;\n [Link]\n private ISoilWater waterBalance;\n\n [Separator(\"======= Sowing conditions =======\")]\n [Description(\"Start of sowing window (dd-mmm)\")] public string StartDate { get; set;}\n [Description(\"End of sowing window (dd-mmm)\")] public string EndDate { get; set;}\n [Description(\"Minimum extractable soil water for sowing (mm)\")] public double MinESW { get; set;}\n [Description(\"Accumulated rainfall required for sowing (mm)\")] public double MinRain { get; set;}\n [Description(\"Duration of rainfall accumulation (d)\")] public int RainDays { get; set;}\n [Description(\"Must sow at the end of the window?\")] public answerType mustSow { get; set; }\n [Description(\"Frequency of sowing (years)\")] public int SowingFreq { get; set; }\n \n\n [Separator(\"======= Sowing data =======\")]\n [Description(\"Cultivar to be sown\")]\n [Display(Type = DisplayType.CultivarName)]\n public string CultivarName { get; set;}\n [Description(\"Sowing depth (mm)\")] public double SowingDepth { get; set;} \n [Description(\"Row spacing (mm)\")] public double RowSpacing { get; set;} \n [Description(\"Plant population (/m2)\")] public double Population { get; set;} \n\n [Separator(\"======= Sowing fertiliser =======\")]\n [Description(\"Amount of fertiliser to be applied (kg/ha)\")] public double Amount { get; set;}\n\n public double CropAge { get; set; }\n\n public enum answerType\n {\n /// a positive answer\n yes,\n /// a negative answer\n no\n }\n\n \n [EventSubscribe(\"StartOfSimulation\")]\n private void OnSimulationCommencing(object sender, EventArgs e)\n {\n accumulatedRain = new Accumulator(this, \"[Weather].Rain\", RainDays);\n CropAge = SowingFreq + 1.0;\n }\n \n\n [EventSubscribe(\"DoManagement\")]\n private void OnDoManagement(object sender, EventArgs e)\n {\n accumulatedRain.Update();\n CropAge += 1.0 / 365.25;\n\n bool doSowing = false;\n if (DateUtilities.WithinDates(StartDate,Clock.Today,EndDate) && !sorghum.IsAlive)\n doSowing = true;\n if ((MathUtilities.Sum(waterBalance.ESW) < MinESW) || (accumulatedRain.Sum < MinRain))\n doSowing = false;\n if ((mustSow == answerType.yes) && (DateUtilities.DatesEqual(EndDate, Clock.Today)))\n doSowing = true;\n if (CropAge < SowingFreq)\n doSowing = false;\n \n if (doSowing)\n {\n sorghum.Sow(population:Population, cultivar:CultivarName, depth:SowingDepth, rowSpacing:RowSpacing);\n Fertiliser.Apply(Amount: Amount, Type: Fertiliser.Types.NO3N); \n CropAge = 0.0;\n }\n \n }\n \n }\n}\n", - "Parameters": [ - { - "Key": "StartDate", - "Value": "1-nov" - }, - { - "Key": "EndDate", - "Value": "31-jan" - }, - { - "Key": "MinESW", - "Value": "50" - }, - { - "Key": "MinRain", - "Value": "30" - }, - { - "Key": "RainDays", - "Value": "5" - }, - { - "Key": "mustSow", - "Value": "yes" - }, - { - "Key": "SowingFreq", - "Value": "3" - }, - { - "Key": "CultivarName", - "Value": "Buster" - }, - { - "Key": "SowingDepth", - "Value": "10" - }, - { - "Key": "RowSpacing", - "Value": "150" - }, - { - "Key": "Population", - "Value": "200" - }, - { - "Key": "Amount", - "Value": "60" - } - ], - "Name": "SowingRule", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Manager, Models", - "Code": "using Newtonsoft.Json;\r\nusing Models.PMF.Phen;\r\nusing APSIM.Shared.Utilities;\r\nusing System.Xml.Serialization;\r\nusing Models.Soils;\r\nusing Models.PMF;\r\nusing Models.Core;\r\nusing System;\r\nusing System.Linq;\r\nusing Models.Interfaces;\r\n\r\n \r\nnamespace Models\r\n{\r\n [Serializable] \r\n [System.Xml.Serialization.XmlInclude(typeof(Model))]\r\n public class Script : Model\r\n {\r\n [Link] private ISummary summary;\r\n [Link] private Irrigation Irrigation;\r\n [Link] private Clock Clock;\r\n [Link] private Soil Soil;\r\n [Link(ByName = true)] private Plant sorghum;\r\n private DateTime StartDate;\r\n private DateTime EndDate;\r\n private double TopDUL;\r\n private double TopLL;\r\n private int nLayers;\r\n [Link]\r\n private IPhysical soilPhysical;\r\n [Link]\r\n private ISoilWater waterBalance;\r\n //Communication to other modules\r\n \r\n //User inputs from properties tab\r\n [Description(\"Turn irrigation on?\")]\r\n public bool allowIrrigation { get; set; }\r\n [Description(\"Start of irrigation season (dd-MMM)\")]\r\n public string seasonStart { get; set; }\r\n [Description(\"End of irrigation season (dd-MMM)\")]\r\n public string seasonEnd { get; set; }\r\n [Description(\"Season allocation (mm)\")]\r\n public double seasonsAllocation { get; set; }\r\n [Description(\"Deficit to trigger irrigation (% PAWC)\")]\r\n public double triggerDeficit { get; set; }\r\n [Description(\"Deficit to stop irrigaton (% PAWC)\")]\r\n public double targetDeficit { get; set; }\r\n [Description(\"Minimum days for irrigation to return\")]\r\n public double returndays { get; set; }\r\n [Description(\"Maximum irrigation application (mm/day)\")]\r\n public double maximumAmount { get; set; }\r\n [Description(\"Depth to calculate PAWC (mm)\")]\r\n public double depthPAWC { get; set; }\r\n \r\n //Class members\r\n [JsonIgnore] public double TopSWdeficit { get; set; }\r\n [JsonIgnore] public double TopSWC { get; set; }\r\n [JsonIgnore] public double DaysSinceIrrigation { get; set; }\r\n [JsonIgnore] public double AmountToApply { get; set; }\r\n [JsonIgnore] public double SeasonAppliedAmount { get; set; }\r\n \r\n private bool IrrigationIsAllowed { get; set; }\r\n private bool SeasonIsOpen { get; set; }\r\n private bool CropIsActive { get; set; }\r\n private bool IrrigatorIsAvailable { get; set; }\r\n private bool SoilIsDry { get; set; }\r\n\r\n \r\n //Calculate static soil variables\r\n [EventSubscribe(\"StartOfSimulation\")]\r\n private void OnStartOfSimulation(object sender, EventArgs e)\r\n { \r\n //Set the season dates\r\n StartDate = DateTime.Parse(seasonStart + \"-\" + Clock.Today.Year.ToString());\r\n EndDate = DateTime.Parse(seasonEnd + \"-\" + Clock.Today.Year.ToString());\r\n \r\n //Can we irrigate at all?\r\n IrrigationIsAllowed = false; \r\n if (allowIrrigation)\r\n IrrigationIsAllowed = true; \r\n\r\n //Calculate soil water variables\r\n double depthFromSurface = 0.0;\r\n double fracLayer = 0.0;\r\n nLayers = soilPhysical.Thickness.Length;\r\n for (int layer = 0; layer < nLayers; layer++)\r\n {\r\n fracLayer = Math.Min(1.0, (depthPAWC - depthFromSurface) / soilPhysical.Thickness[layer]);\r\n TopLL += soilPhysical.LL15mm[layer] * fracLayer;\r\n TopDUL += soilPhysical.DULmm[layer] * fracLayer;\r\n depthFromSurface += soilPhysical.Thickness[layer];\r\n if (depthFromSurface >= depthPAWC)\r\n layer = nLayers;\r\n }\r\n }\r\n \r\n //Determine daily requirement for irrigation\r\n [EventSubscribe(\"StartOfDay\")]\r\n private void OnStartOfDay(object sender, EventArgs e)\r\n {\r\n //Can we irrigate today? \r\n SeasonIsOpen = isBetween(Clock.Today, StartDate, EndDate);\r\n\r\n //Is there a crop in the ground that needs irrigation?\r\n CropIsActive = false;\r\n if ((sorghum != null) && (sorghum.IsAlive))\r\n CropIsActive = true;\r\n \r\n //Is the irrigator available?\r\n IrrigatorIsAvailable = false;\r\n DaysSinceIrrigation += 1;\r\n if (DaysSinceIrrigation >= returndays)\r\n IrrigatorIsAvailable = true;\r\n \r\n //Is the soil dry enough to require irrigation?\r\n SoilIsDry = false;\r\n double depthFromSurface = 0.0;\r\n double fracLayer = 0.0;\r\n TopSWC = 0.0;\r\n for (int layer = 0; layer < nLayers; layer++)\r\n {\r\n fracLayer = Math.Min(1.0, (depthPAWC - depthFromSurface) / soilPhysical.Thickness[layer]);\r\n TopSWC += waterBalance.SWmm[layer] * fracLayer;\r\n depthFromSurface += soilPhysical.Thickness[layer];\r\n if (depthFromSurface >= depthPAWC)\r\n layer = nLayers;\r\n }\r\n \r\n TopSWdeficit = TopSWC - TopDUL;\r\n if (Math.Max(0.0, -TopSWdeficit) >= (TopDUL - TopLL) * (100 - triggerDeficit) / 100)\r\n SoilIsDry = true;\r\n \r\n //Are all the conditions ratifying irrigation\r\n if (IrrigationIsAllowed && SeasonIsOpen && CropIsActive && IrrigatorIsAvailable && SoilIsDry)\r\n {\r\n //Lets bloody well irrigate then!!!!\r\n AmountToApply = TopDUL * targetDeficit / 100 - TopSWC;\r\n //AmountToApply = Math.Max(0.0, Math.Min(AmountToApply, seasonsAllocation - SeasonAppliedAmount));\r\n AmountToApply = maximumAmount;\r\n Irrigation.Apply(AmountToApply);\r\n DaysSinceIrrigation = 0;\r\n SeasonAppliedAmount += AmountToApply;\r\n }\r\n }\r\n \r\n ///Checks whether theDate is between iniDate and endDate (non-year specific)\r\n private bool isBetween(DateTime theDay, DateTime iniDate, DateTime endDate)\r\n {\r\n bool result = false;\r\n if (iniDate.DayOfYear < endDate.DayOfYear)\r\n {\r\n // period is within one year, ex: summer in the northern hemisphere\r\n if ((theDay.DayOfYear >= iniDate.DayOfYear) && (theDay.DayOfYear <= endDate.DayOfYear))\r\n result = true;\r\n }\r\n else\r\n {\r\n // period goes over the end of the year, ex: summer in the southern hemisphere\r\n if ((theDay.DayOfYear >= iniDate.DayOfYear) || (theDay.DayOfYear <= endDate.DayOfYear))\r\n result = true;\r\n }\r\n \r\n return result;\r\n }\r\n }\r\n}\r\n", - "Parameters": [ - { - "Key": "allowIrrigation", - "Value": "True" - }, - { - "Key": "seasonStart", - "Value": "15-Sep" - }, - { - "Key": "seasonEnd", - "Value": "30-Apr" - }, - { - "Key": "seasonsAllocation", - "Value": "10000" - }, - { - "Key": "triggerDeficit", - "Value": "75" - }, - { - "Key": "targetDeficit", - "Value": "95" - }, - { - "Key": "returndays", - "Value": "3" - }, - { - "Key": "maximumAmount", - "Value": "15" - }, - { - "Key": "depthPAWC", - "Value": "500" - }, - { - "Key": "TopSWdeficit", - "Value": "0" - }, - { - "Key": "TopSWC", - "Value": "0" - }, - { - "Key": "DaysSinceIrrigation", - "Value": "0" - }, - { - "Key": "AmountToApply", - "Value": "0" - }, - { - "Key": "SeasonAppliedAmount", - "Value": "0" - } - ], - "Name": "AutomaticIrrigation", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Manager, Models", - "Code": "using Models.Interfaces;\r\nusing System.Linq;\r\nusing APSIM.Shared.Utilities;\r\nusing Models.PMF;\r\nusing Models.Soils;\r\nusing Models.Core;\r\nusing System;\r\nusing Models.Soils.Nutrients;\r\n\r\nnamespace Models\r\n{\r\n [Serializable]\r\n public class Script : Model\r\n {\r\n [Link] private Clock clock;\r\n [Link] private Fertiliser fertiliser;\r\n [Link] private ISummary summary;\r\n [Link] private Soil soil;\r\n private Nutrient nutrient;\r\n private SoilNitrogen soilN;\r\n [Link]\r\n private IPhysical soilPhysical;\r\n\r\n\r\n [Separator(\"Fertiliser will be applied on the date(s) below\")]\r\n [Description(\"Apply fertiliser on the same day(s) each year? If no, then must include the year of appliaction below\")]\r\n public bool EachYear { get; set; }\r\n\r\n [Description(\"Dates for one or more fertiliser applications (dd-mmm or dd-mmm-yyyy) as a list with a comma between dates\")]\r\n public string[] Dates { get; set; }\r\n\r\n [Separator(\"Test for the mineral N in the soil and don't apply the fertiliser if greater than X kgN/ha is stored in the soil above a depth of Y mm\")]\r\n [Description(\"Use a critical soil mineral N to prevent application above a threshold?\")]\r\n public bool UseCritNThreshold { get; set; }\r\n\r\n [Description(\"Don't add fertiliser if N in the soil to the depth below exceeds (kg/ha)\")]\r\n public double CritNThreshold { get; set; }\r\n\r\n [Description(\"Depth to which the amount of N in the soil should be calculated (mm)\")]\r\n public double CritNDepth { get; set; }\r\n\r\n [Separator(\"Fertiliser application details\")]\r\n [Description(\"Depth at which to apply the fertiliser (mm)\")]\r\n public double Depth { get; set; }\r\n\r\n [Description(\"Amount of fertiliser to apply (kg N /ha) per application\")]\r\n public double Amount { get; set; }\r\n\r\n [Description(\"Fertiliser type - select from the list\")]\r\n public Fertiliser.Types FertiliserType { get; set; }\r\n\r\n\r\n [EventSubscribe(\"StartOfSimulation\")]\r\n private void FindSoilNOrNutrient(object sender, EventArgs e)\r\n {\r\n nutrient = this.FindInScope() as Nutrient;\r\n soilN = this.FindInScope() as SoilNitrogen;\r\n\r\n if (nutrient == null && soilN == null)\r\n throw new Exception(string.Format(\"Error in script {0}: Unable to find nutrient or soilN.\", Name));\r\n }\r\n\r\n [EventSubscribe(\"DoManagement\")]\r\n private void OnDoManagement(object sender, EventArgs e)\r\n {\r\n if (OnApplicationDate())\r\n {\r\n if (NContentBelowThreshold())\r\n fertiliser.Apply(Amount, FertiliserType, Depth);\r\n else\r\n summary.WriteMessage(this, \"Skipping fertiliser application due to soil mineral N content being above critical threshold.\", MessageType.Diagnostic);\r\n }\r\n }\r\n\r\n /// Checks if today's date is one of the specified fertiliser application dates.\r\n private bool OnApplicationDate()\r\n {\r\n if (EachYear)\r\n return Dates.Any(d => DateUtilities.DatesEqual(d, clock.Today));\r\n \r\n DateTime[] dates = Dates.Select(d => DateTime.ParseExact(d, \"d-MMM-yyyy\", null)).ToArray();\r\n return dates.Any(d => SameDate(d, clock.Today));\r\n }\r\n\r\n /// Checks if N content in soil is below critical threshold.\r\n private bool NContentBelowThreshold()\r\n {\r\n if (!UseCritNThreshold)\r\n return true;\r\n \r\n double[] weights = GetLayerWeights();\r\n double cumSoilN = 0;\r\n\r\n for (int i = 0; i < soilPhysical.Thickness.Length; i++)\r\n {\r\n if (nutrient != null)\r\n cumSoilN += weights[i] * nutrient.MineralN[i];\r\n else if (soilN != null)\r\n cumSoilN += weights[i] * soilN.mineral_n[i];\r\n }\r\n\r\n return cumSoilN <= CritNThreshold;\r\n }\r\n\r\n private double[] GetLayerWeights()\r\n {\r\n double[] weights = new double[soilPhysical.Thickness.Length];\r\n double cumDepth = 0;\r\n\r\n for (int i = 0; i < soilPhysical.Thickness.Length; i++)\r\n {\r\n cumDepth += soilPhysical.Thickness[i];\r\n if (cumDepth < CritNDepth)\r\n weights[i] = 1;\r\n else if (cumDepth - soilPhysical.Thickness[i] <= CritNDepth)\r\n weights[i] = (CritNDepth - (cumDepth - soilPhysical.Thickness[i])) / soilPhysical.Thickness[i];\r\n else\r\n weights[i] = 0;\r\n }\r\n\r\n return weights;\r\n }\r\n\r\n private bool SameDate(DateTime d1, DateTime d2)\r\n {\r\n return d1.Year == d2.Year && d1.DayOfYear == d2.DayOfYear;\r\n }\r\n }\r\n}\r\n", - "Parameters": [ - { - "Key": "EachYear", - "Value": "True" - }, - { - "Key": "Dates", - "Value": "20-sep,20-nov,20-jan,20-mar" - }, - { - "Key": "UseCritNThreshold", - "Value": "False" - }, - { - "Key": "CritNThreshold", - "Value": "50" - }, - { - "Key": "CritNDepth", - "Value": "75" - }, - { - "Key": "Depth", - "Value": "50" - }, - { - "Key": "Amount", - "Value": "30" - }, - { - "Key": "FertiliserType", - "Value": "UreaN" - } - ], - "Name": "Fertilise on fixed dates", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Irrigation, Models", - "Name": "Irrigation", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Fertiliser, Models", - "ResourceName": "Fertiliser", - "Name": "Fertiliser", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Surface.SurfaceOrganicMatter, Models", - "InitialResidueName": "grass", - "InitialResidueType": "grass", - "InitialResidueMass": 500.0, - "InitialStandingFraction": 0.0, - "InitialCPR": 0.0, - "InitialCNR": 40.0, - "ResourceName": "SurfaceOrganicMatter", - "Name": "SurfaceOrganicMatter", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.Soil, Models", - "RecordNumber": 0, - "ASCOrder": null, - "ASCSubOrder": null, - "SoilType": "HMM", - "LocalName": null, - "Site": "HRS", - "NearestTown": "Unknown", - "Region": "SE Queensland", - "State": null, - "Country": null, - "NaturalVegetation": "Unknown", - "ApsoilNumber": null, - "Latitude": 0.0, - "Longitude": 0.0, - "LocationAccuracy": null, - "YearOfSampling": null, - "DataSource": null, - "Comments": null, - "Name": "HRS", - "Children": [ - { - "$type": "Models.Soils.Physical, Models", - "Depth": [ - "0-10", - "10-20", - "20-40", - "40-60", - "60-80", - "80-100", - "100-120", - "120-140", - "140-160", - "160-180" - ], - "Thickness": [ - 100.0, - 100.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0 - ], - "ParticleSizeClay": null, - "ParticleSizeSand": null, - "ParticleSizeSilt": null, - "Rocks": null, - "Texture": null, - "BD": [ - 1.34, - 1.34, - 1.33, - 1.38, - 1.4, - 1.55, - 1.59, - 1.63, - 1.66, - 1.68 - ], - "AirDry": [ - 0.08, - 0.19, - 0.23, - 0.26, - 0.26, - 0.28, - 0.25, - 0.28, - 0.3, - 0.31 - ], - "LL15": [ - 0.226, - 0.226, - 0.258, - 0.27, - 0.268, - 0.304, - 0.335, - 0.33, - 0.32, - 0.33 - ], - "DUL": [ - 0.42, - 0.42, - 0.46, - 0.46, - 0.43, - 0.4, - 0.37, - 0.33, - 0.32, - 0.33 - ], - "SAT": [ - 0.45, - 0.45, - 0.48, - 0.47, - 0.45, - 0.41, - 0.38, - 0.37, - 0.37, - 0.36 - ], - "KS": null, - "BDMetadata": null, - "AirDryMetadata": null, - "LL15Metadata": null, - "DULMetadata": null, - "SATMetadata": null, - "KSMetadata": null, - "RocksMetadata": null, - "TextureMetadata": null, - "ParticleSizeSandMetadata": null, - "ParticleSizeSiltMetadata": null, - "ParticleSizeClayMetadata": null, - "Name": "Physical", - "Children": [ - { - "$type": "Models.Soils.SoilCrop, Models", - "LL": [ - 0.226, - 0.226, - 0.258, - 0.27, - 0.268, - 0.304, - 0.335, - 0.33, - 0.32, - 0.33 - ], - "KL": [ - 0.07, - 0.07, - 0.07, - 0.07, - 0.06, - 0.06, - 0.06, - 0.05, - 0.05, - 0.04 - ], - "XF": [ - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0 - ], - "LLMetadata": null, - "KLMetadata": null, - "XFMetadata": null, - "Name": "SorghumSoil", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.WaterModel.WaterBalance, Models", - "SummerDate": "1-Nov", - "SummerU": 1.5, - "SummerCona": 6.5, - "WinterDate": "1-Apr", - "WinterU": 1.5, - "WinterCona": 6.5, - "DiffusConst": 40.0, - "DiffusSlope": 16.0, - "Salb": 0.2, - "CN2Bare": 85.0, - "CNRed": 20.0, - "CNCov": 0.8, - "DischargeWidth": "NaN", - "CatchmentArea": "NaN", - "Thickness": [ - 100.0, - 100.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0 - ], - "SWCON": [ - 0.3, - 0.3, - 0.3, - 0.3, - 0.3, - 0.3, - 0.3, - 0.3, - 0.3, - 0.3 - ], - "KLAT": null, - "ResourceName": "WaterBalance", - "Name": "SoilWater", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.SoilNitrogen, Models", - "fom_types": [ - "default", - "manure", - "mucuna", - "lablab", - "shemp", - "stable" - ], - "fract_carb": [ - 0.2, - 0.3, - 0.54, - 0.57, - 0.45, - 0.0 - ], - "fract_cell": [ - 0.7, - 0.3, - 0.37, - 0.37, - 0.47, - 0.1 - ], - "fract_lign": [ - 0.1, - 0.4, - 0.09, - 0.06, - 0.08, - 0.9 - ], - "NPartitionApproach": 0, - "Name": "SoilNitrogen", - "Children": [ - { - "$type": "Models.Soils.SoilNitrogenNO3, Models", - "Name": "NO3", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.SoilNitrogenNH4, Models", - "Name": "NH4", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.SoilNitrogenUrea, Models", - "Name": "Urea", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.Organic, Models", - "Depth": [ - "0-10", - "10-20", - "20-40", - "40-60", - "60-80", - "80-100", - "100-120", - "120-140", - "140-160", - "160-180" - ], - "FOMCNRatio": 50.0, - "Thickness": [ - 100.0, - 100.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0 - ], - "Carbon": [ - 1.19, - 0.59, - 0.45, - 0.3, - 0.2, - 0.16, - 0.17, - 0.17, - 0.17, - 0.17 - ], - "SoilCNRatio": [ - 12.5, - 12.5, - 12.5, - 12.5, - 12.5, - 12.5, - 12.5, - 12.5, - 12.5, - 12.5 - ], - "FBiom": [ - 0.05, - 0.02, - 0.01, - 0.01, - 0.01, - 0.01, - 0.01, - 0.05, - 0.02, - 0.01 - ], - "FInert": [ - 0.45, - 0.6, - 0.75, - 0.9, - 0.9, - 0.9, - 0.9, - 0.9, - 0.9, - 0.9 - ], - "FOM": [ - 260.58740315916066, - 220.5824745109322, - 158.0542495509277, - 113.25081857248298, - 81.14775745529565, - 58.14490899956697, - 41.66264784865344, - 29.852591664969907, - 21.390316629725067, - 15.32683160828522 - ], - "CarbonMetadata": null, - "FOMMetadata": null, - "Name": "Organic", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.Chemical, Models", - "Depth": [ - "0-10", - "10-20", - "20-40", - "40-60", - "60-80", - "80-100", - "100-120", - "120-140", - "140-160", - "160-180" - ], - "Thickness": [ - 100.0, - 100.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0 - ], - "NO3N": [ - 10.4, - 1.6329999999999996, - 1.2330000000000008, - 0.9, - 1.1, - 1.4670000000000005, - 3.6329999999999996, - 5.667000000000001, - 5.8, - 7.267000000000003 - ], - "NH4N": [ - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1 - ], - "PH": [ - 6.3, - 6.4, - 6.5, - 6.6, - 6.6, - 6.5, - 6.5, - 6.5, - 6.5, - 6.5 - ], - "CL": null, - "EC": null, - "ESP": null, - "LabileP": null, - "UnavailableP": null, - "ECMetadata": null, - "CLMetadata": null, - "ESPMetadata": null, - "PHMetadata": null, - "Name": "Chemical", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.Sample, Models", - "Depth": [ - "0-10", - "10-20", - "20-40", - "40-60", - "60-80", - "80-100", - "100-120", - "120-140", - "140-160", - "160-180" - ], - "Thickness": [ - 100.0, - 100.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0 - ], - "NO3": null, - "NH4": null, - "LabileP": null, - "UnavailableP": null, - "SW": [ - 0.235, - 0.252, - 0.27, - 0.3, - 0.268, - 0.304, - 0.335, - 0.33, - 0.32, - 0.33 - ], - "OC": null, - "EC": null, - "CL": null, - "ESP": null, - "PH": null, - "SWUnits": 0, - "OCUnits": 0, - "PHUnits": 0, - "Name": "Initial water", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.CERESSoilTemperature, Models", - "Name": "Temperature", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.PMF.Plant, Models", - "ResourceName": "Sorghum", - "Name": "Sorghum", - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Core.Simulation, Models", - "IsRunning": false, - "Descriptors": null, - "Name": "Sorghum Maize Intercrop", - "Children": [ - { - "$type": "Models.Clock, Models", - "Start": null, - "End": null, - "Name": "Clock", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Summary, Models", - "Verbosity": 100, - "Name": "Summary", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Climate.Weather, Models", - "ConstantsFile": null, - "FileName": "%root%/Examples/WeatherFiles/Gatton.met", - "ExcelWorkSheetName": "", - "Name": "Weather", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.Arbitrator.SoilArbitrator, Models", - "Name": "SoilArbitrator", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Core.Zone, Models", - "Area": 1.0, - "Slope": 0.0, - "AspectAngle": 0.0, - "Altitude": 50.0, - "Name": "Paddock", - "Children": [ - { - "$type": "Models.Report, Models", - "VariableNames": [ - "[Clock].Today", - "[Sorghum].AboveGround.Wt", - "[Sorghum].Grain.Wt", - "[Sorghum].Leaf.LAI" - ], - "EventNames": [ - "[Sorghum].Harvesting" - ], - "GroupByVariableName": null, - "Name": "SorghumHarvesting", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Report, Models", - "VariableNames": [ - "[Clock].Today", - "[Maize].AboveGround.Wt", - "[Maize].Grain.Wt", - "[Maize].Leaf.LAI" - ], - "EventNames": [ - "[Maize].Harvesting" - ], - "GroupByVariableName": null, - "Name": "MaizeHarvesting", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Manager, Models", - "Code": "using Models.PMF;\nusing Models.Core;\nusing System;\nnamespace Models\n{\n [Serializable]\n public class Script : Model\n {\n [Link] Clock Clock;\n [Link] Fertiliser Fertiliser;\n\n [Description(\"Type of fertiliser to apply? \")] \n public Fertiliser.Types FertiliserType { get; set; }\n \n [Description(\"Amount of fertiliser to be applied (kg/ha)\")]\n public double Amount { get; set; }\n \n [EventSubscribe(\"Sowing\")]\n private void OnSowing(object sender, EventArgs e)\n {\n Fertiliser.Apply(Amount: Amount, Type: FertiliserType);\n }\n }\n}\n", - "Parameters": [ - { - "Key": "FertiliserType", - "Value": "UreaN" - }, - { - "Key": "Amount", - "Value": "500" - } - ], - "Name": "Fertilise at sowing", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Core.Folder, Models", - "ShowInDocs": true, - "GraphsPerPage": 6, - "Name": "Manager folder", - "Children": [ - { - "$type": "Models.Manager, Models", - "Code": "using Models.Interfaces;\nusing APSIM.Shared.Utilities;\nusing Models.Utilities;\nusing Models.Soils;\nusing Models.PMF;\nusing Models.Core;\nusing System;\nusing Models.Climate;\n\nnamespace Models\n{\n [Serializable]\n public class Script : Model\n {\n [Link] private Clock Clock;\n [Link] private Fertiliser Fertiliser;\n [Link] private Summary Summary;\n [Link] private Soil Soil;\n private Accumulator accumulatedRain;\n [Link]\n private ISoilWater waterBalance;\n \n [Description(\"Crop\")]\n public IPlant Crop { get; set; }\n\n [Description(\"Start of sowing window (d-mmm)\")]\n public string StartDate { get; set; }\n\n [Description(\"End of sowing window (d-mmm)\")]\n public string EndDate { get; set; }\n\n [Description(\"Minimum extractable soil water for sowing (mm)\")]\n public double MinESW { get; set; }\n\n [Description(\"Accumulated rainfall required for sowing (mm)\")]\n public double MinRain { get; set; }\n\n [Description(\"Duration of rainfall accumulation (d)\")]\n public int RainDays { get; set; }\n\n [Display(Type = DisplayType.CultivarName)]\n [Description(\"Cultivar to be sown\")]\n public string CultivarName { get; set; }\n\n [Description(\"Sowing depth (mm)\")]\n public double SowingDepth { get; set; }\n\n [Description(\"Row spacing (mm)\")]\n public double RowSpacing { get; set; }\n\n [Description(\"Plant population (/m2)\")]\n public double Population { get; set; }\n \n \n [EventSubscribe(\"StartOfSimulation\")]\n private void OnSimulationCommencing(object sender, EventArgs e)\n {\n accumulatedRain = new Accumulator(this, \"[Weather].Rain\", RainDays);\n }\n\n [EventSubscribe(\"DoManagement\")]\n private void OnDoManagement(object sender, EventArgs e)\n {\n accumulatedRain.Update();\n \n if (DateUtilities.WithinDates(StartDate, Clock.Today, EndDate) &&\n !Crop.IsAlive &&\n MathUtilities.Sum(waterBalance.ESW) > MinESW &&\n accumulatedRain.Sum > MinRain)\n {\n Crop.Sow(population: Population, cultivar: CultivarName, depth: SowingDepth, rowSpacing: RowSpacing); \n }\n }\n }\n}\n", - "Parameters": [ - { - "Key": "Crop", - "Value": "[Sorghum]" - }, - { - "Key": "StartDate", - "Value": "1-nov" - }, - { - "Key": "EndDate", - "Value": "10-jan" - }, - { - "Key": "MinESW", - "Value": "100" - }, - { - "Key": "MinRain", - "Value": "25" - }, - { - "Key": "RainDays", - "Value": "7" - }, - { - "Key": "CultivarName", - "Value": "Buster" - }, - { - "Key": "SowingDepth", - "Value": "30" - }, - { - "Key": "RowSpacing", - "Value": "500" - }, - { - "Key": "Population", - "Value": "6" - } - ], - "Name": "SowSorghum", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Manager, Models", - "Code": "using Models.Interfaces;\nusing APSIM.Shared.Utilities;\nusing Models.Utilities;\nusing Models.Soils;\nusing Models.PMF;\nusing Models.Core;\nusing System;\nusing Models.Climate;\n\nnamespace Models\n{\n [Serializable]\n public class Script : Model\n {\n [Link] private Clock Clock;\n [Link] private Fertiliser Fertiliser;\n [Link] private Summary Summary;\n [Link] private Soil Soil;\n private Accumulator accumulatedRain;\n [Link]\n private ISoilWater waterBalance;\n \n [Description(\"Crop\")]\n public IPlant Crop { get; set; }\n\n [Description(\"Start of sowing window (d-mmm)\")]\n public string StartDate { get; set; }\n\n [Description(\"End of sowing window (d-mmm)\")]\n public string EndDate { get; set; }\n\n [Description(\"Minimum extractable soil water for sowing (mm)\")]\n public double MinESW { get; set; }\n\n [Description(\"Accumulated rainfall required for sowing (mm)\")]\n public double MinRain { get; set; }\n\n [Description(\"Duration of rainfall accumulation (d)\")]\n public int RainDays { get; set; }\n\n [Display(Type = DisplayType.CultivarName)]\n [Description(\"Cultivar to be sown\")]\n public string CultivarName { get; set; }\n\n [Description(\"Sowing depth (mm)\")]\n public double SowingDepth { get; set; }\n\n [Description(\"Row spacing (mm)\")]\n public double RowSpacing { get; set; }\n\n [Description(\"Plant population (/m2)\")]\n public double Population { get; set; }\n \n \n [EventSubscribe(\"StartOfSimulation\")]\n private void OnSimulationCommencing(object sender, EventArgs e)\n {\n accumulatedRain = new Accumulator(this, \"[Weather].Rain\", RainDays);\n }\n\n [EventSubscribe(\"DoManagement\")]\n private void OnDoManagement(object sender, EventArgs e)\n {\n accumulatedRain.Update();\n \n if (DateUtilities.WithinDates(StartDate, Clock.Today, EndDate) &&\n !Crop.IsAlive &&\n MathUtilities.Sum(waterBalance.ESW) > MinESW &&\n accumulatedRain.Sum > MinRain)\n {\n Crop.Sow(population: Population, cultivar: CultivarName, depth: SowingDepth, rowSpacing: RowSpacing); \n }\n }\n }\n}\n", - "Parameters": [ - { - "Key": "Crop", - "Value": "[Maize]" - }, - { - "Key": "StartDate", - "Value": "1-nov" - }, - { - "Key": "EndDate", - "Value": "10-jan" - }, - { - "Key": "MinESW", - "Value": "100" - }, - { - "Key": "MinRain", - "Value": "25" - }, - { - "Key": "RainDays", - "Value": "7" - }, - { - "Key": "CultivarName", - "Value": "Katumani" - }, - { - "Key": "SowingDepth", - "Value": "30" - }, - { - "Key": "RowSpacing", - "Value": "500" - }, - { - "Key": "Population", - "Value": "6" - } - ], - "Name": "SowMaize", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Manager, Models", - "Code": "using Models.PMF;\r\nusing Models.Core;\r\nusing System;\r\nusing System.Collections.Generic;\r\n\r\nnamespace Models\r\n{\r\n [Serializable]\r\n\r\n public class Script : Model\r\n {\r\n [Link]\r\n private Clock clock;\r\n\r\n [Link]\r\n private List plants;\r\n\r\n [EventSubscribe(\"DoManagement\")]\r\n private void OnDoCalculations(object sender, EventArgs e)\r\n {\r\n \tforeach (IPlant plant in plants)\r\n \t{\r\n \tif (plant.IsReadyForHarvesting)\r\n \t{\r\n \t plant.Harvest();\r\n \t plant.EndCrop();\r\n \t}\r\n }\r\n }\r\n }\r\n}\r\n", - "Parameters": [], - "Name": "Harvesting rule", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Manager, Models", - "Code": "using Models.Interfaces;\nusing System;\nusing Models.Core;\nusing Models.PMF;\nusing Models.Soils;\nusing APSIM.Shared.Utilities;\n\nnamespace Models\n{\n [Serializable] \n public class Script : Model\n {\n [Link] private ISummary summary;\n [Link] private Irrigation Irrigation;\n [Link] private Clock Clock;\n [Link] private Soil Soil;\n [Link(IsOptional = true)] private IPlant existingCrop;\n private DateTime StartDate;\n private DateTime EndDate;\n private double TopDUL;\n private double TopLL;\n private int nLayers;\n [Link]\n private IPhysical soilPhysical;\n [Link]\n private ISoilWater waterBalance;\n //Communication to other modules\n \n //User inputs from properties tab\n [Description(\"Turn irrigation on?\")]\n public bool allowIrrigation { get; set; }\n [Description(\"Start of irrigation season (dd-MMM)\")]\n public string seasonStart { get; set; }\n [Description(\"End of irrigation season (dd-MMM)\")]\n public string seasonEnd { get; set; }\n [Description(\"Season allocation (mm)\")]\n public double seasonsAllocation { get; set; }\n [Description(\"Deficit to trigger irrigation (% PAWC)\")]\n public double triggerDeficit { get; set; }\n [Description(\"Deficit to stop irrigaton (% PAWC)\")]\n public double targetDeficit { get; set; }\n [Description(\"Minimum days for irrigation to return\")]\n public double returndays { get; set; }\n [Description(\"Maximum irrigation application (mm/day)\")]\n public double maximumAmount { get; set; }\n [Description(\"Depth to calculate PAWC (mm)\")]\n public double depthPAWC { get; set; }\n\n //Class members\n public double TopSWdeficit { get; set; }\n public double TopSWC { get; set; }\n public double DaysSinceIrrigation { get; set; }\n public double AmountToApply { get; set; }\n public double SeasonAppliedAmount { get; set; }\n \n private bool IrrigationIsAllowed { get; set; }\n private bool SeasonIsOpen { get; set; }\n private bool CropIsActive { get; set; }\n private bool IrrigatorIsAvailable { get; set; }\n private bool SoilIsDry { get; set; }\n\n \n //Calculate static soil variables\n [EventSubscribe(\"StartOfSimulation\")]\n private void OnStartOfSimulation(object sender, EventArgs e)\n { \n //Set the season dates\n StartDate = DateTime.Parse(seasonStart + \"-\" + Clock.Today.Year.ToString());\n EndDate = DateTime.Parse(seasonEnd + \"-\" + Clock.Today.Year.ToString());\n \n //Can we irrigate at all?\n IrrigationIsAllowed = false; \n if (allowIrrigation)\n IrrigationIsAllowed = true; \n\n //Calculate soil water variables\n double depthFromSurface = 0.0;\n double fracLayer = 0.0;\n nLayers = soilPhysical.Thickness.Length;\n for (int layer = 0; layer < nLayers; layer++)\n {\n fracLayer = Math.Min(1.0, (depthPAWC - depthFromSurface) / soilPhysical.Thickness[layer]);\n TopLL += soilPhysical.LL15mm[layer] * fracLayer;\n TopDUL += soilPhysical.DULmm[layer] * fracLayer;\n depthFromSurface += soilPhysical.Thickness[layer];\n if (depthFromSurface >= depthPAWC)\n layer = nLayers;\n }\n }\n \n //Determine daily requirement for irrigation\n [EventSubscribe(\"StartOfDay\")]\n private void OnStartOfDay(object sender, EventArgs e)\n {\n //Can we irrigate today? \n SeasonIsOpen = isBetween(Clock.Today, StartDate, EndDate);\n if (!SeasonIsOpen)\n SeasonAppliedAmount = 0;\n\n //Is there a crop in the ground that needs irrigation?\n CropIsActive = false;\n if ((existingCrop != null) && (existingCrop.IsAlive))\n CropIsActive = true;\n //if ((existingCrop.Phenology.Stage >= 3.0) && (existingCrop.Phenology.Stage < 6.0))\n \n //Is the irrigator available?\n IrrigatorIsAvailable = false;\n DaysSinceIrrigation += 1;\n if (DaysSinceIrrigation >= returndays)\n IrrigatorIsAvailable = true;\n \n //Is the soil dry enough to require irrigation?\n SoilIsDry = false;\n double depthFromSurface = 0.0;\n double fracLayer = 0.0;\n TopSWC = 0.0;\n for (int layer = 0; layer < nLayers; layer++)\n //for (int layer = 0; depthFromSurface < depthPAWC + soilPhysical.Thickness[layer]; layer++)\n {\n fracLayer = Math.Min(1.0, (depthPAWC - depthFromSurface) / soilPhysical.Thickness[layer]);\n TopSWC += waterBalance.SWmm[layer] * fracLayer;\n depthFromSurface += soilPhysical.Thickness[layer];\n if (depthFromSurface >= depthPAWC)\n layer = nLayers;\n }\n \n TopSWdeficit = TopSWC - TopDUL;\n if (Math.Max(0.0, -TopSWdeficit) >= (TopDUL - TopLL) * (100 - triggerDeficit) / 100)\n SoilIsDry = true;\n \n //Are all the conditions ratifying irrigation\n if (IrrigationIsAllowed && SeasonIsOpen && /*CropIsActive &&*/ IrrigatorIsAvailable && SoilIsDry)\n {\n //Lets bloody well irrigate then!!!!\n AmountToApply = TopDUL * targetDeficit / 100 - TopSWC;\n AmountToApply = Math.Max(0.0, Math.Min(AmountToApply, seasonsAllocation - SeasonAppliedAmount));\n AmountToApply = Math.Min(AmountToApply,maximumAmount);\n Irrigation.Apply(AmountToApply);\n DaysSinceIrrigation = 0;\n SeasonAppliedAmount += AmountToApply;\n }\n }\n \n ///Checks whether theDate is between iniDate and endDate (non-year specific)\n private bool isBetween(DateTime theDay, DateTime iniDate, DateTime endDate)\n {\n bool result = false;\n if (iniDate.DayOfYear < endDate.DayOfYear)\n {\n // period is within one year, ex: summer in the northern hemisphere\n if ((theDay.DayOfYear >= iniDate.DayOfYear) && (theDay.DayOfYear <= endDate.DayOfYear))\n result = true;\n }\n else\n {\n // period goes over the end of the year, ex: summer in the southern hemisphere\n if ((theDay.DayOfYear >= iniDate.DayOfYear) || (theDay.DayOfYear <= endDate.DayOfYear))\n result = true;\n }\n \n return result;\n }\n }\n}\n", - "Parameters": [ - { - "Key": "allowIrrigation", - "Value": "True" - }, - { - "Key": "seasonStart", - "Value": "1-sep" - }, - { - "Key": "seasonEnd", - "Value": "30-mar" - }, - { - "Key": "seasonsAllocation", - "Value": "10000" - }, - { - "Key": "triggerDeficit", - "Value": "50" - }, - { - "Key": "targetDeficit", - "Value": "95" - }, - { - "Key": "returndays", - "Value": "3" - }, - { - "Key": "maximumAmount", - "Value": "30" - }, - { - "Key": "depthPAWC", - "Value": "650" - }, - { - "Key": "TopSWdeficit", - "Value": "0" - }, - { - "Key": "TopSWC", - "Value": "0" - }, - { - "Key": "DaysSinceIrrigation", - "Value": "0" - }, - { - "Key": "AmountToApply", - "Value": "0" - }, - { - "Key": "SeasonAppliedAmount", - "Value": "0" - } - ], - "Name": "AutomaticIrrigation", - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Operations, Models", - "Operation": [ - { - "$type": "Models.Operation, Models", - "Date": "1997-01-09", - "Action": "[Irrigation].Apply(52);", - "Enabled": true - }, - { - "$type": "Models.Operation, Models", - "Date": "1997-01-16", - "Action": "[Irrigation].Apply(36);", - "Enabled": true - }, - { - "$type": "Models.Operation, Models", - "Date": "1997-01-21", - "Action": "[Irrigation].Apply(18);", - "Enabled": true - }, - { - "$type": "Models.Operation, Models", - "Date": "1997-01-29", - "Action": "[Irrigation].Apply(20);", - "Enabled": true - }, - { - "$type": "Models.Operation, Models", - "Date": "1997-02-07", - "Action": "[Irrigation].Apply(14);", - "Enabled": true - }, - { - "$type": "Models.Operation, Models", - "Date": "1997-03-13", - "Action": "[Irrigation].Apply(30);", - "Enabled": true - }, - { - "$type": "Models.Operation, Models", - "Date": "1997-03-21", - "Action": "[Irrigation].Apply(45);", - "Enabled": true - }, - { - "$type": "Models.Operation, Models", - "Date": "1997-04-10", - "Action": "[Irrigation].Apply(27);", - "Enabled": true - }, - { - "$type": "Models.Operation, Models", - "Date": "1997-04-17", - "Action": "[Irrigation].Apply(42);", - "Enabled": true - }, - { - "$type": "Models.Operation, Models", - "Date": "1997-05-02", - "Action": "[Irrigation].Apply(27);", - "Enabled": true - }, - { - "$type": "Models.Operation, Models", - "Date": "1996-12-20", - "Action": "[Fertiliser].Apply(33, Fertiliser.Types.NO3N, 50);", - "Enabled": true - }, - { - "$type": "Models.Operation, Models", - "Date": "1996-12-23", - "Action": "[Fertiliser].Apply(0, Fertiliser.Types.NO3N, 50);", - "Enabled": true - }, - { - "$type": "Models.Operation, Models", - "Date": "1996-12-23", - "Action": "[Fertiliser].Apply(119, Fertiliser.Types.NO3N, 50);", - "Enabled": true - }, - { - "$type": "Models.Operation, Models", - "Date": "1997-02-12", - "Action": "[Fertiliser].Apply(59, Fertiliser.Types.NO3N, 50);", - "Enabled": true - }, - { - "$type": "Models.Operation, Models", - "Date": "1997-03-21", - "Action": "[Fertiliser].Apply(59, Fertiliser.Types.NO3N, 50);", - "Enabled": true - } - ], - "Name": "Operations", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Irrigation, Models", - "Name": "Irrigation", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Fertiliser, Models", - "ResourceName": "Fertiliser", - "Name": "Fertiliser", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.MicroClimate, Models", - "a_interception": 0.0, - "b_interception": 1.0, - "c_interception": 0.0, - "d_interception": 0.0, - "SoilHeatFluxFraction": 0.4, - "MinimumHeightDiffForNewLayer": 0.0, - "NightInterceptionFraction": 0.5, - "ReferenceHeight": 2.0, - "Name": "MicroClimate", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.Soil, Models", - "RecordNumber": 0, - "ASCOrder": null, - "ASCSubOrder": null, - "SoilType": "HMM", - "LocalName": null, - "Site": "HRS", - "NearestTown": "Unknown", - "Region": "SE Queensland", - "State": null, - "Country": null, - "NaturalVegetation": "Unknown", - "ApsoilNumber": null, - "Latitude": 0.0, - "Longitude": 0.0, - "LocationAccuracy": null, - "YearOfSampling": null, - "DataSource": null, - "Comments": null, - "Name": "HRS", - "Children": [ - { - "$type": "Models.Soils.Physical, Models", - "Depth": [ - "0-10", - "10-20", - "20-40", - "40-60", - "60-80", - "80-100", - "100-120", - "120-140", - "140-160", - "160-180" - ], - "Thickness": [ - 100.0, - 100.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0 - ], - "ParticleSizeClay": null, - "ParticleSizeSand": null, - "ParticleSizeSilt": null, - "Rocks": null, - "Texture": null, - "BD": [ - 1.34, - 1.34, - 1.33, - 1.38, - 1.4, - 1.55, - 1.59, - 1.63, - 1.66, - 1.68 - ], - "AirDry": [ - 0.08, - 0.19, - 0.23, - 0.26, - 0.26, - 0.28, - 0.25, - 0.28, - 0.3, - 0.31 - ], - "LL15": [ - 0.226, - 0.226, - 0.258, - 0.27, - 0.268, - 0.304, - 0.335, - 0.33, - 0.32, - 0.33 - ], - "DUL": [ - 0.42, - 0.42, - 0.46, - 0.46, - 0.43, - 0.4, - 0.37, - 0.33, - 0.32, - 0.33 - ], - "SAT": [ - 0.45, - 0.45, - 0.48, - 0.47, - 0.45, - 0.41, - 0.38, - 0.37, - 0.37, - 0.36 - ], - "KS": null, - "BDMetadata": null, - "AirDryMetadata": null, - "LL15Metadata": null, - "DULMetadata": null, - "SATMetadata": null, - "KSMetadata": null, - "RocksMetadata": null, - "TextureMetadata": null, - "ParticleSizeSandMetadata": null, - "ParticleSizeSiltMetadata": null, - "ParticleSizeClayMetadata": null, - "Name": "Physical", - "Children": [ - { - "$type": "Models.Soils.SoilCrop, Models", - "LL": [ - 0.226, - 0.226, - 0.258, - 0.27, - 0.268, - 0.304, - 0.335, - 0.33, - 0.32, - 0.33 - ], - "KL": [ - 0.07, - 0.07, - 0.07, - 0.07, - 0.06, - 0.06, - 0.06, - 0.05, - 0.05, - 0.04 - ], - "XF": [ - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0 - ], - "LLMetadata": null, - "KLMetadata": null, - "XFMetadata": null, - "Name": "SorghumSoil", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.SoilCrop, Models", - "LL": [ - 0.226, - 0.226, - 0.258, - 0.27, - 0.268, - 0.304, - 0.335, - 0.33, - 0.32, - 0.33 - ], - "KL": [ - 0.07, - 0.07, - 0.07, - 0.07, - 0.06, - 0.06, - 0.06, - 0.05, - 0.05, - 0.04 - ], - "XF": [ - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0 - ], - "LLMetadata": null, - "KLMetadata": null, - "XFMetadata": null, - "Name": "MaizeSoil", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.WaterModel.WaterBalance, Models", - "SummerDate": "1-Nov", - "SummerU": 1.5, - "SummerCona": 6.5, - "WinterDate": "1-Apr", - "WinterU": 1.5, - "WinterCona": 6.5, - "DiffusConst": 40.0, - "DiffusSlope": 16.0, - "Salb": 0.2, - "CN2Bare": 85.0, - "CNRed": 20.0, - "CNCov": 0.8, - "DischargeWidth": "NaN", - "CatchmentArea": "NaN", - "Thickness": [ - 100.0, - 100.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0 - ], - "SWCON": [ - 0.3, - 0.3, - 0.3, - 0.3, - 0.3, - 0.3, - 0.3, - 0.3, - 0.3, - 0.3 - ], - "KLAT": null, - "ResourceName": "WaterBalance", - "Name": "SoilWater", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.SoilNitrogen, Models", - "fom_types": [ - "default", - "manure", - "mucuna", - "lablab", - "shemp", - "stable" - ], - "fract_carb": [ - 0.2, - 0.3, - 0.54, - 0.57, - 0.45, - 0.0 - ], - "fract_cell": [ - 0.7, - 0.3, - 0.37, - 0.37, - 0.47, - 0.1 - ], - "fract_lign": [ - 0.1, - 0.4, - 0.09, - 0.06, - 0.08, - 0.9 - ], - "NPartitionApproach": 0, - "Name": "SoilNitrogen", - "Children": [ - { - "$type": "Models.Soils.SoilNitrogenNO3, Models", - "Name": "NO3", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.SoilNitrogenNH4, Models", - "Name": "NH4", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.SoilNitrogenUrea, Models", - "Name": "Urea", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.Organic, Models", - "Depth": [ - "0-10", - "10-20", - "20-40", - "40-60", - "60-80", - "80-100", - "100-120", - "120-140", - "140-160", - "160-180" - ], - "FOMCNRatio": 50.0, - "Thickness": [ - 100.0, - 100.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0 - ], - "Carbon": [ - 1.19, - 0.59, - 0.45, - 0.3, - 0.2, - 0.16, - 0.17, - 0.17, - 0.17, - 0.17 - ], - "SoilCNRatio": [ - 12.5, - 12.5, - 12.5, - 12.5, - 12.5, - 12.5, - 12.5, - 12.5, - 12.5, - 12.5 - ], - "FBiom": [ - 0.05, - 0.02, - 0.01, - 0.01, - 0.01, - 0.01, - 0.01, - 0.05, - 0.02, - 0.01 - ], - "FInert": [ - 0.45, - 0.6, - 0.75, - 0.9, - 0.9, - 0.9, - 0.9, - 0.9, - 0.9, - 0.9 - ], - "FOM": [ - 260.58740315916066, - 220.5824745109322, - 158.0542495509277, - 113.25081857248298, - 81.14775745529565, - 58.14490899956697, - 41.66264784865344, - 29.852591664969907, - 21.390316629725067, - 15.32683160828522 - ], - "CarbonMetadata": null, - "FOMMetadata": null, - "Name": "Organic", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.Chemical, Models", - "Depth": [ - "0-10", - "10-20", - "20-40", - "40-60", - "60-80", - "80-100", - "100-120", - "120-140", - "140-160", - "160-180" - ], - "Thickness": [ - 100.0, - 100.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0 - ], - "NO3N": [ - 10.4, - 1.6329999999999996, - 1.2330000000000008, - 0.9, - 1.1, - 1.4670000000000005, - 3.6329999999999996, - 5.667000000000001, - 5.8, - 7.267000000000003 - ], - "NH4N": [ - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1 - ], - "PH": [ - 6.3, - 6.4, - 6.5, - 6.6, - 6.6, - 6.5, - 6.5, - 6.5, - 6.5, - 6.5 - ], - "CL": null, - "EC": null, - "ESP": null, - "LabileP": null, - "UnavailableP": null, - "ECMetadata": null, - "CLMetadata": null, - "ESPMetadata": null, - "PHMetadata": null, - "Name": "Chemical", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.Sample, Models", - "Depth": [ - "0-10", - "10-20", - "20-40", - "40-60", - "60-80", - "80-100", - "100-120", - "120-140", - "140-160", - "160-180" - ], - "Thickness": [ - 100.0, - 100.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0, - 200.0 - ], - "NO3": null, - "NH4": null, - "LabileP": null, - "UnavailableP": null, - "SW": [ - 0.235, - 0.252, - 0.27, - 0.3, - 0.268, - 0.304, - 0.335, - 0.33, - 0.32, - 0.33 - ], - "OC": null, - "EC": null, - "CL": null, - "ESP": null, - "PH": null, - "SWUnits": 0, - "OCUnits": 0, - "PHUnits": 0, - "Name": "Initial water", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.CERESSoilTemperature, Models", - "Name": "Temperature", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.PMF.Plant, Models", - "ResourceName": "Sorghum", - "Name": "Sorghum", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.PMF.Plant, Models", - "ResourceName": "Maize", - "Name": "Maize", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Surface.SurfaceOrganicMatter, Models", - "InitialResidueName": "wheat_stubble", - "InitialResidueType": "wheat", - "InitialResidueMass": 0.0, - "InitialStandingFraction": 0.0, - "InitialCPR": 0.0, - "InitialCNR": 80.0, - "ResourceName": "SurfaceOrganicMatter", - "Name": "SurfaceOrganicMatter", - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Core.Folder, Models", - "ShowInDocs": true, - "GraphsPerPage": 6, - "Name": "Graphs", - "Children": [ - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "Yield", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 0, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "SorghumHarvesting", - "XFieldName": "Clock.Today", - "YFieldName": "Sorghum.Grain.Wt", - "X2FieldName": null, - "Y2FieldName": null, - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": null, - "Name": "SorghumYield", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -11094807, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 0, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "MaizeHarvesting", - "XFieldName": "Clock.Today", - "YFieldName": "Maize.Grain.Wt", - "X2FieldName": null, - "Y2FieldName": null, - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": null, - "Name": "MaizeYield", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "Biomass", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 0, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "SorghumHarvesting", - "XFieldName": "Clock.Today", - "YFieldName": "Sorghum.AboveGround.Wt", - "X2FieldName": null, - "Y2FieldName": null, - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": null, - "Name": "SorghumWt", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -11094807, - "FactorToVaryColours": null, - "FactorToVaryMarkers": null, - "FactorToVaryLines": null, - "Marker": 0, - "MarkerSize": 0, - "Line": 0, - "LineThickness": 0, - "TableName": "MaizeHarvesting", - "XFieldName": "Clock.Today", - "YFieldName": "Maize.AboveGround.Wt", - "X2FieldName": null, - "Y2FieldName": null, - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": null, - "Name": "MaizeWt", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Factorial.Experiment, Models", - "DisabledSimNames": null, - "Name": "IrrigationByNRate", - "Children": [ - { - "$type": "Models.Factorial.Factors, Models", - "Name": "Factors", - "Children": [ - { - "$type": "Models.Factorial.Permutation, Models", - "Name": "Permutation", - "Children": [ - { - "$type": "Models.Memo, Models", - "Text": "Factor setup is maybe a bit counter-intuitive - we could do it without the CompositeFactors. The reason it was done this way is so that the graph series names come out better when varying by irrigation/fertiliser.", - "Name": "Memo", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Factorial.Factor, Models", - "Specification": "[SowingRule].Script.Cultivar = Buster,M35-1", - "Name": "Cv", - "Children": [], - "Enabled": false, - "ReadOnly": false - }, - { - "$type": "Models.Factorial.Factor, Models", - "Specification": "", - "Name": "Irrigation", - "Children": [ - { - "$type": "Models.Factorial.CompositeFactor, Models", - "Specifications": [ - "[AutomaticIrrigation].Script.allowIrrigation = false" - ], - "Paths": null, - "Values": null, - "Name": "Low", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Factorial.CompositeFactor, Models", - "Specifications": [ - "[AutomaticIrrigation].Script.allowIrrigation = true" - ], - "Paths": null, - "Values": null, - "Name": "High", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Factorial.Factor, Models", - "Specification": "", - "Name": "Fertiliser", - "Children": [ - { - "$type": "Models.Factorial.CompositeFactor, Models", - "Specifications": [ - "[SowingFertiliser].Script.Amount = 0" - ], - "Paths": null, - "Values": null, - "Name": "Low", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Factorial.CompositeFactor, Models", - "Specifications": [ - "[SowingFertiliser].Script.Amount = 50" - ], - "Paths": null, - "Values": null, - "Name": "Medium", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Factorial.CompositeFactor, Models", - "Specifications": [ - "[SowingFertiliser].Script.Amount = 100" - ], - "Paths": null, - "Values": null, - "Name": "High", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Core.Simulation, Models", - "IsRunning": false, - "Descriptors": null, - "Name": "BaseSimulation", - "Children": [ - { - "$type": "Models.Clock, Models", - "Start": "1995-11-28T00:00:00", - "End": "1996-05-01T00:00:00", - "Name": "Clock", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Summary, Models", - "Verbosity": 100, - "Name": "Summary", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Climate.Weather, Models", - "ConstantsFile": null, - "FileName": "%root%/Examples/WeatherFiles/Dalby.met", - "ExcelWorkSheetName": "", - "Name": "Weather", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.Arbitrator.SoilArbitrator, Models", - "Name": "SoilArbitrator", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Core.Zone, Models", - "Area": 1.0, - "Slope": 0.0, - "AspectAngle": 0.0, - "Altitude": 50.0, - "Name": "Paddock", - "Children": [ - { - "$type": "Models.Report, Models", - "VariableNames": [ - "[Clock].Today", - "[Sorghum].AboveGround.Wt", - "[Sorghum].Grain.Wt", - "[Sorghum].Leaf.LAI" - ], - "EventNames": [ - "[Clock].DoReport" - ], - "GroupByVariableName": null, - "Name": "Report", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Manager, Models", - "Code": "using Models.PMF;\nusing Models.Core;\nusing System;\nnamespace Models\n{\n [Serializable]\n public class Script : Model\n {\n [Link] Clock Clock;\n [Link] Fertiliser Fertiliser;\n \n [Description(\"Crop to be fertilised\")]\n public IPlant Crop { get; set; }\n\n [Description(\"Type of fertiliser to apply? \")] \n public Fertiliser.Types FertiliserType { get; set; }\n \n [Description(\"Amount of fertiliser to be applied (kg/ha)\")]\n public double Amount { get; set; }\n \n [EventSubscribe(\"Sowing\")]\n private void OnSowing(object sender, EventArgs e)\n {\n Model crop = sender as Model;\n if (Crop != null && crop.Name.ToLower() == (Crop as IModel).Name.ToLower())\n Fertiliser.Apply(Amount: Amount, Type: FertiliserType);\n }\n }\n}\n", - "Parameters": [ - { - "Key": "Crop", - "Value": "[Sorghum]" - }, - { - "Key": "FertiliserType", - "Value": "UreaN" - }, - { - "Key": "Amount", - "Value": "0" - } - ], - "Name": "SowingFertiliser", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Core.Folder, Models", - "ShowInDocs": true, - "GraphsPerPage": 6, - "Name": "Manager folder", - "Children": [ - { - "$type": "Models.Manager, Models", - "Code": "using APSIM.Shared.Utilities;\r\nusing Models.PMF;\r\nusing Models.Core;\r\nusing System;\r\n\r\nnamespace Models\r\n{\r\n [Serializable]\r\n public class Script : Model\r\n {\r\n [Description(\"Enter sowing date (dd/mm/yyyy) : \")]\r\n public DateTime Date { get; set; }\r\n\r\n [Description(\"Enter sowing density (plants/m2) : \")]\r\n public double Density { get; set; }\r\n\r\n [Description(\"Enter sowing depth (mm) : \")]\r\n public double Depth { get; set; }\r\n\r\n [Description(\"Enter cultivar : \")]\r\n [Display(Type = DisplayType.CultivarName)]\r\n public string Cultivar { get; set; } // QL41xQL36\r\n\r\n [Description(\"Enter row spacing (mm) : \")]\r\n public double RowSpacing { get; set; }\r\n\r\n [Description(\"Enter skip row configuration : \")]\r\n public RowConfigurationType RowConfiguration { get; set; }\r\n\r\n [Description(\"Enter Fertile Tiller No. : \")]\r\n public double Ftn { get; set; }\r\n\r\n public enum RowConfigurationType \r\n {\r\n solid, single, _double /*replaces double*/\r\n }\r\n\r\n [Link]\r\n private Zone paddock;\r\n\r\n [Link]\r\n private Clock clock;\r\n\r\n [Link]\r\n private IPlant crop;\r\n\r\n [EventSubscribe(\"DoManagement\")]\r\n private void OnDoManagement(object sender, EventArgs e)\r\n {\r\n if (clock.Today == Date /* && isFallow */)\r\n {\r\n double population = Density * paddock.Area;\r\n crop.Sow(Cultivar, population, Depth, RowSpacing, budNumber: Ftn, rowConfig: (double)RowConfiguration + 1);\r\n /*\r\n if (paddock_is_fallow() = 1 and today = date('[date]')) then\r\n [crop] sow plants =[density], sowing_depth = [depth], cultivar = [cultivar], row_spacing = [row_spacing], skip = [RowConfiguration], tiller_no_fertile = [ftn] ()\r\n endif\r\n */\r\n }\r\n }\r\n }\r\n}\r\n", - "Parameters": [ - { - "Key": "Date", - "Value": "11/29/1995 00:00:00" - }, - { - "Key": "Density", - "Value": "16" - }, - { - "Key": "Depth", - "Value": "20" - }, - { - "Key": "Cultivar", - "Value": "Buster" - }, - { - "Key": "RowSpacing", - "Value": "500" - }, - { - "Key": "RowConfiguration", - "Value": "solid" - }, - { - "Key": "Ftn", - "Value": "0" - } - ], - "Name": "SowingRule", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Manager, Models", - "Code": "using Models.PMF;\r\nusing Models.Core;\r\nusing System;\r\n\r\nnamespace Models\r\n{\r\n [Serializable]\r\n\r\n public class Script : Model\r\n {\r\n [Link]\r\n private Clock clock;\r\n\r\n [Link]\r\n private IPlant crop;\r\n\r\n [EventSubscribe(\"DoManagement\")]\r\n private void OnDoCalculations(object sender, EventArgs e)\r\n {\r\n if (crop.IsReadyForHarvesting)\r\n {\r\n crop.Harvest();\r\n crop.EndCrop();\r\n }\r\n /*\r\n \r\n\r\n if [crop].StageName = 'harvest_ripe' or [crop].plant_status = 'dead' then\r\n [crop] harvest\r\n [crop] end_crop\r\n endif\r\n\r\n \r\n */\r\n }\r\n }\r\n}\r\n", - "Parameters": [], - "Name": "Harvesting rule", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Manager, Models", - "Code": "using Models.Interfaces;\nusing System;\nusing Models.Core;\nusing Models.PMF;\nusing Models.Soils;\nusing APSIM.Shared.Utilities;\n\nnamespace Models\n{\n [Serializable] \n public class Script : Model\n {\n [Link] private ISummary summary;\n [Link] private Irrigation Irrigation;\n [Link] private Clock Clock;\n [Link] private Soil Soil;\n [Link(IsOptional = true)] private IPlant existingCrop;\n private DateTime StartDate;\n private DateTime EndDate;\n private double TopDUL;\n private double TopLL;\n private int nLayers;\n [Link]\n private IPhysical soilPhysical;\n [Link]\n private ISoilWater waterBalance;\n //Communication to other modules\n \n //User inputs from properties tab\n [Description(\"Turn irrigation on?\")]\n public bool allowIrrigation { get; set; }\n [Description(\"Start of irrigation season (dd-MMM)\")]\n public string seasonStart { get; set; }\n [Description(\"End of irrigation season (dd-MMM)\")]\n public string seasonEnd { get; set; }\n [Description(\"Season allocation (mm)\")]\n public double seasonsAllocation { get; set; }\n [Description(\"Deficit to trigger irrigation (% PAWC)\")]\n public double triggerDeficit { get; set; }\n [Description(\"Deficit to stop irrigaton (% PAWC)\")]\n public double targetDeficit { get; set; }\n [Description(\"Minimum days for irrigation to return\")]\n public double returndays { get; set; }\n [Description(\"Maximum irrigation application (mm/day)\")]\n public double maximumAmount { get; set; }\n [Description(\"Depth to calculate PAWC (mm)\")]\n public double depthPAWC { get; set; }\n\n //Class members\n public double TopSWdeficit { get; set; }\n public double TopSWC { get; set; }\n public double DaysSinceIrrigation { get; set; }\n public double AmountToApply { get; set; }\n public double SeasonAppliedAmount { get; set; }\n \n private bool IrrigationIsAllowed { get; set; }\n private bool SeasonIsOpen { get; set; }\n private bool CropIsActive { get; set; }\n private bool IrrigatorIsAvailable { get; set; }\n private bool SoilIsDry { get; set; }\n\n \n //Calculate static soil variables\n [EventSubscribe(\"StartOfSimulation\")]\n private void OnStartOfSimulation(object sender, EventArgs e)\n { \n //Set the season dates\n StartDate = DateTime.Parse(seasonStart + \"-\" + Clock.Today.Year.ToString());\n EndDate = DateTime.Parse(seasonEnd + \"-\" + Clock.Today.Year.ToString());\n \n //Can we irrigate at all?\n IrrigationIsAllowed = false; \n if (allowIrrigation)\n IrrigationIsAllowed = true; \n\n //Calculate soil water variables\n double depthFromSurface = 0.0;\n double fracLayer = 0.0;\n nLayers = soilPhysical.Thickness.Length;\n for (int layer = 0; layer < nLayers; layer++)\n {\n fracLayer = Math.Min(1.0, (depthPAWC - depthFromSurface) / soilPhysical.Thickness[layer]);\n TopLL += soilPhysical.LL15mm[layer] * fracLayer;\n TopDUL += soilPhysical.DULmm[layer] * fracLayer;\n depthFromSurface += soilPhysical.Thickness[layer];\n if (depthFromSurface >= depthPAWC)\n layer = nLayers;\n }\n }\n \n //Determine daily requirement for irrigation\n [EventSubscribe(\"StartOfDay\")]\n private void OnStartOfDay(object sender, EventArgs e)\n {\n //Can we irrigate today? \n SeasonIsOpen = isBetween(Clock.Today, StartDate, EndDate);\n if (!SeasonIsOpen)\n SeasonAppliedAmount = 0;\n\n //Is there a crop in the ground that needs irrigation?\n CropIsActive = false;\n if ((existingCrop != null) && (existingCrop.IsAlive))\n CropIsActive = true;\n //if ((existingCrop.Phenology.Stage >= 3.0) && (existingCrop.Phenology.Stage < 6.0))\n \n //Is the irrigator available?\n IrrigatorIsAvailable = false;\n DaysSinceIrrigation += 1;\n if (DaysSinceIrrigation >= returndays)\n IrrigatorIsAvailable = true;\n \n //Is the soil dry enough to require irrigation?\n SoilIsDry = false;\n double depthFromSurface = 0.0;\n double fracLayer = 0.0;\n TopSWC = 0.0;\n for (int layer = 0; layer < nLayers; layer++)\n //for (int layer = 0; depthFromSurface < depthPAWC + soilPhysical.Thickness[layer]; layer++)\n {\n fracLayer = Math.Min(1.0, (depthPAWC - depthFromSurface) / soilPhysical.Thickness[layer]);\n TopSWC += waterBalance.SWmm[layer] * fracLayer;\n depthFromSurface += soilPhysical.Thickness[layer];\n if (depthFromSurface >= depthPAWC)\n layer = nLayers;\n }\n \n TopSWdeficit = TopSWC - TopDUL;\n if (Math.Max(0.0, -TopSWdeficit) >= (TopDUL - TopLL) * (100 - triggerDeficit) / 100)\n SoilIsDry = true;\n \n //Are all the conditions ratifying irrigation\n if (IrrigationIsAllowed && SeasonIsOpen && CropIsActive && IrrigatorIsAvailable && SoilIsDry)\n {\n //Lets bloody well irrigate then!!!!\n AmountToApply = TopDUL * targetDeficit / 100 - TopSWC;\n AmountToApply = Math.Max(0.0, Math.Min(AmountToApply, seasonsAllocation - SeasonAppliedAmount));\n AmountToApply = Math.Min(AmountToApply,maximumAmount);\n Irrigation.Apply(AmountToApply);\n DaysSinceIrrigation = 0;\n SeasonAppliedAmount += AmountToApply;\n }\n }\n \n ///Checks whether theDate is between iniDate and endDate (non-year specific)\n private bool isBetween(DateTime theDay, DateTime iniDate, DateTime endDate)\n {\n bool result = false;\n if (iniDate.DayOfYear < endDate.DayOfYear)\n {\n // period is within one year, ex: summer in the northern hemisphere\n if ((theDay.DayOfYear >= iniDate.DayOfYear) && (theDay.DayOfYear <= endDate.DayOfYear))\n result = true;\n }\n else\n {\n // period goes over the end of the year, ex: summer in the southern hemisphere\n if ((theDay.DayOfYear >= iniDate.DayOfYear) || (theDay.DayOfYear <= endDate.DayOfYear))\n result = true;\n }\n \n return result;\n }\n }\n}\n", - "Parameters": [ - { - "Key": "allowIrrigation", - "Value": "True" - }, - { - "Key": "seasonStart", - "Value": "1-sep" - }, - { - "Key": "seasonEnd", - "Value": "30-mar" - }, - { - "Key": "seasonsAllocation", - "Value": "10000" - }, - { - "Key": "triggerDeficit", - "Value": "50" - }, - { - "Key": "targetDeficit", - "Value": "95" - }, - { - "Key": "returndays", - "Value": "3" - }, - { - "Key": "maximumAmount", - "Value": "30" - }, - { - "Key": "depthPAWC", - "Value": "650" - }, - { - "Key": "TopSWdeficit", - "Value": "0" - }, - { - "Key": "TopSWC", - "Value": "0" - }, - { - "Key": "DaysSinceIrrigation", - "Value": "0" - }, - { - "Key": "AmountToApply", - "Value": "0" - }, - { - "Key": "SeasonAppliedAmount", - "Value": "0" - } - ], - "Name": "AutomaticIrrigation", - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Irrigation, Models", - "Name": "Irrigation", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Fertiliser, Models", - "ResourceName": "Fertiliser", - "Name": "Fertiliser", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.MicroClimate, Models", - "a_interception": 0.0, - "b_interception": 1.0, - "c_interception": 0.0, - "d_interception": 0.0, - "SoilHeatFluxFraction": 0.4, - "MinimumHeightDiffForNewLayer": 0.0, - "NightInterceptionFraction": 0.5, - "ReferenceHeight": 2.0, - "Name": "MicroClimate", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.Soil, Models", - "RecordNumber": 0, - "ASCOrder": null, - "ASCSubOrder": null, - "SoilType": "GLHSoil", - "LocalName": null, - "Site": "Cooper Lab", - "NearestTown": "Unknown", - "Region": "Gatton", - "State": null, - "Country": null, - "NaturalVegetation": "Unknown", - "ApsoilNumber": null, - "Latitude": 0.0, - "Longitude": 0.0, - "LocationAccuracy": null, - "YearOfSampling": null, - "DataSource": null, - "Comments": null, - "Name": "GLH Field", - "Children": [ - { - "$type": "Models.Soils.Physical, Models", - "Depth": [ - "0-20", - "20-40", - "40-60", - "60-90", - "90-120", - "120-150", - "150-180" - ], - "Thickness": [ - 200.0, - 200.0, - 200.0, - 300.0, - 300.0, - 300.0, - 300.0 - ], - "ParticleSizeClay": null, - "ParticleSizeSand": null, - "ParticleSizeSilt": null, - "Rocks": null, - "Texture": null, - "BD": [ - 1.32, - 1.3, - 1.23, - 1.27, - 1.37, - 1.35, - 1.35 - ], - "AirDry": [ - 0.1, - 0.15, - 0.28, - 0.28, - 0.28, - 0.3, - 0.3 - ], - "LL15": [ - 0.3, - 0.3, - 0.35, - 0.32, - 0.29, - 0.31, - 0.31 - ], - "DUL": [ - 0.41, - 0.43, - 0.46, - 0.44, - 0.4, - 0.41, - 0.38 - ], - "SAT": [ - 0.46, - 0.48, - 0.51, - 0.49, - 0.45, - 0.46, - 0.43 - ], - "KS": null, - "BDMetadata": null, - "AirDryMetadata": null, - "LL15Metadata": null, - "DULMetadata": null, - "SATMetadata": null, - "KSMetadata": null, - "RocksMetadata": null, - "TextureMetadata": null, - "ParticleSizeSandMetadata": null, - "ParticleSizeSiltMetadata": null, - "ParticleSizeClayMetadata": null, - "Name": "Physical", - "Children": [ - { - "$type": "Models.Soils.SoilCrop, Models", - "LL": [ - 0.3, - 0.3, - 0.35, - 0.32, - 0.29, - 0.31, - 0.31 - ], - "KL": [ - 0.08, - 0.08, - 0.08, - 0.08, - 0.06, - 0.04, - 0.02 - ], - "XF": [ - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0 - ], - "LLMetadata": null, - "KLMetadata": null, - "XFMetadata": null, - "Name": "SorghumSoil", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.WaterModel.WaterBalance, Models", - "SummerDate": "1-Nov", - "SummerU": 6.0, - "SummerCona": 3.5, - "WinterDate": "1-Apr", - "WinterU": 6.0, - "WinterCona": 3.5, - "DiffusConst": 88.0, - "DiffusSlope": 35.4, - "Salb": 0.13, - "CN2Bare": 91.0, - "CNRed": 20.0, - "CNCov": 0.8, - "DischargeWidth": "NaN", - "CatchmentArea": "NaN", - "Thickness": [ - 200.0, - 200.0, - 200.0, - 300.0, - 300.0, - 300.0, - 300.0 - ], - "SWCON": [ - 0.5, - 0.5, - 0.5, - 0.5, - 0.5, - 0.5, - 0.5 - ], - "KLAT": null, - "ResourceName": "WaterBalance", - "Name": "SoilWater", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.SoilNitrogen, Models", - "fom_types": [ - "default", - "manure", - "mucuna", - "lablab", - "shemp", - "stable" - ], - "fract_carb": [ - 0.2, - 0.3, - 0.54, - 0.57, - 0.45, - 0.0 - ], - "fract_cell": [ - 0.7, - 0.3, - 0.37, - 0.37, - 0.47, - 0.1 - ], - "fract_lign": [ - 0.1, - 0.4, - 0.09, - 0.06, - 0.08, - 0.9 - ], - "NPartitionApproach": 0, - "Name": "SoilNitrogen", - "Children": [ - { - "$type": "Models.Soils.SoilNitrogenNO3, Models", - "Name": "NO3", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.SoilNitrogenNH4, Models", - "Name": "NH4", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.SoilNitrogenUrea, Models", - "Name": "Urea", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.Organic, Models", - "Depth": [ - "0-20", - "20-40", - "40-60", - "60-90", - "90-120", - "120-150", - "150-180" - ], - "FOMCNRatio": 30.0, - "Thickness": [ - 200.0, - 200.0, - 200.0, - 300.0, - 300.0, - 300.0, - 300.0 - ], - "Carbon": [ - 1.3, - 0.65, - 0.32, - 0.11, - 0.11, - 0.11, - 0.11 - ], - "SoilCNRatio": [ - 12.5, - 12.5, - 12.5, - 12.5, - 12.5, - 12.5, - 12.5 - ], - "FBiom": [ - 0.03, - 0.01, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - "FInert": [ - 0.31, - 0.38, - 0.47, - 0.7, - 0.9, - 0.95, - 0.95 - ], - "FOM": [ - 514.7087369422752, - 368.80492584502815, - 264.2602768618072, - 160.28196006083508, - 97.21592297573227, - 58.96443789704345, - 35.763739417278366 - ], - "CarbonMetadata": null, - "FOMMetadata": null, - "Name": "Organic", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.Chemical, Models", - "Depth": [ - "0-20", - "20-40", - "40-60", - "60-90", - "90-120", - "120-150", - "150-180" - ], - "Thickness": [ - 200.0, - 200.0, - 200.0, - 300.0, - 300.0, - 300.0, - 300.0 - ], - "NO3N": [ - 9.0, - 2.48, - 2.79, - 1.28, - 2.98, - 2.965, - 1.3870000000000011 - ], - "NH4N": [ - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1 - ], - "PH": [ - 8.2, - 8.7, - 8.9, - 8.1, - 8.0, - 8.0, - 8.0 - ], - "CL": null, - "EC": null, - "ESP": null, - "LabileP": null, - "UnavailableP": null, - "ECMetadata": null, - "CLMetadata": null, - "ESPMetadata": null, - "PHMetadata": null, - "Name": "Chemical", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.Sample, Models", - "Depth": [ - "0-20", - "20-40", - "40-60", - "60-90", - "90-120", - "120-150", - "150-180" - ], - "Thickness": [ - 200.0, - 200.0, - 200.0, - 300.0, - 300.0, - 300.0, - 300.0 - ], - "NO3": null, - "NH4": null, - "LabileP": null, - "UnavailableP": null, - "SW": [ - 0.385, - 0.47, - 0.467, - 0.459, - 0.394, - 0.399, - 0.38 - ], - "OC": null, - "EC": null, - "CL": null, - "ESP": null, - "PH": null, - "SWUnits": 0, - "OCUnits": 0, - "PHUnits": 0, - "Name": "Initial water", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.CERESSoilTemperature, Models", - "Name": "Temperature", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.PMF.Plant, Models", - "ResourceName": "Sorghum", - "Name": "Sorghum", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Surface.SurfaceOrganicMatter, Models", - "InitialResidueName": "wheat_stubble", - "InitialResidueType": "wheat", - "InitialResidueMass": 0.0, - "InitialStandingFraction": 0.0, - "InitialCPR": 0.0, - "InitialCNR": 80.0, - "ResourceName": "SurfaceOrganicMatter", - "Name": "SurfaceOrganicMatter", - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "Yield", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": "Fertiliser", - "FactorToVaryMarkers": null, - "FactorToVaryLines": "Irrigation", - "Marker": 11, - "MarkerSize": 0, - "Line": 4, - "LineThickness": 0, - "TableName": "Report", - "XFieldName": "Clock.Today", - "YFieldName": "Sorghum.Grain.Wt", - "X2FieldName": null, - "Y2FieldName": null, - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": null, - "Name": "SorghumYield", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "Biomass", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": "Fertiliser", - "FactorToVaryMarkers": null, - "FactorToVaryLines": "Irrigation", - "Marker": 11, - "MarkerSize": 0, - "Line": 4, - "LineThickness": 0, - "TableName": "Report", - "XFieldName": "Clock.Today", - "YFieldName": "Sorghum.AboveGround.Wt", - "X2FieldName": null, - "Y2FieldName": null, - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": null, - "Name": "SorghumWt", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Factorial.Experiment, Models", - "DisabledSimNames": [ - "RowConfigurationRow250Skip2", - "RowConfigurationRow250Skip1", - "RowConfigurationRowSpacing250RowConfiguration2", - "RowConfigurationRowSpacing250RowConfiguration1", - "RowConfigurationRowSpacing250RowConfiguration0" - ], - "Name": "RowConfiguration", - "Children": [ - { - "$type": "Models.Factorial.Factors, Models", - "Name": "Factors", - "Children": [ - { - "$type": "Models.Factorial.Permutation, Models", - "Name": "Permutation", - "Children": [ - { - "$type": "Models.Factorial.Factor, Models", - "Specification": "[SowingRule].Script.RowSpacing = 250, 500, 600, 750, 1000, 1200, 1500", - "Name": "Row", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Factorial.Factor, Models", - "Specification": "[SowingRule].Script.RowConfiguration = 0,1,2", - "Name": "Skip", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Core.Simulation, Models", - "IsRunning": false, - "Descriptors": null, - "Name": "RowConfigurationBase", - "Children": [ - { - "$type": "Models.Clock, Models", - "Start": "1995-10-01T00:00:00", - "End": "1996-01-01T00:00:00", - "Name": "Clock", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Summary, Models", - "Verbosity": 100, - "Name": "Summary", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Climate.Weather, Models", - "ConstantsFile": null, - "FileName": "%root%/Examples/WeatherFiles/Dalby.met", - "ExcelWorkSheetName": "", - "Name": "Weather", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.Arbitrator.SoilArbitrator, Models", - "Name": "SoilArbitrator", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Core.Zone, Models", - "Area": 1.0, - "Slope": 0.0, - "AspectAngle": 0.0, - "Altitude": 50.0, - "Name": "Paddock", - "Children": [ - { - "$type": "Models.Report, Models", - "VariableNames": [ - "[Clock].Today", - "[Sorghum].AboveGround.Wt", - "[Sorghum].Grain.Wt", - "[Sorghum].Leaf.LAI", - "[Sorghum].SowingData.SkipDensityScale", - "[Sorghum].Leaf.CoverGreen", - "[Sorghum].Phenology.Stage" - ], - "EventNames": [ - "[Sorghum].Flowering" - ], - "GroupByVariableName": null, - "Name": "Report", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Manager, Models", - "Code": "using Models.PMF;\nusing Models.Core;\nusing System;\nnamespace Models\n{\n [Serializable]\n public class Script : Model\n {\n [Link] Clock Clock;\n [Link] Fertiliser Fertiliser;\n \n [Description(\"Crop to be fertilised\")]\n public IPlant Crop { get; set; }\n\n [Description(\"Type of fertiliser to apply? \")] \n public Fertiliser.Types FertiliserType { get; set; }\n \n [Description(\"Amount of fertiliser to be applied (kg/ha)\")]\n public double Amount { get; set; }\n \n [EventSubscribe(\"Sowing\")]\n private void OnSowing(object sender, EventArgs e)\n {\n Model crop = sender as Model;\n if (Crop != null && crop.Name.ToLower() == (Crop as IModel).Name.ToLower())\n Fertiliser.Apply(Amount: Amount, Type: FertiliserType);\n }\n }\n}\n", - "Parameters": [ - { - "Key": "Crop", - "Value": "[Sorghum]" - }, - { - "Key": "FertiliserType", - "Value": "UreaN" - }, - { - "Key": "Amount", - "Value": "180" - } - ], - "Name": "SowingFertiliser", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Core.Folder, Models", - "ShowInDocs": true, - "GraphsPerPage": 6, - "Name": "Manager folder", - "Children": [ - { - "$type": "Models.Manager, Models", - "Code": "using APSIM.Shared.Utilities;\r\nusing Models.PMF;\r\nusing Models.Core;\r\nusing System;\r\n\r\nnamespace Models\r\n{\r\n [Serializable]\r\n public class Script : Model\r\n {\r\n [Description(\"Enter sowing date (dd/mm/yyyy) : \")]\r\n public DateTime Date { get; set; }\r\n\r\n [Description(\"Enter sowing density (plants/m2) : \")]\r\n public double Density { get; set; }\r\n\r\n [Description(\"Enter sowing depth (mm) : \")]\r\n public double Depth { get; set; }\r\n\r\n [Description(\"Enter cultivar : \")]\r\n [Display(Type = DisplayType.CultivarName)]\r\n public string Cultivar { get; set; } // QL41xQL36\r\n\r\n [Description(\"Enter row spacing (mm) : \")]\r\n public double RowSpacing { get; set; }\r\n\r\n [Description(\"Enter skip row configuration : \")]\r\n public RowConfigurationType RowConfiguration { get; set; }\r\n\r\n [Description(\"Enter Fertile Tiller No. : \")]\r\n public double Ftn { get; set; }\r\n\r\n public enum RowConfigurationType \r\n {\r\n solid, single, _double /*replaces double*/\r\n }\r\n\r\n [Link]\r\n private Zone paddock;\r\n\r\n [Link]\r\n private Clock clock;\r\n\r\n [Link]\r\n private IPlant crop;\r\n\r\n [EventSubscribe(\"DoManagement\")]\r\n private void OnDoManagement(object sender, EventArgs e)\r\n {\r\n if (clock.Today == Date /* && isFallow */)\r\n {\r\n double population = Density * paddock.Area;\r\n crop.Sow(Cultivar, population, Depth, RowSpacing, budNumber: Ftn, rowConfig: (double)RowConfiguration + 1);\r\n /*\r\n if (paddock_is_fallow() = 1 and today = date('[date]')) then\r\n [crop] sow plants =[density], sowing_depth = [depth], cultivar = [cultivar], row_spacing = [row_spacing], skip = [RowConfiguration], tiller_no_fertile = [ftn] ()\r\n endif\r\n */\r\n }\r\n }\r\n }\r\n}\r\n", - "Parameters": [ - { - "Key": "Date", - "Value": "10/01/1995 00:00:00" - }, - { - "Key": "Density", - "Value": "12" - }, - { - "Key": "Depth", - "Value": "20" - }, - { - "Key": "Cultivar", - "Value": "Buster" - }, - { - "Key": "RowSpacing", - "Value": "500" - }, - { - "Key": "RowConfiguration", - "Value": "solid" - }, - { - "Key": "Ftn", - "Value": "0" - } - ], - "Name": "SowingRule", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Manager, Models", - "Code": "using Models.PMF;\r\nusing Models.Core;\r\nusing System;\r\n\r\nnamespace Models\r\n{\r\n [Serializable]\r\n\r\n public class Script : Model\r\n {\r\n [Link]\r\n private Clock clock;\r\n\r\n [Link]\r\n private IPlant crop;\r\n\r\n [EventSubscribe(\"DoManagement\")]\r\n private void OnDoCalculations(object sender, EventArgs e)\r\n {\r\n if (crop.IsReadyForHarvesting)\r\n {\r\n crop.Harvest();\r\n crop.EndCrop();\r\n }\n \r\n /*\r\n \r\n\r\n if [crop].StageName = 'harvest_ripe' or [crop].plant_status = 'dead' then\r\n [crop] harvest\r\n [crop] end_crop\r\n endif\r\n\r\n \r\n */\r\n }\r\n }\r\n}\r\n", - "Parameters": [], - "Name": "Harvesting rule", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Manager, Models", - "Code": "using Models.Interfaces;\nusing System;\nusing Models.Core;\nusing Models.PMF;\nusing Models.Soils;\nusing APSIM.Shared.Utilities;\n\nnamespace Models\n{\n [Serializable] \n public class Script : Model\n {\n [Link] private ISummary summary;\n [Link] private Irrigation Irrigation;\n [Link] private Clock Clock;\n [Link] private Soil Soil;\n [Link(IsOptional = true)] private IPlant existingCrop;\n private DateTime StartDate;\n private DateTime EndDate;\n private double TopDUL;\n private double TopLL;\n private int nLayers;\n [Link]\n private IPhysical soilPhysical;\n [Link]\n private ISoilWater waterBalance;\n //Communication to other modules\n \n //User inputs from properties tab\n [Description(\"Turn irrigation on?\")]\n public bool allowIrrigation { get; set; }\n [Description(\"Start of irrigation season (dd-MMM)\")]\n public string seasonStart { get; set; }\n [Description(\"End of irrigation season (dd-MMM)\")]\n public string seasonEnd { get; set; }\n [Description(\"Season allocation (mm)\")]\n public double seasonsAllocation { get; set; }\n [Description(\"Deficit to trigger irrigation (% PAWC)\")]\n public double triggerDeficit { get; set; }\n [Description(\"Deficit to stop irrigaton (% PAWC)\")]\n public double targetDeficit { get; set; }\n [Description(\"Minimum days for irrigation to return\")]\n public double returndays { get; set; }\n [Description(\"Maximum irrigation application (mm/day)\")]\n public double maximumAmount { get; set; }\n [Description(\"Depth to calculate PAWC (mm)\")]\n public double depthPAWC { get; set; }\n\n //Class members\n public double TopSWdeficit { get; set; }\n public double TopSWC { get; set; }\n public double DaysSinceIrrigation { get; set; }\n public double AmountToApply { get; set; }\n public double SeasonAppliedAmount { get; set; }\n \n private bool IrrigationIsAllowed { get; set; }\n private bool SeasonIsOpen { get; set; }\n private bool CropIsActive { get; set; }\n private bool IrrigatorIsAvailable { get; set; }\n private bool SoilIsDry { get; set; }\n\n \n //Calculate static soil variables\n [EventSubscribe(\"StartOfSimulation\")]\n private void OnStartOfSimulation(object sender, EventArgs e)\n { \n //Set the season dates\n StartDate = DateTime.Parse(seasonStart + \"-\" + Clock.Today.Year.ToString());\n EndDate = DateTime.Parse(seasonEnd + \"-\" + Clock.Today.Year.ToString());\n \n //Can we irrigate at all?\n IrrigationIsAllowed = false; \n if (allowIrrigation)\n IrrigationIsAllowed = true; \n\n //Calculate soil water variables\n double depthFromSurface = 0.0;\n double fracLayer = 0.0;\n nLayers = soilPhysical.Thickness.Length;\n for (int layer = 0; layer < nLayers; layer++)\n {\n fracLayer = Math.Min(1.0, (depthPAWC - depthFromSurface) / soilPhysical.Thickness[layer]);\n TopLL += soilPhysical.LL15mm[layer] * fracLayer;\n TopDUL += soilPhysical.DULmm[layer] * fracLayer;\n depthFromSurface += soilPhysical.Thickness[layer];\n if (depthFromSurface >= depthPAWC)\n layer = nLayers;\n }\n }\n \n //Determine daily requirement for irrigation\n [EventSubscribe(\"StartOfDay\")]\n private void OnStartOfDay(object sender, EventArgs e)\n {\n //Can we irrigate today? \n SeasonIsOpen = isBetween(Clock.Today, StartDate, EndDate);\n if (!SeasonIsOpen)\n SeasonAppliedAmount = 0;\n\n //Is there a crop in the ground that needs irrigation?\n CropIsActive = false;\n if ((existingCrop != null) && (existingCrop.IsAlive))\n CropIsActive = true;\n //if ((existingCrop.Phenology.Stage >= 3.0) && (existingCrop.Phenology.Stage < 6.0))\n \n //Is the irrigator available?\n IrrigatorIsAvailable = false;\n DaysSinceIrrigation += 1;\n if (DaysSinceIrrigation >= returndays)\n IrrigatorIsAvailable = true;\n \n //Is the soil dry enough to require irrigation?\n SoilIsDry = false;\n double depthFromSurface = 0.0;\n double fracLayer = 0.0;\n TopSWC = 0.0;\n for (int layer = 0; layer < nLayers; layer++)\n //for (int layer = 0; depthFromSurface < depthPAWC + soilPhysical.Thickness[layer]; layer++)\n {\n fracLayer = Math.Min(1.0, (depthPAWC - depthFromSurface) / soilPhysical.Thickness[layer]);\n TopSWC += waterBalance.SWmm[layer] * fracLayer;\n depthFromSurface += soilPhysical.Thickness[layer];\n if (depthFromSurface >= depthPAWC)\n layer = nLayers;\n }\n \n TopSWdeficit = TopSWC - TopDUL;\n if (Math.Max(0.0, -TopSWdeficit) >= (TopDUL - TopLL) * (100 - triggerDeficit) / 100)\n SoilIsDry = true;\n \n //Are all the conditions ratifying irrigation\n if (IrrigationIsAllowed && SeasonIsOpen && CropIsActive && IrrigatorIsAvailable && SoilIsDry)\n {\n //Lets bloody well irrigate then!!!!\n AmountToApply = TopDUL * targetDeficit / 100 - TopSWC;\n AmountToApply = Math.Max(0.0, Math.Min(AmountToApply, seasonsAllocation - SeasonAppliedAmount));\n AmountToApply = Math.Min(AmountToApply,maximumAmount);\n Irrigation.Apply(AmountToApply);\n DaysSinceIrrigation = 0;\n SeasonAppliedAmount += AmountToApply;\n }\n }\n \n ///Checks whether theDate is between iniDate and endDate (non-year specific)\n private bool isBetween(DateTime theDay, DateTime iniDate, DateTime endDate)\n {\n bool result = false;\n if (iniDate.DayOfYear < endDate.DayOfYear)\n {\n // period is within one year, ex: summer in the northern hemisphere\n if ((theDay.DayOfYear >= iniDate.DayOfYear) && (theDay.DayOfYear <= endDate.DayOfYear))\n result = true;\n }\n else\n {\n // period goes over the end of the year, ex: summer in the southern hemisphere\n if ((theDay.DayOfYear >= iniDate.DayOfYear) || (theDay.DayOfYear <= endDate.DayOfYear))\n result = true;\n }\n \n return result;\n }\n }\n}\n", - "Parameters": [ - { - "Key": "allowIrrigation", - "Value": "True" - }, - { - "Key": "seasonStart", - "Value": "1-sep" - }, - { - "Key": "seasonEnd", - "Value": "30-mar" - }, - { - "Key": "seasonsAllocation", - "Value": "10000" - }, - { - "Key": "triggerDeficit", - "Value": "50" - }, - { - "Key": "targetDeficit", - "Value": "95" - }, - { - "Key": "returndays", - "Value": "3" - }, - { - "Key": "maximumAmount", - "Value": "30" - }, - { - "Key": "depthPAWC", - "Value": "650" - } - ], - "Name": "AutomaticIrrigation", - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Irrigation, Models", - "Name": "Irrigation", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Fertiliser, Models", - "ResourceName": "Fertiliser", - "Name": "Fertiliser", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.MicroClimate, Models", - "a_interception": 0.0, - "b_interception": 1.0, - "c_interception": 0.0, - "d_interception": 0.0, - "SoilHeatFluxFraction": 0.4, - "MinimumHeightDiffForNewLayer": 0.0, - "NightInterceptionFraction": 0.5, - "ReferenceHeight": 2.0, - "Name": "MicroClimate", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.Soil, Models", - "RecordNumber": 0, - "ASCOrder": null, - "ASCSubOrder": null, - "SoilType": "GLHSoil", - "LocalName": null, - "Site": "Cooper Lab", - "NearestTown": "Unknown", - "Region": "Gatton", - "State": null, - "Country": null, - "NaturalVegetation": "Unknown", - "ApsoilNumber": null, - "Latitude": 0.0, - "Longitude": 0.0, - "LocationAccuracy": null, - "YearOfSampling": null, - "DataSource": null, - "Comments": null, - "Name": "GLH Field", - "Children": [ - { - "$type": "Models.Soils.Physical, Models", - "Depth": [ - "0-20", - "20-40", - "40-60", - "60-90", - "90-120", - "120-150", - "150-180" - ], - "Thickness": [ - 200.0, - 200.0, - 200.0, - 300.0, - 300.0, - 300.0, - 300.0 - ], - "ParticleSizeClay": null, - "ParticleSizeSand": null, - "ParticleSizeSilt": null, - "Rocks": null, - "Texture": null, - "BD": [ - 1.32, - 1.3, - 1.23, - 1.27, - 1.37, - 1.35, - 1.35 - ], - "AirDry": [ - 0.1, - 0.15, - 0.28, - 0.28, - 0.28, - 0.3, - 0.3 - ], - "LL15": [ - 0.3, - 0.3, - 0.35, - 0.32, - 0.29, - 0.31, - 0.31 - ], - "DUL": [ - 0.41, - 0.43, - 0.46, - 0.44, - 0.4, - 0.41, - 0.38 - ], - "SAT": [ - 0.46, - 0.48, - 0.51, - 0.49, - 0.45, - 0.46, - 0.43 - ], - "KS": null, - "BDMetadata": null, - "AirDryMetadata": null, - "LL15Metadata": null, - "DULMetadata": null, - "SATMetadata": null, - "KSMetadata": null, - "RocksMetadata": null, - "TextureMetadata": null, - "ParticleSizeSandMetadata": null, - "ParticleSizeSiltMetadata": null, - "ParticleSizeClayMetadata": null, - "Name": "Physical", - "Children": [ - { - "$type": "Models.Soils.SoilCrop, Models", - "LL": [ - 0.3, - 0.3, - 0.35, - 0.32, - 0.29, - 0.31, - 0.31 - ], - "KL": [ - 0.08, - 0.08, - 0.08, - 0.08, - 0.06, - 0.04, - 0.02 - ], - "XF": [ - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0, - 1.0 - ], - "LLMetadata": null, - "KLMetadata": null, - "XFMetadata": null, - "Name": "SorghumSoil", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.WaterModel.WaterBalance, Models", - "SummerDate": "1-Nov", - "SummerU": 6.0, - "SummerCona": 3.5, - "WinterDate": "1-Apr", - "WinterU": 6.0, - "WinterCona": 3.5, - "DiffusConst": 88.0, - "DiffusSlope": 35.4, - "Salb": 0.13, - "CN2Bare": 91.0, - "CNRed": 20.0, - "CNCov": 0.8, - "DischargeWidth": "NaN", - "CatchmentArea": "NaN", - "Thickness": [ - 200.0, - 200.0, - 200.0, - 300.0, - 300.0, - 300.0, - 300.0 - ], - "SWCON": [ - 0.5, - 0.5, - 0.5, - 0.5, - 0.5, - 0.5, - 0.5 - ], - "KLAT": null, - "ResourceName": "WaterBalance", - "Name": "SoilWater", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.SoilNitrogen, Models", - "fom_types": [ - "default", - "manure", - "mucuna", - "lablab", - "shemp", - "stable" - ], - "fract_carb": [ - 0.2, - 0.3, - 0.54, - 0.57, - 0.45, - 0.0 - ], - "fract_cell": [ - 0.7, - 0.3, - 0.37, - 0.37, - 0.47, - 0.1 - ], - "fract_lign": [ - 0.1, - 0.4, - 0.09, - 0.06, - 0.08, - 0.9 - ], - "NPartitionApproach": 0, - "Name": "SoilNitrogen", - "Children": [ - { - "$type": "Models.Soils.SoilNitrogenNO3, Models", - "Name": "NO3", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.SoilNitrogenNH4, Models", - "Name": "NH4", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.SoilNitrogenUrea, Models", - "Name": "Urea", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.Organic, Models", - "Depth": [ - "0-20", - "20-40", - "40-60", - "60-90", - "90-120", - "120-150", - "150-180" - ], - "FOMCNRatio": 30.0, - "Thickness": [ - 200.0, - 200.0, - 200.0, - 300.0, - 300.0, - 300.0, - 300.0 - ], - "Carbon": [ - 1.3, - 0.65, - 0.32, - 0.11, - 0.11, - 0.11, - 0.11 - ], - "SoilCNRatio": [ - 12.5, - 12.5, - 12.5, - 12.5, - 12.5, - 12.5, - 12.5 - ], - "FBiom": [ - 0.03, - 0.01, - 0.0, - 0.0, - 0.0, - 0.0, - 0.0 - ], - "FInert": [ - 0.31, - 0.38, - 0.47, - 0.7, - 0.9, - 0.95, - 0.95 - ], - "FOM": [ - 514.7087369422752, - 368.80492584502815, - 264.2602768618072, - 160.28196006083508, - 97.21592297573227, - 58.96443789704345, - 35.763739417278366 - ], - "CarbonMetadata": null, - "FOMMetadata": null, - "Name": "Organic", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.Chemical, Models", - "Depth": [ - "0-20", - "20-40", - "40-60", - "60-90", - "90-120", - "120-150", - "150-180" - ], - "Thickness": [ - 200.0, - 200.0, - 200.0, - 300.0, - 300.0, - 300.0, - 300.0 - ], - "NO3N": [ - 9.0, - 2.48, - 2.79, - 1.28, - 2.98, - 2.965, - 1.3870000000000011 - ], - "NH4N": [ - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1, - 0.1 - ], - "PH": [ - 8.2, - 8.7, - 8.9, - 8.1, - 8.0, - 8.0, - 8.0 - ], - "CL": null, - "EC": null, - "ESP": null, - "LabileP": null, - "UnavailableP": null, - "ECMetadata": null, - "CLMetadata": null, - "ESPMetadata": null, - "PHMetadata": null, - "Name": "Chemical", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.Sample, Models", - "Depth": [ - "0-20", - "20-40", - "40-60", - "60-90", - "90-120", - "120-150", - "150-180" - ], - "Thickness": [ - 200.0, - 200.0, - 200.0, - 300.0, - 300.0, - 300.0, - 300.0 - ], - "NO3": null, - "NH4": null, - "LabileP": null, - "UnavailableP": null, - "SW": [ - 0.385, - 0.47, - 0.467, - 0.459, - 0.394, - 0.399, - 0.38 - ], - "OC": null, - "EC": null, - "CL": null, - "ESP": null, - "PH": null, - "SWUnits": 0, - "OCUnits": 0, - "PHUnits": 0, - "Name": "Initial water", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Soils.CERESSoilTemperature, Models", - "Name": "Temperature", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.PMF.Plant, Models", - "ResourceName": "Sorghum", - "Name": "Sorghum", - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Surface.SurfaceOrganicMatter, Models", - "InitialResidueName": "wheat_stubble", - "InitialResidueType": "wheat", - "InitialResidueMass": 0.0, - "InitialStandingFraction": 0.0, - "InitialCPR": 0.0, - "InitialCNR": 80.0, - "ResourceName": "SurfaceOrganicMatter", - "Name": "SurfaceOrganicMatter", - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "RowConfig", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": "Row", - "FactorToVaryMarkers": null, - "FactorToVaryLines": "Skip", - "Marker": 11, - "MarkerSize": 0, - "Line": 4, - "LineThickness": 0, - "TableName": "Report", - "XFieldName": "Clock.Today", - "YFieldName": "Sorghum.Leaf.LAI", - "X2FieldName": null, - "Y2FieldName": null, - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": null, - "Name": "LAI", - "Children": [], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": "Row", - "FactorToVaryMarkers": null, - "FactorToVaryLines": "Skip", - "Marker": 11, - "MarkerSize": 0, - "Line": 4, - "LineThickness": 0, - "TableName": "Report", - "XFieldName": "Clock.Today", - "YFieldName": "Sorghum.Leaf.CoverGreen", - "X2FieldName": null, - "Y2FieldName": null, - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": null, - "Name": "CoverGreen", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - }, - { - "$type": "Models.Graph, Models", - "Caption": null, - "Axis": [ - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 3, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - }, - { - "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", - "Title": null, - "Position": 0, - "Inverted": false, - "CrossesAtZero": false, - "Minimum": null, - "Maximum": null, - "Interval": null - } - ], - "LegendPosition": 0, - "LegendOrientation": 0, - "AnnotationLocation": 0, - "DisabledSeries": [], - "LegendOutsideGraph": false, - "Name": "SkipConfig", - "Children": [ - { - "$type": "Models.Series, Models", - "Type": 1, - "XAxis": 3, - "YAxis": 0, - "ColourArgb": -1663232, - "FactorToVaryColours": "Row", - "FactorToVaryMarkers": "Skip", - "FactorToVaryLines": null, - "Marker": 11, - "MarkerSize": 0, - "Line": 4, - "LineThickness": 0, - "TableName": "Report", - "XFieldName": "Sorghum.SowingData.SkipDensityScale", - "YFieldName": "Sorghum.Leaf.CoverGreen", - "X2FieldName": null, - "Y2FieldName": null, - "ShowInLegend": true, - "IncludeSeriesNameInLegend": false, - "Cumulative": false, - "CumulativeX": false, - "Filter": null, - "Name": "SkipDensity", - "Children": [], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false - } - ], - "Enabled": true, - "ReadOnly": false } ], "Enabled": true, diff --git a/Tests/UnderReview/Sorghum/SorghumPlausibilityRuns.apsimx b/Tests/UnderReview/Sorghum/SorghumPlausibilityRuns.apsimx new file mode 100644 index 0000000000..c3b0ab4afe --- /dev/null +++ b/Tests/UnderReview/Sorghum/SorghumPlausibilityRuns.apsimx @@ -0,0 +1,15799 @@ +{ + "$type": "Models.Core.Simulations, Models", + "ExplorerWidth": 300, + "Version": 147, + "Name": "Simulations", + "Children": [ + { + "$type": "Models.Storage.DataStore, Models", + "useFirebird": false, + "CustomFileName": null, + "Name": "DataStore", + "Children": [ + { + "$type": "Models.PostSimulationTools.SimulationStats, Models", + "TableName": "SowHarvestReport", + "FieldNamesToSplitOn": [ + "SimulationName", + "SowingDate", + "Management" + ], + "CalcCount": true, + "CalcTotal": true, + "CalcMean": true, + "CalcMedian": true, + "CalcMin": true, + "CalcMax": true, + "CalcStdDev": true, + "CalcPercentiles": true, + "Name": "SimulationStats", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Core.Replacements, Models", + "Name": "Replacements", + "Children": [ + { + "$type": "Models.PMF.Plant, Models", + "PlantType": "Sorghum", + "IsAlive": false, + "IsEnding": false, + "DaysAfterEnding": 0, + "ResourceName": null, + "Name": "Sorghum", + "Children": [ + { + "$type": "Models.Memo, Models", + "Text": "_McLean, G., Brider, J., Doherty, A._\r\n\r\nThe APSIM sorghum model has been developed using the Plant Modelling Framework (PMF) of [brown_plant_2014]. This new framework provides a library of plant organ and process submodels that can be coupled, at runtime, to construct a model in much the same way that models can be coupled to construct a simulation. This means that dynamic composition of lower level process and organ classes (e.g. photosynthesis, leaf) into larger constructions (e.g. maize, wheat, sorghum) can be achieved by the model developer without additional coding.\r\n\r\nThe model consists of:\r\n\r\n* a phenology model to simulate development between growth phases \r\n* a culms model to simulate tillering\r\n* a collection of organs to simulate the various plant parts \r\n* an arbitrator to allocate resources (N, biomass) to the various plant organs\n", + "Name": "Introduction", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.OrganArbitrator, Models", + "Name": "Arbitrator", + "Children": [ + { + "$type": "Models.PMF.BiomassTypeArbitrator, Models", + "Name": "DMArbitration", + "Children": [ + { + "$type": "Models.Core.Folder, Models", + "ShowInDocs": false, + "GraphsPerPage": 6, + "Name": "PotentialPartitioningMethods", + "Children": [ + { + "$type": "Models.PMF.Arbitrator.ReallocationMethod, Models", + "Name": "ReallocationMethod", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Arbitrator.AllocateFixationMethod, Models", + "Name": "AllocateFixationMethod", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Arbitrator.RetranslocationMethod, Models", + "Name": "RetranslocationMethod", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Arbitrator.SendPotentialDMAllocationsMethod, Models", + "Name": "SendPotentialDMAllocationsMethod", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Core.Folder, Models", + "ShowInDocs": false, + "GraphsPerPage": 6, + "Name": "AllocationMethods", + "Children": [ + { + "$type": "Models.PMF.Arbitrator.DryMatterAllocationsMethod, Models", + "Name": "DryMatterAllocationsMethod", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.PrioritythenRelativeAllocation, Models", + "Name": "ArbitrationMethod", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.BiomassTypeArbitrator, Models", + "Name": "NArbitration", + "Children": [ + { + "$type": "Models.Core.Folder, Models", + "ShowInDocs": false, + "GraphsPerPage": 6, + "Name": "PotentialPartitioningMethods", + "Children": [ + { + "$type": "Models.PMF.Arbitrator.ReallocationMethod, Models", + "Name": "ReallocationMethod", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Core.Folder, Models", + "ShowInDocs": false, + "GraphsPerPage": 6, + "Name": "ActualPartitioningMethods", + "Children": [ + { + "$type": "Models.PMF.Arbitrator.AllocateFixationMethod, Models", + "Name": "AllocateFixationMethod", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Arbitrator.C4RetranslocationMethod, Models", + "Name": "C4RetranslocationMethod", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Core.Folder, Models", + "ShowInDocs": false, + "GraphsPerPage": 6, + "Name": "AllocationMethods", + "Children": [ + { + "$type": "Models.PMF.Arbitrator.NitrogenAllocationsMethod, Models", + "Name": "NitrogenAllocationsMethod", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.SorghumArbitratorN, Models", + "Name": "ArbitrationMethod", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Arbitrator.AllocateUptakesMethod, Models", + "Name": "AllocateUptakesMethod", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Arbitrator.C4WaterUptakeMethod, Models", + "SDRatio": 0.0, + "Name": "WaterUptakeMethod", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Arbitrator.C4NitrogenUptakeMethod, Models", + "NMassFlowSupply": 0.0, + "NDiffusionSupply": 0.0, + "Name": "NitrogenUptakeMethod", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.029, + "Units": null, + "Name": "MaxNUptakeRate", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 2.0, + "Units": "", + "Name": "MaxDiffusion", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 5.0, + "Units": null, + "Name": "NSupplyFraction", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 570.0, + "Units": "", + "Name": "NUptakeCease", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Arbitrator].WaterUptakeMethod.SDRatio", + "Name": "SDRatio", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Arbitrator].WaterUptakeMethod.WDemand", + "Name": "WDemand", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Arbitrator].WaterUptakeMethod.WSupply", + "Name": "WSupply", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Arbitrator].WaterUptakeMethod.WAllocated", + "Name": "WAllocated", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Arbitrator].WaterUptakeMethod.WatSupply", + "Name": "WatSupply", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.BoundFunction, Models", + "Name": "SDRatioBound", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Arbitrator].WaterUptakeMethod.SDRatio", + "Name": "SDRatio", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "Lower", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.1, + "Units": null, + "Name": "Upper", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Phen.Phenology, Models", + "Name": "Phenology", + "Children": [ + { + "$type": "Models.Memo, Models", + "Text": "The phenology model used in the APSIM sorghum model follows the approach used in earlier sorghum models(Jones and Kiniry (1986), Carberry and Arbrecht (1991), Carberry et al (1989). \r\nThe model predicts development of primordia on the apex of the main stem and appearance of individual leaves to predict time to flag leaf. Other stages use thermal time targets. \r\n", + "Name": "memo", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.PhaseLookup, Models", + "Name": "ThermalTime", + "Children": [ + { + "$type": "Models.Functions.PhaseLookupValue, Models", + "Start": "Germination", + "End": "Flowering", + "Name": "BeforeFlowering", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].DltTT", + "Name": "DltTT", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.PhaseLookupValue, Models", + "Start": "Flowering", + "End": "Maturity", + "Name": "PostFlowering", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].DltTTFM", + "Name": "DltTTFM", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.PhaseLookupValue, Models", + "Start": "Maturity", + "End": "HarvestRipe", + "Name": "MaturityToRipe", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].DltTT", + "Name": "DltTT", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "DltTT", + "Children": [ + { + "$type": "Models.Functions.HourlyInterpolation, Models", + "agregationMethod": 0, + "Name": "ThermalTime", + "Children": [ + { + "$type": "Models.Functions.XYPairs, Models", + "X": [ + 11.0, + 30.0, + 42.0 + ], + "Y": [ + 0.0, + 19.0, + 0.0 + ], + "XVariableName": null, + "Name": "Response", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.ThreeHourSin, Models", + "TempRangeFactors": null, + "Name": "InterpolationMethod", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.PhaseLookup, Models", + "Name": "Stress", + "Children": [ + { + "$type": "Models.Functions.PhaseLookupValue, Models", + "Start": "Sowing", + "End": "EndJuvenile", + "Name": "SowingToEndJuvenile", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].PhenoWaterStress", + "Name": "PhenoWaterStress", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.PhaseLookupValue, Models", + "Start": "EndJuvenile", + "End": "Flowering", + "Name": "PreFlowering", + "Children": [ + { + "$type": "Models.Functions.MinimumFunction, Models", + "Name": "MinimumFunction", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].PhenoWaterStress", + "Name": "PhenoWaterStress", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.MaximumFunction, Models", + "Name": "MaximumFunction", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.5, + "Units": null, + "Name": "Constant", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Leaf].NitrogenPhenoStress", + "Name": "NitrogenPhenoStress", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.PhaseLookupValue, Models", + "Start": "Flowering", + "End": "HarvestRipe", + "Name": "PostFlowering", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "Constant", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.WeightedTemperatureFunction, Models", + "MaximumTemperatureWeighting": 0.5, + "Name": "DltTTFM", + "Children": [ + { + "$type": "Models.Functions.XYPairs, Models", + "X": [ + 5.7, + 23.5 + ], + "Y": [ + 0.0, + 17.8 + ], + "XVariableName": null, + "Name": "XYPairs", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Phen.GerminatingPhase, Models", + "Start": "Sowing", + "End": "Germination", + "Name": "Germinating", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Phen.EmergingPhase, Models", + "ShootLag": 15.0, + "ShootRate": 0.6, + "Start": "Germination", + "End": "Emergence", + "TTForTimeStep": 0.0, + "Name": "Emerging", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].ThermalTime", + "Name": "ThermalTime", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Phen.GenericPhase, Models", + "Start": "Emergence", + "End": "EndJuvenile", + "Name": "Juvenile", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 100.0, + "Units": null, + "Name": "Target", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].ThermalTime", + "Name": "Progression", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Phen.GenericPhase, Models", + "Start": "EndJuvenile", + "End": "FloralInitiation", + "Name": "JuvenileToFloralInit", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].ThermalTime", + "Name": "Progression", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].TTTargetPhotoSensitive", + "Name": "Target", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Phen.GenericPhase, Models", + "Start": "FloralInitiation", + "End": "FlagLeaf", + "Name": "FloralInitToFlagLeaf", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].ThermalTime", + "Name": "Progression", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.SubtractFunction, Models", + "Name": "Target", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].TTEmergToFlagLeaf", + "Name": "TTEmergToFlag", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].Juvenile.Target", + "Name": "TTJuvenile", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].JuvenileToFloralInit.Target", + "Name": "TTJuvToFloralInit", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Phen.GenericPhase, Models", + "Start": "FlagLeaf", + "End": "Flowering", + "Name": "FlagLeafToFlowering", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 170.0, + "Units": null, + "Name": "Target", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].ThermalTime", + "Name": "Progression", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Phen.GenericPhase, Models", + "Start": "Flowering", + "End": "StartGrainFill", + "Name": "FloweringToGrainFilling", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 80.0, + "Units": null, + "Name": "Target", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].DltTTFM", + "Name": "Progression", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Phen.GenericPhase, Models", + "Start": "StartGrainFill", + "End": "EndGrainFill", + "Name": "GrainFilling", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].DltTTFM", + "Name": "Progression", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.SubtractFunction, Models", + "Name": "Target", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].TTFlowerToMaturity", + "Name": "FlowerToMaturity", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].FloweringToGrainFilling.Target", + "Name": "FlowerToGrainFill", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].TTGrainFillToMaturity", + "Name": "GrainFillToMaturity", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Phen.GenericPhase, Models", + "Start": "EndGrainFill", + "End": "Maturity", + "Name": "Maturing", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].DltTTFM", + "Name": "Progression", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].TTGrainFillToMaturity", + "Name": "Target", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Phen.GenericPhase, Models", + "Start": "Maturity", + "End": "HarvestRipe", + "Name": "MaturityToHarvestRipe", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].ThermalTime", + "Name": "Progression", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "Target", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Phen.EndPhase, Models", + "Start": "HarvestRipe", + "End": "Unused", + "Name": "ReadyForHarvesting", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].ThermalTime", + "Name": "ThermalTime", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.PhotoperiodFunction, Models", + "Twilight": -2.2, + "DayLength": 0.0, + "Name": "Photoperiod", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.OnEventFunction, Models", + "SetEvent": "Flowering", + "ReSetEvent": "never", + "Name": "FloweringDAS", + "Children": [ + { + "$type": "Models.Memo, Models", + "Text": "\r\n\r\nA function is used to provide flowering date as days after sowing(DAS).\r\n
\r\n", + "Name": "memo", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "PreEventValue", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Plant].DaysAfterSowing", + "Name": "PostEventValue", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.OnEventFunction, Models", + "SetEvent": "Maturity", + "ReSetEvent": "never", + "Name": "MaturityDAS", + "Children": [ + { + "$type": "Models.Memo, Models", + "Text": "\r\n\r\nA function is used to provide maturity date as days after sowing(DAS).\r\n
\r\n", + "Name": "memo", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "PreEventValue", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Plant].DaysAfterSowing", + "Name": "PostEventValue", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 160.0, + "Units": null, + "Name": "TTEndJuvToInit", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 761.0, + "Units": null, + "Name": "TTFlowerToMaturity", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "TTGrainFillToMaturity", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].TTFlowerToMaturity", + "Name": "FlowerToMaturity", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.05, + "Units": null, + "Name": "Proportion", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.PhaseLookup, Models", + "Name": "TTTargetPhotoSensitive", + "Children": [ + { + "$type": "Models.Functions.PhaseLookupValue, Models", + "Start": "Sowing", + "End": "Emergence", + "Name": "PhaseLookupValue", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].TTEndJuvToInit", + "Name": "PreEventValue", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.PhaseLookupValue, Models", + "Start": "Emergence", + "End": "EndJuvenile", + "Name": "EmergenceToEndJuve", + "Children": [ + { + "$type": "Models.Functions.AddFunction, Models", + "Name": "Add", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].PhotoModifier", + "Name": "PhotoModifier", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].TTEndJuvToInit", + "Name": "TTEndJuvToInit", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.PhaseLookupValue, Models", + "Start": "EndJuvenile", + "End": "HarvestRipe", + "Name": "EndJuveToMaturity", + "Children": [ + { + "$type": "Models.Functions.OnEventFunction, Models", + "SetEvent": "EndJuvenile", + "ReSetEvent": "never", + "Name": "TTTargetPhoto", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].TTEndJuvToInit", + "Name": "PreEventValue", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.AddFunction, Models", + "Name": "PostEventValue", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].PhotoModifier", + "Name": "PhotoModifier", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].TTEndJuvToInit", + "Name": "TTEndJuvToInit", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.LinearInterpolationFunction, Models", + "Name": "PhotoModifier", + "Children": [ + { + "$type": "Models.Functions.XYPairs, Models", + "X": [ + 11.5, + 13.5 + ], + "Y": [ + 0.0, + 23.0 + ], + "XVariableName": null, + "Name": "XYPairs", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].Photoperiod", + "Name": "XValue", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.AddFunction, Models", + "Name": "TTEmergToFlagLeaf", + "Children": [ + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "LeafAppearingPhase1", + "Children": [ + { + "$type": "Models.Functions.SubtractFunction, Models", + "Name": "NoLeavesRate1", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Leaf].FinalLeafNo", + "Name": "FinalLeafNo", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Leaf].Parameters.LeafNoAtEmergence", + "Name": "LeafNoAtEmergence", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[LeafCulms].noRateChange1", + "Name": "LeafNoRateChange", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[LeafCulms].appearanceRate1", + "Name": "LeafAppearanceRate1", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "LeafAppearingPhase2", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[LeafCulms].appearanceRate2", + "Name": "LeafAppearanceRate2", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[LeafCulms].noRateChange1", + "Name": "LeafNoRateChange", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.AddFunction, Models", + "Name": "TTEmergToFloralInit", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].Juvenile.Target", + "Name": "TTTargetJuvenille", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].JuvenileToFloralInit.Target", + "Name": "TTTargetJuvToFI", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.AddFunction, Models", + "Name": "TTToFlowering", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Emerging].Target", + "Name": "GerminatingTarget", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[TTEmergToFlagLeaf]", + "Name": "TTEmergToFlagLeaf", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[FlagLeafToFlowering].Target", + "Name": "FlagLeafToFlowering", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.AccumulateFunction, Models", + "StartStageName": "Emergence", + "EndStageName": "Maturity", + "ResetStageName": null, + "FractionRemovedOnCut": 0.0, + "FractionRemovedOnHarvest": 0.0, + "FractionRemovedOnGraze": 0.0, + "FractionRemovedOnPrune": 0.0, + "Name": "TTFromEmergence", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].CurrentPhase.ProgressionForTimeStep", + "Name": "ThermalTime", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.AccumulateFunction, Models", + "StartStageName": "Flowering", + "EndStageName": "Maturity", + "ResetStageName": null, + "FractionRemovedOnCut": 0.0, + "FractionRemovedOnHarvest": 0.0, + "FractionRemovedOnGraze": 0.0, + "FractionRemovedOnPrune": 0.0, + "Name": "TTFMFromFlowering", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].CurrentPhase.ProgressionForTimeStep", + "Name": "ThermalTime", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.AccumulateFunction, Models", + "StartStageName": "StartGrainFill", + "EndStageName": "Maturity", + "ResetStageName": null, + "FractionRemovedOnCut": 0.0, + "FractionRemovedOnHarvest": 0.0, + "FractionRemovedOnGraze": 0.0, + "FractionRemovedOnPrune": 0.0, + "Name": "TTFMSgfToMaturity", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].CurrentPhase.ProgressionForTimeStep", + "Name": "ThermalTime", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.LinearInterpolationFunction, Models", + "Name": "PhenoWaterStress", + "Children": [ + { + "$type": "Models.Functions.XYPairs, Models", + "X": [ + 0.0, + 0.7, + 1.0 + ], + "Y": [ + 0.0, + 1.0, + 1.0 + ], + "XVariableName": null, + "Name": "XYPairs", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Arbitrator].SDRatio", + "Name": "XValue", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Struct.LeafCulms, Models", + "dltLeafNo": 0.0, + "Culms": [], + "DynamicTillering": false, + "FinalLeafNo": 0.0, + "dltPotentialLAI": 0.0, + "dltStressedLAI": 0.0, + "NLeaves": 0.0, + "Name": "LeafCulms", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 41.0, + "Units": null, + "Name": "appearanceRate1", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 20.0, + "Units": null, + "Name": "appearanceRate2", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 20.0, + "Units": null, + "Name": "appearanceRate3", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.52, + "Units": null, + "Name": "leafNoCorrection", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 3.5, + "Units": null, + "Name": "noRateChange1", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 3.5, + "Units": null, + "Name": "noRateChange2", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].TTFromEmergToFlag", + "Name": "ttEmergToFlag", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[LeafCulms].TTTargetFI", + "Name": "ttEmergToFI", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].DltTT", + "Name": "dltTT", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "leafNoAtEmergence", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": -0.82, + "Units": null, + "Name": "tilleringPropensity", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.2065, + "Units": null, + "Name": "tillerSdSlope", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 30.0, + "Units": "%", + "Name": "tillerSlaBound", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.3, + "Units": null, + "Name": "aMaxVert", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.05, + "Units": null, + "Name": "aTillerVert", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": -0.009, + "Units": null, + "Name": "A0", + "Children": [ + { + "$type": "Models.Memo, Models", + "Text": "bellCurveParams[0]", + "Name": "Memo", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": -0.2, + "Units": null, + "Name": "A1", + "Children": [ + { + "$type": "Models.Memo, Models", + "Text": "bellCurveParams[1]", + "Name": "Memo", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0006, + "Units": null, + "Name": "B0", + "Children": [ + { + "$type": "Models.Memo, Models", + "Text": "bellCurveParams[2]", + "Name": "Memo", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": -0.43, + "Units": null, + "Name": "B1", + "Children": [ + { + "$type": "Models.Memo, Models", + "Text": "bellCurveParams[3]", + "Name": "Memo", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "AMaxA", + "Children": [ + { + "$type": "Models.Memo, Models", + "Text": "Required by maize. Not used in sorghum, but it's a nonoptional link.", + "Name": "Memo", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "AMaxB", + "Children": [ + { + "$type": "Models.Memo, Models", + "Text": "Required by maize. Not used in sorghum, but it's a nonoptional link.", + "Name": "Memo", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "AMaxC", + "Children": [ + { + "$type": "Models.Memo, Models", + "Text": "Required by maize. Not used in sorghum, but it's a nonoptional link.", + "Name": "Memo", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.687, + "Units": null, + "Name": "aX0", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 22.25, + "Units": null, + "Name": "aMaxSlope", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 92.45, + "Units": null, + "Name": "aMaxIntercept", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 4.0, + "Units": null, + "Name": "leafNumSeed", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 21.6, + "Units": "oCd", + "Name": "leafInitRate", + "Children": [ + { + "$type": "Models.Memo, Models", + "Text": "Degree days to initiate each leaf primordium until floral init (deg day)", + "Name": "Description", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 10.0, + "Units": null, + "Name": "minLeafNo", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 40.0, + "Units": null, + "Name": "maxLeafNo", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 45000.0, + "Units": null, + "Name": "slaMax", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.MinimumFunction, Models", + "Name": "ExpansionStress", + "Children": [ + { + "$type": "Models.Functions.LinearInterpolationFunction, Models", + "Name": "WaterStressEffect", + "Children": [ + { + "$type": "Models.Functions.XYPairs, Models", + "X": [ + 0.1, + 1.1 + ], + "Y": [ + 0.0, + 1.0 + ], + "XVariableName": null, + "Name": "XYPairs", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Arbitrator].SDRatio", + "Name": "XValue", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "NitrogenStressEffect", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "PhosphorusStressEffect", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Struct.FixedTillering, Models", + "FertileTillerNumber": 0.0, + "Name": "Tillering", + "Children": [ + { + "$type": "Models.PMF.C4LeafArea, Models", + "Name": "AreaCalc", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[LeafCulms].A0", + "Name": "A0", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[LeafCulms].A1", + "Name": "A1", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[LeafCulms].B0", + "Name": "B0", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[LeafCulms].B1", + "Name": "B1", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[LeafCulms].aX0", + "Name": "aX0", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[LeafCulms].aMaxSlope", + "Name": "aMaxS", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[LeafCulms].aMaxIntercept", + "Name": "aMaxI", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[LeafCulms].largestLeafPlateau", + "Name": "largestLeafPlateau", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[LeafCulms].leafNoCorrection", + "Name": "leafNoCorrection", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 45000.0, + "Units": null, + "Name": "slaMax", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.LinearInterpolationFunction, Models", + "Name": "LeafAppearanceRate", + "Children": [ + { + "$type": "Models.Functions.XYPairs, Models", + "X": [ + 0.0, + 3.5, + 3.5, + 50.0 + ], + "Y": [ + 20.0, + 20.0, + 41.0, + 41.0 + ], + "XVariableName": null, + "Name": "XYPairs", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Memo, Models", + "Text": "LeafAppearance uses the remaining leaves to calculate a faster appearance rate which is calculated per tiller so must be done dynamicaaly using ValueForX() functionality\n\nPeter Carberry's 2 stage version used here, modified to apply to last few leaves before flag\n", + "Name": "Memo", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "RemainingLeaves", + "Name": "XValue", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.3, + "Units": null, + "Name": "MaxVerticalTillerAdjustment", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.05, + "Units": null, + "Name": "VerticalTillerAdjustment", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.LiveOnEventFunction, Models", + "SetEvent": "FloralInitiation", + "ReSetEvent": "Germination", + "Name": "NumberOfLeaves", + "Children": [ + { + "$type": "Models.Functions.BoundFunction, Models", + "Name": "PreEventValue", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 10.0, + "Units": null, + "Name": "Lower", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 40.0, + "Units": null, + "Name": "Upper", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.AddFunction, Models", + "Name": "AddFunction", + "Children": [ + { + "$type": "Models.Functions.DivideFunction, Models", + "Name": "LeavesInitiated", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].TTEmergToFloralInit", + "Name": "TTFloralInit", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[NumberOfLeaves].leafInitRate", + "Name": "leafInitRate", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[NumberOfLeaves].leafNumSeed", + "Name": "leafNumSeed", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[LeafCulms].FinalLeafNo", + "Name": "PostEventValue", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 21.6, + "Units": "oCd", + "Name": "leafInitRate", + "Children": [ + { + "$type": "Models.Memo, Models", + "Text": "Degree days to initiate each leaf primordium until floral init (deg day)", + "Name": "Description", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 4.0, + "Units": null, + "Name": "leafNumSeed", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 49.25, + "Units": null, + "Name": "largestLeafPlateau", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Organs.ReproductiveOrgan, Models", + "GrowthRespiration": 0.0, + "MaintenanceRespiration": 0.0, + "DMDemand": null, + "NDemand": null, + "DMSupply": null, + "NSupply": null, + "RipeStage": null, + "potentialDMAllocation": null, + "Live": { + "$type": "Models.PMF.Biomass, Models", + "Name": "Biomass", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + "Dead": { + "$type": "Models.PMF.Biomass, Models", + "Name": "Biomass", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + "Name": "Grain", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.05, + "Units": null, + "Name": "InitialGrainProportion", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.3, + "Units": null, + "Name": "MaximumPotentialGrainSize", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.008, + "Units": null, + "Name": "MinimumNConc", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.PhaseLookup, Models", + "Name": "MaximumNConc", + "Children": [ + { + "$type": "Models.Functions.PhaseLookupValue, Models", + "Start": "Flowering", + "End": "StartGrainFill", + "Name": "InitialPhase", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.05, + "Units": null, + "Name": "InitialNconc", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.PhaseLookupValue, Models", + "Start": "StartGrainFill", + "End": "Maturity", + "Name": "LinearPhase", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0175, + "Units": null, + "Name": "FinalNconc", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.13, + "Units": null, + "Name": "WaterContent", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.PhaseLookup, Models", + "Name": "NFillingRate", + "Children": [ + { + "$type": "Models.Functions.PhaseLookupValue, Models", + "Start": "StartGrainFill", + "End": "Maturity", + "Name": "GrainFilling", + "Children": [ + { + "$type": "Models.Functions.LessThanFunction, Models", + "Name": "LessThanFunction", + "Children": [ + { + "$type": "Models.Memo, Models", + "Text": "\nFirst half of the Grainfilling Period is calculated using Grain Filling Rate\n2nd half is calculated using the maximum N Concentration of todays Biomass\n\nAmount of N filled per day is limited by the Target N Concentration at all times.", + "Name": "Memo", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.DivideFunction, Models", + "Name": "gfFract", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].TTFMSgfToMaturity", + "Name": "TTGrainFillToMaturity", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.AddFunction, Models", + "Name": "TTTargetSgfToNow", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].GrainFilling.Target", + "Name": "GrainFilling", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].Maturing.Target", + "Name": "Maturity", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.5, + "Units": "g/g", + "Name": "GrainFillFraction", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.MinimumFunction, Models", + "Name": "InitialGrainFilling", + "Children": [ + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "FillingRate", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Grain].NumberFunction", + "Name": "NumberFunction", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].DltTTFM", + "Name": "ThermalTime", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.DivideFunction, Models", + "Name": "DivideFunction", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.001, + "Units": "mg/grain/dd", + "Name": "GrainFillRate", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1000.0, + "Units": "mg/g", + "Name": "Thousand", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "FinalGrainFilling", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Grain].potentialDMAllocation.Structural", + "Name": "dltDmGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Grain].MaximumNConc", + "Name": "maxNConc", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "FinalGrainFilling", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Grain].potentialDMAllocation.Structural", + "Name": "dltDmGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Grain].MaximumNConc", + "Name": "maxNConc", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.00083, + "Units": null, + "Name": "DMPerSeed", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.OnEventFunction, Models", + "SetEvent": "StartGrainFill", + "ReSetEvent": "Germination", + "Name": "FinalGrainNum", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "PreEventValue", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.DivideFunction, Models", + "Name": "PostEventValue", + "Children": [ + { + "$type": "Models.Functions.DivideFunction, Models", + "Name": "GrowthRate", + "Children": [ + { + "$type": "Models.Functions.MaximumFunction, Models", + "Name": "PlantGrowth", + "Children": [ + { + "$type": "Models.Memo, Models", + "Text": "Maximum function here prevents grain from returning negative dm demand in the event that plant growth is negative.", + "Name": "Memo", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.SubtractFunction, Models", + "Name": "PlantGrowthSinceFloralInit", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Sorghum].Total.Wt", + "Name": "TotalBiomass", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.OnEventFunction, Models", + "SetEvent": "FloralInitiation", + "ReSetEvent": "Germination", + "Name": "GreenWtAtFI", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "PreEventValue", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Sorghum].Total.Wt", + "Name": "PostEventValue", + "Children": [ + { + "$type": "Models.Memo, Models", + "Text": "Definitely [Sorghum].Total.Wt", + "Name": "Memo", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "Zero", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.AccumulateFunction, Models", + "StartStageName": "FloralInitiation", + "EndStageName": "StartGrainFill", + "ResetStageName": null, + "FractionRemovedOnCut": 0.0, + "FractionRemovedOnHarvest": 0.0, + "FractionRemovedOnGraze": 0.0, + "FractionRemovedOnPrune": 0.0, + "Name": "DaysFIToStartGrainFill", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "One", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Grain].DMPerSeed", + "Name": "DMPerSeed", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.GrainNumberFunction, Models", + "Name": "NumberFunction", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Grain].FinalGrainNum", + "Name": "PotentialGrainNumber", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.MinimumFunction, Models", + "Name": "GrowthRateFactor", + "Children": [ + { + "$type": "Models.Functions.DivideFunction, Models", + "Name": "GrowthRate", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].TTFMSgfToMaturity", + "Name": "TTStartGrainToNow", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 100.0, + "Units": null, + "Name": "RampTT", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "One", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.DecumulateFunction, Models", + "InitialValue": 1.0, + "MinValue": 0.0, + "StartStageName": "FlagLeaf", + "ResetStageName": "Emergence", + "StopStageName": null, + "Name": "StressFactor", + "Children": [ + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "MultiplyFunction", + "Children": [ + { + "$type": "Models.Memo, Models", + "Text": "Stress is accumulated during the specified window.", + "Name": "Memo", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.ThermalTimeWindowFunction, Models", + "Name": "StressWindow", + "Children": [ + { + "$type": "Models.Functions.SubtractFunction, Models", + "Name": "TTWindowStart", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].TTToFlowering", + "Name": "TTToFlowering", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 50.0, + "Units": null, + "Name": "PreAnthesis", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.AddFunction, Models", + "Name": "TTWindowEnd", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].TTToFlowering", + "Name": "TTToFlowering", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 100.0, + "Units": null, + "Name": "PostAnthesis", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].TTFromEmergence", + "Name": "ThermalTime", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].DLTTTFM", + "Name": "dltThermalTime", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.LinearInterpolationFunction, Models", + "Name": "SevereHeatResponse", + "Children": [ + { + "$type": "Models.Functions.XYPairs, Models", + "X": [ + 0.0, + 32.0, + 33.0, + 36.0, + 38.0 + ], + "Y": [ + 0.0, + 0.0, + 0.14, + 0.23, + 0.65 + ], + "XVariableName": null, + "Name": "XYPairs", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Weather].MaxT", + "Name": "XValue", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.DivideFunction, Models", + "Name": "DMCaryopsis", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Arbitrator].DM.TotalFixationSupply", + "Name": "DMFixationSupply", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Grain].NumberFunction", + "Name": "GrainNumber", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].DltTTFM", + "Name": "ThermalTime", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.MinimumFunction, Models", + "Name": "PotGrainFillRate", + "Children": [ + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "MultiplyFunction", + "Children": [ + { + "$type": "Models.Functions.AddFunction, Models", + "Name": "AddFunction", + "Children": [ + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "MultiplyFunction", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Grain].DMCaryopsis", + "Name": "DMCaryopsis", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.4026, + "Units": null, + "Name": "Constant", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 3.19E-05, + "Units": null, + "Name": "Constant", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1000.0, + "Units": null, + "Name": "Constant", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.09, + "Units": null, + "Name": "MaxGrainFillRate", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.PhaseLookup, Models", + "Name": "DMDemandFunction", + "Children": [ + { + "$type": "Models.Functions.PhaseLookupValue, Models", + "Start": "Sowing", + "End": "Maturity", + "Name": "SowingToMaturity", + "Children": [ + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "DMDemandFunction", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Grain].PotGrainFillRate", + "Name": "GrainFillRate", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].DltTTFM", + "Name": "ThermalTime", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Grain].NumberFunction", + "Name": "GrainNumber", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.001, + "Units": null, + "Name": "Constant", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Library.BiomassRemoval, Models", + "Name": "BiomassRemovalDefaults", + "Children": [ + { + "$type": "Models.PMF.OrganBiomassRemovalType, Models", + "FractionLiveToRemove": 1.0, + "FractionDeadToRemove": 0.0, + "FractionLiveToResidue": 0.0, + "FractionDeadToResidue": 0.0, + "Name": "Harvest", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.OrganBiomassRemovalType, Models", + "FractionLiveToRemove": 1.0, + "FractionDeadToRemove": 0.0, + "FractionLiveToResidue": 0.0, + "FractionDeadToResidue": 0.0, + "Name": "Cut", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.OrganBiomassRemovalType, Models", + "FractionLiveToRemove": 0.0, + "FractionDeadToRemove": 0.0, + "FractionLiveToResidue": 0.8, + "FractionDeadToResidue": 0.0, + "Name": "Prune", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.OrganBiomassRemovalType, Models", + "FractionLiveToRemove": 0.6, + "FractionDeadToRemove": 0.0, + "FractionLiveToResidue": 0.2, + "FractionDeadToResidue": 0.0, + "Name": "Graze", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "DMConversionEfficiency", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "RemobilisationCost", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.4, + "Units": null, + "Name": "CarbonConcentration", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.BiomassDemand, Models", + "Name": "DMDemandPriorityFactors", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "Structural", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "Metabolic", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "Storage", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.BiomassDemand, Models", + "Name": "NDemandPriorityFactors", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "Structural", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "Metabolic", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "Storage", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Organs.Root, Models", + "DMSupply": null, + "NSupply": null, + "DMDemand": null, + "NDemand": null, + "potentialDMAllocation": null, + "GrowthRespiration": 0.0, + "MaintenanceRespiration": 0.0, + "Name": "Root", + "Children": [ + { + "$type": "Models.Functions.RootShape.RootShapeSemiCircleSorghum, Models", + "Name": "RootShape", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.LinearInterpolationFunction, Models", + "Name": "KLModifier", + "Children": [ + { + "$type": "Models.Memo, Models", + "Text": "\r\n\r\nThe parameter KL is is described by Meinke et al (1993) to combine elements of soil conductivity (K) with root length (L) in determining root water uptake. Peake et al (2013) demonstrated that in sorghum KL varied with plant population through impacts on root length density. Here we adjust KL linearly with plant population.\r\n
\r\n", + "Name": "memo", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.XYPairs, Models", + "X": [ + 0.0, + 10.0 + ], + "Y": [ + 1.0, + 1.0 + ], + "XVariableName": null, + "Name": "XYPairs", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Sorghum].Population", + "Name": "XValue", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "SoilWaterEffect", + "Children": [ + { + "$type": "Models.Memo, Models", + "Text": "\r\n\r\nNo effect of soil water content on root growth is currently captured in the model.
\r\n", + "Name": "memo", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "TemperatureEffect", + "Children": [ + { + "$type": "Models.Memo, Models", + "Text": "\r\n\r\nNo effect of temperature on root growth is currently captured in the model.
\r\n", + "Name": "memo", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 20.0, + "Units": null, + "Name": "MaxDailyNUptake", + "Children": [ + { + "$type": "Models.Memo, Models", + "Text": "\r\n\r\nMaximum daily N uptake is set to an arbitrarily high value.
\r\n", + "Name": "memo", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.002, + "Units": null, + "Name": "SenescenceRate", + "Children": [ + { + "$type": "Models.Memo, Models", + "Text": "\r\n\r\nJones and Kiniry (1986) used a constant root senescence fraction in the CERES-Sorghum model.
\r\n", + "Name": "memo", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.02, + "Units": null, + "Name": "MaximumNConc", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.002, + "Units": null, + "Name": "MinimumNConc", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1000000.0, + "Units": null, + "Name": "MaximumRootDepth", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.PhaseLookup, Models", + "Name": "RootFrontVelocity", + "Children": [ + { + "$type": "Models.Memo, Models", + "Text": "Hammer et al (2009) used a constant extraction front velocity of 2.5cm per day in their analysis of historical sorghum yield trends in the US corn belt.\r\n", + "Name": "memo", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.PhaseLookupValue, Models", + "Start": "Germination", + "End": "StartGrainFill", + "Name": "PreGrainFill", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 27.0, + "Units": null, + "Name": "Function", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.PhaseLookupValue, Models", + "Start": "StartGrainFill", + "End": "Maturity", + "Name": "GrainfillToMaturity", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "Function", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.PhaseLookupValue, Models", + "Start": "Germination", + "End": "Maturity", + "Name": "NitrogenDemandSwitch", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "Constant", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.LinearInterpolationFunction, Models", + "Name": "KNO3", + "Children": [ + { + "$type": "Models.Functions.XYPairs, Models", + "X": [ + 0.0, + 0.003 + ], + "Y": [ + 0.03, + 0.03 + ], + "XVariableName": null, + "Name": "XYPairs", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Root].LengthDensity", + "Name": "XValue", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.LinearInterpolationFunction, Models", + "Name": "NUptakeSWFactor", + "Children": [ + { + "$type": "Models.Functions.XYPairs, Models", + "X": [ + 0.0, + 0.2, + 1.0 + ], + "Y": [ + 1.0, + 1.0, + 1.0 + ], + "XVariableName": null, + "Name": "XYPairs", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Root].RWC", + "Name": "XValue", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.LinearInterpolationFunction, Models", + "Name": "KNH4", + "Children": [ + { + "$type": "Models.Functions.XYPairs, Models", + "X": [ + 0.0, + 0.003 + ], + "Y": [ + 0.03, + 0.03 + ], + "XVariableName": null, + "Name": "XYPairs", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Root].LengthDensity", + "Name": "XValue", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 100000.0, + "Units": "m/g", + "Name": "SpecificRootLength", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Library.BiomassRemoval, Models", + "Name": "BiomassRemovalDefaults", + "Children": [ + { + "$type": "Models.PMF.OrganBiomassRemovalType, Models", + "FractionLiveToRemove": 0.0, + "FractionDeadToRemove": 0.0, + "FractionLiveToResidue": 0.2, + "FractionDeadToResidue": 0.0, + "Name": "Harvest", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.OrganBiomassRemovalType, Models", + "FractionLiveToRemove": 0.0, + "FractionDeadToRemove": 0.0, + "FractionLiveToResidue": 0.3, + "FractionDeadToResidue": 0.0, + "Name": "Cut", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.OrganBiomassRemovalType, Models", + "FractionLiveToRemove": 0.0, + "FractionDeadToRemove": 0.0, + "FractionLiveToResidue": 0.1, + "FractionDeadToResidue": 0.0, + "Name": "Prune", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.OrganBiomassRemovalType, Models", + "FractionLiveToRemove": 0.0, + "FractionDeadToRemove": 0.0, + "FractionLiveToResidue": 0.15, + "FractionDeadToResidue": 0.0, + "Name": "Graze", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "DMConversionEfficiency", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "MaintenanceRespirationFunction", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "RemobilisationCost", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.4, + "Units": null, + "Name": "CarbonConcentration", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.BiomassDemandAndPriority, Models", + "Name": "DMDemands", + "Children": [ + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "Structural", + "Children": [ + { + "$type": "Models.Functions.PhaseLookup, Models", + "Name": "ratioRootShoot", + "Children": [ + { + "$type": "Models.Memo, Models", + "Text": "This is a straight lookup table not an lineaer relationship", + "Name": "Memo", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.PhaseLookupValue, Models", + "Start": "Emergence", + "End": "FloralInitiation", + "Name": "BetweenEmergenceAndFloralInit", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": "0-1", + "Name": "rootFraction", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.PhaseLookupValue, Models", + "Start": "FloralInitiation", + "End": "Flowering", + "Name": "BetweenFloralInitAndFlowering", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.33, + "Units": "0-1", + "Name": "rootFraction", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.PhaseLookupValue, Models", + "Start": "Flowering", + "End": "StartGrainFill", + "Name": "BetweenFloweringAndGrainFill", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.087, + "Units": "0-1", + "Name": "rootFraction", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.PhaseLookupValue, Models", + "Start": "StartGrainFill", + "End": "HarvestRipe", + "Name": "BetweenFloweringAndGrainFill1", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": "0-1", + "Name": "rootFraction", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Leaf].DMSupplyFunction", + "Name": "LeafSupplyFunction", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "Metabolic", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "Storage", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "QStructuralPriority", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "QMetabolicPriority", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "QStoragePriority", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.BiomassDemandAndPriority, Models", + "Name": "NDemands", + "Children": [ + { + "$type": "Models.Functions.MaximumFunction, Models", + "Name": "Structural", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "zero", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.SubtractFunction, Models", + "Name": "SubtractFunction", + "Children": [ + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": " required", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Root].minimumNconc", + "Name": "MinNconc", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.AddFunction, Models", + "Name": "AddFunction", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Root].potentialDMAllocation.Structural", + "Name": "dltDmGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Root].Live.Wt", + "Name": "dmGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Root].Live.N", + "Name": "nGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "Metabolic", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "Storage", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "QStructuralPriority", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "QMetabolicPriority", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "QStoragePriority", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.LinearInterpolationFunction, Models", + "Name": "RootDepthStressFactor", + "Children": [ + { + "$type": "Models.Functions.XYPairs, Models", + "X": [ + 0.0, + 0.25 + ], + "Y": [ + 0.0, + 1.0 + ], + "XVariableName": null, + "Name": "XYPairs", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Root].SWAvailabilityRatio", + "Name": "XValue", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.ProtectedDivideFunction, Models", + "NumeratorErrVal": 0.0, + "DenominatorErrVal": 10.0, + "Name": "SWAvailabilityRatio", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Soil].SoilWater.ESW", + "Name": "extractable", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.SubtractFunction, Models", + "Name": "capacity", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Soil].Physical.DULmm", + "Name": "dulDep", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Soil].Physical.LL15mm", + "Name": "llDep", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.LessThanFunction, Models", + "Name": "DltThermalTime", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].TTFMFromFlowering", + "Name": "TTPostAnthesis", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 570.0, + "Units": null, + "Name": "NCeaseUptake", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].DltTT", + "Name": "ThermalTime", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "Zero", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.PhaseLookup, Models", + "Name": "ratioRootShootInverse", + "Children": [ + { + "$type": "Models.Memo, Models", + "Text": "This is a straight lookup table not an lineaer relationship", + "Name": "Memo", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.PhaseLookupValue, Models", + "Start": "Emergence", + "End": "EndJuvenile", + "Name": "BetweenEmergenceAndEndJuvenile", + "Children": [ + { + "$type": "Models.Functions.SubtractFunction, Models", + "Name": "SubtractFunction", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": "0-1", + "Name": "rootFraction", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.DivideFunction, Models", + "Name": "DivideFunction", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": "0-1", + "Name": "inverse", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 2.0, + "Units": "0-1", + "Name": "rootFraction", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.PhaseLookupValue, Models", + "Start": "EndJuvenile", + "End": "FlagLeaf", + "Name": "BetweenEndJuvenileAndFlagLeaf", + "Children": [ + { + "$type": "Models.Functions.SubtractFunction, Models", + "Name": "SubtractFunction", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": "0-1", + "Name": "rootFraction", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.DivideFunction, Models", + "Name": "DivideFunction", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": "0-1", + "Name": "inverse", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.33, + "Units": "0-1", + "Name": "rootFraction", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.PhaseLookupValue, Models", + "Start": "FlagLeaf", + "End": "StartGrainFill", + "Name": "BetweenFlagLeafAndGrainFill", + "Children": [ + { + "$type": "Models.Functions.SubtractFunction, Models", + "Name": "SubtractFunction", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": "0-1", + "Name": "rootFraction", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.DivideFunction, Models", + "Name": "DivideFunction", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": "0-1", + "Name": "inverse", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.087, + "Units": "0-1", + "Name": "rootFraction", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Root].MinimumNConc", + "Name": "CriticalNConc", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.BiomassDemand, Models", + "Name": "InitialWt", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.1, + "Units": "g/plant", + "Name": "Structural", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "Metabolic", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "Storage", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Organs.SorghumLeaf, Models", + "InitialDMWeight": 0.1, + "InitialLAI": 200.0, + "InitialSLN": 1.5, + "NewLeafSLN": 1.0, + "SenescedLeafSLN": 0.3, + "NDilutionIntercept": -0.0017, + "NDilutionSlope": 0.0043, + "CanopyWidth": 1000.0, + "Albedo": 0.0, + "Gsmax350": 0.009, + "R50": 0.0, + "MicroClimateSetting": 0, + "LeafInitialisationStage": "Emergence", + "BaseHeight": 0.0, + "Width": 0.0, + "PotentialEP": 0.0, + "LightProfile": null, + "DltLAI": 0.0, + "DltPotentialLAI": 0.0, + "DltStressedLAI": 0.0, + "LAI": 0.0, + "SLN": 0.0, + "SLN0": 0.0, + "CoverGreen": 0.0, + "CoverDead": 0.0, + "Height": 0.0, + "WaterDemand": 0.0, + "MicroClimatePresent": false, + "BiomassRUE": 0.0, + "BiomassTE": 0.0, + "KDead": 0.03, + "LAIDead": 0.0, + "NitrogenPhotoStress": 0.0, + "NitrogenPhenoStress": 0.0, + "PhosphorusStress": 1.0, + "SowingDensity": 0.0, + "StartLive": null, + "DMSupply": null, + "NSupply": null, + "DMDemand": null, + "NDemand": null, + "potentialDMAllocation": null, + "LossFromExpansionStress": 0.0, + "SenescedLai": 0.0, + "DltRetranslocatedN": 0.0, + "DltSenescedN": 0.0, + "DltSenescedLaiN": 0.0, + "DltSenescedLai": 0.0, + "DltSenescedLaiLight": 0.0, + "DltSenescedLaiWater": 0.0, + "DltSenescedLaiFrost": 0.0, + "DltSenescedLaiAge": 0.0, + "Name": "Leaf", + "Children": [ + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "ExtinctionCoefficientFunction", + "Children": [ + { + "$type": "Models.Functions.LinearInterpolationFunction, Models", + "Name": "PotentialExtinctionCoeff", + "Children": [ + { + "$type": "Models.Functions.XYPairs, Models", + "X": [ + 200.0, + 500.0, + 1000.0 + ], + "Y": [ + 0.7, + 0.4, + 0.4 + ], + "XVariableName": null, + "Name": "XYPairs", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Sorghum].SowingData.RowSpacing", + "Name": "XValue", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.SupplyFunctions.RUEModel, Models", + "Name": "Photosynthesis", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.25, + "Units": null, + "Name": "RUE", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.WeightedTemperatureFunction, Models", + "MaximumTemperatureWeighting": 0.5, + "Name": "FT", + "Children": [ + { + "$type": "Models.Functions.XYPairs, Models", + "X": [ + 0.0, + 8.0, + 20.0, + 35.0, + 50.0 + ], + "Y": [ + 0.0, + 0.0, + 1.0, + 1.0, + 0.0 + ], + "XVariableName": null, + "Name": "XYPairs", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Leaf].NitrogenPhotoStress", + "Name": "FN", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Leaf].RadiationIntercepted", + "Name": "RadnInt", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "FVPD", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "FW", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.SupplyFunctions.RUECO2Function, Models", + "PhotosyntheticPathway": "C4", + "Name": "FCO2", + "Children": [ + { + "$type": "Models.Memo, Models", + "Text": "When pathway is set to \"C4\", this model modifier will be have the same as the `double Plant::rue_cow_modifier()` function in the APSIM Classic sorghum model.", + "Name": "Memo", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.MinimumFunction, Models", + "Name": "FRGR", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Leaf].Photosynthesis.FT", + "Name": "RUE_FT", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.MinimumFunction, Models", + "Name": "Others", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Leaf].Photosynthesis.FN", + "Name": "RUE_FN", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Leaf].Photosynthesis.FVPD", + "Name": "RUE_FVPD", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.LinearInterpolationFunction, Models", + "Name": "HeightFunction", + "Children": [ + { + "$type": "Models.Functions.XYPairs, Models", + "X": [ + 0.0, + 80.0 + ], + "Y": [ + 0.0, + 2000.0 + ], + "XVariableName": null, + "Name": "XYPairs", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Memo, Models", + "Text": "[Stem].Live.Wt is in the wrong units - it's out by a factor of 10 vs old apsim.\n\nTo overcome this, we re-scale the x-values.", + "Name": "Memo", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Stem].dmGreenStem", + "Name": "XValue", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.SubtractFunction, Models", + "Name": "DMRemaining", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Leaf].DMSupplyFunction", + "Name": "DMFixationSupply", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Leaf].DMDemands.Structural.DMDemandFunction", + "Name": "LeafDMDemand", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Memo, Models", + "Text": "Referenced from Rachis DMDemands", + "Name": "Memo", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.DemandFunctions.TEWaterDemandFunction, Models", + "Name": "WaterDemandFunction", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.75, + "Units": null, + "Name": "SVPFrac", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.009, + "Units": null, + "Name": "TranspirationEfficiencyCoefficient", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Leaf].Photosynthesis", + "Name": "Photosynthesis", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "DMSupplyFixation", + "Children": [ + { + "$type": "Models.Functions.PhaseLookup, Models", + "Name": "ratioRootShoot", + "Children": [ + { + "$type": "Models.Functions.PhaseLookupValue, Models", + "Start": "Emergence", + "End": "FloralInitiation", + "Name": "BetweenEmergenceAndFloralInit", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 2.0, + "Units": "0-1", + "Name": "rootFraction", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.PhaseLookupValue, Models", + "Start": "FloralInitiation", + "End": "Flowering", + "Name": "BetweenFloralInitAndFlowering", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.33, + "Units": "0-1", + "Name": "rootFraction", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Memo, Models", + "Text": "This is a straight lookup table not an lineaer relationship", + "Name": "Memo", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.PhaseLookupValue, Models", + "Start": "Flowering", + "End": "StartGrainFill", + "Name": "BetweenFloweringAndGrainFill", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.087, + "Units": "0-1", + "Name": "rootFraction", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.PhaseLookupValue, Models", + "Start": "StartGrainFill", + "End": "HarvestRipe", + "Name": "BetweenGrainFillAndHarvestRipe", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": "0-1", + "Name": "rootFraction", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Leaf].DMSupplyFunction", + "Name": "DMSupplyFunction", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.MinimumFunction, Models", + "Name": "DMSupplyFunction", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Leaf].BiomassTE", + "Name": "BiomassTE", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Leaf].BiomassRUE", + "Name": "BiomassRUE", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "PotentialBiomassTEFunction", + "Children": [ + { + "$type": "Models.Functions.DivideFunction, Models", + "Name": "TE", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Leaf].WaterDemandFunction.TranspirationEfficiencyCoefficient", + "Name": "TECoeff", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Leaf].WaterDemandFunction.VPD", + "Name": "VPD", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.001, + "Units": null, + "Name": "g2mm", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Arbitrator].WatSupply", + "Name": "WaterSupply", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.LinearInterpolationFunction, Models", + "Name": "CO2Modifier", + "Children": [ + { + "$type": "Models.Functions.XYPairs, Models", + "X": [ + 0.0, + 350.0 + ], + "Y": [ + 1.0, + 1.0 + ], + "XVariableName": null, + "Name": "XYPairs", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Weather].CO2", + "Name": "XValue", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.BiomassDemand, Models", + "Name": "DMDemands", + "Children": [ + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "Structural", + "Children": [ + { + "$type": "Models.Functions.PhaseLookup, Models", + "Name": "DMDemandFunction", + "Children": [ + { + "$type": "Models.Functions.PhaseLookupValue, Models", + "Start": "Emergence", + "End": "FlagLeaf", + "Name": "BetweenEmergenceAndFlag", + "Children": [ + { + "$type": "Models.Functions.MinimumFunction, Models", + "Name": "MinimumFunction", + "Children": [ + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "MultiplyFunction", + "Children": [ + { + "$type": "Models.Functions.DivideFunction, Models", + "Name": "LeafPartitioningCoefficient", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "One", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.AddFunction, Models", + "Name": "AddFunction", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "One", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "MultiplyFunction", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Leaf].Parameters.PartitionRate", + "Name": "PartitionRate", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.PowerFunction, Models", + "Exponent": 2.0, + "Name": "PowerFunction", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Leaf].LeafNo", + "Name": "LeafNumber", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Leaf].DMSupplyFunction", + "Name": "DMSupplyFunction", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.DivideFunction, Models", + "Name": "dltDmLeafMax", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Leaf].DltStressedLAI", + "Name": "DltStressedLAI", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "MultiplyFunction", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Leaf].SlaMin", + "Name": "SlaMin", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1E-06, + "Units": null, + "Name": "smm2sm", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": "0-1", + "Name": "StructuralFraction", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "Metabolic", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.DemandFunctions.StorageDMDemandFunction, Models", + "Name": "Storage", + "Children": [ + { + "$type": "Models.Functions.SubtractFunction, Models", + "Name": "StorageFraction", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "One", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Leaf].DMDemands.Structural.StructuralFraction", + "Name": "StructuralFraction", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.BiomassDemand, Models", + "Name": "NDemands", + "Children": [ + { + "$type": "Models.Functions.PhaseLookup, Models", + "Name": "Structural", + "Children": [ + { + "$type": "Models.Functions.PhaseLookupValue, Models", + "Start": "Emergence", + "End": "Flowering", + "Name": "BetweenEmergenceAndFlower", + "Children": [ + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "NewLeafNDemand", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Leaf].DltLAI", + "Name": "dltLAI", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Leaf].NewLeafSLN", + "Name": "newLeafSLN", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.MaximumFunction, Models", + "Name": "Metabolic", + "Children": [ + { + "$type": "Models.Functions.SubtractFunction, Models", + "Name": "SubtractFunction", + "Children": [ + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "nRequired", + "Children": [ + { + "$type": "Models.Functions.SubtractFunction, Models", + "Name": "laiToday", + "Children": [ + { + "$type": "Models.Memo, Models", + "Text": "laiToday = lai + dltLai - dltSlai", + "Name": "Memo", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.AddFunction, Models", + "Name": "AddFunction", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Leaf].LAI", + "Name": "LAI", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Leaf].DltLAI", + "Name": "DltLAI", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Leaf].DltSenescedLai", + "Name": "dltSlai", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Leaf].TargetSLN", + "Name": "TargetSLN", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Leaf].Live.N", + "Name": "nGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "Zero", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "Storage", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.PhaseLookup, Models", + "Name": "DltLAIFunction", + "Children": [ + { + "$type": "Models.Memo, Models", + "Text": "// dh - this is actually calculated in LeafCulms_Fixed::areaActual(void).\n// This version of the function is slightly different to Leaf::areaActual(void)\n// in that the end stage is flag, not maturity.\n\r\nif(stage >= endJuv && stage < flag)\r\n dltLAI = Min(dltStressedLAI,dltDmGreen * slaMax * smm2sm);\r\nelse\n dltLAI = dltStressedLAI;\r\n", + "Name": "Memo", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.PhaseLookupValue, Models", + "Start": "EndJuvenile", + "End": "FlagLeaf", + "Name": "BetweenEndJuvenileAndMaturity", + "Children": [ + { + "$type": "Models.Functions.MinimumFunction, Models", + "Name": "MinFunction", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Leaf].dltStressedLAI", + "Name": "DltStressedLAI", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "LimitedSLN", + "Children": [ + { + "$type": "Models.Functions.AddFunction, Models", + "Name": "dltDMGreen", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Leaf].DMPotentialAllocation.Structural", + "Name": "Structural", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Leaf].DMPotentialAllocation.Metabolic", + "Name": "Metabolic", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 45000.0, + "Units": null, + "Name": "slaMax", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1E-06, + "Units": null, + "Name": "smm2sm", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.PhaseLookupValue, Models", + "Start": "Emergence", + "End": "EndJuvenile", + "Name": "BetweenEmergenceAndEndJuvenile", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Leaf].dltStressedLAI", + "Name": "DltStressedLAI", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.PhaseLookupValue, Models", + "Start": "FlagLeaf", + "End": "HarvestRipe", + "Name": "AllOtherTimes", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Leaf].dltStressedLAI", + "Name": "DltStressedLAI", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 8000.0, + "Units": null, + "Name": "SlaMin", + "Children": [ + { + "$type": "Models.Memo, Models", + "Text": "Called by DMDemands", + "Name": "Memo", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.LiveOnEventFunction, Models", + "SetEvent": "FlagLeaf", + "ReSetEvent": "Germination", + "Name": "TargetSLN", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.5, + "Units": null, + "Name": "PreEventValue", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Leaf].SlnAtFlag", + "Name": "PostEventValue", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.OnEventFunction, Models", + "SetEvent": "Flowering", + "ReSetEvent": null, + "Name": "MinPlantWt", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "PreEventValue", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "PostEventValue", + "Children": [ + { + "$type": "Models.Functions.DivideFunction, Models", + "Name": "DivideFunction", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Leaf].Live.Wt", + "Name": "LiveWt", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Sorghum].SowingData.Population", + "Name": "Density", + "Children": [ + { + "$type": "Models.Memo, Models", + "Text": "This assumes paddock area is 1ha...", + "Name": "Memo", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.SubtractFunction, Models", + "Name": "SubtractFunction", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "base", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.15, + "Units": null, + "Name": "RetranslocationFactor", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.OnEventFunction, Models", + "SetEvent": "FlagLeaf", + "ReSetEvent": "Germination", + "Name": "SlnAtFlag", + "Children": [ + { + "$type": "Models.Memo, Models", + "Text": "This seems like a terrible idea...", + "Name": "Memo", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Leaf].SLN", + "Name": "PreEventValue", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Leaf].SLN", + "Name": "PostEventValue", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.OnEventFunction, Models", + "SetEvent": "Flowering", + "ReSetEvent": null, + "Name": "LaiAnth", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "PreEventValue", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Leaf].LAI", + "Name": "PostEventValue", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Memo, Models", + "Text": "Used as an output variable for Predicted/Observed", + "Name": "Memo", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.MaximumFunction, Models", + "Name": "NPhotoStressFunction", + "Children": [ + { + "$type": "Models.Memo, Models", + "Text": "photoStress = (2.0/(1.0 + exp(-6.05*(SLN-0.41)))-1.0);", + "Name": "Memo", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "Zero", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.SubtractFunction, Models", + "Name": "SubtractFunction", + "Children": [ + { + "$type": "Models.Functions.DivideFunction, Models", + "Name": "DivideFunction", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 2.0, + "Units": null, + "Name": "Two", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.ExponentialFunction, Models", + "A": 1.0, + "B": 1.0, + "C": -6.05, + "Name": "ExponentialFunction", + "Children": [ + { + "$type": "Models.Functions.SubtractFunction, Models", + "Name": "SubtractFunction", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Leaf].SLN", + "Name": "SLN", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.41, + "Units": null, + "Name": "point41", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "One", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.DivideFunction, Models", + "Name": "StomatalConductanceCO2Modifier", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Leaf].Photosynthesis.FCO2", + "Name": "FCO2", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.ExpressionFunction, Models", + "Expression": "([IWeather].CO2 - [Leaf].CO2internal)/(350 - [Leaf].CO2internal)", + "Name": "RelativeCO2Gradient", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.ExpressionFunction, Models", + "Expression": "(163 - [IWeather].MeanT)/(5 - 0.1*[IWeather].MeanT)", + "Name": "CO2internal", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Library.BiomassRemoval, Models", + "Name": "BiomassRemovalDefaults", + "Children": [ + { + "$type": "Models.PMF.OrganBiomassRemovalType, Models", + "FractionLiveToRemove": 0.0, + "FractionDeadToRemove": 0.0, + "FractionLiveToResidue": 0.3, + "FractionDeadToResidue": 0.0, + "Name": "Harvest", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.OrganBiomassRemovalType, Models", + "FractionLiveToRemove": 0.8, + "FractionDeadToRemove": 0.0, + "FractionLiveToResidue": 0.0, + "FractionDeadToResidue": 0.0, + "Name": "Cut", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.OrganBiomassRemovalType, Models", + "FractionLiveToRemove": 0.0, + "FractionDeadToRemove": 0.0, + "FractionLiveToResidue": 0.6, + "FractionDeadToResidue": 0.0, + "Name": "Prune", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.OrganBiomassRemovalType, Models", + "FractionLiveToRemove": 0.6, + "FractionDeadToRemove": 0.0, + "FractionLiveToResidue": 0.1, + "FractionDeadToResidue": 0.0, + "Name": "Graze", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.LightSenescenceFunction, Models", + "Name": "LightSenescence", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 2.0, + "Units": "Mj/m^2", + "Name": "senRadnCrit", + "Children": [ + { + "$type": "Models.Memo, Models", + "Text": "radiation level for onset of light senescence", + "Name": "Memo", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 10.0, + "Units": null, + "Name": "SenLightTimeConst", + "Children": [ + { + "$type": "Models.Memo, Models", + "Text": "delay factor for light senescence", + "Name": "Memo", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.WaterSenescenceFunction, Models", + "Name": "WaterSenescence", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 10.0, + "Units": null, + "Name": "SenWaterTimeConst", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.25, + "Units": null, + "Name": "SenThreshold", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.ProtectedDivideFunction, Models", + "NumeratorErrVal": 0.0, + "DenominatorErrVal": 1.0, + "Name": "SDRatio", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Arbitrator].WatSupply", + "Name": "WaterSupply", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Arbitrator].WDemand", + "Name": "WaterDemand", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.FrostSenescenceFunction, Models", + "Name": "FrostSenescence", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "FrostKill", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": -3.5, + "Units": null, + "Name": "FrostKillSevere", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.AgeSenescenceFunction, Models", + "Name": "AgeSenescence", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "LeafNoDeadIntercept", + "Children": [ + { + "$type": "Models.Memo, Models", + "Text": "Intercept for age-based slai calculation\n\nNot used by sorghum - so set to 0.\nIs used by maize", + "Name": "Memo", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "LeafNoDeadSlope", + "Children": [ + { + "$type": "Models.Memo, Models", + "Text": "Slope for age-based slai calculation\n\nNot used by sorghum - so set to 0.\nIs used by maize", + "Name": "Memo", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Core.Folder, Models", + "ShowInDocs": false, + "GraphsPerPage": 6, + "Name": "Parameters", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.006, + "Units": "(0-1)", + "Name": "PartitionRate", + "Children": [ + { + "$type": "Models.Memo, Models", + "Text": "coefficient of sigmoidal function between leaf partition fraction and internode no**2\n\npartition_rate_leaf in Classic\n\nreferenced in LeafPartitioningCoefficient\t", + "Name": "Memo", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "LeafNoAtEmergence", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Organs.GenericOrgan, Models", + "StartLive": null, + "DMSupply": null, + "NSupply": null, + "DMDemand": null, + "NDemand": null, + "potentialDMAllocation": null, + "IsAboveGround": true, + "Name": "Rachis", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "InitialNConcFunction", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "NReallocationFactor", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.RetranslocateAvailableN, Models", + "Name": "RetranslocateNitrogen", + "Children": [ + { + "$type": "Models.Functions.MaximumFunction, Models", + "Name": "RetranslocateFunction", + "Children": [ + { + "$type": "Models.Functions.MinimumFunction, Models", + "Name": "MinimumFunction", + "Children": [ + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "availableDilnN", + "Children": [ + { + "$type": "Models.Functions.DivideFunction, Models", + "Name": "DivideFunction", + "Children": [ + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "dltStemNConc", + "Children": [ + { + "$type": "Models.Functions.AddFunction, Models", + "Name": "AddFunction", + "Children": [ + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "MultiplyFunction", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0062, + "Units": null, + "Name": "dilnNSlope", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "stemNConc", + "Children": [ + { + "$type": "Models.Functions.DivideFunction, Models", + "Name": "divide", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Rachis].Live.N", + "Name": "nGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.AddFunction, Models", + "Name": "DMToday", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Rachis].potentialDMAllocation.Structural", + "Name": "dltDmGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Rachis].Live.Wt", + "Name": "dmGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 100.0, + "Units": null, + "Name": "Percentage", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": -0.001, + "Units": null, + "Name": "dilnNInt", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].DltTT", + "Name": "ThermalTime", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 100.0, + "Units": null, + "Name": "Constant", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.AddFunction, Models", + "Name": "DMToday", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Rachis].potentialDMAllocation.Structural", + "Name": "dltDmGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Rachis].Live.Wt", + "Name": "dmGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.SubtractFunction, Models", + "Name": "SubtractFunction", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Rachis].Live.N", + "Name": "NGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Rachis].NDemands.Structural", + "Name": "StructuralN", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "Zero", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "RetranslocateDMFunction", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.DivideFunction, Models", + "Name": "NRetranslocationFactor", + "Children": [ + { + "$type": "Models.Functions.MaximumFunction, Models", + "Name": "NRetranslocationAmount", + "Children": [ + { + "$type": "Models.Functions.MinimumFunction, Models", + "Name": "MinimumFunction", + "Children": [ + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "availableDilnN", + "Children": [ + { + "$type": "Models.Functions.DivideFunction, Models", + "Name": "DivideFunction", + "Children": [ + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "dltStemNConc", + "Children": [ + { + "$type": "Models.Functions.AddFunction, Models", + "Name": "AddFunction", + "Children": [ + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "MultiplyFunction", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0062, + "Units": null, + "Name": "dilnNSlope", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "stemNConc", + "Children": [ + { + "$type": "Models.Functions.DivideFunction, Models", + "Name": "divide", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Rachis].Live.N", + "Name": "nGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.AddFunction, Models", + "Name": "DMToday", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Rachis].potentialDMAllocation.Structural", + "Name": "dltDmGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Rachis].Live.Wt", + "Name": "dmGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 100.0, + "Units": null, + "Name": "Percentage", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": -0.001, + "Units": null, + "Name": "dilnNInt", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].ThermalTime", + "Name": "ThermalTime", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 100.0, + "Units": null, + "Name": "Constant", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.AddFunction, Models", + "Name": "DMToday", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Rachis].potentialDMAllocation.Structural", + "Name": "dltDmGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Rachis].Live.Wt", + "Name": "dmGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.SubtractFunction, Models", + "Name": "SubtractFunction", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Rachis].Live.N", + "Name": "NGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Rachis].NDemands.Structural", + "Name": "StructuralN", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "Zero", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": "/d", + "Name": "SenescenceRate", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.LinearInterpolationFunction, Models", + "Name": "ExpansionStress", + "Children": [ + { + "$type": "Models.Functions.XYPairs, Models", + "X": [ + 0.0, + 0.6 + ], + "Y": [ + 1.0, + 1.0 + ], + "XVariableName": null, + "Name": "XYPairs", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Sorghum].Leaf.Fw", + "Name": "XValue", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": "/d", + "Name": "DetachmentRateFunction", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": "0-1", + "Name": "MaintenanceRespirationFunction", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": "0-1", + "Name": "DMConversionEfficiency", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Library.BiomassRemoval, Models", + "Name": "BiomassRemovalDefaults", + "Children": [ + { + "$type": "Models.PMF.OrganBiomassRemovalType, Models", + "FractionLiveToRemove": 0.5, + "FractionDeadToRemove": 0.0, + "FractionLiveToResidue": 0.1, + "FractionDeadToResidue": 0.0, + "Name": "Harvest", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.OrganBiomassRemovalType, Models", + "FractionLiveToRemove": 0.8, + "FractionDeadToRemove": 0.0, + "FractionLiveToResidue": 0.0, + "FractionDeadToResidue": 0.0, + "Name": "Cut", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.OrganBiomassRemovalType, Models", + "FractionLiveToRemove": 0.0, + "FractionDeadToRemove": 0.0, + "FractionLiveToResidue": 0.6, + "FractionDeadToResidue": 0.0, + "Name": "Prune", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.OrganBiomassRemovalType, Models", + "FractionLiveToRemove": 0.6, + "FractionDeadToRemove": 0.0, + "FractionLiveToResidue": 0.2, + "FractionDeadToResidue": 0.0, + "Name": "Graze", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "DMReallocationFactor", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "DMRetranslocationFactor", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "RemobilisationCost", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.4, + "Units": null, + "Name": "CarbonConcentration", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.BiomassDemandAndPriority, Models", + "Name": "DMDemands", + "Children": [ + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "Structural", + "Children": [ + { + "$type": "Models.Functions.PhaseLookup, Models", + "Name": "DMDemandFunction", + "Children": [ + { + "$type": "Models.Functions.PhaseLookupValue, Models", + "Start": "FloralInitiation", + "End": "Flowering", + "Name": "BetweenFIAndFlower", + "Children": [ + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "MultiplyFunction", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Leaf].DMRemaining", + "Name": "DMRemainingAfterLeaf", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Stem].StemToFlowerFrac", + "Name": "Stem2FlowerFrac", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.PhaseLookupValue, Models", + "Start": "FlagLeaf", + "End": "Flowering", + "Name": "BetweenFlagAndFlowering", + "Children": [ + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "MultiplyFunction", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Arbitrator].DM.TotalSupplyFunction", + "Name": "DMFixationSupply", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Stem].StemToFlowerFrac", + "Name": "Stem2FlowerFrac", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "StructuralFraction", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "Metabolic", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "Storage", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "QStructuralPriority", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "QMetabolicPriority", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "QStoragePriority", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.BiomassDemandAndPriority, Models", + "Name": "NDemands", + "Children": [ + { + "$type": "Models.Functions.MaximumFunction, Models", + "Name": "Structural", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "zero", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.SubtractFunction, Models", + "Name": "SubtractFunction", + "Children": [ + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": " required", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Rachis].minimumNconc", + "Name": "MinNconc", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.AddFunction, Models", + "Name": "AddFunction", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Rachis].potentialDMAllocation.Structural", + "Name": "dltDmGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Rachis].Live.Wt", + "Name": "dmGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Rachis].nitrogenDemandSwitch", + "Name": "NitrogenDemandSwitch", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Rachis].Live.N", + "Name": "nGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.MaximumFunction, Models", + "Name": "Metabolic", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "zero", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.SubtractFunction, Models", + "Name": "SubtractFunction", + "Children": [ + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": " required", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Rachis].criticalNConc", + "Name": "CritNconc", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.AddFunction, Models", + "Name": "AddFunction", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Rachis].potentialDMAllocation.Structural", + "Name": "dltDmGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Rachis].Live.Wt", + "Name": "dmGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Rachis].nitrogenDemandSwitch", + "Name": "NitrogenDemandSwitch", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Rachis].Live.N", + "Name": "nGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.DemandFunctions.StorageNDemandFunction, Models", + "Name": "Storage", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Rachis].nitrogenDemandSwitch", + "Name": "NitrogenDemandSwitch", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Rachis].maximumNconc", + "Name": "MaxNconc", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "QStructuralPriority", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "QMetabolicPriority", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "QStoragePriority", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.003, + "Units": null, + "Name": "MinimumNConc", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.01, + "Units": null, + "Name": "CriticalNConc", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.008, + "Units": null, + "Name": "MaximumNConc", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.PhaseLookupValue, Models", + "Start": "Emergence", + "End": "StartGrainFill", + "Name": "NitrogenDemandSwitch", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "Constant", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.BiomassDemand, Models", + "Name": "InitialWt", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": "g/plant", + "Name": "Structural", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "Metabolic", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "Storage", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "Photosynthesis", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Organs.GenericOrgan, Models", + "StartLive": null, + "DMSupply": null, + "NSupply": null, + "DMDemand": null, + "NDemand": null, + "potentialDMAllocation": null, + "IsAboveGround": true, + "Name": "Stem", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.01, + "Units": null, + "Name": "initialNConcFunction", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "NReallocationFactor", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.RetranslocateAvailableN, Models", + "Name": "RetranslocateNitrogen", + "Children": [ + { + "$type": "Models.Functions.MaximumFunction, Models", + "Name": "RetranslocateFunction", + "Children": [ + { + "$type": "Models.Functions.MinimumFunction, Models", + "Name": "MinimumFunction", + "Children": [ + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "availableDilnN", + "Children": [ + { + "$type": "Models.Functions.DivideFunction, Models", + "Name": "DivideFunction", + "Children": [ + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "dltStemNConc", + "Children": [ + { + "$type": "Models.Functions.AddFunction, Models", + "Name": "AddFunction", + "Children": [ + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "MultiplyFunction", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0062, + "Units": null, + "Name": "dilnNSlope", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "stemNConcPct", + "Children": [ + { + "$type": "Models.Functions.DivideFunction, Models", + "Name": "divide", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Stem].Live.N", + "Name": "nGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.AddFunction, Models", + "Name": "DMToday", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Stem].potentialDMAllocation.Structural", + "Name": "dltDmGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Stem].Live.Wt", + "Name": "dmGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 100.0, + "Units": null, + "Name": "Percentage", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": -0.001, + "Units": null, + "Name": "dilnNInt", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].DltTT", + "Name": "ThermalTime", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 100.0, + "Units": null, + "Name": "Constant", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.AddFunction, Models", + "Name": "DMToday", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Stem].potentialDMAllocation.Structural", + "Name": "dltDmGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Stem].Live.Wt", + "Name": "dmGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.SubtractFunction, Models", + "Name": "SubtractFunction", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Stem].Live.N", + "Name": "NGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "MultiplyFunction", + "Children": [ + { + "$type": "Models.Functions.AddFunction, Models", + "Name": "DMToday", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Stem].potentialDMAllocation.Structural", + "Name": "dltDmGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Stem].Live.Wt", + "Name": "dmGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Stem].CriticalNConc", + "Name": "StructuralN", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "Zero", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.MaximumFunction, Models", + "Name": "RetranslocateDMFunction", + "Children": [ + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "StemWtAvail", + "Children": [ + { + "$type": "Models.Functions.SubtractFunction, Models", + "Name": "SubtractFunction", + "Children": [ + { + "$type": "Models.Functions.AddFunction, Models", + "Name": "DMToday", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Stem].potentialDMAllocation.Structural", + "Name": "dltDmGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Stem].Live.Wt", + "Name": "dmGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "MultiplyFunction", + "Children": [ + { + "$type": "Models.Functions.OnEventFunction, Models", + "SetEvent": "Flowering", + "ReSetEvent": "", + "Name": "PlantMinDM", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "PreEventValue", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "PostEventValue", + "Children": [ + { + "$type": "Models.Functions.DivideFunction, Models", + "Name": "dmPlantStem", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Stem].Live.Wt", + "Name": "dmGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Plant].SowingData.Population", + "Name": "density", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.SubtractFunction, Models", + "Name": "SubtractFunction", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "One", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.2, + "Units": null, + "Name": "translocFrac", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Plant].SowingData.Population", + "Name": "density", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.15, + "Units": null, + "Name": "retransRate", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "Zero", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.DivideFunction, Models", + "Name": "NRetranslocationFactor", + "Children": [ + { + "$type": "Models.Functions.MaximumFunction, Models", + "Name": "NRetranslocationAmount", + "Children": [ + { + "$type": "Models.Functions.MinimumFunction, Models", + "Name": "MinimumFunction", + "Children": [ + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "availableDilnN", + "Children": [ + { + "$type": "Models.Functions.DivideFunction, Models", + "Name": "DivideFunction", + "Children": [ + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "dltStemNConc", + "Children": [ + { + "$type": "Models.Functions.AddFunction, Models", + "Name": "AddFunction", + "Children": [ + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "MultiplyFunction", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0062, + "Units": null, + "Name": "dilnNSlope", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "stemNConcPct", + "Children": [ + { + "$type": "Models.Functions.DivideFunction, Models", + "Name": "divide", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Stem].Live.N", + "Name": "nGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.AddFunction, Models", + "Name": "DMToday", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Stem].potentialDMAllocation.Structural", + "Name": "dltDmGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Stem].Live.Wt", + "Name": "dmGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 100.0, + "Units": null, + "Name": "Percentage", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": -0.001, + "Units": null, + "Name": "dilnNInt", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].ThermalTime", + "Name": "ThermalTime", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 100.0, + "Units": null, + "Name": "Constant", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.AddFunction, Models", + "Name": "DMToday", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Stem].potentialDMAllocation.Structural", + "Name": "dltDmGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Stem].Live.Wt", + "Name": "dmGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.SubtractFunction, Models", + "Name": "SubtractFunction", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Stem].Live.N", + "Name": "NGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "MultiplyFunction", + "Children": [ + { + "$type": "Models.Functions.AddFunction, Models", + "Name": "DMToday", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Stem].potentialDMAllocation.Structural", + "Name": "dltDmGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Stem].Live.Wt", + "Name": "dmGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Stem].MinimumNconc", + "Name": "StructuralN", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "Zero", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Stem].Live.Wt", + "Name": "dmGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.DivideFunction, Models", + "Name": "DMRetranslocationFactor", + "Children": [ + { + "$type": "Models.Functions.MaximumFunction, Models", + "Name": "DMRetranslocationAmount", + "Children": [ + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "StemWtAvail", + "Children": [ + { + "$type": "Models.Functions.SubtractFunction, Models", + "Name": "SubtractFunction", + "Children": [ + { + "$type": "Models.Functions.AddFunction, Models", + "Name": "DMToday", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Stem].potentialDMAllocation.Structural", + "Name": "dltDmGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Stem].Live.Wt", + "Name": "dmGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "MultiplyFunction", + "Children": [ + { + "$type": "Models.Functions.OnEventFunction, Models", + "SetEvent": "Flowering", + "ReSetEvent": null, + "Name": "PlantMinDM", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "PreEventValue", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "PostEventValue", + "Children": [ + { + "$type": "Models.Functions.DivideFunction, Models", + "Name": "dmPlantStem", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Stem].Live.Wt", + "Name": "dmGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Plant].SowingData.Population", + "Name": "density", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.SubtractFunction, Models", + "Name": "SubtractFunction", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "One", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.2, + "Units": null, + "Name": "translocFrac", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Plant].SowingData.Population", + "Name": "density", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.15, + "Units": null, + "Name": "retransRate", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "Zero", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Stem].Live.Wt", + "Name": "dmGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.3, + "Units": null, + "Name": "StemToFlowerFrac", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": "/d", + "Name": "SenescenceRate", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": "/d", + "Name": "DetachmentRateFunction", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": "0-1", + "Name": "MaintenanceRespirationFunction", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": "0-1", + "Name": "DMConversionEfficiency", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Library.BiomassRemoval, Models", + "Name": "BiomassRemovalDefaults", + "Children": [ + { + "$type": "Models.PMF.OrganBiomassRemovalType, Models", + "FractionLiveToRemove": 0.5, + "FractionDeadToRemove": 0.0, + "FractionLiveToResidue": 0.1, + "FractionDeadToResidue": 0.0, + "Name": "Harvest", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.OrganBiomassRemovalType, Models", + "FractionLiveToRemove": 0.8, + "FractionDeadToRemove": 0.0, + "FractionLiveToResidue": 0.0, + "FractionDeadToResidue": 0.0, + "Name": "Cut", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.OrganBiomassRemovalType, Models", + "FractionLiveToRemove": 0.0, + "FractionDeadToRemove": 0.0, + "FractionLiveToResidue": 0.6, + "FractionDeadToResidue": 0.0, + "Name": "Prune", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.OrganBiomassRemovalType, Models", + "FractionLiveToRemove": 0.6, + "FractionDeadToRemove": 0.0, + "FractionLiveToResidue": 0.2, + "FractionDeadToResidue": 0.0, + "Name": "Graze", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "DMReallocationFactor", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "RemobilisationCost", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.4, + "Units": null, + "Name": "CarbonConcentration", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.BiomassDemandAndPriority, Models", + "Name": "DMDemands", + "Children": [ + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "Structural", + "Children": [ + { + "$type": "Models.Functions.MaximumFunction, Models", + "Name": "DMDemandFunction", + "Children": [ + { + "$type": "Models.Functions.SubtractFunction, Models", + "Name": "DMDemandFunction", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Leaf].DMSupplyFunction", + "Name": "DMSupplyFunction", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Leaf].DMDemand.Structural", + "Name": "LeafDemand", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Rachis].DMDemand.Structural", + "Name": "RachisDemand", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Grain].DMDemand.Structural", + "Name": "GrainDemand", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "Zero", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "StructuralFraction", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "Metabolic", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "Storage", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "QStructuralPriority", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "QMetabolicPriority", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "QStoragePriority", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.BiomassDemandAndPriority, Models", + "Name": "NDemands", + "Children": [ + { + "$type": "Models.Functions.MaximumFunction, Models", + "Name": "Structural", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "zero", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.SubtractFunction, Models", + "Name": "SubtractFunction", + "Children": [ + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": " required", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Stem].CriticalNConc", + "Name": "CriticalNconc", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.AddFunction, Models", + "Name": "AddFunction", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Stem].potentialDMAllocation.Structural", + "Name": "dltDmGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Stem].Live.Wt", + "Name": "dmGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Stem].nitrogenDemandSwitch", + "Name": "NitrogenDemandSwitch", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Stem].Live.N", + "Name": "nGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.MaximumFunction, Models", + "Name": "Metabolic", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "zero", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.SubtractFunction, Models", + "Name": "SubtractFunction", + "Children": [ + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": " required", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Stem].MinimumNConc", + "Name": "MinimumNconc", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.AddFunction, Models", + "Name": "AddFunction", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Stem].potentialDMAllocation.Structural", + "Name": "dltDmGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Stem].Live.Wt", + "Name": "dmGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Stem].nitrogenDemandSwitch", + "Name": "NitrogenDemandSwitch", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Stem].Live.N", + "Name": "nGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "Storage", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "QStructuralPriority", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "QMetabolicPriority", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "QStoragePriority", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.LinearInterpolationFunction, Models", + "Name": "CriticalNConc", + "Children": [ + { + "$type": "Models.Functions.XYPairs, Models", + "X": [ + 3.0, + 5.0, + 7.0, + 10.0 + ], + "Y": [ + 0.012, + 0.012, + 0.005, + 0.0015 + ], + "XVariableName": null, + "Name": "XYPairs", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].Stage", + "Name": "XValue", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.LinearInterpolationFunction, Models", + "Name": "MinimumNconc", + "Children": [ + { + "$type": "Models.Functions.XYPairs, Models", + "X": [ + 3.0, + 5.0, + 7.0, + 10.0 + ], + "Y": [ + 0.055, + 0.016, + 0.01, + 0.005 + ], + "XVariableName": null, + "Name": "XYPairs", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].Stage", + "Name": "XValue", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.LinearInterpolationFunction, Models", + "Name": "MaximumNconc", + "Children": [ + { + "$type": "Models.Functions.XYPairs, Models", + "X": [ + 3.0, + 5.0, + 7.0, + 10.0 + ], + "Y": [ + 0.055, + 0.016, + 0.01, + 0.005 + ], + "XVariableName": null, + "Name": "XYPairs", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Phenology].Stage", + "Name": "XValue", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 1.0, + "Units": null, + "Name": "NitrogenDemandSwitch", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.DivideFunction, Models", + "Name": "dmGreenStem", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Stem].Live.Wt", + "Name": "StemWt", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Leaf].SowingDensity", + "Name": "Destiny", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.BiomassDemand, Models", + "Name": "InitialWt", + "Children": [ + { + "$type": "Models.Functions.MultiplyFunction, Models", + "Name": "Structural", + "Children": [ + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.1, + "Units": "g/plant", + "Name": "InitialPlantWt", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Plant].Population", + "Name": "Population", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "Metabolic", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "Storage", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "Photosynthesis", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.AddFunction, Models", + "Name": "TotalPlantDemand", + "Children": [ + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Leaf].DMDemands.Structural.DMDemandFunction", + "Name": "LeafDemand", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Stem].DMDemands.Structural.DMDemandFunction", + "Name": "StemDemand", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Rachis].DMDemands.Structural.DMDemandFunction", + "Name": "RachisDemand", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.VariableReference, Models", + "VariableName": "[Grain].DMDemands.Structural.DMDemandFunction", + "Name": "GrainDemand", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.CompositeBiomass, Models", + "OrganNames": [ + "Leaf", + "Stem", + "Rachis", + "Grain" + ], + "IncludeLive": true, + "IncludeDead": true, + "Name": "AboveGround", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.CompositeBiomass, Models", + "OrganNames": [ + "Leaf", + "Stem", + "Grain", + "Rachis" + ], + "IncludeLive": true, + "IncludeDead": false, + "Name": "AboveGroundLive", + "Children": [ + { + "$type": "Models.Memo, Models", + "Text": "\r\nThe AboveGroundLive composite biomass object includes the Live pools of all organs occurring above the soil surface to allow output for total dry matter and Nutrient contents, including total structural, non-structural and metabolic pools.\r\n", + "Name": "memo", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.CompositeBiomass, Models", + "OrganNames": [ + "Leaf", + "Stem", + "Grain", + "Rachis" + ], + "IncludeLive": false, + "IncludeDead": true, + "Name": "AboveGroundDead", + "Children": [ + { + "$type": "Models.Memo, Models", + "Text": "\r\nThe AboveGroundDead composite biomass object includes the Dead pools of all organs occurring above the soil surface to allow output for total dry matter and Nutrient contents, including total structural, non-structural and metabolic pools.\r\n", + "Name": "memo", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.CompositeBiomass, Models", + "OrganNames": [ + "Root" + ], + "IncludeLive": true, + "IncludeDead": true, + "Name": "BelowGround", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.CompositeBiomass, Models", + "OrganNames": [ + "Leaf", + "Stem", + "Root", + "Rachis", + "Grain" + ], + "IncludeLive": true, + "IncludeDead": true, + "Name": "Total", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.CompositeBiomass, Models", + "OrganNames": [ + "Leaf", + "Stem", + "Root", + "Rachis", + "Grain" + ], + "IncludeLive": true, + "IncludeDead": false, + "Name": "TotalLive", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.CompositeBiomass, Models", + "OrganNames": [ + "Leaf", + "Stem", + "Root", + "Rachis", + "Grain" + ], + "IncludeLive": false, + "IncludeDead": true, + "Name": "TotalDead", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.CultivarFolder, Models", + "Name": "Cultivars", + "Children": [ + { + "$type": "Models.PMF.CultivarFolder, Models", + "Name": "Australia", + "Children": [ + { + "$type": "Models.PMF.Cultivar, Models", + "Command": [ + "[LeafCulms].aX0.FixedValue = 0.786", + "[LeafCulms].aMaxSlope.FixedValue = 46.312", + "[LeafCulms].aMaxIntercept.FixedValue = -321.13" + ], + "Name": "Buster", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Cultivar, Models", + "Command": [ + "[Phenology].TTEndJuvToInit.FixedValue = 114", + "[LeafCulms].aMaxIntercept.FixedValue = -321.13", + "[LeafCulms].aMaxSlope.FixedValue = 46.312", + "[LeafCulms].aX0.FixedValue = 0.786" + ], + "Name": "early", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Cultivar, Models", + "Command": [ + "[Phenology].TTEndJuvToInit.FixedValue = 157", + "[LeafCulms].aMaxIntercept.FixedValue = -321.13", + "[LeafCulms].aMaxSlope.FixedValue = 46.312", + "[LeafCulms].aX0.FixedValue = 0.786" + ], + "Name": "medium", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Cultivar, Models", + "Command": [ + "[Phenology].TTEndJuvToInit.FixedValue = 201", + "[LeafCulms].aMaxIntercept.FixedValue = -321.13", + "[LeafCulms].aMaxSlope.FixedValue = 46.312", + "[LeafCulms].aX0.FixedValue = 0.786" + ], + "Name": "late", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Cultivar, Models", + "Command": [ + "[Phenology].PhotoModifier.XYPairs.Y[2] = 26", + "[Phenology].TTEndJuvToInit.FixedValue = 202", + "[LeafCulms].aMaxSlope.FixedValue = 0", + "[LeafCulms].aMaxIntercept.FixedValue = 450" + ], + "Name": "ATX623xRTX430", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Cultivar, Models", + "Command": [ + "[Phenology].PhotoModifier.XYPairs.X[1] = 11.8", + "[Phenology].PhotoModifier.XYPairs.X[2] = 14", + "[Phenology].PhotoModifier.XYPairs.Y[2] = 87.34", + "[Phenology].TTEndJuvToInit.FixedValue = 134.4", + "[LeafCulms].aMaxSlope.FixedValue = 0", + "[LeafCulms].aMaxIntercept.FixedValue = 450" + ], + "Name": "A35xQL36", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Cultivar, Models", + "Command": [ + "[Phenology].PhotoModifier.XYPairs.Y[2] = 25", + "[Phenology].TTEndJuvToInit.FixedValue = 179", + "[LeafCulms].aMaxSlope.FixedValue = 0", + "[LeafCulms].aMaxIntercept.FixedValue = 450" + ], + "Name": "QL41xQL36", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Cultivar, Models", + "Command": [ + "[Phenology].PhotoModifier.XYPairs.X[1] = 11.8", + "[Phenology].PhotoModifier.XYPairs.X[2] = 14", + "[Phenology].PhotoModifier.XYPairs.Y[2] = 87.34", + "[Phenology].TTEndJuvToInit.FixedValue = 114.4", + "[LeafCulms].aMaxIntercept.FixedValue = -321.13", + "[LeafCulms].aMaxSlope.FixedValue = 46.312", + "[LeafCulms].aX0.FixedValue = 0.786" + ], + "Name": "QL39xQL36", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Cultivar, Models", + "Command": [ + "[Phenology].PhotoModifier.XYPairs.Y[2] = 122", + "[Phenology].TTEndJuvToInit.FixedValue = 252", + "[Grain].DMPerSeed.FixedValue = 0.001427844", + "[Leaf].Parameters.PartitionRate.FixedValue = 0.018", + "[Arbitrator].NitrogenUptakeMethod.NUptakeCease.FixedValue = 10", + "[LeafCulms].NumberOfLeaves.leafInitRate.FixedValue = 26.1", + "[Leaf].TargetSLN.PreEventValue.FixedValue = 1.2", + "[LeafCulms].aMaxSlope.FixedValue = 8.9", + "[LeafCulms].aMaxIntercept.FixedValue = 245.3" + ], + "Name": "M35-1", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Cultivar, Models", + "Command": [ + "[Phenology].PhotoModifier.XYPairs.Y[2] = 34", + "[Phenology].TTEndJuvToInit.FixedValue = 228", + "[Grain].DMPerSeed.FixedValue = 0.0015", + "[Leaf].Photosynthesis.RUE.FixedValue = 1.6", + "[Leaf].Parameters.PartitionRate.FixedValue = 0.018", + "[Leaf].TargetSLN.PreEventValue.FixedValue = 1.2", + "[LeafCulms].NumberOfLeaves.leafInitRate.FixedValue = 23.2" + ], + "Name": "CSH13R", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Cultivar, Models", + "Command": [ + "[Phenology].PhotoModifier.XYPairs.X[1] = 11", + "[Phenology].PhotoModifier.XYPairs.X[2] = 13", + "[Phenology].PhotoModifier.XYPairs.Y[2] = 0", + "[Phenology].TTEndJuvToInit.FixedValue = 205", + "[Phenology].FlagLeafToFlowering.Target.FixedValue = 100", + "[Phenology].FloweringToGrainFilling.Target.FixedValue = 30", + "[Phenology].TTFlowerToMaturity.FixedValue = 695", + "[LeafCulms].aMaxIntercept.FixedValue = -321.13", + "[LeafCulms].aMaxSlope.FixedValue = 46.312", + "[LeafCulms].aX0.FixedValue = 0.786" + ], + "Name": "dekalb_DK55", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Cultivar, Models", + "Command": [ + "[Phenology].PhotoModifier.XYPairs.X[1] = 12.3", + "[Phenology].PhotoModifier.XYPairs.X[2] = 14.6", + "[Phenology].PhotoModifier.XYPairs.Y[2] = 88.32", + "[Phenology].TTEndJuvToInit.FixedValue = 120", + "[Phenology].FlagLeafToFlowering.Target.FixedValue = 100", + "[Phenology].FloweringToGrainFilling.Target.FixedValue = 30", + "[Phenology].TTFlowerToMaturity.FixedValue = 695", + "[LeafCulms].aMaxIntercept.FixedValue = -321.13", + "[LeafCulms].aMaxSlope.FixedValue = 46.312", + "[LeafCulms].aX0.FixedValue = 0.786" + ], + "Name": "texas_RS610", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Cultivar, Models", + "Command": [ + "[Phenology].PhotoModifier.XYPairs.X[1] = 12.3", + "[Phenology].PhotoModifier.XYPairs.X[2] = 14.6", + "[Phenology].PhotoModifier.XYPairs.Y[2] = 57.5", + "[Phenology].TTEndJuvToInit.FixedValue = 115", + "[Phenology].FlagLeafToFlowering.Target.FixedValue = 100", + "[Phenology].FloweringToGrainFilling.Target.FixedValue = 30", + "[Phenology].TTFlowerToMaturity.FixedValue = 695", + "[LeafCulms].aMaxIntercept.FixedValue = -321.13", + "[LeafCulms].aMaxSlope.FixedValue = 46.312", + "[LeafCulms].aX0.FixedValue = 0.786" + ], + "Name": "pioneer_s34", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Cultivar, Models", + "Command": [ + "[Phenology].PhotoModifier.XYPairs.X[1] = 12.3", + "[Phenology].PhotoModifier.XYPairs.X[2] = 14.6", + "[Phenology].PhotoModifier.XYPairs.Y[2] = 34.96", + "[Phenology].TTEndJuvToInit.FixedValue = 159", + "[Phenology].FlagLeafToFlowering.Target.FixedValue = 100", + "[Phenology].FloweringToGrainFilling.Target.FixedValue = 30", + "[Phenology].TTFlowerToMaturity.FixedValue = 695", + "[LeafCulms].aMaxIntercept.FixedValue = -321.13", + "[LeafCulms].aMaxSlope.FixedValue = 46.312", + "[LeafCulms].aX0.FixedValue = 0.786" + ], + "Name": "texas_671", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Cultivar, Models", + "Command": [ + "[Phenology].PhotoModifier.XYPairs.Y[2] = 0", + "[Phenology].TTEndJuvToInit.FixedValue = 130", + "[Phenology].FlagLeafToFlowering.Target.FixedValue = 120", + "[Phenology].TTFlowerToMaturity.FixedValue = 810", + "[Grain].DMPerSeed.FixedValue = 0.00065", + "[LeafCulms].aX0.FixedValue = 0.83", + "[LeafCulms].aMaxSlope.FixedValue = 2.3", + "[LeafCulms].aMaxIntercept.FixedValue = 514", + "[Leaf].Photosynthesis.RUE.FixedValue = 1.75" + ], + "Name": "Scorpio", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Cultivar, Models", + "Command": [ + "[Phenology].PhotoModifier.XYPairs.Y[2] = 0", + "[Phenology].TTEndJuvToInit.FixedValue = 185", + "[Phenology].FlagLeafToFlowering.Target.FixedValue = 130", + "[Phenology].TTFlowerToMaturity.FixedValue = 810", + "[LeafCulms].aX0.FixedValue = 0.71", + "[LeafCulms].aMaxSlope.FixedValue = 37", + "[LeafCulms].aMaxIntercept.FixedValue = -101", + "[Leaf].Photosynthesis.RUE.FixedValue = 1.75" + ], + "Name": "Apollo", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Cultivar, Models", + "Command": [ + "[Phenology].PhotoModifier.XYPairs.Y[2] = 0", + "[Phenology].TTEndJuvToInit.FixedValue = 185", + "[Phenology].FlagLeafToFlowering.Target.FixedValue = 130", + "[Phenology].TTFlowerToMaturity.FixedValue = 810", + "[LeafCulms].aX0.FixedValue = 0.71", + "[LeafCulms].aMaxSlope.FixedValue = 37", + "[LeafCulms].aMaxIntercept.FixedValue = -101", + "[Leaf].Photosynthesis.RUE.FixedValue = 1.75" + ], + "Name": "Bazley", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Cultivar, Models", + "Command": [ + "[Phenology].PhotoModifier.XYPairs.Y[2] = 15", + "[Phenology].TTEndJuvToInit.FixedValue = 118", + "[Phenology].FlagLeafToFlowering.Target.FixedValue = 150", + "[Phenology].TTFlowerToMaturity.FixedValue = 810", + "[Grain].DMPerSeed.FixedValue = 0.00065", + "[LeafCulms].aX0.FixedValue = 0.8", + "[LeafCulms].aMaxSlope.FixedValue = 1", + "[LeafCulms].aMaxIntercept.FixedValue = 451" + ], + "Name": "Taurus", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Cultivar, Models", + "Command": [ + "[Phenology].PhotoModifier.XYPairs.Y[2] = 0", + "[Phenology].TTEndJuvToInit.FixedValue = 118", + "[Phenology].FlagLeafToFlowering.Target.FixedValue = 150", + "[Phenology].TTFlowerToMaturity.FixedValue = 810", + "[Grain].DMPerSeed.FixedValue = 0.0006", + "[LeafCulms].aX0.FixedValue = 0.86", + "[LeafCulms].aMaxSlope.FixedValue = 0", + "[LeafCulms].aMaxIntercept.FixedValue = 542" + ], + "Name": "P85G33", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Cultivar, Models", + "Command": [ + "[Phenology].PhotoModifier.XYPairs.Y[2] = 0", + "[Phenology].FlagLeafToFlowering.Target.FixedValue = 140", + "[Phenology].TTFlowerToMaturity.FixedValue = 810", + "[Grain].DMPerSeed.FixedValue = 0.0006", + "[LeafCulms].aX0.FixedValue = 0.81", + "[LeafCulms].aMaxSlope.FixedValue = 0", + "[LeafCulms].aMaxIntercept.FixedValue = 578" + ], + "Name": "P84G22", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Cultivar, Models", + "Command": [ + "[Phenology].PhotoModifier.XYPairs.Y[2] = 0", + "[Phenology].TTEndJuvToInit.FixedValue = 135", + "[Phenology].FlagLeafToFlowering.Target.FixedValue = 140", + "[Phenology].TTFlowerToMaturity.FixedValue = 810", + "[Grain].DMPerSeed.FixedValue = 0.0005", + "[LeafCulms].aX0.FixedValue = 0.84", + "[LeafCulms].aMaxSlope.FixedValue = 0", + "[LeafCulms].aMaxIntercept.FixedValue = 495" + ], + "Name": "P84G99", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Cultivar, Models", + "Command": [ + "[Phenology].PhotoModifier.XYPairs.Y[2] = 20", + "[Phenology].TTEndJuvToInit.FixedValue = 138", + "[Phenology].FlagLeafToFlowering.Target.FixedValue = 150", + "[Phenology].TTFlowerToMaturity.FixedValue = 810", + "[Grain].DMPerSeed.FixedValue = 0.0005", + "[LeafCulms].aX0.FixedValue = 0.84", + "[LeafCulms].aMaxSlope.FixedValue = 0", + "[LeafCulms].aMaxIntercept.FixedValue = 495" + ], + "Name": "P86G56", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Cultivar, Models", + "Command": [ + "[Phenology].PhotoModifier.XYPairs.Y[2] = 15", + "[Phenology].TTEndJuvToInit.FixedValue = 118", + "[Phenology].FlagLeafToFlowering.Target.FixedValue = 150", + "[Phenology].TTFlowerToMaturity.FixedValue = 810", + "[LeafCulms].aX0.FixedValue = 0.71", + "[LeafCulms].aMaxSlope.FixedValue = 37", + "[LeafCulms].aMaxIntercept.FixedValue = -101" + ], + "Name": "MR43", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Cultivar, Models", + "Command": [ + "[Phenology].PhotoModifier.XYPairs.Y[2] = 0", + "[Phenology].TTEndJuvToInit.FixedValue = 180", + "[Phenology].FlagLeafToFlowering.Target.FixedValue = 140", + "[Phenology].TTFlowerToMaturity.FixedValue = 810", + "[Grain].DMPerSeed.FixedValue = 0.0007", + "[LeafCulms].aX0.FixedValue = 0.82", + "[LeafCulms].aMaxSlope.FixedValue = 8.5", + "[LeafCulms].aMaxIntercept.FixedValue = 378" + ], + "Name": "N_14NUS01", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Cultivar, Models", + "Command": [ + "[Phenology].PhotoModifier.XYPairs.Y[2] = 20", + "[Phenology].TTEndJuvToInit.FixedValue = 174", + "[Phenology].FlagLeafToFlowering.Target.FixedValue = 150", + "[Phenology].TTFlowerToMaturity.FixedValue = 810", + "[Grain].DMPerSeed.FixedValue = 0.0006", + "[LeafCulms].aX0.FixedValue = 0.82", + "[LeafCulms].aMaxSlope.FixedValue = 8.5", + "[LeafCulms].aMaxIntercept.FixedValue = 378" + ], + "Name": "N_14NUS02", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Cultivar, Models", + "Command": [ + "[Phenology].PhotoModifier.XYPairs.Y[2] = 15", + "[Phenology].TTEndJuvToInit.FixedValue = 110", + "[Phenology].FlagLeafToFlowering.Target.FixedValue = 100", + "[Phenology].TTFlowerToMaturity.FixedValue = 810", + "[Grain].DMPerSeed.FixedValue = 0.00045", + "[LeafCulms].aX0.FixedValue = 0.84", + "[LeafCulms].aMaxSlope.FixedValue = 9.3", + "[LeafCulms].aMaxIntercept.FixedValue = 384" + ], + "Name": "N_14NUS03", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Cultivar, Models", + "Command": [ + "[Phenology].PhotoModifier.XYPairs.Y[2] = 0", + "[Phenology].TTEndJuvToInit.FixedValue = 120", + "[Phenology].FlagLeafToFlowering.Target.FixedValue = 120", + "[Phenology].TTFlowerToMaturity.FixedValue = 810", + "[Grain].DMPerSeed.FixedValue = 0.00045", + "[LeafCulms].aX0.FixedValue = 0.81", + "[LeafCulms].aMaxSlope.FixedValue = 0", + "[LeafCulms].aMaxIntercept.FixedValue = 445" + ], + "Name": "N_14NUS04", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Functions.Constant, Models", + "FixedValue": 0.0, + "Units": null, + "Name": "MortalityRate", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Core.Simulation, Models", + "IsRunning": false, + "Descriptors": null, + "Name": "Forage Crop Grazing", + "Children": [ + { + "$type": "Models.Memo, Models", + "Text": "“Forage Crop Grazing” is a simple single-paddock simulation. The paddock contains a sorghum crop that is irrigated and fertilised. The sorghum is sown in summer of the first year and is rejuvenated thereafter at the frequency set on the sowing rule in the paddock. In this simulation a new mob of animals are ‘bought’ every time the sorghum (or any forage crop or crops) are ready to be grazed. \nThe user sets the characteristics of the stock, the grazing rules and if/how any supplementary feeding is done.\n\n**Stock Type Information** \n\nThis section contains parameters for the genotype (e.g. Jersey, Small merino), reproductive type (e.g. Castrated male), age, weight, and fertility status. Every time the crop is to be grazed the animals of these characteristics are brought into the simulation. They will change status while grazing but will reset at each grazing event (they exit the simulation between grazing events).\n\n**Grazing event information**\n\nThe stock parameters controlling the grazing event are the stocking rate (the numbers of animals bought will be controlled by this and the paddock area) and their location when the simulation is initialised. \n\nThere are several parameters to control the timing of grazing events. Initially the paddock is assessed for the amount of grazable herbage at which the animals can enter and graze the cropand at which they must leave. \n\nThe biomass is the sum of all the grazable components in the paddock. There is an option to set a rough minimum number of days that it might be anticipated that the animals might stay on the paddock if they enter. This is designed to prevent many, very short-duration, grazing events. The estimate is based on a potential intake of 3% of body mass per day and is applied as an additional amount of biomass above the post-grazing biomass. Apart from the biomass based rules there is also an optional no-grazing window. Note that there is no control of grazing based on growth stage (as there might be for a cereal crop for example).\n\n**Supplementary feeding**\n\nThe management script also allows for optional supplementary feeding. A specified supplement can be feed every day and/or when the biomass in the grazed paddock falls below a set value. The supplement can be fed before grazing (i.e. as an intake priority) or animals can choose between offered supplement and forage depending on digestibility and availability (see the Stock Science Documentation for more information). Every time that a supplement about to be fed out the script buys sufficient supplement to last about a month.\n\n**Reporting Outputs**\n\nThere are several example outputs included in the Report model. The documentation for the Report model for the general syntax which here is set up to accommodate means, sums or last values of the reporting interval. In this short example the reporting interval is every day but for longer simulations it might be desirable to set up reporting at the end of each month or grazing event for example.\n\nThe first plots shows the location of the stock (on the paddock or ‘away’), the grazable biomass in the paddock and the supplement remaining in the store. The second plot shows average body mass and average dry matter intake. Note how body mass resets to a consistent value at the start of each grazing event. This is because a new mob of animals is bought at the start of each grazing event.\n\nThe shaded area behind the plots shows the location of the stock (get this to show but adding a \"ShadedBarsOnGraph\" model to a Graph|Series). Clicking on one of the shaded areas will pop up the name of the location.\n", + "Name": "Memo", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Clock, Models", + "Start": "2010-09-01T00:00:00", + "End": "2012-08-31T00:00:00", + "Name": "Clock", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Climate.Weather, Models", + "ConstantsFile": null, + "FileName": "%root%/Examples/WeatherFiles/Gatton.met", + "ExcelWorkSheetName": "", + "Name": "Weather", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Summary, Models", + "Verbosity": 100, + "Name": "Summary", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.Arbitrator.SoilArbitrator, Models", + "Name": "Soil Arbitrator", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.MicroClimate, Models", + "a_interception": 0.0, + "b_interception": 1.0, + "c_interception": 0.0, + "d_interception": 0.0, + "SoilHeatFluxFraction": 0.4, + "MinimumHeightDiffForNewLayer": 0.0, + "NightInterceptionFraction": 0.5, + "ReferenceHeight": 2.0, + "Name": "MicroClimate", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.GrazPlan.Supplement, Models", + "SpoilageTime": 0.0, + "Stores": [ + { + "$type": "Models.GrazPlan.StoreType, Models", + "Name": "fodder", + "Stored": 0.0, + "IsRoughage": true, + "DMContent": 0.85, + "DMD": 0.0, + "MEContent": 0.0, + "CPConc": 0.0, + "ProtDg": 0.0, + "PConc": 0.0, + "SConc": 0.0, + "EEConc": 0.0, + "ADIP2CP": 0.0, + "AshAlk": 0.0, + "MaxPassage": 0.0 + }, + { + "$type": "Models.GrazPlan.StoreType, Models", + "Name": "silage", + "Stored": 0.0, + "IsRoughage": true, + "DMContent": 1.0, + "DMD": 0.75, + "MEContent": 12.0, + "CPConc": 0.18, + "ProtDg": 0.8, + "PConc": 0.0032, + "SConc": 0.0024, + "EEConc": 0.02, + "ADIP2CP": 0.06, + "AshAlk": 0.6, + "MaxPassage": 0.0 + } + ], + "PaddockList": [], + "Name": "Supplement", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.GrazPlan.Stock, Models", + "randFactory": { + "$type": "StdUnits.MyRandom, Models" + }, + "RandSeed": 9999, + "StockModel": null, + "Name": "Stock", + "Children": [ + { + "$type": "Models.GrazPlan.GenotypeCross, Models", + "AnimalType": "Sheep", + "PureBredBreed": "Small Merino", + "DamBreed": null, + "SireBreed": "", + "MatureDeathRate": 0.02, + "WeanerDeathRate": 0.02, + "Conception": [ + 0.0, + 0.54, + 0.41000000000000003, + 0.0 + ], + "Generation": 0, + "SRW": 40.0, + "PotFleeceWt": 3.6, + "MaxFibreDiam": 19.0, + "FleeceYield": 0.7000000000000001, + "PeakMilk": 0.0, + "Name": "Small Merino", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.ForageDigestibility.Forages, Models", + "Parameters": null, + "Name": "Forages", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Manager, Models", + "Code": "using Models.PMF.Interfaces;\r\nusing System.Diagnostics;\r\nusing Models.AgPasture;\r\nusing System.Linq;\r\nusing System.Collections.Generic;\r\nusing System.Collections;\r\nusing Models.Soils;\r\nusing Models.PMF;\r\nusing System.Xml.Serialization;\r\nusing APSIM.Shared.Utilities;\r\nusing Models.GrazPlan;\r\nusing Models.Utilities;\r\nusing Models.Core;\r\nusing Models;\r\nusing System;\r\n\r\nnamespace Models\r\n{\r\n\r\n [Serializable]\r\n public class Script : Model\r\n {\r\n [Link] Clock clock;\r\n [Link] Stock stock;\r\n [Link] Supplement supplement;\r\n [Link] List paddocks;\r\n [Link] ISummary summary;\r\n [Link] Simulation farm;\r\n [Link] List forages = null;\r\n\r\n private int CurrentGroupNum = 1; // animal group number\r\n private int CurrentLocationNum { get; set; }\r\n\r\n [Separator(\"Stock type info, the same type of stock are brought onto the paddock at each grazing\")]\r\n\r\n [Description(\"Stock: genotype (e.g. Small Merino, Angus, Friesian):\")] \r\n [Display(Values=\"GetGenotypes\")]\r\n public string Genotype { get; set; }\r\n\r\n [Description(\"Stock: sex (Female, Male, Castrate):\")] \r\n public ReproductiveType Sex { get; set; }\r\n\r\n [Description(\"Stock: age (months):\")] \r\n public double Age { get; set; }\r\n\r\n [Description(\"Stock: weight (kg liveweight /head):\")] \r\n public double Weight { get; set; }\r\n\r\n [Description(\"Stock: fertility status (0 if non-pregnant or days since conception):\")] \r\n public int Pregnant { get; set; }\r\n\r\n [Description(\"Stock: lactation status (0 if non-lactating or days since parturition):\")]\r\n public int Lactating { get; set; }\r\n\r\n [Description(\"Stock: number of unweaned young:\")]\r\n public int YoungNumber { get; set; }\r\n\r\n [Description(\"Stock: weight of unweaned young:\")] \r\n public double YoungWt { get; set; }\r\n\r\n [Separator(\"Grazing event information\")]\r\n\r\n [Description(\"Paddock stocking rate (head/ha): \")] \r\n public double StockingRate { get; set; }\r\n\r\n [Description(\"Initial location of the cows (give either the paddock name or 'Away'): \")] \r\n public string CurrentLocation { get; set; }\r\n\r\n [Description(\"Standing biomass at which to bring the stock into the simulation (kg DM/ha): \")] \r\n public double PreGrazingDM { get; set; }\r\n\r\n [Description(\"Don't move the stock onto the crop unless there is approx. X days of grazable forage available: \")] \r\n public int MinGrazingDays { get; set; }\r\n\r\n [Description(\"Standing biomass at which to exit stock from the simulation (kg DM/ha): \")] \r\n public double PostGrazingDM { get; set; }\r\n\r\n [Description(\"Implement a no-grazing window? (tick for yes): \")] \r\n public bool DoNoGrazingWindow { get; set; }\r\n\r\n [Description(\"Start of the no-grazing window (dd-MMM)\")] \r\n public string NoGrazeStart { get; set; }\r\n\r\n [Description(\"End of the no-grazing window (dd-MMM)\")] \r\n public string NoGrazeEnd { get; set; }\r\n\r\n [Separator(\"Supplementary feeding\")]\r\n\r\n [Description(\"Name of the supplement to feed: \")] \r\n public string SupplementName { get; set; }\r\n\r\n [Description(\"Feed the supplement first (i.e. before the new forage is available to the stock)?: \")] \r\n public bool SupplementFirst { get; set; }\r\n\r\n [Description(\"Amount of supplementary feeding offered every day (kg DM /head /day): \")] \r\n public double SupplementEveryDay { get; set; }\r\n\r\n [Description(\"Additional amount of supplement offered when available biomass is low (kg DM /head /day): \")] \r\n public double SupplementOnPastureMass { get; set; }\r\n\r\n [Description(\"Trigger biomass for above rule (kg DM /ha): \")] \r\n public double TriggerPastureMass { get; set; }\r\n\r\n public int NumStock { get; set; }\r\n public bool GrazingSeasonIsOpen { get; set; } // number of cows on the whole farm\r\n public double HarvestableBiomass { get; set; }\r\n public double HarvestableBiomassYesterday { get; set; }\r\n\r\n // Return a list of genotypes to the properties tab.\r\n public string[] GetGenotypes()\r\n {\r\n if (stock != null)\r\n return stock.Genotypes.Names.ToArray();\r\n return null;\r\n }\r\n\r\n [EventSubscribe(\"StartOfSimulation\")]\r\n private void OnStartOfSimulation(object sender, EventArgs e)\r\n {\r\n\r\n //Debugger.Break();\r\n\r\n summary.WriteMessage(this, \"Initialising the paddock information\", MessageType.Diagnostic);\r\n\r\n NumStock = (int)(Math.Round(StockingRate * farm.Area, 0));\r\n\r\n if (CurrentLocation.ToLower() != \"away\")\r\n {\r\n BuyStock();\r\n stock.Move(CurrentLocation);\r\n summary.WriteMessage(this, \" The Stock have been moved to \" + CurrentLocation, MessageType.Diagnostic);\r\n }\r\n\r\n summary.WriteMessage(this, \" The number of animals has been rounded to \" + NumStock + \" from \" + (StockingRate * farm.Area), MessageType.Diagnostic);\r\n summary.WriteMessage(this, \" The animals will begin in \" + CurrentLocation + \" which is paddock number \" + CurrentLocationNum + \" in the simulation\", MessageType.Diagnostic);\r\n summary.WriteMessage(this, \" The area of the whole farm is \" + farm.Area + \" ha\", MessageType.Diagnostic);\r\n\r\n }\r\n\r\n [EventSubscribe(\"DoManagement\")]\r\n private void OnDoManagement(object sender, EventArgs e)\r\n {\r\n GrazingSeasonIsOpen = true;\r\n if (DoNoGrazingWindow)\r\n GrazingSeasonIsOpen = !DateUtilities.WithinDates(NoGrazeStart, clock.Today, NoGrazeEnd);\r\n\r\n bool sellSomeStock = false;\r\n if (!GrazingSeasonIsOpen)\r\n sellSomeStock = true;\r\n\r\n // Calculate forage mass in the paddock\r\n HarvestableBiomass = 0.0;\r\n foreach (var forage in forages)\r\n foreach (var forageOrgan in forage.Organs)\r\n if (forageOrgan.IsAboveGround)\r\n HarvestableBiomass += forageOrgan.Live.Wt + forageOrgan.Dead.Wt;\r\n \r\n HarvestableBiomass *= 10; // Convert to kg/ha\r\n\r\n if (clock.Today == clock.StartDate)\r\n HarvestableBiomassYesterday = HarvestableBiomass;\r\n\r\n double deltaHarvestableBiomass = Math.Max(0.0, HarvestableBiomass - HarvestableBiomassYesterday);\r\n\r\n if (HarvestableBiomass <= PostGrazingDM)\r\n sellSomeStock = true;\r\n\r\n if (CurrentLocation == \"Away\")\r\n sellSomeStock = false;\r\n\r\n // The 0.03 is the propostion of body mass that the stock might eat\r\n double minFodder = Math.Max(PreGrazingDM, Math.Max(0.0, (0.03 * MinGrazingDays * NumStock * Weight) - (deltaHarvestableBiomass * MinGrazingDays))); \r\n HarvestableBiomassYesterday = HarvestableBiomass;\r\n\r\n if (CurrentLocation == \"Away\" && (HarvestableBiomass >= PreGrazingDM) && HarvestableBiomass >= (PostGrazingDM + minFodder) && GrazingSeasonIsOpen)\r\n {\r\n CurrentLocation = paddocks[0].Name;\r\n CurrentLocationNum = paddocks[0].Index;\r\n BuyStock();\r\n stock.Move(CurrentLocation);\r\n summary.WriteMessage(this, \" Buying stock \", MessageType.Diagnostic);\r\n }\r\n\r\n if (sellSomeStock)\r\n {\r\n CurrentLocation = \"Away\";\r\n CurrentLocationNum = -1;\r\n SellStock();\r\n summary.WriteMessage(this, \" Selling stock \", MessageType.Diagnostic);\r\n }\r\n\r\n if (CurrentLocation != \"Away\")\r\n {\r\n if (SupplementEveryDay > 0)\r\n {\r\n double silageOnHand = supplement.Stores[2 - 1].Stored;\r\n if (silageOnHand < SupplementEveryDay * stock.NumberAll)\r\n {\r\n supplement.Buy(SupplementEveryDay * 30.0 * stock.NumberAll, SupplementName); // i.e. 1 months worth\r\n summary.WriteMessage(this, \"SupplementEveryDay: Buying \" + SupplementName + \" of total amount : \" + (SupplementEveryDay * 90 * stock.NumberAll) + \" kg DM\", MessageType.Diagnostic);\r\n }\r\n supplement.Feed(SupplementName, SupplementEveryDay * stock.NumberAll, CurrentLocation, SupplementFirst);\r\n }\r\n\r\n if (SupplementOnPastureMass > 0 && HarvestableBiomass <= TriggerPastureMass)\r\n {\r\n double silageOnHand = supplement.Stores[2 - 1].Stored;\r\n if (silageOnHand < SupplementOnPastureMass * stock.NumberAll)\r\n {\r\n supplement.Buy(SupplementOnPastureMass * 30.0 * stock.NumberAll, SupplementName); // i.e. 1 months worth\r\n summary.WriteMessage(this, \"SupplementOnBiomass: Buying \" + SupplementName + \" of total amount : \" + (SupplementOnPastureMass * 90 * stock.NumberAll) + \" kg DM\", MessageType.Diagnostic);\r\n }\r\n supplement.Feed(SupplementName, SupplementOnPastureMass * stock.NumberAll, CurrentLocation, SupplementFirst);\r\n }\r\n }\r\n }\r\n\r\n\r\n public void BuyStock()\r\n {\r\n CurrentGroupNum = stock.NoGroups + 1;\r\n StockBuy purchase = new StockBuy();\r\n purchase.Genotype = Genotype;\r\n purchase.Number = NumStock;\r\n purchase.Sex = Sex;\r\n purchase.Age = Age; // age in months\r\n purchase.Weight = Weight; // live weight in kg\r\n purchase.UseTag = CurrentGroupNum + 1;\r\n purchase.MatedTo = purchase.Genotype;\r\n purchase.Pregnant = Pregnant; // days pregnant, 0 = non pregnant, 1 = pregnant\r\n purchase.Lactating = Lactating; // 0 for dry, 1 for lactating\r\n purchase.NumYoung = YoungNumber;\r\n purchase.YoungWt = YoungWt;\r\n\r\n stock.Buy(purchase);\r\n }\r\n\r\n public void SellStock()\r\n {\r\n int NumGroups = stock.NoGroups;\r\n\r\n NumGroups = stock.NoGroups;\r\n for (int gg = 1; gg <= NumGroups; gg++)\r\n {\r\n stock.Sell(stock.Number[gg - 1]);\r\n }\r\n }\r\n }\r\n}\r\n", + "Parameters": [ + { + "Key": "Genotype", + "Value": "Friesian" + }, + { + "Key": "Sex", + "Value": "Female" + }, + { + "Key": "Age", + "Value": "12" + }, + { + "Key": "Weight", + "Value": "280" + }, + { + "Key": "Pregnant", + "Value": "0" + }, + { + "Key": "Lactating", + "Value": "0" + }, + { + "Key": "YoungNumber", + "Value": "0" + }, + { + "Key": "YoungWt", + "Value": "0" + }, + { + "Key": "StockingRate", + "Value": "50" + }, + { + "Key": "CurrentLocation", + "Value": "Away" + }, + { + "Key": "PreGrazingDM", + "Value": "2000" + }, + { + "Key": "MinGrazingDays", + "Value": "7" + }, + { + "Key": "PostGrazingDM", + "Value": "1500" + }, + { + "Key": "DoNoGrazingWindow", + "Value": "False" + }, + { + "Key": "NoGrazeStart", + "Value": "1-Jun" + }, + { + "Key": "NoGrazeEnd", + "Value": "31-Jul" + }, + { + "Key": "SupplementName", + "Value": "silage" + }, + { + "Key": "SupplementFirst", + "Value": "False" + }, + { + "Key": "SupplementEveryDay", + "Value": "0" + }, + { + "Key": "SupplementOnPastureMass", + "Value": "2" + }, + { + "Key": "TriggerPastureMass", + "Value": "2100" + }, + { + "Key": "NumStock", + "Value": "0" + }, + { + "Key": "GrazingSeasonIsOpen", + "Value": "False" + }, + { + "Key": "HarvestableBiomass", + "Value": "0" + }, + { + "Key": "HarvestableBiomassYesterday", + "Value": "0" + } + ], + "Name": "GrazeForageCrop", + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Report, Models", + "VariableNames": [ + "[Clock].Today as Date", + "Mean of [Stock].NumberAll from [Report].DayAfterLastOutput to [Clock].Today as NumStock", + "Mean of [Stock].IntakeAll.Weight from [Report].DayAfterLastOutput to [Clock].Today as AveDMIntake", + "Mean of [Stock].MEIntakeAll from [Report].DayAfterLastOutput to [Clock].Today as AveMEIntake", + "Mean of [Stock].WeightAll from [Report].DayAfterLastOutput to [Clock].Today as AveBodyMass", + "Mean of [Stock].CondScoreAll from [Report].DayAfterLastOutput to [Clock].Today as AveConditionScore", + "Mean of [Stock].MilkWtAll from [Report].DayAfterLastOutput to [Clock].Today as AveMilkWeight4pcCorr", + "Mean of ([Stock].MilkWtAll * 0.04 * 1.8) from [Report].DayAfterLastOutput to [Clock].Today as AveMilkSolids // note the \"0.04\" is to convert the 4% fat corrected to dry milk fat, the \"1.8\" is on the assumption that protein is 80% of the fat content", + "Last of [GrazeForageCrop].Script.HarvestableBiomass from [Report].DayAfterLastOutput to [Clock].Today as HarvestableBiomass", + "Last of [Supplement].stores[2].Stored from [Report].DayAfterLastOutput to [Clock].Today as SupplementRemaining", + "Last of [Field].Sorghum.AboveGround.Wt * 10.0 from [Report].DayAfterLastOutput to [Clock].Today as SorghumMass", + "Last of [Field].Sorghum.Leaf.LAI from [Report].DayAfterLastOutput to [Clock].Today as SorghumLAI", + "Last of [Field].Sorghum.AboveGround.N * 10.0 from [Report].DayAfterLastOutput to [Clock].Today as SorghumN", + "//Last of [GrazeForageCrop].Script.CurrentLocation from [Report].DayAfterLastOutput to [Clock].Today as StockLocation", + "[GrazeForageCrop].Script.CurrentLocation as StockLocation" + ], + "EventNames": [ + "[Clock].EndOfDay" + ], + "GroupByVariableName": null, + "Name": "GrazingReport", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Core.Folder, Models", + "ShowInDocs": true, + "GraphsPerPage": 6, + "Name": "Stock and Biomass Plots", + "Children": [ + { + "$type": "Models.Graph, Models", + "Caption": null, + "Axis": [ + { + "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", + "Title": "Date", + "Position": 3, + "Inverted": false, + "CrossesAtZero": false, + "Minimum": null, + "Maximum": null, + "Interval": null + }, + { + "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", + "Title": null, + "Position": 0, + "Inverted": false, + "CrossesAtZero": false, + "Minimum": null, + "Maximum": null, + "Interval": null + }, + { + "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", + "Title": null, + "Position": 2, + "Inverted": false, + "CrossesAtZero": false, + "Minimum": null, + "Maximum": null, + "Interval": null + } + ], + "LegendPosition": 0, + "LegendOrientation": 0, + "AnnotationLocation": 0, + "DisabledSeries": [], + "LegendOutsideGraph": false, + "Name": "Biomass HeadCount and Supps", + "Children": [ + { + "$type": "Models.Series, Models", + "Type": 1, + "XAxis": 3, + "YAxis": 0, + "ColourArgb": -16736653, + "FactorToVaryColours": null, + "FactorToVaryMarkers": null, + "FactorToVaryLines": null, + "Marker": 11, + "MarkerSize": 0, + "Line": 0, + "LineThickness": 0, + "TableName": "GrazingReport", + "XFieldName": "Date", + "YFieldName": "HarvestableBiomass", + "X2FieldName": null, + "Y2FieldName": null, + "ShowInLegend": true, + "IncludeSeriesNameInLegend": true, + "Cumulative": false, + "CumulativeX": false, + "Filter": null, + "Name": "Grazable Biomass", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Series, Models", + "Type": 1, + "XAxis": 3, + "YAxis": 0, + "ColourArgb": -16777216, + "FactorToVaryColours": null, + "FactorToVaryMarkers": null, + "FactorToVaryLines": null, + "Marker": 11, + "MarkerSize": 0, + "Line": 0, + "LineThickness": 0, + "TableName": "GrazingReport", + "XFieldName": "Date", + "YFieldName": "SupplementRemaining", + "X2FieldName": null, + "Y2FieldName": null, + "ShowInLegend": true, + "IncludeSeriesNameInLegend": true, + "Cumulative": false, + "CumulativeX": false, + "Filter": null, + "Name": "Supplement Remaining", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Series, Models", + "Type": 1, + "XAxis": 3, + "YAxis": 2, + "ColourArgb": -1663232, + "FactorToVaryColours": null, + "FactorToVaryMarkers": null, + "FactorToVaryLines": null, + "Marker": 11, + "MarkerSize": 0, + "Line": 0, + "LineThickness": 0, + "TableName": "GrazingReport", + "XFieldName": "Date", + "YFieldName": "NumStock", + "X2FieldName": null, + "Y2FieldName": null, + "ShowInLegend": true, + "IncludeSeriesNameInLegend": true, + "Cumulative": false, + "CumulativeX": false, + "Filter": null, + "Name": "NumStock", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Graph, Models", + "Caption": null, + "Axis": [ + { + "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", + "Title": "Date", + "Position": 3, + "Inverted": false, + "CrossesAtZero": false, + "Minimum": null, + "Maximum": null, + "Interval": null + }, + { + "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", + "Title": null, + "Position": 0, + "Inverted": false, + "CrossesAtZero": false, + "Minimum": null, + "Maximum": null, + "Interval": null + }, + { + "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", + "Title": null, + "Position": 2, + "Inverted": false, + "CrossesAtZero": false, + "Minimum": null, + "Maximum": null, + "Interval": null + } + ], + "LegendPosition": 0, + "LegendOrientation": 0, + "AnnotationLocation": 0, + "DisabledSeries": [], + "LegendOutsideGraph": false, + "Name": "Stock Performance", + "Children": [ + { + "$type": "Models.Series, Models", + "Type": 1, + "XAxis": 3, + "YAxis": 0, + "ColourArgb": -16777216, + "FactorToVaryColours": null, + "FactorToVaryMarkers": null, + "FactorToVaryLines": null, + "Marker": 11, + "MarkerSize": 0, + "Line": 1, + "LineThickness": 0, + "TableName": "GrazingReport", + "XFieldName": "Date", + "YFieldName": "AveBodyMass", + "X2FieldName": null, + "Y2FieldName": null, + "ShowInLegend": true, + "IncludeSeriesNameInLegend": true, + "Cumulative": false, + "CumulativeX": false, + "Filter": null, + "Name": "Body Mass", + "Children": [ + { + "$type": "Models.ShadedBarsOnGraph, Models", + "ColumnName": "Stock.Paddock(1)", + "SimulationName": "Forage Crop Grazing", + "Name": "ShadedBarsOnGraph", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Series, Models", + "Type": 1, + "XAxis": 3, + "YAxis": 2, + "ColourArgb": -16747854, + "FactorToVaryColours": null, + "FactorToVaryMarkers": null, + "FactorToVaryLines": null, + "Marker": 11, + "MarkerSize": 0, + "Line": 1, + "LineThickness": 0, + "TableName": "GrazingReport", + "XFieldName": "Date", + "YFieldName": "AveDMIntake", + "X2FieldName": null, + "Y2FieldName": null, + "ShowInLegend": true, + "IncludeSeriesNameInLegend": true, + "Cumulative": false, + "CumulativeX": false, + "Filter": null, + "Name": "Dry Matter Intake", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Graph, Models", + "Caption": null, + "Axis": [ + { + "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", + "Title": "Date", + "Position": 3, + "Inverted": false, + "CrossesAtZero": false, + "Minimum": null, + "Maximum": null, + "Interval": null + }, + { + "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", + "Title": null, + "Position": 0, + "Inverted": false, + "CrossesAtZero": false, + "Minimum": null, + "Maximum": null, + "Interval": null + }, + { + "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", + "Title": null, + "Position": 2, + "Inverted": false, + "CrossesAtZero": false, + "Minimum": null, + "Maximum": null, + "Interval": null + } + ], + "LegendPosition": 0, + "LegendOrientation": 0, + "AnnotationLocation": 0, + "DisabledSeries": [], + "LegendOutsideGraph": false, + "Name": "Sorghum Metrics", + "Children": [ + { + "$type": "Models.Series, Models", + "Type": 1, + "XAxis": 3, + "YAxis": 0, + "ColourArgb": -16736653, + "FactorToVaryColours": null, + "FactorToVaryMarkers": null, + "FactorToVaryLines": null, + "Marker": 11, + "MarkerSize": 0, + "Line": 0, + "LineThickness": 0, + "TableName": "GrazingReport", + "XFieldName": "Date", + "YFieldName": "HarvestableBiomass", + "X2FieldName": null, + "Y2FieldName": null, + "ShowInLegend": true, + "IncludeSeriesNameInLegend": true, + "Cumulative": false, + "CumulativeX": false, + "Filter": null, + "Name": "Grazable Biomass", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Series, Models", + "Type": 1, + "XAxis": 3, + "YAxis": 2, + "ColourArgb": -16747854, + "FactorToVaryColours": null, + "FactorToVaryMarkers": null, + "FactorToVaryLines": null, + "Marker": 11, + "MarkerSize": 0, + "Line": 0, + "LineThickness": 0, + "TableName": "GrazingReport", + "XFieldName": "Date", + "YFieldName": "SorghumLAI", + "X2FieldName": null, + "Y2FieldName": null, + "ShowInLegend": true, + "IncludeSeriesNameInLegend": true, + "Cumulative": false, + "CumulativeX": false, + "Filter": null, + "Name": "LAI", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Series, Models", + "Type": 1, + "XAxis": 3, + "YAxis": 2, + "ColourArgb": -3376729, + "FactorToVaryColours": null, + "FactorToVaryMarkers": null, + "FactorToVaryLines": null, + "Marker": 11, + "MarkerSize": 0, + "Line": 0, + "LineThickness": 0, + "TableName": "GrazingReport", + "XFieldName": "Date", + "YFieldName": "SorghumN", + "X2FieldName": null, + "Y2FieldName": null, + "ShowInLegend": true, + "IncludeSeriesNameInLegend": true, + "Cumulative": false, + "CumulativeX": false, + "Filter": null, + "Name": "Sorghum N", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Memo, Models", + "Text": "The first plots shows the location of the stock (on the paddock or ‘away’), the grazable biomass in the paddock and the supplement remaining in the store. The second plot shows average body mass and average dry matter intake. Note how body mass resets to a consistent value at the start of each grazing event. This is because a new mob of animals is bought at the start of each grazing event.\n\nThe shaded area behind the plots shows the location of the stock (get this to show but adding a \"ShadedBarsOnGraph\" model to a Graph|Series). Clicking on one of the shaded areas will pop up the name of the location.", + "Name": "Memo1", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Core.Zone, Models", + "Area": 1.0, + "Slope": 0.0, + "AspectAngle": 0.0, + "Altitude": 50.0, + "Name": "Field", + "Children": [ + { + "$type": "Models.Manager, Models", + "Code": "using Models.Interfaces;\nusing System.Linq;\nusing System;\nusing Models.Core;\nusing Models.PMF;\nusing Models.Soils;\nusing Models.Utilities;\nusing APSIM.Shared.Utilities;\nusing Models.Climate;\n\nnamespace Models\n{\n [Serializable]\n public class Script : Model\n {\n [Link] private Clock Clock;\n [Link] private Fertiliser Fertiliser;\n [Link] private Summary Summary;\n [Link(ByName = true)] private Plant sorghum;\n [Link] private Soil Soil;\n private Accumulator accumulatedRain;\n [Link]\n private ISoilWater waterBalance;\n\n [Separator(\"======= Sowing conditions =======\")]\n [Description(\"Start of sowing window (dd-mmm)\")] public string StartDate { get; set;}\n [Description(\"End of sowing window (dd-mmm)\")] public string EndDate { get; set;}\n [Description(\"Minimum extractable soil water for sowing (mm)\")] public double MinESW { get; set;}\n [Description(\"Accumulated rainfall required for sowing (mm)\")] public double MinRain { get; set;}\n [Description(\"Duration of rainfall accumulation (d)\")] public int RainDays { get; set;}\n [Description(\"Must sow at the end of the window?\")] public answerType mustSow { get; set; }\n [Description(\"Frequency of sowing (years)\")] public int SowingFreq { get; set; }\n \n\n [Separator(\"======= Sowing data =======\")]\n [Description(\"Cultivar to be sown\")]\n [Display(Type = DisplayType.CultivarName)]\n public string CultivarName { get; set;}\n [Description(\"Sowing depth (mm)\")] public double SowingDepth { get; set;} \n [Description(\"Row spacing (mm)\")] public double RowSpacing { get; set;} \n [Description(\"Plant population (/m2)\")] public double Population { get; set;} \n\n [Separator(\"======= Sowing fertiliser =======\")]\n [Description(\"Amount of fertiliser to be applied (kg/ha)\")] public double Amount { get; set;}\n\n public double CropAge { get; set; }\n\n public enum answerType\n {\n /// a positive answer\n yes,\n /// a negative answer\n no\n }\n\n \n [EventSubscribe(\"StartOfSimulation\")]\n private void OnSimulationCommencing(object sender, EventArgs e)\n {\n accumulatedRain = new Accumulator(this, \"[Weather].Rain\", RainDays);\n CropAge = SowingFreq + 1.0;\n }\n \n\n [EventSubscribe(\"DoManagement\")]\n private void OnDoManagement(object sender, EventArgs e)\n {\n accumulatedRain.Update();\n CropAge += 1.0 / 365.25;\n\n bool doSowing = false;\n if (DateUtilities.WithinDates(StartDate,Clock.Today,EndDate) && !sorghum.IsAlive)\n doSowing = true;\n if ((MathUtilities.Sum(waterBalance.ESW) < MinESW) || (accumulatedRain.Sum < MinRain))\n doSowing = false;\n if ((mustSow == answerType.yes) && (DateUtilities.DatesEqual(EndDate, Clock.Today)))\n doSowing = true;\n if (CropAge < SowingFreq)\n doSowing = false;\n \n if (doSowing)\n {\n sorghum.Sow(population:Population, cultivar:CultivarName, depth:SowingDepth, rowSpacing:RowSpacing);\n Fertiliser.Apply(Amount: Amount, Type: Fertiliser.Types.NO3N); \n CropAge = 0.0;\n }\n \n }\n \n }\n}\n", + "Parameters": [ + { + "Key": "StartDate", + "Value": "1-nov" + }, + { + "Key": "EndDate", + "Value": "31-jan" + }, + { + "Key": "MinESW", + "Value": "50" + }, + { + "Key": "MinRain", + "Value": "30" + }, + { + "Key": "RainDays", + "Value": "5" + }, + { + "Key": "mustSow", + "Value": "yes" + }, + { + "Key": "SowingFreq", + "Value": "3" + }, + { + "Key": "CultivarName", + "Value": "Buster" + }, + { + "Key": "SowingDepth", + "Value": "10" + }, + { + "Key": "RowSpacing", + "Value": "150" + }, + { + "Key": "Population", + "Value": "200" + }, + { + "Key": "Amount", + "Value": "60" + } + ], + "Name": "SowingRule", + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Manager, Models", + "Code": "using Newtonsoft.Json;\r\nusing Models.PMF.Phen;\r\nusing APSIM.Shared.Utilities;\r\nusing System.Xml.Serialization;\r\nusing Models.Soils;\r\nusing Models.PMF;\r\nusing Models.Core;\r\nusing System;\r\nusing System.Linq;\r\nusing Models.Interfaces;\r\n\r\n \r\nnamespace Models\r\n{\r\n [Serializable] \r\n [System.Xml.Serialization.XmlInclude(typeof(Model))]\r\n public class Script : Model\r\n {\r\n [Link] private ISummary summary;\r\n [Link] private Irrigation Irrigation;\r\n [Link] private Clock Clock;\r\n [Link] private Soil Soil;\r\n [Link(ByName = true)] private Plant sorghum;\r\n private DateTime StartDate;\r\n private DateTime EndDate;\r\n private double TopDUL;\r\n private double TopLL;\r\n private int nLayers;\r\n [Link]\r\n private IPhysical soilPhysical;\r\n [Link]\r\n private ISoilWater waterBalance;\r\n //Communication to other modules\r\n \r\n //User inputs from properties tab\r\n [Description(\"Turn irrigation on?\")]\r\n public bool allowIrrigation { get; set; }\r\n [Description(\"Start of irrigation season (dd-MMM)\")]\r\n public string seasonStart { get; set; }\r\n [Description(\"End of irrigation season (dd-MMM)\")]\r\n public string seasonEnd { get; set; }\r\n [Description(\"Season allocation (mm)\")]\r\n public double seasonsAllocation { get; set; }\r\n [Description(\"Deficit to trigger irrigation (% PAWC)\")]\r\n public double triggerDeficit { get; set; }\r\n [Description(\"Deficit to stop irrigaton (% PAWC)\")]\r\n public double targetDeficit { get; set; }\r\n [Description(\"Minimum days for irrigation to return\")]\r\n public double returndays { get; set; }\r\n [Description(\"Maximum irrigation application (mm/day)\")]\r\n public double maximumAmount { get; set; }\r\n [Description(\"Depth to calculate PAWC (mm)\")]\r\n public double depthPAWC { get; set; }\r\n \r\n //Class members\r\n [JsonIgnore] public double TopSWdeficit { get; set; }\r\n [JsonIgnore] public double TopSWC { get; set; }\r\n [JsonIgnore] public double DaysSinceIrrigation { get; set; }\r\n [JsonIgnore] public double AmountToApply { get; set; }\r\n [JsonIgnore] public double SeasonAppliedAmount { get; set; }\r\n \r\n private bool IrrigationIsAllowed { get; set; }\r\n private bool SeasonIsOpen { get; set; }\r\n private bool CropIsActive { get; set; }\r\n private bool IrrigatorIsAvailable { get; set; }\r\n private bool SoilIsDry { get; set; }\r\n\r\n \r\n //Calculate static soil variables\r\n [EventSubscribe(\"StartOfSimulation\")]\r\n private void OnStartOfSimulation(object sender, EventArgs e)\r\n { \r\n //Set the season dates\r\n StartDate = DateTime.Parse(seasonStart + \"-\" + Clock.Today.Year.ToString());\r\n EndDate = DateTime.Parse(seasonEnd + \"-\" + Clock.Today.Year.ToString());\r\n \r\n //Can we irrigate at all?\r\n IrrigationIsAllowed = false; \r\n if (allowIrrigation)\r\n IrrigationIsAllowed = true; \r\n\r\n //Calculate soil water variables\r\n double depthFromSurface = 0.0;\r\n double fracLayer = 0.0;\r\n nLayers = soilPhysical.Thickness.Length;\r\n for (int layer = 0; layer < nLayers; layer++)\r\n {\r\n fracLayer = Math.Min(1.0, (depthPAWC - depthFromSurface) / soilPhysical.Thickness[layer]);\r\n TopLL += soilPhysical.LL15mm[layer] * fracLayer;\r\n TopDUL += soilPhysical.DULmm[layer] * fracLayer;\r\n depthFromSurface += soilPhysical.Thickness[layer];\r\n if (depthFromSurface >= depthPAWC)\r\n layer = nLayers;\r\n }\r\n }\r\n \r\n //Determine daily requirement for irrigation\r\n [EventSubscribe(\"StartOfDay\")]\r\n private void OnStartOfDay(object sender, EventArgs e)\r\n {\r\n //Can we irrigate today? \r\n SeasonIsOpen = isBetween(Clock.Today, StartDate, EndDate);\r\n\r\n //Is there a crop in the ground that needs irrigation?\r\n CropIsActive = false;\r\n if ((sorghum != null) && (sorghum.IsAlive))\r\n CropIsActive = true;\r\n \r\n //Is the irrigator available?\r\n IrrigatorIsAvailable = false;\r\n DaysSinceIrrigation += 1;\r\n if (DaysSinceIrrigation >= returndays)\r\n IrrigatorIsAvailable = true;\r\n \r\n //Is the soil dry enough to require irrigation?\r\n SoilIsDry = false;\r\n double depthFromSurface = 0.0;\r\n double fracLayer = 0.0;\r\n TopSWC = 0.0;\r\n for (int layer = 0; layer < nLayers; layer++)\r\n {\r\n fracLayer = Math.Min(1.0, (depthPAWC - depthFromSurface) / soilPhysical.Thickness[layer]);\r\n TopSWC += waterBalance.SWmm[layer] * fracLayer;\r\n depthFromSurface += soilPhysical.Thickness[layer];\r\n if (depthFromSurface >= depthPAWC)\r\n layer = nLayers;\r\n }\r\n \r\n TopSWdeficit = TopSWC - TopDUL;\r\n if (Math.Max(0.0, -TopSWdeficit) >= (TopDUL - TopLL) * (100 - triggerDeficit) / 100)\r\n SoilIsDry = true;\r\n \r\n //Are all the conditions ratifying irrigation\r\n if (IrrigationIsAllowed && SeasonIsOpen && CropIsActive && IrrigatorIsAvailable && SoilIsDry)\r\n {\r\n //Lets bloody well irrigate then!!!!\r\n AmountToApply = TopDUL * targetDeficit / 100 - TopSWC;\r\n //AmountToApply = Math.Max(0.0, Math.Min(AmountToApply, seasonsAllocation - SeasonAppliedAmount));\r\n AmountToApply = maximumAmount;\r\n Irrigation.Apply(AmountToApply);\r\n DaysSinceIrrigation = 0;\r\n SeasonAppliedAmount += AmountToApply;\r\n }\r\n }\r\n \r\n ///Checks whether theDate is between iniDate and endDate (non-year specific)\r\n private bool isBetween(DateTime theDay, DateTime iniDate, DateTime endDate)\r\n {\r\n bool result = false;\r\n if (iniDate.DayOfYear < endDate.DayOfYear)\r\n {\r\n // period is within one year, ex: summer in the northern hemisphere\r\n if ((theDay.DayOfYear >= iniDate.DayOfYear) && (theDay.DayOfYear <= endDate.DayOfYear))\r\n result = true;\r\n }\r\n else\r\n {\r\n // period goes over the end of the year, ex: summer in the southern hemisphere\r\n if ((theDay.DayOfYear >= iniDate.DayOfYear) || (theDay.DayOfYear <= endDate.DayOfYear))\r\n result = true;\r\n }\r\n \r\n return result;\r\n }\r\n }\r\n}\r\n", + "Parameters": [ + { + "Key": "allowIrrigation", + "Value": "True" + }, + { + "Key": "seasonStart", + "Value": "15-Sep" + }, + { + "Key": "seasonEnd", + "Value": "30-Apr" + }, + { + "Key": "seasonsAllocation", + "Value": "10000" + }, + { + "Key": "triggerDeficit", + "Value": "75" + }, + { + "Key": "targetDeficit", + "Value": "95" + }, + { + "Key": "returndays", + "Value": "3" + }, + { + "Key": "maximumAmount", + "Value": "15" + }, + { + "Key": "depthPAWC", + "Value": "500" + }, + { + "Key": "TopSWdeficit", + "Value": "0" + }, + { + "Key": "TopSWC", + "Value": "0" + }, + { + "Key": "DaysSinceIrrigation", + "Value": "0" + }, + { + "Key": "AmountToApply", + "Value": "0" + }, + { + "Key": "SeasonAppliedAmount", + "Value": "0" + } + ], + "Name": "AutomaticIrrigation", + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Manager, Models", + "Code": "using Models.Interfaces;\r\nusing System.Linq;\r\nusing APSIM.Shared.Utilities;\r\nusing Models.PMF;\r\nusing Models.Soils;\r\nusing Models.Core;\r\nusing System;\r\nusing Models.Soils.Nutrients;\r\n\r\nnamespace Models\r\n{\r\n [Serializable]\r\n public class Script : Model\r\n {\r\n [Link] private Clock clock;\r\n [Link] private Fertiliser fertiliser;\r\n [Link] private ISummary summary;\r\n [Link] private Soil soil;\r\n private Nutrient nutrient;\r\n private SoilNitrogen soilN;\r\n [Link]\r\n private IPhysical soilPhysical;\r\n\r\n\r\n [Separator(\"Fertiliser will be applied on the date(s) below\")]\r\n [Description(\"Apply fertiliser on the same day(s) each year? If no, then must include the year of appliaction below\")]\r\n public bool EachYear { get; set; }\r\n\r\n [Description(\"Dates for one or more fertiliser applications (dd-mmm or dd-mmm-yyyy) as a list with a comma between dates\")]\r\n public string[] Dates { get; set; }\r\n\r\n [Separator(\"Test for the mineral N in the soil and don't apply the fertiliser if greater than X kgN/ha is stored in the soil above a depth of Y mm\")]\r\n [Description(\"Use a critical soil mineral N to prevent application above a threshold?\")]\r\n public bool UseCritNThreshold { get; set; }\r\n\r\n [Description(\"Don't add fertiliser if N in the soil to the depth below exceeds (kg/ha)\")]\r\n public double CritNThreshold { get; set; }\r\n\r\n [Description(\"Depth to which the amount of N in the soil should be calculated (mm)\")]\r\n public double CritNDepth { get; set; }\r\n\r\n [Separator(\"Fertiliser application details\")]\r\n [Description(\"Depth at which to apply the fertiliser (mm)\")]\r\n public double Depth { get; set; }\r\n\r\n [Description(\"Amount of fertiliser to apply (kg N /ha) per application\")]\r\n public double Amount { get; set; }\r\n\r\n [Description(\"Fertiliser type - select from the list\")]\r\n public Fertiliser.Types FertiliserType { get; set; }\r\n\r\n\r\n [EventSubscribe(\"StartOfSimulation\")]\r\n private void FindSoilNOrNutrient(object sender, EventArgs e)\r\n {\r\n nutrient = this.FindInScope() as Nutrient;\r\n soilN = this.FindInScope() as SoilNitrogen;\r\n\r\n if (nutrient == null && soilN == null)\r\n throw new Exception(string.Format(\"Error in script {0}: Unable to find nutrient or soilN.\", Name));\r\n }\r\n\r\n [EventSubscribe(\"DoManagement\")]\r\n private void OnDoManagement(object sender, EventArgs e)\r\n {\r\n if (OnApplicationDate())\r\n {\r\n if (NContentBelowThreshold())\r\n fertiliser.Apply(Amount, FertiliserType, Depth);\r\n else\r\n summary.WriteMessage(this, \"Skipping fertiliser application due to soil mineral N content being above critical threshold.\", MessageType.Diagnostic);\r\n }\r\n }\r\n\r\n /// Checks if today's date is one of the specified fertiliser application dates.\r\n private bool OnApplicationDate()\r\n {\r\n if (EachYear)\r\n return Dates.Any(d => DateUtilities.DatesEqual(d, clock.Today));\r\n \r\n DateTime[] dates = Dates.Select(d => DateTime.ParseExact(d, \"d-MMM-yyyy\", null)).ToArray();\r\n return dates.Any(d => SameDate(d, clock.Today));\r\n }\r\n\r\n /// Checks if N content in soil is below critical threshold.\r\n private bool NContentBelowThreshold()\r\n {\r\n if (!UseCritNThreshold)\r\n return true;\r\n \r\n double[] weights = GetLayerWeights();\r\n double cumSoilN = 0;\r\n\r\n for (int i = 0; i < soilPhysical.Thickness.Length; i++)\r\n {\r\n if (nutrient != null)\r\n cumSoilN += weights[i] * nutrient.MineralN[i];\r\n else if (soilN != null)\r\n cumSoilN += weights[i] * soilN.mineral_n[i];\r\n }\r\n\r\n return cumSoilN <= CritNThreshold;\r\n }\r\n\r\n private double[] GetLayerWeights()\r\n {\r\n double[] weights = new double[soilPhysical.Thickness.Length];\r\n double cumDepth = 0;\r\n\r\n for (int i = 0; i < soilPhysical.Thickness.Length; i++)\r\n {\r\n cumDepth += soilPhysical.Thickness[i];\r\n if (cumDepth < CritNDepth)\r\n weights[i] = 1;\r\n else if (cumDepth - soilPhysical.Thickness[i] <= CritNDepth)\r\n weights[i] = (CritNDepth - (cumDepth - soilPhysical.Thickness[i])) / soilPhysical.Thickness[i];\r\n else\r\n weights[i] = 0;\r\n }\r\n\r\n return weights;\r\n }\r\n\r\n private bool SameDate(DateTime d1, DateTime d2)\r\n {\r\n return d1.Year == d2.Year && d1.DayOfYear == d2.DayOfYear;\r\n }\r\n }\r\n}\r\n", + "Parameters": [ + { + "Key": "EachYear", + "Value": "True" + }, + { + "Key": "Dates", + "Value": "20-sep,20-nov,20-jan,20-mar" + }, + { + "Key": "UseCritNThreshold", + "Value": "False" + }, + { + "Key": "CritNThreshold", + "Value": "50" + }, + { + "Key": "CritNDepth", + "Value": "75" + }, + { + "Key": "Depth", + "Value": "50" + }, + { + "Key": "Amount", + "Value": "30" + }, + { + "Key": "FertiliserType", + "Value": "UreaN" + } + ], + "Name": "Fertilise on fixed dates", + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Irrigation, Models", + "Name": "Irrigation", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Fertiliser, Models", + "ResourceName": "Fertiliser", + "Name": "Fertiliser", + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Surface.SurfaceOrganicMatter, Models", + "InitialResidueName": "grass", + "InitialResidueType": "grass", + "InitialResidueMass": 500.0, + "InitialStandingFraction": 0.0, + "InitialCPR": 0.0, + "InitialCNR": 40.0, + "ResourceName": "SurfaceOrganicMatter", + "Name": "SurfaceOrganicMatter", + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.Soil, Models", + "RecordNumber": 0, + "ASCOrder": null, + "ASCSubOrder": null, + "SoilType": "HMM", + "LocalName": null, + "Site": "HRS", + "NearestTown": "Unknown", + "Region": "SE Queensland", + "State": null, + "Country": null, + "NaturalVegetation": "Unknown", + "ApsoilNumber": null, + "Latitude": 0.0, + "Longitude": 0.0, + "LocationAccuracy": null, + "YearOfSampling": null, + "DataSource": null, + "Comments": null, + "Name": "HRS", + "Children": [ + { + "$type": "Models.Soils.Physical, Models", + "Depth": [ + "0-10", + "10-20", + "20-40", + "40-60", + "60-80", + "80-100", + "100-120", + "120-140", + "140-160", + "160-180" + ], + "Thickness": [ + 100.0, + 100.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0 + ], + "ParticleSizeClay": null, + "ParticleSizeSand": null, + "ParticleSizeSilt": null, + "Rocks": null, + "Texture": null, + "BD": [ + 1.34, + 1.34, + 1.33, + 1.38, + 1.4, + 1.55, + 1.59, + 1.63, + 1.66, + 1.68 + ], + "AirDry": [ + 0.08, + 0.19, + 0.23, + 0.26, + 0.26, + 0.28, + 0.25, + 0.28, + 0.3, + 0.31 + ], + "LL15": [ + 0.226, + 0.226, + 0.258, + 0.27, + 0.268, + 0.304, + 0.335, + 0.33, + 0.32, + 0.33 + ], + "DUL": [ + 0.42, + 0.42, + 0.46, + 0.46, + 0.43, + 0.4, + 0.37, + 0.33, + 0.32, + 0.33 + ], + "SAT": [ + 0.45, + 0.45, + 0.48, + 0.47, + 0.45, + 0.41, + 0.38, + 0.37, + 0.37, + 0.36 + ], + "KS": null, + "BDMetadata": null, + "AirDryMetadata": null, + "LL15Metadata": null, + "DULMetadata": null, + "SATMetadata": null, + "KSMetadata": null, + "RocksMetadata": null, + "TextureMetadata": null, + "ParticleSizeSandMetadata": null, + "ParticleSizeSiltMetadata": null, + "ParticleSizeClayMetadata": null, + "Name": "Physical", + "Children": [ + { + "$type": "Models.Soils.SoilCrop, Models", + "LL": [ + 0.226, + 0.226, + 0.258, + 0.27, + 0.268, + 0.304, + 0.335, + 0.33, + 0.32, + 0.33 + ], + "KL": [ + 0.07, + 0.07, + 0.07, + 0.07, + 0.06, + 0.06, + 0.06, + 0.05, + 0.05, + 0.04 + ], + "XF": [ + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0 + ], + "LLMetadata": null, + "KLMetadata": null, + "XFMetadata": null, + "Name": "SorghumSoil", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.WaterModel.WaterBalance, Models", + "SummerDate": "1-Nov", + "SummerU": 1.5, + "SummerCona": 6.5, + "WinterDate": "1-Apr", + "WinterU": 1.5, + "WinterCona": 6.5, + "DiffusConst": 40.0, + "DiffusSlope": 16.0, + "Salb": 0.2, + "CN2Bare": 85.0, + "CNRed": 20.0, + "CNCov": 0.8, + "DischargeWidth": "NaN", + "CatchmentArea": "NaN", + "Thickness": [ + 100.0, + 100.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0 + ], + "SWCON": [ + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3 + ], + "KLAT": null, + "ResourceName": "WaterBalance", + "Name": "SoilWater", + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.SoilNitrogen, Models", + "fom_types": [ + "default", + "manure", + "mucuna", + "lablab", + "shemp", + "stable" + ], + "fract_carb": [ + 0.2, + 0.3, + 0.54, + 0.57, + 0.45, + 0.0 + ], + "fract_cell": [ + 0.7, + 0.3, + 0.37, + 0.37, + 0.47, + 0.1 + ], + "fract_lign": [ + 0.1, + 0.4, + 0.09, + 0.06, + 0.08, + 0.9 + ], + "NPartitionApproach": 0, + "Name": "SoilNitrogen", + "Children": [ + { + "$type": "Models.Soils.SoilNitrogenNO3, Models", + "Name": "NO3", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.SoilNitrogenNH4, Models", + "Name": "NH4", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.SoilNitrogenUrea, Models", + "Name": "Urea", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.Organic, Models", + "Depth": [ + "0-10", + "10-20", + "20-40", + "40-60", + "60-80", + "80-100", + "100-120", + "120-140", + "140-160", + "160-180" + ], + "FOMCNRatio": 50.0, + "Thickness": [ + 100.0, + 100.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0 + ], + "Carbon": [ + 1.19, + 0.59, + 0.45, + 0.3, + 0.2, + 0.16, + 0.17, + 0.17, + 0.17, + 0.17 + ], + "SoilCNRatio": [ + 12.5, + 12.5, + 12.5, + 12.5, + 12.5, + 12.5, + 12.5, + 12.5, + 12.5, + 12.5 + ], + "FBiom": [ + 0.05, + 0.02, + 0.01, + 0.01, + 0.01, + 0.01, + 0.01, + 0.05, + 0.02, + 0.01 + ], + "FInert": [ + 0.45, + 0.6, + 0.75, + 0.9, + 0.9, + 0.9, + 0.9, + 0.9, + 0.9, + 0.9 + ], + "FOM": [ + 260.58740315916066, + 220.5824745109322, + 158.0542495509277, + 113.25081857248298, + 81.14775745529565, + 58.14490899956697, + 41.66264784865344, + 29.852591664969907, + 21.390316629725067, + 15.32683160828522 + ], + "CarbonMetadata": null, + "FOMMetadata": null, + "Name": "Organic", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.Chemical, Models", + "Depth": [ + "0-10", + "10-20", + "20-40", + "40-60", + "60-80", + "80-100", + "100-120", + "120-140", + "140-160", + "160-180" + ], + "Thickness": [ + 100.0, + 100.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0 + ], + "NO3N": [ + 10.4, + 1.6329999999999996, + 1.2330000000000008, + 0.9, + 1.1, + 1.4670000000000005, + 3.6329999999999996, + 5.667000000000001, + 5.8, + 7.267000000000003 + ], + "NH4N": [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + "PH": [ + 6.3, + 6.4, + 6.5, + 6.6, + 6.6, + 6.5, + 6.5, + 6.5, + 6.5, + 6.5 + ], + "CL": null, + "EC": null, + "ESP": null, + "LabileP": null, + "UnavailableP": null, + "ECMetadata": null, + "CLMetadata": null, + "ESPMetadata": null, + "PHMetadata": null, + "Name": "Chemical", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.Sample, Models", + "Depth": [ + "0-10", + "10-20", + "20-40", + "40-60", + "60-80", + "80-100", + "100-120", + "120-140", + "140-160", + "160-180" + ], + "Thickness": [ + 100.0, + 100.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0 + ], + "NO3": null, + "NH4": null, + "LabileP": null, + "UnavailableP": null, + "SW": [ + 0.235, + 0.252, + 0.27, + 0.3, + 0.268, + 0.304, + 0.335, + 0.33, + 0.32, + 0.33 + ], + "OC": null, + "EC": null, + "CL": null, + "ESP": null, + "PH": null, + "SWUnits": 0, + "OCUnits": 0, + "PHUnits": 0, + "Name": "Initial water", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.CERESSoilTemperature, Models", + "Name": "Temperature", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Plant, Models", + "ResourceName": "Sorghum", + "Name": "Sorghum", + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Core.Simulation, Models", + "IsRunning": false, + "Descriptors": null, + "Name": "Sorghum Maize Intercrop", + "Children": [ + { + "$type": "Models.Clock, Models", + "Start": null, + "End": null, + "Name": "Clock", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Summary, Models", + "Verbosity": 100, + "Name": "Summary", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Climate.Weather, Models", + "ConstantsFile": null, + "FileName": "%root%/Examples/WeatherFiles/Gatton.met", + "ExcelWorkSheetName": "", + "Name": "Weather", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.Arbitrator.SoilArbitrator, Models", + "Name": "SoilArbitrator", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Core.Zone, Models", + "Area": 1.0, + "Slope": 0.0, + "AspectAngle": 0.0, + "Altitude": 50.0, + "Name": "Paddock", + "Children": [ + { + "$type": "Models.Report, Models", + "VariableNames": [ + "[Clock].Today", + "[Sorghum].AboveGround.Wt", + "[Sorghum].Grain.Wt", + "[Sorghum].Leaf.LAI" + ], + "EventNames": [ + "[Sorghum].Harvesting" + ], + "GroupByVariableName": null, + "Name": "SorghumHarvesting", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Report, Models", + "VariableNames": [ + "[Clock].Today", + "[Maize].AboveGround.Wt", + "[Maize].Grain.Wt", + "[Maize].Leaf.LAI" + ], + "EventNames": [ + "[Maize].Harvesting" + ], + "GroupByVariableName": null, + "Name": "MaizeHarvesting", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Manager, Models", + "Code": "using Models.PMF;\nusing Models.Core;\nusing System;\nnamespace Models\n{\n [Serializable]\n public class Script : Model\n {\n [Link] Clock Clock;\n [Link] Fertiliser Fertiliser;\n\n [Description(\"Type of fertiliser to apply? \")] \n public Fertiliser.Types FertiliserType { get; set; }\n \n [Description(\"Amount of fertiliser to be applied (kg/ha)\")]\n public double Amount { get; set; }\n \n [EventSubscribe(\"Sowing\")]\n private void OnSowing(object sender, EventArgs e)\n {\n Fertiliser.Apply(Amount: Amount, Type: FertiliserType);\n }\n }\n}\n", + "Parameters": [ + { + "Key": "FertiliserType", + "Value": "UreaN" + }, + { + "Key": "Amount", + "Value": "500" + } + ], + "Name": "Fertilise at sowing", + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Core.Folder, Models", + "ShowInDocs": true, + "GraphsPerPage": 6, + "Name": "Manager folder", + "Children": [ + { + "$type": "Models.Manager, Models", + "Code": "using Models.Interfaces;\nusing APSIM.Shared.Utilities;\nusing Models.Utilities;\nusing Models.Soils;\nusing Models.PMF;\nusing Models.Core;\nusing System;\nusing Models.Climate;\n\nnamespace Models\n{\n [Serializable]\n public class Script : Model\n {\n [Link] private Clock Clock;\n [Link] private Fertiliser Fertiliser;\n [Link] private Summary Summary;\n [Link] private Soil Soil;\n private Accumulator accumulatedRain;\n [Link]\n private ISoilWater waterBalance;\n \n [Description(\"Crop\")]\n public IPlant Crop { get; set; }\n\n [Description(\"Start of sowing window (d-mmm)\")]\n public string StartDate { get; set; }\n\n [Description(\"End of sowing window (d-mmm)\")]\n public string EndDate { get; set; }\n\n [Description(\"Minimum extractable soil water for sowing (mm)\")]\n public double MinESW { get; set; }\n\n [Description(\"Accumulated rainfall required for sowing (mm)\")]\n public double MinRain { get; set; }\n\n [Description(\"Duration of rainfall accumulation (d)\")]\n public int RainDays { get; set; }\n\n [Display(Type = DisplayType.CultivarName)]\n [Description(\"Cultivar to be sown\")]\n public string CultivarName { get; set; }\n\n [Description(\"Sowing depth (mm)\")]\n public double SowingDepth { get; set; }\n\n [Description(\"Row spacing (mm)\")]\n public double RowSpacing { get; set; }\n\n [Description(\"Plant population (/m2)\")]\n public double Population { get; set; }\n \n \n [EventSubscribe(\"StartOfSimulation\")]\n private void OnSimulationCommencing(object sender, EventArgs e)\n {\n accumulatedRain = new Accumulator(this, \"[Weather].Rain\", RainDays);\n }\n\n [EventSubscribe(\"DoManagement\")]\n private void OnDoManagement(object sender, EventArgs e)\n {\n accumulatedRain.Update();\n \n if (DateUtilities.WithinDates(StartDate, Clock.Today, EndDate) &&\n !Crop.IsAlive &&\n MathUtilities.Sum(waterBalance.ESW) > MinESW &&\n accumulatedRain.Sum > MinRain)\n {\n Crop.Sow(population: Population, cultivar: CultivarName, depth: SowingDepth, rowSpacing: RowSpacing); \n }\n }\n }\n}\n", + "Parameters": [ + { + "Key": "Crop", + "Value": "[Sorghum]" + }, + { + "Key": "StartDate", + "Value": "1-nov" + }, + { + "Key": "EndDate", + "Value": "10-jan" + }, + { + "Key": "MinESW", + "Value": "100" + }, + { + "Key": "MinRain", + "Value": "25" + }, + { + "Key": "RainDays", + "Value": "7" + }, + { + "Key": "CultivarName", + "Value": "Buster" + }, + { + "Key": "SowingDepth", + "Value": "30" + }, + { + "Key": "RowSpacing", + "Value": "500" + }, + { + "Key": "Population", + "Value": "6" + } + ], + "Name": "SowSorghum", + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Manager, Models", + "Code": "using Models.Interfaces;\nusing APSIM.Shared.Utilities;\nusing Models.Utilities;\nusing Models.Soils;\nusing Models.PMF;\nusing Models.Core;\nusing System;\nusing Models.Climate;\n\nnamespace Models\n{\n [Serializable]\n public class Script : Model\n {\n [Link] private Clock Clock;\n [Link] private Fertiliser Fertiliser;\n [Link] private Summary Summary;\n [Link] private Soil Soil;\n private Accumulator accumulatedRain;\n [Link]\n private ISoilWater waterBalance;\n \n [Description(\"Crop\")]\n public IPlant Crop { get; set; }\n\n [Description(\"Start of sowing window (d-mmm)\")]\n public string StartDate { get; set; }\n\n [Description(\"End of sowing window (d-mmm)\")]\n public string EndDate { get; set; }\n\n [Description(\"Minimum extractable soil water for sowing (mm)\")]\n public double MinESW { get; set; }\n\n [Description(\"Accumulated rainfall required for sowing (mm)\")]\n public double MinRain { get; set; }\n\n [Description(\"Duration of rainfall accumulation (d)\")]\n public int RainDays { get; set; }\n\n [Display(Type = DisplayType.CultivarName)]\n [Description(\"Cultivar to be sown\")]\n public string CultivarName { get; set; }\n\n [Description(\"Sowing depth (mm)\")]\n public double SowingDepth { get; set; }\n\n [Description(\"Row spacing (mm)\")]\n public double RowSpacing { get; set; }\n\n [Description(\"Plant population (/m2)\")]\n public double Population { get; set; }\n \n \n [EventSubscribe(\"StartOfSimulation\")]\n private void OnSimulationCommencing(object sender, EventArgs e)\n {\n accumulatedRain = new Accumulator(this, \"[Weather].Rain\", RainDays);\n }\n\n [EventSubscribe(\"DoManagement\")]\n private void OnDoManagement(object sender, EventArgs e)\n {\n accumulatedRain.Update();\n \n if (DateUtilities.WithinDates(StartDate, Clock.Today, EndDate) &&\n !Crop.IsAlive &&\n MathUtilities.Sum(waterBalance.ESW) > MinESW &&\n accumulatedRain.Sum > MinRain)\n {\n Crop.Sow(population: Population, cultivar: CultivarName, depth: SowingDepth, rowSpacing: RowSpacing); \n }\n }\n }\n}\n", + "Parameters": [ + { + "Key": "Crop", + "Value": "[Maize]" + }, + { + "Key": "StartDate", + "Value": "1-nov" + }, + { + "Key": "EndDate", + "Value": "10-jan" + }, + { + "Key": "MinESW", + "Value": "100" + }, + { + "Key": "MinRain", + "Value": "25" + }, + { + "Key": "RainDays", + "Value": "7" + }, + { + "Key": "CultivarName", + "Value": "Katumani" + }, + { + "Key": "SowingDepth", + "Value": "30" + }, + { + "Key": "RowSpacing", + "Value": "500" + }, + { + "Key": "Population", + "Value": "6" + } + ], + "Name": "SowMaize", + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Manager, Models", + "Code": "using Models.PMF;\r\nusing Models.Core;\r\nusing System;\r\nusing System.Collections.Generic;\r\n\r\nnamespace Models\r\n{\r\n [Serializable]\r\n\r\n public class Script : Model\r\n {\r\n [Link]\r\n private Clock clock;\r\n\r\n [Link]\r\n private List plants;\r\n\r\n [EventSubscribe(\"DoManagement\")]\r\n private void OnDoCalculations(object sender, EventArgs e)\r\n {\r\n \tforeach (IPlant plant in plants)\r\n \t{\r\n \tif (plant.IsReadyForHarvesting)\r\n \t{\r\n \t plant.Harvest();\r\n \t plant.EndCrop();\r\n \t}\r\n }\r\n }\r\n }\r\n}\r\n", + "Parameters": [], + "Name": "Harvesting rule", + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Manager, Models", + "Code": "using Models.Interfaces;\nusing System;\nusing Models.Core;\nusing Models.PMF;\nusing Models.Soils;\nusing APSIM.Shared.Utilities;\n\nnamespace Models\n{\n [Serializable] \n public class Script : Model\n {\n [Link] private ISummary summary;\n [Link] private Irrigation Irrigation;\n [Link] private Clock Clock;\n [Link] private Soil Soil;\n [Link(IsOptional = true)] private IPlant existingCrop;\n private DateTime StartDate;\n private DateTime EndDate;\n private double TopDUL;\n private double TopLL;\n private int nLayers;\n [Link]\n private IPhysical soilPhysical;\n [Link]\n private ISoilWater waterBalance;\n //Communication to other modules\n \n //User inputs from properties tab\n [Description(\"Turn irrigation on?\")]\n public bool allowIrrigation { get; set; }\n [Description(\"Start of irrigation season (dd-MMM)\")]\n public string seasonStart { get; set; }\n [Description(\"End of irrigation season (dd-MMM)\")]\n public string seasonEnd { get; set; }\n [Description(\"Season allocation (mm)\")]\n public double seasonsAllocation { get; set; }\n [Description(\"Deficit to trigger irrigation (% PAWC)\")]\n public double triggerDeficit { get; set; }\n [Description(\"Deficit to stop irrigaton (% PAWC)\")]\n public double targetDeficit { get; set; }\n [Description(\"Minimum days for irrigation to return\")]\n public double returndays { get; set; }\n [Description(\"Maximum irrigation application (mm/day)\")]\n public double maximumAmount { get; set; }\n [Description(\"Depth to calculate PAWC (mm)\")]\n public double depthPAWC { get; set; }\n\n //Class members\n public double TopSWdeficit { get; set; }\n public double TopSWC { get; set; }\n public double DaysSinceIrrigation { get; set; }\n public double AmountToApply { get; set; }\n public double SeasonAppliedAmount { get; set; }\n \n private bool IrrigationIsAllowed { get; set; }\n private bool SeasonIsOpen { get; set; }\n private bool CropIsActive { get; set; }\n private bool IrrigatorIsAvailable { get; set; }\n private bool SoilIsDry { get; set; }\n\n \n //Calculate static soil variables\n [EventSubscribe(\"StartOfSimulation\")]\n private void OnStartOfSimulation(object sender, EventArgs e)\n { \n //Set the season dates\n StartDate = DateTime.Parse(seasonStart + \"-\" + Clock.Today.Year.ToString());\n EndDate = DateTime.Parse(seasonEnd + \"-\" + Clock.Today.Year.ToString());\n \n //Can we irrigate at all?\n IrrigationIsAllowed = false; \n if (allowIrrigation)\n IrrigationIsAllowed = true; \n\n //Calculate soil water variables\n double depthFromSurface = 0.0;\n double fracLayer = 0.0;\n nLayers = soilPhysical.Thickness.Length;\n for (int layer = 0; layer < nLayers; layer++)\n {\n fracLayer = Math.Min(1.0, (depthPAWC - depthFromSurface) / soilPhysical.Thickness[layer]);\n TopLL += soilPhysical.LL15mm[layer] * fracLayer;\n TopDUL += soilPhysical.DULmm[layer] * fracLayer;\n depthFromSurface += soilPhysical.Thickness[layer];\n if (depthFromSurface >= depthPAWC)\n layer = nLayers;\n }\n }\n \n //Determine daily requirement for irrigation\n [EventSubscribe(\"StartOfDay\")]\n private void OnStartOfDay(object sender, EventArgs e)\n {\n //Can we irrigate today? \n SeasonIsOpen = isBetween(Clock.Today, StartDate, EndDate);\n if (!SeasonIsOpen)\n SeasonAppliedAmount = 0;\n\n //Is there a crop in the ground that needs irrigation?\n CropIsActive = false;\n if ((existingCrop != null) && (existingCrop.IsAlive))\n CropIsActive = true;\n //if ((existingCrop.Phenology.Stage >= 3.0) && (existingCrop.Phenology.Stage < 6.0))\n \n //Is the irrigator available?\n IrrigatorIsAvailable = false;\n DaysSinceIrrigation += 1;\n if (DaysSinceIrrigation >= returndays)\n IrrigatorIsAvailable = true;\n \n //Is the soil dry enough to require irrigation?\n SoilIsDry = false;\n double depthFromSurface = 0.0;\n double fracLayer = 0.0;\n TopSWC = 0.0;\n for (int layer = 0; layer < nLayers; layer++)\n //for (int layer = 0; depthFromSurface < depthPAWC + soilPhysical.Thickness[layer]; layer++)\n {\n fracLayer = Math.Min(1.0, (depthPAWC - depthFromSurface) / soilPhysical.Thickness[layer]);\n TopSWC += waterBalance.SWmm[layer] * fracLayer;\n depthFromSurface += soilPhysical.Thickness[layer];\n if (depthFromSurface >= depthPAWC)\n layer = nLayers;\n }\n \n TopSWdeficit = TopSWC - TopDUL;\n if (Math.Max(0.0, -TopSWdeficit) >= (TopDUL - TopLL) * (100 - triggerDeficit) / 100)\n SoilIsDry = true;\n \n //Are all the conditions ratifying irrigation\n if (IrrigationIsAllowed && SeasonIsOpen && /*CropIsActive &&*/ IrrigatorIsAvailable && SoilIsDry)\n {\n //Lets bloody well irrigate then!!!!\n AmountToApply = TopDUL * targetDeficit / 100 - TopSWC;\n AmountToApply = Math.Max(0.0, Math.Min(AmountToApply, seasonsAllocation - SeasonAppliedAmount));\n AmountToApply = Math.Min(AmountToApply,maximumAmount);\n Irrigation.Apply(AmountToApply);\n DaysSinceIrrigation = 0;\n SeasonAppliedAmount += AmountToApply;\n }\n }\n \n ///Checks whether theDate is between iniDate and endDate (non-year specific)\n private bool isBetween(DateTime theDay, DateTime iniDate, DateTime endDate)\n {\n bool result = false;\n if (iniDate.DayOfYear < endDate.DayOfYear)\n {\n // period is within one year, ex: summer in the northern hemisphere\n if ((theDay.DayOfYear >= iniDate.DayOfYear) && (theDay.DayOfYear <= endDate.DayOfYear))\n result = true;\n }\n else\n {\n // period goes over the end of the year, ex: summer in the southern hemisphere\n if ((theDay.DayOfYear >= iniDate.DayOfYear) || (theDay.DayOfYear <= endDate.DayOfYear))\n result = true;\n }\n \n return result;\n }\n }\n}\n", + "Parameters": [ + { + "Key": "allowIrrigation", + "Value": "True" + }, + { + "Key": "seasonStart", + "Value": "1-sep" + }, + { + "Key": "seasonEnd", + "Value": "30-mar" + }, + { + "Key": "seasonsAllocation", + "Value": "10000" + }, + { + "Key": "triggerDeficit", + "Value": "50" + }, + { + "Key": "targetDeficit", + "Value": "95" + }, + { + "Key": "returndays", + "Value": "3" + }, + { + "Key": "maximumAmount", + "Value": "30" + }, + { + "Key": "depthPAWC", + "Value": "650" + }, + { + "Key": "TopSWdeficit", + "Value": "0" + }, + { + "Key": "TopSWC", + "Value": "0" + }, + { + "Key": "DaysSinceIrrigation", + "Value": "0" + }, + { + "Key": "AmountToApply", + "Value": "0" + }, + { + "Key": "SeasonAppliedAmount", + "Value": "0" + } + ], + "Name": "AutomaticIrrigation", + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Operations, Models", + "Operation": [ + { + "$type": "Models.Operation, Models", + "Date": "1997-01-09", + "Action": "[Irrigation].Apply(52);", + "Enabled": true + }, + { + "$type": "Models.Operation, Models", + "Date": "1997-01-16", + "Action": "[Irrigation].Apply(36);", + "Enabled": true + }, + { + "$type": "Models.Operation, Models", + "Date": "1997-01-21", + "Action": "[Irrigation].Apply(18);", + "Enabled": true + }, + { + "$type": "Models.Operation, Models", + "Date": "1997-01-29", + "Action": "[Irrigation].Apply(20);", + "Enabled": true + }, + { + "$type": "Models.Operation, Models", + "Date": "1997-02-07", + "Action": "[Irrigation].Apply(14);", + "Enabled": true + }, + { + "$type": "Models.Operation, Models", + "Date": "1997-03-13", + "Action": "[Irrigation].Apply(30);", + "Enabled": true + }, + { + "$type": "Models.Operation, Models", + "Date": "1997-03-21", + "Action": "[Irrigation].Apply(45);", + "Enabled": true + }, + { + "$type": "Models.Operation, Models", + "Date": "1997-04-10", + "Action": "[Irrigation].Apply(27);", + "Enabled": true + }, + { + "$type": "Models.Operation, Models", + "Date": "1997-04-17", + "Action": "[Irrigation].Apply(42);", + "Enabled": true + }, + { + "$type": "Models.Operation, Models", + "Date": "1997-05-02", + "Action": "[Irrigation].Apply(27);", + "Enabled": true + }, + { + "$type": "Models.Operation, Models", + "Date": "1996-12-20", + "Action": "[Fertiliser].Apply(33, Fertiliser.Types.NO3N, 50);", + "Enabled": true + }, + { + "$type": "Models.Operation, Models", + "Date": "1996-12-23", + "Action": "[Fertiliser].Apply(0, Fertiliser.Types.NO3N, 50);", + "Enabled": true + }, + { + "$type": "Models.Operation, Models", + "Date": "1996-12-23", + "Action": "[Fertiliser].Apply(119, Fertiliser.Types.NO3N, 50);", + "Enabled": true + }, + { + "$type": "Models.Operation, Models", + "Date": "1997-02-12", + "Action": "[Fertiliser].Apply(59, Fertiliser.Types.NO3N, 50);", + "Enabled": true + }, + { + "$type": "Models.Operation, Models", + "Date": "1997-03-21", + "Action": "[Fertiliser].Apply(59, Fertiliser.Types.NO3N, 50);", + "Enabled": true + } + ], + "Name": "Operations", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Irrigation, Models", + "Name": "Irrigation", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Fertiliser, Models", + "ResourceName": "Fertiliser", + "Name": "Fertiliser", + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.MicroClimate, Models", + "a_interception": 0.0, + "b_interception": 1.0, + "c_interception": 0.0, + "d_interception": 0.0, + "SoilHeatFluxFraction": 0.4, + "MinimumHeightDiffForNewLayer": 0.0, + "NightInterceptionFraction": 0.5, + "ReferenceHeight": 2.0, + "Name": "MicroClimate", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.Soil, Models", + "RecordNumber": 0, + "ASCOrder": null, + "ASCSubOrder": null, + "SoilType": "HMM", + "LocalName": null, + "Site": "HRS", + "NearestTown": "Unknown", + "Region": "SE Queensland", + "State": null, + "Country": null, + "NaturalVegetation": "Unknown", + "ApsoilNumber": null, + "Latitude": 0.0, + "Longitude": 0.0, + "LocationAccuracy": null, + "YearOfSampling": null, + "DataSource": null, + "Comments": null, + "Name": "HRS", + "Children": [ + { + "$type": "Models.Soils.Physical, Models", + "Depth": [ + "0-10", + "10-20", + "20-40", + "40-60", + "60-80", + "80-100", + "100-120", + "120-140", + "140-160", + "160-180" + ], + "Thickness": [ + 100.0, + 100.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0 + ], + "ParticleSizeClay": null, + "ParticleSizeSand": null, + "ParticleSizeSilt": null, + "Rocks": null, + "Texture": null, + "BD": [ + 1.34, + 1.34, + 1.33, + 1.38, + 1.4, + 1.55, + 1.59, + 1.63, + 1.66, + 1.68 + ], + "AirDry": [ + 0.08, + 0.19, + 0.23, + 0.26, + 0.26, + 0.28, + 0.25, + 0.28, + 0.3, + 0.31 + ], + "LL15": [ + 0.226, + 0.226, + 0.258, + 0.27, + 0.268, + 0.304, + 0.335, + 0.33, + 0.32, + 0.33 + ], + "DUL": [ + 0.42, + 0.42, + 0.46, + 0.46, + 0.43, + 0.4, + 0.37, + 0.33, + 0.32, + 0.33 + ], + "SAT": [ + 0.45, + 0.45, + 0.48, + 0.47, + 0.45, + 0.41, + 0.38, + 0.37, + 0.37, + 0.36 + ], + "KS": null, + "BDMetadata": null, + "AirDryMetadata": null, + "LL15Metadata": null, + "DULMetadata": null, + "SATMetadata": null, + "KSMetadata": null, + "RocksMetadata": null, + "TextureMetadata": null, + "ParticleSizeSandMetadata": null, + "ParticleSizeSiltMetadata": null, + "ParticleSizeClayMetadata": null, + "Name": "Physical", + "Children": [ + { + "$type": "Models.Soils.SoilCrop, Models", + "LL": [ + 0.226, + 0.226, + 0.258, + 0.27, + 0.268, + 0.304, + 0.335, + 0.33, + 0.32, + 0.33 + ], + "KL": [ + 0.07, + 0.07, + 0.07, + 0.07, + 0.06, + 0.06, + 0.06, + 0.05, + 0.05, + 0.04 + ], + "XF": [ + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0 + ], + "LLMetadata": null, + "KLMetadata": null, + "XFMetadata": null, + "Name": "SorghumSoil", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.SoilCrop, Models", + "LL": [ + 0.226, + 0.226, + 0.258, + 0.27, + 0.268, + 0.304, + 0.335, + 0.33, + 0.32, + 0.33 + ], + "KL": [ + 0.07, + 0.07, + 0.07, + 0.07, + 0.06, + 0.06, + 0.06, + 0.05, + 0.05, + 0.04 + ], + "XF": [ + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0 + ], + "LLMetadata": null, + "KLMetadata": null, + "XFMetadata": null, + "Name": "MaizeSoil", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.WaterModel.WaterBalance, Models", + "SummerDate": "1-Nov", + "SummerU": 1.5, + "SummerCona": 6.5, + "WinterDate": "1-Apr", + "WinterU": 1.5, + "WinterCona": 6.5, + "DiffusConst": 40.0, + "DiffusSlope": 16.0, + "Salb": 0.2, + "CN2Bare": 85.0, + "CNRed": 20.0, + "CNCov": 0.8, + "DischargeWidth": "NaN", + "CatchmentArea": "NaN", + "Thickness": [ + 100.0, + 100.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0 + ], + "SWCON": [ + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3 + ], + "KLAT": null, + "ResourceName": "WaterBalance", + "Name": "SoilWater", + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.SoilNitrogen, Models", + "fom_types": [ + "default", + "manure", + "mucuna", + "lablab", + "shemp", + "stable" + ], + "fract_carb": [ + 0.2, + 0.3, + 0.54, + 0.57, + 0.45, + 0.0 + ], + "fract_cell": [ + 0.7, + 0.3, + 0.37, + 0.37, + 0.47, + 0.1 + ], + "fract_lign": [ + 0.1, + 0.4, + 0.09, + 0.06, + 0.08, + 0.9 + ], + "NPartitionApproach": 0, + "Name": "SoilNitrogen", + "Children": [ + { + "$type": "Models.Soils.SoilNitrogenNO3, Models", + "Name": "NO3", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.SoilNitrogenNH4, Models", + "Name": "NH4", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.SoilNitrogenUrea, Models", + "Name": "Urea", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.Organic, Models", + "Depth": [ + "0-10", + "10-20", + "20-40", + "40-60", + "60-80", + "80-100", + "100-120", + "120-140", + "140-160", + "160-180" + ], + "FOMCNRatio": 50.0, + "Thickness": [ + 100.0, + 100.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0 + ], + "Carbon": [ + 1.19, + 0.59, + 0.45, + 0.3, + 0.2, + 0.16, + 0.17, + 0.17, + 0.17, + 0.17 + ], + "SoilCNRatio": [ + 12.5, + 12.5, + 12.5, + 12.5, + 12.5, + 12.5, + 12.5, + 12.5, + 12.5, + 12.5 + ], + "FBiom": [ + 0.05, + 0.02, + 0.01, + 0.01, + 0.01, + 0.01, + 0.01, + 0.05, + 0.02, + 0.01 + ], + "FInert": [ + 0.45, + 0.6, + 0.75, + 0.9, + 0.9, + 0.9, + 0.9, + 0.9, + 0.9, + 0.9 + ], + "FOM": [ + 260.58740315916066, + 220.5824745109322, + 158.0542495509277, + 113.25081857248298, + 81.14775745529565, + 58.14490899956697, + 41.66264784865344, + 29.852591664969907, + 21.390316629725067, + 15.32683160828522 + ], + "CarbonMetadata": null, + "FOMMetadata": null, + "Name": "Organic", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.Chemical, Models", + "Depth": [ + "0-10", + "10-20", + "20-40", + "40-60", + "60-80", + "80-100", + "100-120", + "120-140", + "140-160", + "160-180" + ], + "Thickness": [ + 100.0, + 100.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0 + ], + "NO3N": [ + 10.4, + 1.6329999999999996, + 1.2330000000000008, + 0.9, + 1.1, + 1.4670000000000005, + 3.6329999999999996, + 5.667000000000001, + 5.8, + 7.267000000000003 + ], + "NH4N": [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + "PH": [ + 6.3, + 6.4, + 6.5, + 6.6, + 6.6, + 6.5, + 6.5, + 6.5, + 6.5, + 6.5 + ], + "CL": null, + "EC": null, + "ESP": null, + "LabileP": null, + "UnavailableP": null, + "ECMetadata": null, + "CLMetadata": null, + "ESPMetadata": null, + "PHMetadata": null, + "Name": "Chemical", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.Sample, Models", + "Depth": [ + "0-10", + "10-20", + "20-40", + "40-60", + "60-80", + "80-100", + "100-120", + "120-140", + "140-160", + "160-180" + ], + "Thickness": [ + 100.0, + 100.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0 + ], + "NO3": null, + "NH4": null, + "LabileP": null, + "UnavailableP": null, + "SW": [ + 0.235, + 0.252, + 0.27, + 0.3, + 0.268, + 0.304, + 0.335, + 0.33, + 0.32, + 0.33 + ], + "OC": null, + "EC": null, + "CL": null, + "ESP": null, + "PH": null, + "SWUnits": 0, + "OCUnits": 0, + "PHUnits": 0, + "Name": "Initial water", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.CERESSoilTemperature, Models", + "Name": "Temperature", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Plant, Models", + "ResourceName": "Sorghum", + "Name": "Sorghum", + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Plant, Models", + "ResourceName": "Maize", + "Name": "Maize", + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Surface.SurfaceOrganicMatter, Models", + "InitialResidueName": "wheat_stubble", + "InitialResidueType": "wheat", + "InitialResidueMass": 0.0, + "InitialStandingFraction": 0.0, + "InitialCPR": 0.0, + "InitialCNR": 80.0, + "ResourceName": "SurfaceOrganicMatter", + "Name": "SurfaceOrganicMatter", + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Core.Folder, Models", + "ShowInDocs": true, + "GraphsPerPage": 6, + "Name": "Graphs", + "Children": [ + { + "$type": "Models.Graph, Models", + "Caption": null, + "Axis": [ + { + "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", + "Title": null, + "Position": 3, + "Inverted": false, + "CrossesAtZero": false, + "Minimum": null, + "Maximum": null, + "Interval": null + }, + { + "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", + "Title": null, + "Position": 0, + "Inverted": false, + "CrossesAtZero": false, + "Minimum": null, + "Maximum": null, + "Interval": null + } + ], + "LegendPosition": 0, + "LegendOrientation": 0, + "AnnotationLocation": 0, + "DisabledSeries": [], + "LegendOutsideGraph": false, + "Name": "Yield", + "Children": [ + { + "$type": "Models.Series, Models", + "Type": 1, + "XAxis": 3, + "YAxis": 0, + "ColourArgb": -1663232, + "FactorToVaryColours": null, + "FactorToVaryMarkers": null, + "FactorToVaryLines": null, + "Marker": 0, + "MarkerSize": 0, + "Line": 0, + "LineThickness": 0, + "TableName": "SorghumHarvesting", + "XFieldName": "Clock.Today", + "YFieldName": "Sorghum.Grain.Wt", + "X2FieldName": null, + "Y2FieldName": null, + "ShowInLegend": true, + "IncludeSeriesNameInLegend": false, + "Cumulative": false, + "CumulativeX": false, + "Filter": null, + "Name": "SorghumYield", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Series, Models", + "Type": 1, + "XAxis": 3, + "YAxis": 0, + "ColourArgb": -11094807, + "FactorToVaryColours": null, + "FactorToVaryMarkers": null, + "FactorToVaryLines": null, + "Marker": 0, + "MarkerSize": 0, + "Line": 0, + "LineThickness": 0, + "TableName": "MaizeHarvesting", + "XFieldName": "Clock.Today", + "YFieldName": "Maize.Grain.Wt", + "X2FieldName": null, + "Y2FieldName": null, + "ShowInLegend": true, + "IncludeSeriesNameInLegend": false, + "Cumulative": false, + "CumulativeX": false, + "Filter": null, + "Name": "MaizeYield", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Graph, Models", + "Caption": null, + "Axis": [ + { + "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", + "Title": null, + "Position": 3, + "Inverted": false, + "CrossesAtZero": false, + "Minimum": null, + "Maximum": null, + "Interval": null + }, + { + "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", + "Title": null, + "Position": 0, + "Inverted": false, + "CrossesAtZero": false, + "Minimum": null, + "Maximum": null, + "Interval": null + } + ], + "LegendPosition": 0, + "LegendOrientation": 0, + "AnnotationLocation": 0, + "DisabledSeries": [], + "LegendOutsideGraph": false, + "Name": "Biomass", + "Children": [ + { + "$type": "Models.Series, Models", + "Type": 1, + "XAxis": 3, + "YAxis": 0, + "ColourArgb": -1663232, + "FactorToVaryColours": null, + "FactorToVaryMarkers": null, + "FactorToVaryLines": null, + "Marker": 0, + "MarkerSize": 0, + "Line": 0, + "LineThickness": 0, + "TableName": "SorghumHarvesting", + "XFieldName": "Clock.Today", + "YFieldName": "Sorghum.AboveGround.Wt", + "X2FieldName": null, + "Y2FieldName": null, + "ShowInLegend": true, + "IncludeSeriesNameInLegend": false, + "Cumulative": false, + "CumulativeX": false, + "Filter": null, + "Name": "SorghumWt", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Series, Models", + "Type": 1, + "XAxis": 3, + "YAxis": 0, + "ColourArgb": -11094807, + "FactorToVaryColours": null, + "FactorToVaryMarkers": null, + "FactorToVaryLines": null, + "Marker": 0, + "MarkerSize": 0, + "Line": 0, + "LineThickness": 0, + "TableName": "MaizeHarvesting", + "XFieldName": "Clock.Today", + "YFieldName": "Maize.AboveGround.Wt", + "X2FieldName": null, + "Y2FieldName": null, + "ShowInLegend": true, + "IncludeSeriesNameInLegend": false, + "Cumulative": false, + "CumulativeX": false, + "Filter": null, + "Name": "MaizeWt", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Factorial.Experiment, Models", + "DisabledSimNames": [ + "RowConfigurationRow250Skip2", + "RowConfigurationRow250Skip1", + "RowConfigurationRowSpacing250RowConfiguration2", + "RowConfigurationRowSpacing250RowConfiguration1", + "RowConfigurationRowSpacing250RowConfiguration0" + ], + "Name": "RowConfiguration", + "Children": [ + { + "$type": "Models.Factorial.Factors, Models", + "Name": "Factors", + "Children": [ + { + "$type": "Models.Factorial.Permutation, Models", + "Name": "Permutation", + "Children": [ + { + "$type": "Models.Factorial.Factor, Models", + "Specification": "[SowingRule].Script.RowSpacing = 250, 500, 600, 750, 1000, 1200, 1500", + "Name": "Row", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Factorial.Factor, Models", + "Specification": "[SowingRule].Script.RowConfiguration = 0,1,2", + "Name": "Skip", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Core.Simulation, Models", + "IsRunning": false, + "Descriptors": null, + "Name": "RowConfigurationBase", + "Children": [ + { + "$type": "Models.Clock, Models", + "Start": "1995-10-01T00:00:00", + "End": "1996-01-01T00:00:00", + "Name": "Clock", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Summary, Models", + "Verbosity": 100, + "Name": "Summary", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Climate.Weather, Models", + "ConstantsFile": null, + "FileName": "%root%/Examples/WeatherFiles/Dalby.met", + "ExcelWorkSheetName": "", + "Name": "Weather", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.Arbitrator.SoilArbitrator, Models", + "Name": "SoilArbitrator", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Core.Zone, Models", + "Area": 1.0, + "Slope": 0.0, + "AspectAngle": 0.0, + "Altitude": 50.0, + "Name": "Paddock", + "Children": [ + { + "$type": "Models.Report, Models", + "VariableNames": [ + "[Clock].Today", + "[Sorghum].AboveGround.Wt", + "[Sorghum].Grain.Wt", + "[Sorghum].Leaf.LAI", + "[Sorghum].SowingData.SkipDensityScale", + "[Sorghum].Leaf.CoverGreen", + "[Sorghum].Phenology.Stage" + ], + "EventNames": [ + "[Sorghum].Flowering" + ], + "GroupByVariableName": null, + "Name": "Report", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Manager, Models", + "Code": "using Models.PMF;\nusing Models.Core;\nusing System;\nnamespace Models\n{\n [Serializable]\n public class Script : Model\n {\n [Link] Clock Clock;\n [Link] Fertiliser Fertiliser;\n \n [Description(\"Crop to be fertilised\")]\n public IPlant Crop { get; set; }\n\n [Description(\"Type of fertiliser to apply? \")] \n public Fertiliser.Types FertiliserType { get; set; }\n \n [Description(\"Amount of fertiliser to be applied (kg/ha)\")]\n public double Amount { get; set; }\n \n [EventSubscribe(\"Sowing\")]\n private void OnSowing(object sender, EventArgs e)\n {\n Model crop = sender as Model;\n if (Crop != null && crop.Name.ToLower() == (Crop as IModel).Name.ToLower())\n Fertiliser.Apply(Amount: Amount, Type: FertiliserType);\n }\n }\n}\n", + "Parameters": [ + { + "Key": "Crop", + "Value": "[Sorghum]" + }, + { + "Key": "FertiliserType", + "Value": "UreaN" + }, + { + "Key": "Amount", + "Value": "180" + } + ], + "Name": "SowingFertiliser", + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Core.Folder, Models", + "ShowInDocs": true, + "GraphsPerPage": 6, + "Name": "Manager folder", + "Children": [ + { + "$type": "Models.Manager, Models", + "Code": "using APSIM.Shared.Utilities;\r\nusing Models.PMF;\r\nusing Models.Core;\r\nusing System;\r\n\r\nnamespace Models\r\n{\r\n [Serializable]\r\n public class Script : Model\r\n {\r\n [Description(\"Enter sowing date (dd/mm/yyyy) : \")]\r\n public DateTime Date { get; set; }\r\n\r\n [Description(\"Enter sowing density (plants/m2) : \")]\r\n public double Density { get; set; }\r\n\r\n [Description(\"Enter sowing depth (mm) : \")]\r\n public double Depth { get; set; }\r\n\r\n [Description(\"Enter cultivar : \")]\r\n [Display(Type = DisplayType.CultivarName)]\r\n public string Cultivar { get; set; } // QL41xQL36\r\n\r\n [Description(\"Enter row spacing (mm) : \")]\r\n public double RowSpacing { get; set; }\r\n\r\n [Description(\"Enter skip row configuration : \")]\r\n public RowConfigurationType RowConfiguration { get; set; }\r\n\r\n [Description(\"Enter Fertile Tiller No. : \")]\r\n public double Ftn { get; set; }\r\n\r\n public enum RowConfigurationType \r\n {\r\n solid, single, _double /*replaces double*/\r\n }\r\n\r\n [Link]\r\n private Zone paddock;\r\n\r\n [Link]\r\n private Clock clock;\r\n\r\n [Link]\r\n private IPlant crop;\r\n\r\n [EventSubscribe(\"DoManagement\")]\r\n private void OnDoManagement(object sender, EventArgs e)\r\n {\r\n if (clock.Today == Date /* && isFallow */)\r\n {\r\n double population = Density * paddock.Area;\r\n crop.Sow(Cultivar, population, Depth, RowSpacing, budNumber: Ftn, rowConfig: (double)RowConfiguration + 1);\r\n /*\r\n if (paddock_is_fallow() = 1 and today = date('[date]')) then\r\n [crop] sow plants =[density], sowing_depth = [depth], cultivar = [cultivar], row_spacing = [row_spacing], skip = [RowConfiguration], tiller_no_fertile = [ftn] ()\r\n endif\r\n */\r\n }\r\n }\r\n }\r\n}\r\n", + "Parameters": [ + { + "Key": "Date", + "Value": "10/01/1995 00:00:00" + }, + { + "Key": "Density", + "Value": "12" + }, + { + "Key": "Depth", + "Value": "20" + }, + { + "Key": "Cultivar", + "Value": "Buster" + }, + { + "Key": "RowSpacing", + "Value": "500" + }, + { + "Key": "RowConfiguration", + "Value": "solid" + }, + { + "Key": "Ftn", + "Value": "0" + } + ], + "Name": "SowingRule", + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Manager, Models", + "Code": "using Models.PMF;\r\nusing Models.Core;\r\nusing System;\r\n\r\nnamespace Models\r\n{\r\n [Serializable]\r\n\r\n public class Script : Model\r\n {\r\n [Link]\r\n private Clock clock;\r\n\r\n [Link]\r\n private IPlant crop;\r\n\r\n [EventSubscribe(\"DoManagement\")]\r\n private void OnDoCalculations(object sender, EventArgs e)\r\n {\r\n if (crop.IsReadyForHarvesting)\r\n {\r\n crop.Harvest();\r\n crop.EndCrop();\r\n }\n \r\n /*\r\n \r\n\r\n if [crop].StageName = 'harvest_ripe' or [crop].plant_status = 'dead' then\r\n [crop] harvest\r\n [crop] end_crop\r\n endif\r\n\r\n \r\n */\r\n }\r\n }\r\n}\r\n", + "Parameters": [], + "Name": "Harvesting rule", + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Manager, Models", + "Code": "using Models.Interfaces;\nusing System;\nusing Models.Core;\nusing Models.PMF;\nusing Models.Soils;\nusing APSIM.Shared.Utilities;\n\nnamespace Models\n{\n [Serializable] \n public class Script : Model\n {\n [Link] private ISummary summary;\n [Link] private Irrigation Irrigation;\n [Link] private Clock Clock;\n [Link] private Soil Soil;\n [Link(IsOptional = true)] private IPlant existingCrop;\n private DateTime StartDate;\n private DateTime EndDate;\n private double TopDUL;\n private double TopLL;\n private int nLayers;\n [Link]\n private IPhysical soilPhysical;\n [Link]\n private ISoilWater waterBalance;\n //Communication to other modules\n \n //User inputs from properties tab\n [Description(\"Turn irrigation on?\")]\n public bool allowIrrigation { get; set; }\n [Description(\"Start of irrigation season (dd-MMM)\")]\n public string seasonStart { get; set; }\n [Description(\"End of irrigation season (dd-MMM)\")]\n public string seasonEnd { get; set; }\n [Description(\"Season allocation (mm)\")]\n public double seasonsAllocation { get; set; }\n [Description(\"Deficit to trigger irrigation (% PAWC)\")]\n public double triggerDeficit { get; set; }\n [Description(\"Deficit to stop irrigaton (% PAWC)\")]\n public double targetDeficit { get; set; }\n [Description(\"Minimum days for irrigation to return\")]\n public double returndays { get; set; }\n [Description(\"Maximum irrigation application (mm/day)\")]\n public double maximumAmount { get; set; }\n [Description(\"Depth to calculate PAWC (mm)\")]\n public double depthPAWC { get; set; }\n\n //Class members\n public double TopSWdeficit { get; set; }\n public double TopSWC { get; set; }\n public double DaysSinceIrrigation { get; set; }\n public double AmountToApply { get; set; }\n public double SeasonAppliedAmount { get; set; }\n \n private bool IrrigationIsAllowed { get; set; }\n private bool SeasonIsOpen { get; set; }\n private bool CropIsActive { get; set; }\n private bool IrrigatorIsAvailable { get; set; }\n private bool SoilIsDry { get; set; }\n\n \n //Calculate static soil variables\n [EventSubscribe(\"StartOfSimulation\")]\n private void OnStartOfSimulation(object sender, EventArgs e)\n { \n //Set the season dates\n StartDate = DateTime.Parse(seasonStart + \"-\" + Clock.Today.Year.ToString());\n EndDate = DateTime.Parse(seasonEnd + \"-\" + Clock.Today.Year.ToString());\n \n //Can we irrigate at all?\n IrrigationIsAllowed = false; \n if (allowIrrigation)\n IrrigationIsAllowed = true; \n\n //Calculate soil water variables\n double depthFromSurface = 0.0;\n double fracLayer = 0.0;\n nLayers = soilPhysical.Thickness.Length;\n for (int layer = 0; layer < nLayers; layer++)\n {\n fracLayer = Math.Min(1.0, (depthPAWC - depthFromSurface) / soilPhysical.Thickness[layer]);\n TopLL += soilPhysical.LL15mm[layer] * fracLayer;\n TopDUL += soilPhysical.DULmm[layer] * fracLayer;\n depthFromSurface += soilPhysical.Thickness[layer];\n if (depthFromSurface >= depthPAWC)\n layer = nLayers;\n }\n }\n \n //Determine daily requirement for irrigation\n [EventSubscribe(\"StartOfDay\")]\n private void OnStartOfDay(object sender, EventArgs e)\n {\n //Can we irrigate today? \n SeasonIsOpen = isBetween(Clock.Today, StartDate, EndDate);\n if (!SeasonIsOpen)\n SeasonAppliedAmount = 0;\n\n //Is there a crop in the ground that needs irrigation?\n CropIsActive = false;\n if ((existingCrop != null) && (existingCrop.IsAlive))\n CropIsActive = true;\n //if ((existingCrop.Phenology.Stage >= 3.0) && (existingCrop.Phenology.Stage < 6.0))\n \n //Is the irrigator available?\n IrrigatorIsAvailable = false;\n DaysSinceIrrigation += 1;\n if (DaysSinceIrrigation >= returndays)\n IrrigatorIsAvailable = true;\n \n //Is the soil dry enough to require irrigation?\n SoilIsDry = false;\n double depthFromSurface = 0.0;\n double fracLayer = 0.0;\n TopSWC = 0.0;\n for (int layer = 0; layer < nLayers; layer++)\n //for (int layer = 0; depthFromSurface < depthPAWC + soilPhysical.Thickness[layer]; layer++)\n {\n fracLayer = Math.Min(1.0, (depthPAWC - depthFromSurface) / soilPhysical.Thickness[layer]);\n TopSWC += waterBalance.SWmm[layer] * fracLayer;\n depthFromSurface += soilPhysical.Thickness[layer];\n if (depthFromSurface >= depthPAWC)\n layer = nLayers;\n }\n \n TopSWdeficit = TopSWC - TopDUL;\n if (Math.Max(0.0, -TopSWdeficit) >= (TopDUL - TopLL) * (100 - triggerDeficit) / 100)\n SoilIsDry = true;\n \n //Are all the conditions ratifying irrigation\n if (IrrigationIsAllowed && SeasonIsOpen && CropIsActive && IrrigatorIsAvailable && SoilIsDry)\n {\n //Lets bloody well irrigate then!!!!\n AmountToApply = TopDUL * targetDeficit / 100 - TopSWC;\n AmountToApply = Math.Max(0.0, Math.Min(AmountToApply, seasonsAllocation - SeasonAppliedAmount));\n AmountToApply = Math.Min(AmountToApply,maximumAmount);\n Irrigation.Apply(AmountToApply);\n DaysSinceIrrigation = 0;\n SeasonAppliedAmount += AmountToApply;\n }\n }\n \n ///Checks whether theDate is between iniDate and endDate (non-year specific)\n private bool isBetween(DateTime theDay, DateTime iniDate, DateTime endDate)\n {\n bool result = false;\n if (iniDate.DayOfYear < endDate.DayOfYear)\n {\n // period is within one year, ex: summer in the northern hemisphere\n if ((theDay.DayOfYear >= iniDate.DayOfYear) && (theDay.DayOfYear <= endDate.DayOfYear))\n result = true;\n }\n else\n {\n // period goes over the end of the year, ex: summer in the southern hemisphere\n if ((theDay.DayOfYear >= iniDate.DayOfYear) || (theDay.DayOfYear <= endDate.DayOfYear))\n result = true;\n }\n \n return result;\n }\n }\n}\n", + "Parameters": [ + { + "Key": "allowIrrigation", + "Value": "True" + }, + { + "Key": "seasonStart", + "Value": "1-sep" + }, + { + "Key": "seasonEnd", + "Value": "30-mar" + }, + { + "Key": "seasonsAllocation", + "Value": "10000" + }, + { + "Key": "triggerDeficit", + "Value": "50" + }, + { + "Key": "targetDeficit", + "Value": "95" + }, + { + "Key": "returndays", + "Value": "3" + }, + { + "Key": "maximumAmount", + "Value": "30" + }, + { + "Key": "depthPAWC", + "Value": "650" + } + ], + "Name": "AutomaticIrrigation", + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Irrigation, Models", + "Name": "Irrigation", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Fertiliser, Models", + "ResourceName": "Fertiliser", + "Name": "Fertiliser", + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.MicroClimate, Models", + "a_interception": 0.0, + "b_interception": 1.0, + "c_interception": 0.0, + "d_interception": 0.0, + "SoilHeatFluxFraction": 0.4, + "MinimumHeightDiffForNewLayer": 0.0, + "NightInterceptionFraction": 0.5, + "ReferenceHeight": 2.0, + "Name": "MicroClimate", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.Soil, Models", + "RecordNumber": 0, + "ASCOrder": null, + "ASCSubOrder": null, + "SoilType": "GLHSoil", + "LocalName": null, + "Site": "Cooper Lab", + "NearestTown": "Unknown", + "Region": "Gatton", + "State": null, + "Country": null, + "NaturalVegetation": "Unknown", + "ApsoilNumber": null, + "Latitude": 0.0, + "Longitude": 0.0, + "LocationAccuracy": null, + "YearOfSampling": null, + "DataSource": null, + "Comments": null, + "Name": "GLH Field", + "Children": [ + { + "$type": "Models.Soils.Physical, Models", + "Depth": [ + "0-20", + "20-40", + "40-60", + "60-90", + "90-120", + "120-150", + "150-180" + ], + "Thickness": [ + 200.0, + 200.0, + 200.0, + 300.0, + 300.0, + 300.0, + 300.0 + ], + "ParticleSizeClay": null, + "ParticleSizeSand": null, + "ParticleSizeSilt": null, + "Rocks": null, + "Texture": null, + "BD": [ + 1.32, + 1.3, + 1.23, + 1.27, + 1.37, + 1.35, + 1.35 + ], + "AirDry": [ + 0.1, + 0.15, + 0.28, + 0.28, + 0.28, + 0.3, + 0.3 + ], + "LL15": [ + 0.3, + 0.3, + 0.35, + 0.32, + 0.29, + 0.31, + 0.31 + ], + "DUL": [ + 0.41, + 0.43, + 0.46, + 0.44, + 0.4, + 0.41, + 0.38 + ], + "SAT": [ + 0.46, + 0.48, + 0.51, + 0.49, + 0.45, + 0.46, + 0.43 + ], + "KS": null, + "BDMetadata": null, + "AirDryMetadata": null, + "LL15Metadata": null, + "DULMetadata": null, + "SATMetadata": null, + "KSMetadata": null, + "RocksMetadata": null, + "TextureMetadata": null, + "ParticleSizeSandMetadata": null, + "ParticleSizeSiltMetadata": null, + "ParticleSizeClayMetadata": null, + "Name": "Physical", + "Children": [ + { + "$type": "Models.Soils.SoilCrop, Models", + "LL": [ + 0.3, + 0.3, + 0.35, + 0.32, + 0.29, + 0.31, + 0.31 + ], + "KL": [ + 0.08, + 0.08, + 0.08, + 0.08, + 0.06, + 0.04, + 0.02 + ], + "XF": [ + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0 + ], + "LLMetadata": null, + "KLMetadata": null, + "XFMetadata": null, + "Name": "SorghumSoil", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.WaterModel.WaterBalance, Models", + "SummerDate": "1-Nov", + "SummerU": 6.0, + "SummerCona": 3.5, + "WinterDate": "1-Apr", + "WinterU": 6.0, + "WinterCona": 3.5, + "DiffusConst": 88.0, + "DiffusSlope": 35.4, + "Salb": 0.13, + "CN2Bare": 91.0, + "CNRed": 20.0, + "CNCov": 0.8, + "DischargeWidth": "NaN", + "CatchmentArea": "NaN", + "Thickness": [ + 200.0, + 200.0, + 200.0, + 300.0, + 300.0, + 300.0, + 300.0 + ], + "SWCON": [ + 0.5, + 0.5, + 0.5, + 0.5, + 0.5, + 0.5, + 0.5 + ], + "KLAT": null, + "ResourceName": "WaterBalance", + "Name": "SoilWater", + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.SoilNitrogen, Models", + "fom_types": [ + "default", + "manure", + "mucuna", + "lablab", + "shemp", + "stable" + ], + "fract_carb": [ + 0.2, + 0.3, + 0.54, + 0.57, + 0.45, + 0.0 + ], + "fract_cell": [ + 0.7, + 0.3, + 0.37, + 0.37, + 0.47, + 0.1 + ], + "fract_lign": [ + 0.1, + 0.4, + 0.09, + 0.06, + 0.08, + 0.9 + ], + "NPartitionApproach": 0, + "Name": "SoilNitrogen", + "Children": [ + { + "$type": "Models.Soils.SoilNitrogenNO3, Models", + "Name": "NO3", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.SoilNitrogenNH4, Models", + "Name": "NH4", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.SoilNitrogenUrea, Models", + "Name": "Urea", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.Organic, Models", + "Depth": [ + "0-20", + "20-40", + "40-60", + "60-90", + "90-120", + "120-150", + "150-180" + ], + "FOMCNRatio": 30.0, + "Thickness": [ + 200.0, + 200.0, + 200.0, + 300.0, + 300.0, + 300.0, + 300.0 + ], + "Carbon": [ + 1.3, + 0.65, + 0.32, + 0.11, + 0.11, + 0.11, + 0.11 + ], + "SoilCNRatio": [ + 12.5, + 12.5, + 12.5, + 12.5, + 12.5, + 12.5, + 12.5 + ], + "FBiom": [ + 0.03, + 0.01, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "FInert": [ + 0.31, + 0.38, + 0.47, + 0.7, + 0.9, + 0.95, + 0.95 + ], + "FOM": [ + 514.7087369422752, + 368.80492584502815, + 264.2602768618072, + 160.28196006083508, + 97.21592297573227, + 58.96443789704345, + 35.763739417278366 + ], + "CarbonMetadata": null, + "FOMMetadata": null, + "Name": "Organic", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.Chemical, Models", + "Depth": [ + "0-20", + "20-40", + "40-60", + "60-90", + "90-120", + "120-150", + "150-180" + ], + "Thickness": [ + 200.0, + 200.0, + 200.0, + 300.0, + 300.0, + 300.0, + 300.0 + ], + "NO3N": [ + 9.0, + 2.48, + 2.79, + 1.28, + 2.98, + 2.965, + 1.3870000000000011 + ], + "NH4N": [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + "PH": [ + 8.2, + 8.7, + 8.9, + 8.1, + 8.0, + 8.0, + 8.0 + ], + "CL": null, + "EC": null, + "ESP": null, + "LabileP": null, + "UnavailableP": null, + "ECMetadata": null, + "CLMetadata": null, + "ESPMetadata": null, + "PHMetadata": null, + "Name": "Chemical", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.Sample, Models", + "Depth": [ + "0-20", + "20-40", + "40-60", + "60-90", + "90-120", + "120-150", + "150-180" + ], + "Thickness": [ + 200.0, + 200.0, + 200.0, + 300.0, + 300.0, + 300.0, + 300.0 + ], + "NO3": null, + "NH4": null, + "LabileP": null, + "UnavailableP": null, + "SW": [ + 0.385, + 0.47, + 0.467, + 0.459, + 0.394, + 0.399, + 0.38 + ], + "OC": null, + "EC": null, + "CL": null, + "ESP": null, + "PH": null, + "SWUnits": 0, + "OCUnits": 0, + "PHUnits": 0, + "Name": "Initial water", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.CERESSoilTemperature, Models", + "Name": "Temperature", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Plant, Models", + "ResourceName": "Sorghum", + "Name": "Sorghum", + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Surface.SurfaceOrganicMatter, Models", + "InitialResidueName": "wheat_stubble", + "InitialResidueType": "wheat", + "InitialResidueMass": 0.0, + "InitialStandingFraction": 0.0, + "InitialCPR": 0.0, + "InitialCNR": 80.0, + "ResourceName": "SurfaceOrganicMatter", + "Name": "SurfaceOrganicMatter", + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Graph, Models", + "Caption": null, + "Axis": [ + { + "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", + "Title": null, + "Position": 3, + "Inverted": false, + "CrossesAtZero": false, + "Minimum": null, + "Maximum": null, + "Interval": null + }, + { + "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", + "Title": null, + "Position": 0, + "Inverted": false, + "CrossesAtZero": false, + "Minimum": null, + "Maximum": null, + "Interval": null + } + ], + "LegendPosition": 0, + "LegendOrientation": 0, + "AnnotationLocation": 0, + "DisabledSeries": [], + "LegendOutsideGraph": false, + "Name": "RowConfig", + "Children": [ + { + "$type": "Models.Series, Models", + "Type": 1, + "XAxis": 3, + "YAxis": 0, + "ColourArgb": -1663232, + "FactorToVaryColours": "Row", + "FactorToVaryMarkers": "Skip", + "FactorToVaryLines": null, + "Marker": 11, + "MarkerSize": 0, + "Line": 4, + "LineThickness": 0, + "TableName": "Report", + "XFieldName": "Sorghum.SowingData.SkipDensityScale", + "YFieldName": "Sorghum.Leaf.LAI", + "X2FieldName": null, + "Y2FieldName": null, + "ShowInLegend": false, + "IncludeSeriesNameInLegend": false, + "Cumulative": false, + "CumulativeX": false, + "Filter": "", + "Name": "LAI", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Graph, Models", + "Caption": null, + "Axis": [ + { + "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", + "Title": null, + "Position": 3, + "Inverted": false, + "CrossesAtZero": false, + "Minimum": null, + "Maximum": null, + "Interval": null + }, + { + "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", + "Title": null, + "Position": 0, + "Inverted": false, + "CrossesAtZero": false, + "Minimum": null, + "Maximum": null, + "Interval": null + } + ], + "LegendPosition": 0, + "LegendOrientation": 0, + "AnnotationLocation": 0, + "DisabledSeries": [], + "LegendOutsideGraph": false, + "Name": "SkipConfig", + "Children": [ + { + "$type": "Models.Series, Models", + "Type": 1, + "XAxis": 3, + "YAxis": 0, + "ColourArgb": -1663232, + "FactorToVaryColours": "Row", + "FactorToVaryMarkers": "Skip", + "FactorToVaryLines": null, + "Marker": 11, + "MarkerSize": 0, + "Line": 4, + "LineThickness": 0, + "TableName": "Report", + "XFieldName": "Sorghum.SowingData.SkipDensityScale", + "YFieldName": "Sorghum.Leaf.CoverGreen", + "X2FieldName": null, + "Y2FieldName": null, + "ShowInLegend": false, + "IncludeSeriesNameInLegend": false, + "Cumulative": false, + "CumulativeX": false, + "Filter": null, + "Name": "CoverGreen", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Factorial.Experiment, Models", + "DisabledSimNames": null, + "Name": "DensityYieldResponse", + "Children": [ + { + "$type": "Models.Factorial.Factors, Models", + "Name": "Factors", + "Children": [ + { + "$type": "Models.Factorial.Permutation, Models", + "Name": "Permutation", + "Children": [ + { + "$type": "Models.Memo, Models", + "Text": "Factor setup is maybe a bit counter-intuitive - we could do it without the CompositeFactors. The reason it was done this way is so that the graph series names come out better when varying by irrigation/fertiliser.", + "Name": "Memo", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Factorial.Factor, Models", + "Specification": "", + "Name": "Management", + "Children": [ + { + "$type": "Models.Factorial.CompositeFactor, Models", + "Specifications": [ + "[AutomaticIrrigation].Script.allowIrrigation = true", + "[FertiliseDates].Script.Amount = 80" + ], + "Paths": null, + "Values": null, + "Name": "HighN_Irr", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Factorial.CompositeFactor, Models", + "Specifications": [ + "[AutomaticIrrigation].Script.allowIrrigation = true", + "[FertiliseDates].Script.Amount = 0" + ], + "Paths": null, + "Values": null, + "Name": "LowN_Irr", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Factorial.CompositeFactor, Models", + "Specifications": [ + "[AutomaticIrrigation].Script.allowIrrigation = false", + "[FertiliseDates].Script.Amount = 80" + ], + "Paths": null, + "Values": null, + "Name": "HighN_Dry", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Factorial.CompositeFactor, Models", + "Specifications": [ + "[AutomaticIrrigation].Script.allowIrrigation = false", + "[FertiliseDates].Script.Amount = 0" + ], + "Paths": null, + "Values": null, + "Name": "LowN_Dry", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Factorial.Factor, Models", + "Specification": "", + "Name": "Density", + "Children": [ + { + "$type": "Models.Factorial.CompositeFactor, Models", + "Specifications": [ + "[SowingRule].Script.Density = 2" + ], + "Paths": null, + "Values": null, + "Name": "2", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Factorial.CompositeFactor, Models", + "Specifications": [ + "[SowingRule].Script.Density = 4" + ], + "Paths": null, + "Values": null, + "Name": "4", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Factorial.CompositeFactor, Models", + "Specifications": [ + "[SowingRule].Script.Density = 8" + ], + "Paths": null, + "Values": null, + "Name": "8", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Factorial.CompositeFactor, Models", + "Specifications": [ + "[SowingRule].Script.Density = 12" + ], + "Paths": null, + "Values": null, + "Name": "12", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Factorial.CompositeFactor, Models", + "Specifications": [ + "[SowingRule].Script.Density = 16" + ], + "Paths": null, + "Values": null, + "Name": "16", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Factorial.CompositeFactor, Models", + "Specifications": [ + "[SowingRule].Script.Density = 20" + ], + "Paths": null, + "Values": null, + "Name": "20", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Factorial.CompositeFactor, Models", + "Specifications": [ + "[SowingRule].Script.Density = 24" + ], + "Paths": null, + "Values": null, + "Name": "24", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Factorial.CompositeFactor, Models", + "Specifications": [ + "[SowingRule].Script.Density = 28" + ], + "Paths": null, + "Values": null, + "Name": "28", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Factorial.CompositeFactor, Models", + "Specifications": [ + "[SowingRule].Script.Density = 32" + ], + "Paths": null, + "Values": null, + "Name": "32", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Core.Simulation, Models", + "IsRunning": false, + "Descriptors": null, + "Name": "BaseSimulation", + "Children": [ + { + "$type": "Models.Clock, Models", + "Start": "1997-09-15T00:00:00", + "End": "1998-03-01T00:00:00", + "Name": "Clock", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Summary, Models", + "Verbosity": 100, + "Name": "Summary", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Climate.Weather, Models", + "ConstantsFile": null, + "FileName": "%root%/Examples/WeatherFiles/Dalby.met", + "ExcelWorkSheetName": "", + "Name": "Weather", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.Arbitrator.SoilArbitrator, Models", + "Name": "SoilArbitrator", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Core.Zone, Models", + "Area": 1.0, + "Slope": 0.0, + "AspectAngle": 0.0, + "Altitude": 50.0, + "Name": "Paddock", + "Children": [ + { + "$type": "Models.Manager, Models", + "Code": "using Models.PMF;\nusing Models.Core;\nusing System;\nnamespace Models\n{\n [Serializable]\n public class Script : Model\n {\n [Link] Clock Clock;\n [Link] Fertiliser Fertiliser;\n \n [Description(\"Crop to be fertilised\")]\n public IPlant Crop { get; set; }\n\n [Description(\"Type of fertiliser to apply? \")] \n public Fertiliser.Types FertiliserType { get; set; }\n \n [Description(\"Amount of fertiliser to be applied (kg/ha)\")]\n public double Amount { get; set; }\n \n [EventSubscribe(\"Sowing\")]\n private void OnSowing(object sender, EventArgs e)\n {\n Model crop = sender as Model;\n if (Crop != null && crop.Name.ToLower() == (Crop as IModel).Name.ToLower())\n Fertiliser.Apply(Amount: Amount, Type: FertiliserType);\n }\n }\n}\n", + "Parameters": [ + { + "Key": "Crop", + "Value": "[Sorghum]" + }, + { + "Key": "FertiliserType", + "Value": "UreaN" + }, + { + "Key": "Amount", + "Value": "30" + } + ], + "Name": "SowingFertiliser", + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Core.Folder, Models", + "ShowInDocs": true, + "GraphsPerPage": 6, + "Name": "Manager folder", + "Children": [ + { + "$type": "Models.Manager, Models", + "Code": "using APSIM.Shared.Utilities;\r\nusing Models.PMF;\r\nusing Models.Core;\r\nusing System;\r\n\r\nnamespace Models\r\n{\r\n [Serializable]\r\n public class Script : Model\r\n {\r\n [Description(\"Enter sowing date (dd/mm/yyyy) : \")]\r\n public DateTime Date { get; set; }\r\n\r\n [Description(\"Enter sowing density (plants/m2) : \")]\r\n public double Density { get; set; }\r\n\r\n [Description(\"Enter sowing depth (mm) : \")]\r\n public double Depth { get; set; }\r\n\r\n [Description(\"Enter cultivar : \")]\r\n [Display(Type = DisplayType.CultivarName)]\r\n public string Cultivar { get; set; } // QL41xQL36\r\n\r\n [Description(\"Enter row spacing (mm) : \")]\r\n public double RowSpacing { get; set; }\r\n\r\n [Description(\"Enter skip row configuration : \")]\r\n public RowConfigurationType RowConfiguration { get; set; }\r\n\r\n [Description(\"Enter Fertile Tiller No. : \")]\r\n public double Ftn { get; set; }\r\n\r\n public enum RowConfigurationType \r\n {\r\n solid, single, _double /*replaces double*/\r\n }\r\n\r\n [Link]\r\n private Zone paddock;\r\n\r\n [Link]\r\n private Clock clock;\r\n\r\n [Link]\r\n private IPlant crop;\r\n\r\n [EventSubscribe(\"DoManagement\")]\r\n private void OnDoManagement(object sender, EventArgs e)\r\n {\r\n if (clock.Today == Date /* && isFallow */)\r\n {\r\n double population = Density * paddock.Area;\r\n crop.Sow(Cultivar, population, Depth, RowSpacing, budNumber: Ftn, rowConfig: (double)RowConfiguration + 1);\r\n /*\r\n if (paddock_is_fallow() = 1 and today = date('[date]')) then\r\n [crop] sow plants =[density], sowing_depth = [depth], cultivar = [cultivar], row_spacing = [row_spacing], skip = [RowConfiguration], tiller_no_fertile = [ftn] ()\r\n endif\r\n */\r\n }\r\n }\r\n }\r\n}\r\n", + "Parameters": [ + { + "Key": "Density", + "Value": "16" + }, + { + "Key": "Date", + "Value": "09/15/1997 00:00:00" + }, + { + "Key": "Depth", + "Value": "20" + }, + { + "Key": "Cultivar", + "Value": "Buster" + }, + { + "Key": "RowSpacing", + "Value": "750" + }, + { + "Key": "RowConfiguration", + "Value": "solid" + }, + { + "Key": "Ftn", + "Value": "0" + } + ], + "Name": "SowingRule", + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Manager, Models", + "Code": "using Models.PMF;\r\nusing Models.Core;\r\nusing System;\r\n\r\nnamespace Models\r\n{\r\n [Serializable]\r\n\r\n public class Script : Model\r\n {\r\n [Link]\r\n private Clock clock;\r\n\r\n [Link]\r\n private IPlant crop;\r\n\r\n [EventSubscribe(\"DoManagement\")]\r\n private void OnDoCalculations(object sender, EventArgs e)\r\n {\r\n if (crop.IsReadyForHarvesting)\r\n {\r\n crop.Harvest();\r\n crop.EndCrop();\r\n }\r\n /*\r\n \r\n\r\n if [crop].StageName = 'harvest_ripe' or [crop].plant_status = 'dead' then\r\n [crop] harvest\r\n [crop] end_crop\r\n endif\r\n\r\n \r\n */\r\n }\r\n }\r\n}\r\n", + "Parameters": [], + "Name": "Harvesting rule", + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Manager, Models", + "Code": "using Models.Interfaces;\nusing System;\nusing Models.Core;\nusing Models.PMF;\nusing Models.Soils;\nusing APSIM.Shared.Utilities;\n\nnamespace Models\n{\n [Serializable] \n public class Script : Model\n {\n [Link] private ISummary summary;\n [Link] private Irrigation Irrigation;\n [Link] private Clock Clock;\n [Link] private Soil Soil;\n [Link(IsOptional = true)] private IPlant existingCrop;\n private DateTime StartDate;\n private DateTime EndDate;\n private double TopDUL;\n private double TopLL;\n private int nLayers;\n [Link]\n private IPhysical soilPhysical;\n [Link]\n private ISoilWater waterBalance;\n //Communication to other modules\n \n //User inputs from properties tab\n [Description(\"Turn irrigation on?\")]\n public bool allowIrrigation { get; set; }\n [Description(\"Start of irrigation season (dd-MMM)\")]\n public string seasonStart { get; set; }\n [Description(\"End of irrigation season (dd-MMM)\")]\n public string seasonEnd { get; set; }\n [Description(\"Season allocation (mm)\")]\n public double seasonsAllocation { get; set; }\n [Description(\"Deficit to trigger irrigation (% PAWC)\")]\n public double triggerDeficit { get; set; }\n [Description(\"Deficit to stop irrigaton (% PAWC)\")]\n public double targetDeficit { get; set; }\n [Description(\"Minimum days for irrigation to return\")]\n public double returndays { get; set; }\n [Description(\"Maximum irrigation application (mm/day)\")]\n public double maximumAmount { get; set; }\n [Description(\"Depth to calculate PAWC (mm)\")]\n public double depthPAWC { get; set; }\n\n //Class members\n public double TopSWdeficit { get; set; }\n public double TopSWC { get; set; }\n public double DaysSinceIrrigation { get; set; }\n public double AmountToApply { get; set; }\n public double SeasonAppliedAmount { get; set; }\n \n private bool IrrigationIsAllowed { get; set; }\n private bool SeasonIsOpen { get; set; }\n private bool CropIsActive { get; set; }\n private bool IrrigatorIsAvailable { get; set; }\n private bool SoilIsDry { get; set; }\n\n \n //Calculate static soil variables\n [EventSubscribe(\"StartOfSimulation\")]\n private void OnStartOfSimulation(object sender, EventArgs e)\n { \n //Set the season dates\n StartDate = DateTime.Parse(seasonStart + \"-\" + Clock.Today.Year.ToString());\n EndDate = DateTime.Parse(seasonEnd + \"-\" + Clock.Today.Year.ToString());\n \n //Can we irrigate at all?\n IrrigationIsAllowed = false; \n if (allowIrrigation)\n IrrigationIsAllowed = true; \n\n //Calculate soil water variables\n double depthFromSurface = 0.0;\n double fracLayer = 0.0;\n nLayers = soilPhysical.Thickness.Length;\n for (int layer = 0; layer < nLayers; layer++)\n {\n fracLayer = Math.Min(1.0, (depthPAWC - depthFromSurface) / soilPhysical.Thickness[layer]);\n TopLL += soilPhysical.LL15mm[layer] * fracLayer;\n TopDUL += soilPhysical.DULmm[layer] * fracLayer;\n depthFromSurface += soilPhysical.Thickness[layer];\n if (depthFromSurface >= depthPAWC)\n layer = nLayers;\n }\n }\n \n //Determine daily requirement for irrigation\n [EventSubscribe(\"StartOfDay\")]\n private void OnStartOfDay(object sender, EventArgs e)\n {\n //Can we irrigate today? \n SeasonIsOpen = isBetween(Clock.Today, StartDate, EndDate);\n if (!SeasonIsOpen)\n SeasonAppliedAmount = 0;\n\n //Is there a crop in the ground that needs irrigation?\n CropIsActive = false;\n if ((existingCrop != null) && (existingCrop.IsAlive))\n CropIsActive = true;\n //if ((existingCrop.Phenology.Stage >= 3.0) && (existingCrop.Phenology.Stage < 6.0))\n \n //Is the irrigator available?\n IrrigatorIsAvailable = false;\n DaysSinceIrrigation += 1;\n if (DaysSinceIrrigation >= returndays)\n IrrigatorIsAvailable = true;\n \n //Is the soil dry enough to require irrigation?\n SoilIsDry = false;\n double depthFromSurface = 0.0;\n double fracLayer = 0.0;\n TopSWC = 0.0;\n for (int layer = 0; layer < nLayers; layer++)\n //for (int layer = 0; depthFromSurface < depthPAWC + soilPhysical.Thickness[layer]; layer++)\n {\n fracLayer = Math.Min(1.0, (depthPAWC - depthFromSurface) / soilPhysical.Thickness[layer]);\n TopSWC += waterBalance.SWmm[layer] * fracLayer;\n depthFromSurface += soilPhysical.Thickness[layer];\n if (depthFromSurface >= depthPAWC)\n layer = nLayers;\n }\n \n TopSWdeficit = TopSWC - TopDUL;\n if (Math.Max(0.0, -TopSWdeficit) >= (TopDUL - TopLL) * (100 - triggerDeficit) / 100)\n SoilIsDry = true;\n \n //Are all the conditions ratifying irrigation\n if (IrrigationIsAllowed && SeasonIsOpen && CropIsActive && IrrigatorIsAvailable && SoilIsDry)\n {\n //Lets bloody well irrigate then!!!!\n AmountToApply = TopDUL * targetDeficit / 100 - TopSWC;\n AmountToApply = Math.Max(0.0, Math.Min(AmountToApply, seasonsAllocation - SeasonAppliedAmount));\n AmountToApply = Math.Min(AmountToApply,maximumAmount);\n Irrigation.Apply(AmountToApply);\n DaysSinceIrrigation = 0;\n SeasonAppliedAmount += AmountToApply;\n }\n }\n \n ///Checks whether theDate is between iniDate and endDate (non-year specific)\n private bool isBetween(DateTime theDay, DateTime iniDate, DateTime endDate)\n {\n bool result = false;\n if (iniDate.DayOfYear < endDate.DayOfYear)\n {\n // period is within one year, ex: summer in the northern hemisphere\n if ((theDay.DayOfYear >= iniDate.DayOfYear) && (theDay.DayOfYear <= endDate.DayOfYear))\n result = true;\n }\n else\n {\n // period goes over the end of the year, ex: summer in the southern hemisphere\n if ((theDay.DayOfYear >= iniDate.DayOfYear) || (theDay.DayOfYear <= endDate.DayOfYear))\n result = true;\n }\n \n return result;\n }\n }\n}\n", + "Parameters": [ + { + "Key": "allowIrrigation", + "Value": "True" + }, + { + "Key": "seasonStart", + "Value": "1-sep" + }, + { + "Key": "seasonEnd", + "Value": "30-mar" + }, + { + "Key": "seasonsAllocation", + "Value": "10000" + }, + { + "Key": "triggerDeficit", + "Value": "50" + }, + { + "Key": "targetDeficit", + "Value": "95" + }, + { + "Key": "returndays", + "Value": "3" + }, + { + "Key": "maximumAmount", + "Value": "30" + }, + { + "Key": "depthPAWC", + "Value": "650" + } + ], + "Name": "AutomaticIrrigation", + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Manager, Models", + "Code": "using Models.Interfaces;\r\nusing System.Linq;\r\nusing APSIM.Shared.Utilities;\r\nusing Models.PMF;\r\nusing Models.Soils;\r\nusing Models.Core;\r\nusing System;\r\nusing Models.Soils.Nutrients;\r\n\r\nnamespace Models\r\n{\r\n [Serializable]\r\n public class Script : Model\r\n {\r\n [Link] private Clock clock;\r\n [Link] private Fertiliser fertiliser;\r\n [Link] private ISummary summary;\r\n [Link] private Soil soil;\r\n private Nutrient nutrient;\r\n private SoilNitrogen soilN;\r\n [Link]\r\n private IPhysical soilPhysical;\r\n\r\n\r\n [Separator(\"Fertiliser will be applied on the date(s) below\")]\r\n [Description(\"Apply fertiliser on the same day(s) each year? If no, then must include the year of appliaction below\")]\r\n public bool EachYear { get; set; }\r\n\r\n [Description(\"Dates for one or more fertiliser applications (dd-mmm or dd-mmm-yyyy) as a list with a comma between dates\")]\r\n public string[] Dates { get; set; }\r\n\r\n [Separator(\"Fertiliser application details\")]\r\n [Description(\"Depth at which to apply the fertiliser (mm)\")]\r\n public double Depth { get; set; }\r\n\r\n [Description(\"Amount of fertiliser to apply (kg N /ha) per application\")]\r\n public double Amount { get; set; }\r\n\r\n [Description(\"Fertiliser type - select from the list\")]\r\n public Fertiliser.Types FertiliserType { get; set; }\r\n\r\n [EventSubscribe(\"DoManagement\")]\r\n private void OnDoManagement(object sender, EventArgs e)\r\n {\r\n if (OnApplicationDate())\r\n {\r\n fertiliser.Apply(Amount, FertiliserType, Depth);\r\n }\r\n }\r\n\r\n /// Checks if today's date is one of the specified fertiliser application dates.\r\n private bool OnApplicationDate()\r\n {\r\n if (EachYear)\r\n return Dates.Any(d => DateUtilities.DatesEqual(d, clock.Today));\r\n \r\n DateTime[] dates = Dates.Select(d => DateTime.ParseExact(d, \"d-MMM-yyyy\", null)).ToArray();\r\n return dates.Any(d => SameDate(d, clock.Today));\r\n }\r\n\r\n private bool SameDate(DateTime d1, DateTime d2)\r\n {\r\n return d1.Year == d2.Year && d1.DayOfYear == d2.DayOfYear;\r\n }\r\n }\r\n}\r\n", + "Parameters": [ + { + "Key": "EachYear", + "Value": "True" + }, + { + "Key": "Dates", + "Value": "30-oct, 30-nov" + }, + { + "Key": "Depth", + "Value": "50" + }, + { + "Key": "Amount", + "Value": "50" + }, + { + "Key": "FertiliserType", + "Value": "UreaN" + } + ], + "Name": "FertiliseDates", + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Irrigation, Models", + "Name": "Irrigation", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Fertiliser, Models", + "ResourceName": "Fertiliser", + "Name": "Fertiliser", + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.MicroClimate, Models", + "a_interception": 0.0, + "b_interception": 1.0, + "c_interception": 0.0, + "d_interception": 0.0, + "SoilHeatFluxFraction": 0.4, + "MinimumHeightDiffForNewLayer": 0.0, + "NightInterceptionFraction": 0.5, + "ReferenceHeight": 2.0, + "Name": "MicroClimate", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.Soil, Models", + "RecordNumber": 0, + "ASCOrder": null, + "ASCSubOrder": null, + "SoilType": "GLHSoil", + "LocalName": null, + "Site": "Cooper Lab", + "NearestTown": "Unknown", + "Region": "Gatton", + "State": null, + "Country": null, + "NaturalVegetation": "Unknown", + "ApsoilNumber": null, + "Latitude": 0.0, + "Longitude": 0.0, + "LocationAccuracy": null, + "YearOfSampling": null, + "DataSource": null, + "Comments": null, + "Name": "GLH Field", + "Children": [ + { + "$type": "Models.Soils.Physical, Models", + "Depth": [ + "0-20", + "20-40", + "40-60", + "60-90", + "90-120", + "120-150", + "150-180" + ], + "Thickness": [ + 200.0, + 200.0, + 200.0, + 300.0, + 300.0, + 300.0, + 300.0 + ], + "ParticleSizeClay": null, + "ParticleSizeSand": null, + "ParticleSizeSilt": null, + "Rocks": null, + "Texture": null, + "BD": [ + 1.32, + 1.3, + 1.23, + 1.27, + 1.37, + 1.35, + 1.35 + ], + "AirDry": [ + 0.1, + 0.15, + 0.28, + 0.28, + 0.28, + 0.3, + 0.3 + ], + "LL15": [ + 0.3, + 0.3, + 0.35, + 0.32, + 0.29, + 0.31, + 0.31 + ], + "DUL": [ + 0.41, + 0.43, + 0.46, + 0.44, + 0.4, + 0.41, + 0.38 + ], + "SAT": [ + 0.46, + 0.48, + 0.51, + 0.49, + 0.45, + 0.46, + 0.43 + ], + "KS": null, + "BDMetadata": null, + "AirDryMetadata": null, + "LL15Metadata": null, + "DULMetadata": null, + "SATMetadata": null, + "KSMetadata": null, + "RocksMetadata": null, + "TextureMetadata": null, + "ParticleSizeSandMetadata": null, + "ParticleSizeSiltMetadata": null, + "ParticleSizeClayMetadata": null, + "Name": "Physical", + "Children": [ + { + "$type": "Models.Soils.SoilCrop, Models", + "LL": [ + 0.3, + 0.3, + 0.35, + 0.32, + 0.29, + 0.31, + 0.31 + ], + "KL": [ + 0.08, + 0.08, + 0.08, + 0.08, + 0.06, + 0.04, + 0.02 + ], + "XF": [ + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0 + ], + "LLMetadata": null, + "KLMetadata": null, + "XFMetadata": null, + "Name": "SorghumSoil", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.WaterModel.WaterBalance, Models", + "SummerDate": "1-Nov", + "SummerU": 6.0, + "SummerCona": 3.5, + "WinterDate": "1-Apr", + "WinterU": 6.0, + "WinterCona": 3.5, + "DiffusConst": 88.0, + "DiffusSlope": 35.4, + "Salb": 0.13, + "CN2Bare": 91.0, + "CNRed": 20.0, + "CNCov": 0.8, + "DischargeWidth": "NaN", + "CatchmentArea": "NaN", + "Thickness": [ + 200.0, + 200.0, + 200.0, + 300.0, + 300.0, + 300.0, + 300.0 + ], + "SWCON": [ + 0.5, + 0.5, + 0.5, + 0.5, + 0.5, + 0.5, + 0.5 + ], + "KLAT": null, + "ResourceName": "WaterBalance", + "Name": "SoilWater", + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.SoilNitrogen, Models", + "fom_types": [ + "default", + "manure", + "mucuna", + "lablab", + "shemp", + "stable" + ], + "fract_carb": [ + 0.2, + 0.3, + 0.54, + 0.57, + 0.45, + 0.0 + ], + "fract_cell": [ + 0.7, + 0.3, + 0.37, + 0.37, + 0.47, + 0.1 + ], + "fract_lign": [ + 0.1, + 0.4, + 0.09, + 0.06, + 0.08, + 0.9 + ], + "NPartitionApproach": 0, + "Name": "SoilNitrogen", + "Children": [ + { + "$type": "Models.Soils.SoilNitrogenNO3, Models", + "Name": "NO3", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.SoilNitrogenNH4, Models", + "Name": "NH4", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.SoilNitrogenUrea, Models", + "Name": "Urea", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.Organic, Models", + "Depth": [ + "0-20", + "20-40", + "40-60", + "60-90", + "90-120", + "120-150", + "150-180" + ], + "FOMCNRatio": 30.0, + "Thickness": [ + 200.0, + 200.0, + 200.0, + 300.0, + 300.0, + 300.0, + 300.0 + ], + "Carbon": [ + 1.3, + 0.65, + 0.32, + 0.11, + 0.11, + 0.11, + 0.11 + ], + "SoilCNRatio": [ + 12.5, + 12.5, + 12.5, + 12.5, + 12.5, + 12.5, + 12.5 + ], + "FBiom": [ + 0.03, + 0.01, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "FInert": [ + 0.31, + 0.38, + 0.47, + 0.7, + 0.9, + 0.95, + 0.95 + ], + "FOM": [ + 514.7087369422752, + 368.80492584502815, + 264.2602768618072, + 160.28196006083508, + 97.21592297573227, + 58.96443789704345, + 35.763739417278366 + ], + "CarbonMetadata": null, + "FOMMetadata": null, + "Name": "Organic", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.Chemical, Models", + "Depth": [ + "0-20", + "20-40", + "40-60", + "60-90", + "90-120", + "120-150", + "150-180" + ], + "Thickness": [ + 200.0, + 200.0, + 200.0, + 300.0, + 300.0, + 300.0, + 300.0 + ], + "NO3N": [ + 9.0, + 2.48, + 2.79, + 1.28, + 2.98, + 2.965, + 1.3870000000000011 + ], + "NH4N": [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + "PH": [ + 8.2, + 8.7, + 8.9, + 8.1, + 8.0, + 8.0, + 8.0 + ], + "CL": null, + "EC": null, + "ESP": null, + "LabileP": null, + "UnavailableP": null, + "ECMetadata": null, + "CLMetadata": null, + "ESPMetadata": null, + "PHMetadata": null, + "Name": "Chemical", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.Sample, Models", + "Depth": [ + "0-20", + "20-40", + "40-60", + "60-90", + "90-120", + "120-150", + "150-180" + ], + "Thickness": [ + 200.0, + 200.0, + 200.0, + 300.0, + 300.0, + 300.0, + 300.0 + ], + "NO3": null, + "NH4": null, + "LabileP": null, + "UnavailableP": null, + "SW": [ + 0.385, + 0.47, + 0.467, + 0.459, + 0.394, + 0.399, + 0.38 + ], + "OC": null, + "EC": null, + "CL": null, + "ESP": null, + "PH": null, + "SWUnits": 0, + "OCUnits": 0, + "PHUnits": 0, + "Name": "Initial water", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.CERESSoilTemperature, Models", + "Name": "Temperature", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Plant, Models", + "ResourceName": "Sorghum", + "Name": "Sorghum", + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Surface.SurfaceOrganicMatter, Models", + "InitialResidueName": "wheat_stubble", + "InitialResidueType": "wheat", + "InitialResidueMass": 0.0, + "InitialStandingFraction": 0.0, + "InitialCPR": 0.0, + "InitialCNR": 80.0, + "ResourceName": "SurfaceOrganicMatter", + "Name": "SurfaceOrganicMatter", + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Report, Models", + "VariableNames": [ + "[Clock].Today", + "[Sorghum].AboveGround.Wt", + "[Sorghum].Grain.Wt", + "[Sorghum].Leaf.LAI", + "[Sorghum].SowingData.Population" + ], + "EventNames": [ + "[Sorghum].Harvesting" + ], + "GroupByVariableName": null, + "Name": "HarvestReport", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Report, Models", + "VariableNames": [ + "[Clock].Today", + "[Sorghum].AboveGround.Wt", + "[Sorghum].Grain.Wt", + "[Sorghum].Leaf.LAI" + ], + "EventNames": [ + "[Clock].DoReport" + ], + "GroupByVariableName": null, + "Name": "DailyReport", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Graph, Models", + "Caption": null, + "Axis": [ + { + "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", + "Title": null, + "Position": 3, + "Inverted": false, + "CrossesAtZero": false, + "Minimum": null, + "Maximum": null, + "Interval": null + }, + { + "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", + "Title": null, + "Position": 0, + "Inverted": false, + "CrossesAtZero": false, + "Minimum": null, + "Maximum": null, + "Interval": null + } + ], + "LegendPosition": 0, + "LegendOrientation": 0, + "AnnotationLocation": 0, + "DisabledSeries": [], + "LegendOutsideGraph": false, + "Name": "Yield", + "Children": [ + { + "$type": "Models.Series, Models", + "Type": 1, + "XAxis": 3, + "YAxis": 0, + "ColourArgb": -1663232, + "FactorToVaryColours": "Management", + "FactorToVaryMarkers": null, + "FactorToVaryLines": null, + "Marker": 1, + "MarkerSize": 0, + "Line": 4, + "LineThickness": 0, + "TableName": "HarvestReport", + "XFieldName": "Sorghum.SowingData.Population", + "YFieldName": "Sorghum.Grain.Wt", + "X2FieldName": null, + "Y2FieldName": null, + "ShowInLegend": true, + "IncludeSeriesNameInLegend": false, + "Cumulative": false, + "CumulativeX": false, + "Filter": null, + "Name": "SorghumYield", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Graph, Models", + "Caption": null, + "Axis": [ + { + "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", + "Title": null, + "Position": 3, + "Inverted": false, + "CrossesAtZero": false, + "Minimum": null, + "Maximum": null, + "Interval": null + }, + { + "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", + "Title": null, + "Position": 0, + "Inverted": false, + "CrossesAtZero": false, + "Minimum": null, + "Maximum": null, + "Interval": null + } + ], + "LegendPosition": 0, + "LegendOrientation": 0, + "AnnotationLocation": 0, + "DisabledSeries": [], + "LegendOutsideGraph": false, + "Name": "Biomass", + "Children": [ + { + "$type": "Models.Series, Models", + "Type": 1, + "XAxis": 3, + "YAxis": 0, + "ColourArgb": -1663232, + "FactorToVaryColours": "Management", + "FactorToVaryMarkers": "Density", + "FactorToVaryLines": null, + "Marker": 11, + "MarkerSize": 0, + "Line": 0, + "LineThickness": 0, + "TableName": "DailyReport", + "XFieldName": "Clock.Today", + "YFieldName": "Sorghum.AboveGround.Wt", + "X2FieldName": null, + "Y2FieldName": null, + "ShowInLegend": true, + "IncludeSeriesNameInLegend": false, + "Cumulative": false, + "CumulativeX": false, + "Filter": null, + "Name": "SorghumWt", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Core.Folder, Models", + "ShowInDocs": false, + "GraphsPerPage": 6, + "Name": "SowingDate", + "Children": [ + { + "$type": "Models.Factorial.Experiment, Models", + "DisabledSimNames": null, + "Name": "SowingDateResponse", + "Children": [ + { + "$type": "Models.Factorial.Factors, Models", + "Name": "Factors", + "Children": [ + { + "$type": "Models.Factorial.Permutation, Models", + "Name": "Permutation", + "Children": [ + { + "$type": "Models.Memo, Models", + "Text": "Factor setup is maybe a bit counter-intuitive - we could do it without the CompositeFactors. The reason it was done this way is so that the graph series names come out better when varying by irrigation/fertiliser.", + "Name": "Memo", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Factorial.Factor, Models", + "Specification": "[SowingRule].Script.Cultivar = Buster,M35-1", + "Name": "Cv", + "Children": [], + "Enabled": false, + "ReadOnly": false + }, + { + "$type": "Models.Factorial.Factor, Models", + "Specification": "", + "Name": "Management", + "Children": [ + { + "$type": "Models.Factorial.CompositeFactor, Models", + "Specifications": [ + "[AutomaticIrrigation].Script.allowIrrigation = true" + ], + "Paths": null, + "Values": null, + "Name": "HighN_Irr", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Factorial.CompositeFactor, Models", + "Specifications": [ + "[AutomaticIrrigation].Script.allowIrrigation = true", + "[FertiliseDates].Script.Amount = 0" + ], + "Paths": null, + "Values": null, + "Name": "LowN_Irr", + "Children": [], + "Enabled": false, + "ReadOnly": false + }, + { + "$type": "Models.Factorial.CompositeFactor, Models", + "Specifications": [ + "[AutomaticIrrigation].Script.allowIrrigation = false" + ], + "Paths": null, + "Values": null, + "Name": "HighN_Dry", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Factorial.CompositeFactor, Models", + "Specifications": [ + "[AutomaticIrrigation].Script.allowIrrigation = false", + "[FertiliseDates].Script.Amount = 0" + ], + "Paths": null, + "Values": null, + "Name": "LowN_Dry", + "Children": [], + "Enabled": false, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Factorial.Factor, Models", + "Specification": "", + "Name": "SowingDate", + "Children": [ + { + "$type": "Models.Factorial.CompositeFactor, Models", + "Specifications": [ + "[SowingRule].Script.Date = 15-jul" + ], + "Paths": null, + "Values": null, + "Name": "Jul", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Factorial.CompositeFactor, Models", + "Specifications": [ + "[SowingRule].Script.Date = 15-Aug" + ], + "Paths": null, + "Values": null, + "Name": "Aug", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Factorial.CompositeFactor, Models", + "Specifications": [ + "[SowingRule].Script.Date = 15-Sep" + ], + "Paths": null, + "Values": null, + "Name": "Sep", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Factorial.CompositeFactor, Models", + "Specifications": [ + "[SowingRule].Script.Date = 15-Oct" + ], + "Paths": null, + "Values": null, + "Name": "Oct", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Factorial.CompositeFactor, Models", + "Specifications": [ + "[SowingRule].Script.Date = 15-Nov" + ], + "Paths": null, + "Values": null, + "Name": "Nov", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Factorial.CompositeFactor, Models", + "Specifications": [ + "[SowingRule].Script.Date = 15-Dec" + ], + "Paths": null, + "Values": null, + "Name": "Dec", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Factorial.CompositeFactor, Models", + "Specifications": [ + "[SowingRule].Script.Date = 15-Jan" + ], + "Paths": null, + "Values": null, + "Name": "Jan", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Core.Simulation, Models", + "IsRunning": false, + "Descriptors": null, + "Name": "SowingDateSimulation", + "Children": [ + { + "$type": "Models.Clock, Models", + "Start": "1970-09-15T00:00:00", + "End": "1999-05-01T00:00:00", + "Name": "Clock", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Summary, Models", + "Verbosity": 100, + "Name": "Summary", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Climate.Weather, Models", + "ConstantsFile": null, + "FileName": "%root%/Examples/WeatherFiles/Dalby.met", + "ExcelWorkSheetName": "", + "Name": "Weather", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.Arbitrator.SoilArbitrator, Models", + "Name": "SoilArbitrator", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Core.Zone, Models", + "Area": 1.0, + "Slope": 0.0, + "AspectAngle": 0.0, + "Altitude": 50.0, + "Name": "Paddock", + "Children": [ + { + "$type": "Models.Manager, Models", + "Code": "using Models.PMF;\nusing Models.Core;\nusing System;\nnamespace Models\n{\n [Serializable]\n public class Script : Model\n {\n [Link] Clock Clock;\n [Link] Fertiliser Fertiliser;\n \n [Description(\"Crop to be fertilised\")]\n public IPlant Crop { get; set; }\n\n [Description(\"Type of fertiliser to apply? \")] \n public Fertiliser.Types FertiliserType { get; set; }\n \n [Description(\"Amount of fertiliser to be applied (kg/ha)\")]\n public double Amount { get; set; }\n \n [EventSubscribe(\"Sowing\")]\n private void OnSowing(object sender, EventArgs e)\n {\n Model crop = sender as Model;\n if (Crop != null && crop.Name.ToLower() == (Crop as IModel).Name.ToLower())\n Fertiliser.Apply(Amount: Amount, Type: FertiliserType);\n }\n }\n}\n", + "Parameters": [ + { + "Key": "Crop", + "Value": "[Sorghum]" + }, + { + "Key": "FertiliserType", + "Value": "UreaN" + }, + { + "Key": "Amount", + "Value": "200" + } + ], + "Name": "SowingFertiliser", + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Manager, Models", + "Code": "using Models.Soils;\r\nusing System;\r\nusing Models.Core;\r\nusing Models.PMF;\r\nusing APSIM.Shared.Utilities;\r\nnamespace Models\r\n{\r\n [Serializable]\r\n public class Script : Model\r\n {\r\n [Link] Clock Clock;\r\n [Link] Fertiliser Fertiliser;\r\n [Link] SoilNitrogen SoilN;\r\n\t\t\n\t\t[Description(\"Crop\")]\n public IPlant Crop { get; set; }\r\n \n [Description(\"Type of fertiliser to apply? \")] \r\n public Fertiliser.Types FertiliserType { get; set; }\r\n \r\n [Description(\"Threshold amount of NO3 to topup to (kg/ha)\")]\r\n public double Threshold { get; set;}\r\n \r\n [EventSubscribe(\"DoManagement\")]\r\n private void OnDoManagement(object sender, EventArgs e)\r\n {\r\n if(Crop.IsAlive)\n {\n\t double Amount = Threshold - MathUtilities.Sum(SoilN.NO3.kgha);\r\n\t Fertiliser.Apply(Amount: Amount, Type: FertiliserType);\n\t }\r\n }\r\n }\r\n}\r\n", + "Parameters": [ + { + "Key": "Crop", + "Value": "[Sorghum]" + }, + { + "Key": "FertiliserType", + "Value": "NO3N" + }, + { + "Key": "Threshold", + "Value": "200" + } + ], + "Name": "Fertilise topup", + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Core.Folder, Models", + "ShowInDocs": true, + "GraphsPerPage": 6, + "Name": "Manager folder", + "Children": [ + { + "$type": "Models.Manager, Models", + "Code": "using APSIM.Shared.Utilities;\r\nusing Models.PMF;\r\nusing Models.Core;\r\nusing System;\r\n\r\nnamespace Models\r\n{\r\n [Serializable]\r\n public class Script : Model\r\n {\r\n [Description(\"Enter sowing date (dd/mm/yyyy) : \")]\r\n public string Date { get; set; }\r\n\r\n [Description(\"Enter sowing density (plants/m2) : \")]\r\n public double Density { get; set; }\r\n\r\n [Description(\"Enter sowing depth (mm) : \")]\r\n public double Depth { get; set; }\r\n\r\n [Description(\"Enter cultivar : \")]\r\n [Display(Type = DisplayType.CultivarName)]\r\n public string Cultivar { get; set; } \r\n\r\n [Description(\"Enter row spacing (mm) : \")]\r\n public double RowSpacing { get; set; }\r\n\r\n [Description(\"Enter skip row configuration : \")]\r\n public RowConfigurationType RowConfiguration { get; set; }\r\n\r\n [Description(\"Enter Fertile Tiller No. : \")]\r\n public double Ftn { get; set; }\r\n\r\n public enum RowConfigurationType \r\n {\r\n solid, single, _double /*replaces double*/\r\n }\r\n\r\n [Link]\r\n private Zone paddock;\r\n\r\n [Link]\r\n private Clock clock;\r\n\r\n [Link]\r\n private IPlant crop;\r\n\r\n [EventSubscribe(\"DoManagement\")]\r\n private void OnDoManagement(object sender, EventArgs e)\r\n {\r\n\t\t\tvar sowDate = DateTime.Parse(Date);\n\t\t\tif(SameDate(sowDate, clock.Today))\n //if (clock.Today == sowDate /* && isFallow */)\r\n {\r\n double population = Density * paddock.Area;\r\n crop.Sow(Cultivar, population, Depth, RowSpacing, budNumber: Ftn, rowConfig: (double)RowConfiguration);\r\n /*\r\n if (paddock_is_fallow() = 1 and today = date('[date]')) then\r\n [crop] sow plants =[density], sowing_depth = [depth], cultivar = [cultivar], row_spacing = [row_spacing], skip = [RowConfiguration], tiller_no_fertile = [ftn] ()\r\n endif\r\n */\r\n }\r\n }\n private bool SameDate(DateTime d1, DateTime d2)\n {\n return d1.DayOfYear == d2.DayOfYear;\n }\n\r\n }\r\n}\r\n", + "Parameters": [ + { + "Key": "Date", + "Value": "25-jul" + }, + { + "Key": "Density", + "Value": "12" + }, + { + "Key": "Depth", + "Value": "20" + }, + { + "Key": "Cultivar", + "Value": "Buster" + }, + { + "Key": "RowSpacing", + "Value": "750" + }, + { + "Key": "RowConfiguration", + "Value": "solid" + }, + { + "Key": "Ftn", + "Value": "0" + } + ], + "Name": "SowingRule", + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Manager, Models", + "Code": "using Models.PMF;\r\nusing Models.Core;\r\nusing System;\r\n\r\nnamespace Models\r\n{\r\n [Serializable]\r\n\r\n public class Script : Model\r\n {\r\n [Link]\r\n private Clock clock;\r\n\r\n [Link]\r\n private IPlant crop;\r\n\r\n [EventSubscribe(\"DoManagement\")]\r\n private void OnDoCalculations(object sender, EventArgs e)\r\n {\r\n if (crop.IsReadyForHarvesting)\r\n {\r\n crop.Harvest();\r\n crop.EndCrop();\r\n }\r\n /*\r\n \r\n\r\n if [crop].StageName = 'harvest_ripe' or [crop].plant_status = 'dead' then\r\n [crop] harvest\r\n [crop] end_crop\r\n endif\r\n\r\n \r\n */\r\n }\r\n }\r\n}\r\n", + "Parameters": [], + "Name": "Harvesting rule", + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Manager, Models", + "Code": "using Models.Interfaces;\nusing System;\nusing Models.Core;\nusing Models.PMF;\nusing Models.Soils;\nusing APSIM.Shared.Utilities;\n\nnamespace Models\n{\n [Serializable] \n public class Script : Model\n {\n [Link] private ISummary summary;\n [Link] private Irrigation Irrigation;\n [Link] private Clock Clock;\n [Link] private Soil Soil;\n [Link(IsOptional = true)] private IPlant existingCrop;\n private DateTime StartDate;\n private DateTime EndDate;\n private double TopDUL;\n private double TopLL;\n private int nLayers;\n [Link]\n private IPhysical soilPhysical;\n [Link]\n private ISoilWater waterBalance;\n //Communication to other modules\n \n //User inputs from properties tab\n [Description(\"Turn irrigation on?\")]\n public bool allowIrrigation { get; set; }\n [Description(\"Start of irrigation season (dd-MMM)\")]\n public string seasonStart { get; set; }\n [Description(\"End of irrigation season (dd-MMM)\")]\n public string seasonEnd { get; set; }\n [Description(\"Season allocation (mm)\")]\n public double seasonsAllocation { get; set; }\n [Description(\"Deficit to trigger irrigation (% PAWC)\")]\n public double triggerDeficit { get; set; }\n [Description(\"Deficit to stop irrigaton (% PAWC)\")]\n public double targetDeficit { get; set; }\n [Description(\"Minimum days for irrigation to return\")]\n public double returndays { get; set; }\n [Description(\"Maximum irrigation application (mm/day)\")]\n public double maximumAmount { get; set; }\n [Description(\"Depth to calculate PAWC (mm)\")]\n public double depthPAWC { get; set; }\n\n //Class members\n public double TopSWdeficit { get; set; }\n public double TopSWC { get; set; }\n public double DaysSinceIrrigation { get; set; }\n public double AmountToApply { get; set; }\n public double SeasonAppliedAmount { get; set; }\n \n private bool IrrigationIsAllowed { get; set; }\n private bool SeasonIsOpen { get; set; }\n private bool CropIsActive { get; set; }\n private bool IrrigatorIsAvailable { get; set; }\n private bool SoilIsDry { get; set; }\n\n \n //Calculate static soil variables\n [EventSubscribe(\"StartOfSimulation\")]\n private void OnStartOfSimulation(object sender, EventArgs e)\n { \n //Set the season dates\n StartDate = DateTime.Parse(seasonStart + \"-\" + Clock.Today.Year.ToString());\n EndDate = DateTime.Parse(seasonEnd + \"-\" + Clock.Today.Year.ToString());\n \n //Can we irrigate at all?\n IrrigationIsAllowed = false; \n if (allowIrrigation)\n IrrigationIsAllowed = true; \n\n //Calculate soil water variables\n double depthFromSurface = 0.0;\n double fracLayer = 0.0;\n nLayers = soilPhysical.Thickness.Length;\n for (int layer = 0; layer < nLayers; layer++)\n {\n fracLayer = Math.Min(1.0, (depthPAWC - depthFromSurface) / soilPhysical.Thickness[layer]);\n TopLL += soilPhysical.LL15mm[layer] * fracLayer;\n TopDUL += soilPhysical.DULmm[layer] * fracLayer;\n depthFromSurface += soilPhysical.Thickness[layer];\n if (depthFromSurface >= depthPAWC)\n layer = nLayers;\n }\n }\n \n //Determine daily requirement for irrigation\n [EventSubscribe(\"StartOfDay\")]\n private void OnStartOfDay(object sender, EventArgs e)\n {\n //Can we irrigate today? \n SeasonIsOpen = isBetween(Clock.Today, StartDate, EndDate);\n if (!SeasonIsOpen)\n SeasonAppliedAmount = 0;\n\n //Is there a crop in the ground that needs irrigation?\n CropIsActive = false;\n if ((existingCrop != null) && (existingCrop.IsAlive))\n CropIsActive = true;\n //if ((existingCrop.Phenology.Stage >= 3.0) && (existingCrop.Phenology.Stage < 6.0))\n \n //Is the irrigator available?\n IrrigatorIsAvailable = false;\n DaysSinceIrrigation += 1;\n if (DaysSinceIrrigation >= returndays)\n IrrigatorIsAvailable = true;\n \n //Is the soil dry enough to require irrigation?\n SoilIsDry = false;\n double depthFromSurface = 0.0;\n double fracLayer = 0.0;\n TopSWC = 0.0;\n for (int layer = 0; layer < nLayers; layer++)\n //for (int layer = 0; depthFromSurface < depthPAWC + soilPhysical.Thickness[layer]; layer++)\n {\n fracLayer = Math.Min(1.0, (depthPAWC - depthFromSurface) / soilPhysical.Thickness[layer]);\n TopSWC += waterBalance.SWmm[layer] * fracLayer;\n depthFromSurface += soilPhysical.Thickness[layer];\n if (depthFromSurface >= depthPAWC)\n layer = nLayers;\n }\n \n TopSWdeficit = TopSWC - TopDUL;\n if (Math.Max(0.0, -TopSWdeficit) >= (TopDUL - TopLL) * (100 - triggerDeficit) / 100)\n SoilIsDry = true;\n \n //Are all the conditions ratifying irrigation\n if (IrrigationIsAllowed && SeasonIsOpen && CropIsActive && IrrigatorIsAvailable && SoilIsDry)\n {\n //Lets bloody well irrigate then!!!!\n AmountToApply = TopDUL * targetDeficit / 100 - TopSWC;\n AmountToApply = Math.Max(0.0, Math.Min(AmountToApply, seasonsAllocation - SeasonAppliedAmount));\n AmountToApply = Math.Min(AmountToApply,maximumAmount);\n Irrigation.Apply(AmountToApply);\n DaysSinceIrrigation = 0;\n SeasonAppliedAmount += AmountToApply;\n }\n }\n \n ///Checks whether theDate is between iniDate and endDate (non-year specific)\n private bool isBetween(DateTime theDay, DateTime iniDate, DateTime endDate)\n {\n bool result = false;\n if (iniDate.DayOfYear < endDate.DayOfYear)\n {\n // period is within one year, ex: summer in the northern hemisphere\n if ((theDay.DayOfYear >= iniDate.DayOfYear) && (theDay.DayOfYear <= endDate.DayOfYear))\n result = true;\n }\n else\n {\n // period goes over the end of the year, ex: summer in the southern hemisphere\n if ((theDay.DayOfYear >= iniDate.DayOfYear) || (theDay.DayOfYear <= endDate.DayOfYear))\n result = true;\n }\n \n return result;\n }\n }\n}\n", + "Parameters": [ + { + "Key": "allowIrrigation", + "Value": "True" + }, + { + "Key": "seasonStart", + "Value": "1-Jul" + }, + { + "Key": "seasonEnd", + "Value": "30-mar" + }, + { + "Key": "seasonsAllocation", + "Value": "10000" + }, + { + "Key": "triggerDeficit", + "Value": "50" + }, + { + "Key": "targetDeficit", + "Value": "95" + }, + { + "Key": "returndays", + "Value": "3" + }, + { + "Key": "maximumAmount", + "Value": "30" + }, + { + "Key": "depthPAWC", + "Value": "650" + } + ], + "Name": "AutomaticIrrigation", + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Manager, Models", + "Code": "using Models.PMF;\r\nusing Models.Core;\r\nusing System;\r\nnamespace Models\r\n{\r\n [Serializable]\r\n public class Script : Model\r\n {\r\n [Link] Clock Clock;\r\n [Link] Irrigation Irrigation;\n \r\n [Description(\"Crop to be irrigated\")]\r\n public IPlant Crop { get; set; }\r\n\r\n [Description(\"Amount of irrigation to be applied (mm)\")] \n public double Amount { get; set; }\n \n [Description(\"Depth in the soil to apply the irrigation (mm)\")] \n public double Depth { get; set; }\n \n [Description(\"Efficiency of irrigation (0-1)\")] \n public double Efficiency { get; set; }\n \n [Description(\"Will the irrigation runoff?\")] \n public bool WillRunoff { get; set; }\n \r\n [EventSubscribe(\"Sowing\")]\r\n private void OnSowing(object sender, EventArgs e)\r\n {\r\n Model crop = sender as Model;\r\n if (Crop != null && crop.Name.ToLower() == (Crop as IModel).Name.ToLower())\r\n Irrigation.Apply(amount: Amount, depth: Depth, efficiency: Efficiency, willRunoff: WillRunoff);\n }\r\n }\r\n}\r\n", + "Parameters": [ + { + "Key": "Crop", + "Value": "[Sorghum]" + }, + { + "Key": "Amount", + "Value": "30" + }, + { + "Key": "Depth", + "Value": "0" + }, + { + "Key": "Efficiency", + "Value": "1" + }, + { + "Key": "WillRunoff", + "Value": "False" + } + ], + "Name": "Irrigate at sowing", + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Manager, Models", + "Code": "using Models.Soils.Nutrients;\r\nusing APSIM.Shared.Utilities;\r\nusing Models.Surface;\r\nusing Models.Utilities;\r\nusing Models.Soils.Nutrients;\r\nusing Models.Soils;\r\nusing Models.PMF;\r\nusing Models.Core;\r\nusing System;\r\nusing Models.Interfaces;\r\n\r\nnamespace Models\r\n{\r\n [Serializable]\r\n public class Script : Model\r\n {\r\n [Link] private Plant Wheat;\r\n [Link] private ISoilWater SoilWater;\r\n [Link] private Nutrient nutrient;\r\n [Link] private SurfaceOrganicMatter SOM;\r\n [Link] private Summary Summary;\r\n\r\n [Description(\"Reset Water? (Yes or No)\")]\r\n public string ResetWater {get;set;}\r\n\r\n [Description(\"Reset Soil Nutrients? (Yes or No)\")]\r\n public string ResetNutrients {get;set;}\r\n\r\n [Description(\"Reset Surface Organic Matter? (Yes or No)\")]\r\n public string ResetSOM {get;set;}\r\n\r\n [EventSubscribe(\"Sowing\")]\r\n private void OnSowing(object sender, EventArgs e)\r\n {\r\n if (ResetWater == \"Yes\")\r\n {\r\n Summary.WriteMessage(this, \"Reset Water\", MessageType.Diagnostic);\r\n SoilWater.Reset();\r\n }\r\n if (ResetNutrients == \"Yes\")\r\n {\r\n Summary.WriteMessage(this, \"Reset Nutrients\", MessageType.Diagnostic);\r\n nutrient.Reset();\r\n }\r\n if (ResetSOM == \"Yes\")\r\n {\r\n Summary.WriteMessage(this, \"Reset Surface OM\", MessageType.Diagnostic);\r\n SOM.Reset();\r\n }\r\n }\r\n }\r\n}\r\n", + "Parameters": [ + { + "Key": "ResetWater", + "Value": "Yes" + }, + { + "Key": "ResetNutrients", + "Value": "Yes" + }, + { + "Key": "ResetSOM", + "Value": "Yes" + } + ], + "Name": "Reset on sowing", + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Irrigation, Models", + "Name": "Irrigation", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Fertiliser, Models", + "ResourceName": "Fertiliser", + "Name": "Fertiliser", + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.MicroClimate, Models", + "a_interception": 0.0, + "b_interception": 1.0, + "c_interception": 0.0, + "d_interception": 0.0, + "SoilHeatFluxFraction": 0.4, + "MinimumHeightDiffForNewLayer": 0.0, + "NightInterceptionFraction": 0.5, + "ReferenceHeight": 2.0, + "Name": "MicroClimate", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.Soil, Models", + "RecordNumber": 0, + "ASCOrder": null, + "ASCSubOrder": null, + "SoilType": "GLHSoil", + "LocalName": null, + "Site": "Cooper Lab", + "NearestTown": "Unknown", + "Region": "Gatton", + "State": null, + "Country": null, + "NaturalVegetation": "Unknown", + "ApsoilNumber": null, + "Latitude": 0.0, + "Longitude": 0.0, + "LocationAccuracy": null, + "YearOfSampling": null, + "DataSource": null, + "Comments": null, + "Name": "GLH Field", + "Children": [ + { + "$type": "Models.Soils.Physical, Models", + "Depth": [ + "0-20", + "20-40", + "40-60", + "60-90", + "90-120", + "120-150", + "150-180" + ], + "Thickness": [ + 200.0, + 200.0, + 200.0, + 300.0, + 300.0, + 300.0, + 300.0 + ], + "ParticleSizeClay": null, + "ParticleSizeSand": null, + "ParticleSizeSilt": null, + "Rocks": null, + "Texture": null, + "BD": [ + 1.32, + 1.3, + 1.23, + 1.27, + 1.37, + 1.35, + 1.35 + ], + "AirDry": [ + 0.1, + 0.15, + 0.28, + 0.28, + 0.28, + 0.3, + 0.3 + ], + "LL15": [ + 0.3, + 0.3, + 0.35, + 0.32, + 0.29, + 0.31, + 0.31 + ], + "DUL": [ + 0.41, + 0.43, + 0.46, + 0.44, + 0.4, + 0.41, + 0.38 + ], + "SAT": [ + 0.46, + 0.48, + 0.51, + 0.49, + 0.45, + 0.46, + 0.43 + ], + "KS": null, + "BDMetadata": null, + "AirDryMetadata": null, + "LL15Metadata": null, + "DULMetadata": null, + "SATMetadata": null, + "KSMetadata": null, + "RocksMetadata": null, + "TextureMetadata": null, + "ParticleSizeSandMetadata": null, + "ParticleSizeSiltMetadata": null, + "ParticleSizeClayMetadata": null, + "Name": "Physical", + "Children": [ + { + "$type": "Models.Soils.SoilCrop, Models", + "LL": [ + 0.3, + 0.3, + 0.35, + 0.32, + 0.29, + 0.31, + 0.31 + ], + "KL": [ + 0.08, + 0.08, + 0.08, + 0.08, + 0.06, + 0.04, + 0.02 + ], + "XF": [ + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0 + ], + "LLMetadata": null, + "KLMetadata": null, + "XFMetadata": null, + "Name": "SorghumSoil", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.WaterModel.WaterBalance, Models", + "SummerDate": "1-Nov", + "SummerU": 6.0, + "SummerCona": 3.5, + "WinterDate": "1-Apr", + "WinterU": 6.0, + "WinterCona": 3.5, + "DiffusConst": 88.0, + "DiffusSlope": 35.4, + "Salb": 0.13, + "CN2Bare": 91.0, + "CNRed": 20.0, + "CNCov": 0.8, + "DischargeWidth": "NaN", + "CatchmentArea": "NaN", + "Thickness": [ + 200.0, + 200.0, + 200.0, + 300.0, + 300.0, + 300.0, + 300.0 + ], + "SWCON": [ + 0.5, + 0.5, + 0.5, + 0.5, + 0.5, + 0.5, + 0.5 + ], + "KLAT": null, + "ResourceName": "WaterBalance", + "Name": "SoilWater", + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.SoilNitrogen, Models", + "fom_types": [ + "default", + "manure", + "mucuna", + "lablab", + "shemp", + "stable" + ], + "fract_carb": [ + 0.2, + 0.3, + 0.54, + 0.57, + 0.45, + 0.0 + ], + "fract_cell": [ + 0.7, + 0.3, + 0.37, + 0.37, + 0.47, + 0.1 + ], + "fract_lign": [ + 0.1, + 0.4, + 0.09, + 0.06, + 0.08, + 0.9 + ], + "NPartitionApproach": 0, + "Name": "SoilNitrogen", + "Children": [ + { + "$type": "Models.Soils.SoilNitrogenNO3, Models", + "Name": "NO3", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.SoilNitrogenNH4, Models", + "Name": "NH4", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.SoilNitrogenUrea, Models", + "Name": "Urea", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.Organic, Models", + "Depth": [ + "0-20", + "20-40", + "40-60", + "60-90", + "90-120", + "120-150", + "150-180" + ], + "FOMCNRatio": 30.0, + "Thickness": [ + 200.0, + 200.0, + 200.0, + 300.0, + 300.0, + 300.0, + 300.0 + ], + "Carbon": [ + 1.3, + 0.65, + 0.32, + 0.11, + 0.11, + 0.11, + 0.11 + ], + "SoilCNRatio": [ + 12.5, + 12.5, + 12.5, + 12.5, + 12.5, + 12.5, + 12.5 + ], + "FBiom": [ + 0.03, + 0.01, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "FInert": [ + 0.31, + 0.38, + 0.47, + 0.7, + 0.9, + 0.95, + 0.95 + ], + "FOM": [ + 514.7087369422752, + 368.80492584502815, + 264.2602768618072, + 160.28196006083508, + 97.21592297573227, + 58.96443789704345, + 35.763739417278366 + ], + "CarbonMetadata": null, + "FOMMetadata": null, + "Name": "Organic", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.Chemical, Models", + "Depth": [ + "0-20", + "20-40", + "40-60", + "60-90", + "90-120", + "120-150", + "150-180" + ], + "Thickness": [ + 200.0, + 200.0, + 200.0, + 300.0, + 300.0, + 300.0, + 300.0 + ], + "NO3N": [ + 9.0, + 2.48, + 2.79, + 1.28, + 2.98, + 2.965, + 1.3870000000000011 + ], + "NH4N": [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + "PH": [ + 8.2, + 8.7, + 8.9, + 8.1, + 8.0, + 8.0, + 8.0 + ], + "CL": null, + "EC": null, + "ESP": null, + "LabileP": null, + "UnavailableP": null, + "ECMetadata": null, + "CLMetadata": null, + "ESPMetadata": null, + "PHMetadata": null, + "Name": "Chemical", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.Sample, Models", + "Depth": [ + "0-20", + "20-40", + "40-60", + "60-90", + "90-120", + "120-150", + "150-180" + ], + "Thickness": [ + 200.0, + 200.0, + 200.0, + 300.0, + 300.0, + 300.0, + 300.0 + ], + "NO3": null, + "NH4": null, + "LabileP": null, + "UnavailableP": null, + "SW": [ + 0.385, + 0.47, + 0.467, + 0.459, + 0.394, + 0.399, + 0.38 + ], + "OC": null, + "EC": null, + "CL": null, + "ESP": null, + "PH": null, + "SWUnits": 0, + "OCUnits": 0, + "PHUnits": 0, + "Name": "Initial water", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.CERESSoilTemperature, Models", + "Name": "Temperature", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Plant, Models", + "ResourceName": "Sorghum", + "Name": "Sorghum", + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Surface.SurfaceOrganicMatter, Models", + "InitialResidueName": "wheat_stubble", + "InitialResidueType": "wheat", + "InitialResidueMass": 0.0, + "InitialStandingFraction": 0.0, + "InitialCPR": 0.0, + "InitialCNR": 80.0, + "ResourceName": "SurfaceOrganicMatter", + "Name": "SurfaceOrganicMatter", + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Report, Models", + "VariableNames": [ + "[Clock].Today", + "[Sorghum].AboveGround.Wt", + "[Sorghum].Grain.Wt", + "[Sorghum].Leaf.LAI", + "[Sorghum].SowingData.Population" + ], + "EventNames": [ + "[Sorghum].Harvesting" + ], + "GroupByVariableName": null, + "Name": "SowHarvestReport", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Report, Models", + "VariableNames": [ + "[Clock].Today", + "[Sorghum].AboveGround.Wt", + "[Sorghum].Grain.Wt", + "[Sorghum].Leaf.LAI" + ], + "EventNames": [ + "[Clock].DoReport" + ], + "GroupByVariableName": null, + "Name": "SowDailyReport", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Graph, Models", + "Caption": null, + "Axis": [ + { + "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", + "Title": null, + "Position": 3, + "Inverted": false, + "CrossesAtZero": false, + "Minimum": null, + "Maximum": null, + "Interval": null + }, + { + "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", + "Title": null, + "Position": 0, + "Inverted": false, + "CrossesAtZero": false, + "Minimum": null, + "Maximum": null, + "Interval": null + } + ], + "LegendPosition": 0, + "LegendOrientation": 0, + "AnnotationLocation": 0, + "DisabledSeries": [], + "LegendOutsideGraph": false, + "Name": "Yield", + "Children": [ + { + "$type": "Models.Series, Models", + "Type": 5, + "XAxis": 3, + "YAxis": 0, + "ColourArgb": -1663232, + "FactorToVaryColours": "Management", + "FactorToVaryMarkers": null, + "FactorToVaryLines": "SowingDate", + "Marker": 1, + "MarkerSize": 0, + "Line": 4, + "LineThickness": 0, + "TableName": "SowHarvestReport", + "XFieldName": "SowingDate", + "YFieldName": "Sorghum.Grain.Wt", + "X2FieldName": null, + "Y2FieldName": null, + "ShowInLegend": false, + "IncludeSeriesNameInLegend": false, + "Cumulative": false, + "CumulativeX": false, + "Filter": "[Management] = 'HighN_Dry'", + "Name": "SorghumYield", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Series, Models", + "Type": 1, + "XAxis": 3, + "YAxis": 0, + "ColourArgb": -1663232, + "FactorToVaryColours": "Experiment", + "FactorToVaryMarkers": null, + "FactorToVaryLines": null, + "Marker": 1, + "MarkerSize": 0, + "Line": 4, + "LineThickness": 0, + "TableName": "SowHarvestReport", + "XFieldName": "SowingDate", + "YFieldName": "Sorghum.Grain.Wt", + "X2FieldName": null, + "Y2FieldName": null, + "ShowInLegend": true, + "IncludeSeriesNameInLegend": false, + "Cumulative": false, + "CumulativeX": false, + "Filter": "[Management] = 'HighN_Irr'", + "Name": "SorghumYield1", + "Children": [], + "Enabled": false, + "ReadOnly": false + }, + { + "$type": "Models.Series, Models", + "Type": 1, + "XAxis": 3, + "YAxis": 0, + "ColourArgb": -1663232, + "FactorToVaryColours": "Management", + "FactorToVaryMarkers": null, + "FactorToVaryLines": null, + "Marker": 4, + "MarkerSize": 0, + "Line": 4, + "LineThickness": 0, + "TableName": "SimulationStats", + "XFieldName": "SowingDate", + "YFieldName": "Sorghum.Grain.WtMean", + "X2FieldName": null, + "Y2FieldName": null, + "ShowInLegend": true, + "IncludeSeriesNameInLegend": false, + "Cumulative": false, + "CumulativeX": false, + "Filter": "[Management] = 'HighN_Irr'", + "Name": "SorghumYield11", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Graph, Models", + "Caption": null, + "Axis": [ + { + "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", + "Title": null, + "Position": 3, + "Inverted": false, + "CrossesAtZero": false, + "Minimum": null, + "Maximum": null, + "Interval": null + }, + { + "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", + "Title": null, + "Position": 0, + "Inverted": false, + "CrossesAtZero": false, + "Minimum": null, + "Maximum": null, + "Interval": null + } + ], + "LegendPosition": 0, + "LegendOrientation": 0, + "AnnotationLocation": 0, + "DisabledSeries": [], + "LegendOutsideGraph": false, + "Name": "Biomass", + "Children": [ + { + "$type": "Models.Series, Models", + "Type": 1, + "XAxis": 3, + "YAxis": 0, + "ColourArgb": -1663232, + "FactorToVaryColours": "SowingDate", + "FactorToVaryMarkers": null, + "FactorToVaryLines": null, + "Marker": 11, + "MarkerSize": 0, + "Line": 0, + "LineThickness": 0, + "TableName": "SowDailyReport", + "XFieldName": "Clock.Today", + "YFieldName": "Sorghum.AboveGround.Wt", + "X2FieldName": null, + "Y2FieldName": null, + "ShowInLegend": true, + "IncludeSeriesNameInLegend": false, + "Cumulative": false, + "CumulativeX": false, + "Filter": "[Management] = 'HighN_Irr' AND [Clock.Today] > #1996-05-01# AND [Clock.Today] < #1997-05-01#", + "Name": "SorghumWt", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.GraphPanel, Models", + "HideTitles": false, + "FontSize": 14.0, + "MarkerSize": 0, + "SameXAxes": false, + "SameYAxes": true, + "LegendOutsideGraph": false, + "LegendPosition": 0, + "LegendOrientation": 0, + "NumCols": 2, + "Name": "GraphPanel", + "Children": [ + { + "$type": "Models.Manager, Models", + "Code": "using System;\r\nusing Models.Core;\r\nusing Models.Core.Run;\r\nusing Models.Factorial;\r\nusing Models;\r\nusing Models.Storage;\r\nusing System.Collections.Generic;\r\nusing System.Linq;\r\n\r\nnamespace Models\r\n{\r\n\t/// \r\n\t/// This script must implement the IGraphPanelScript interface.\r\n\t/// \r\n\t[Serializable]\r\n\tpublic class GraphPanelScriptTemplate : Model, IGraphPanelScript\r\n\t{\r\n\t\t/// \r\n /// Gets a list of simulation names. One tab of graphs will be generated for each simulation.\r\n /// \r\n /// Provides access to the datastore.\r\n /// Provides access to the graph panel and the simulations tree.\r\n\t\tpublic string[] GetSimulationNames(IStorageReader reader, GraphPanel panel)\r\n\t\t{\r\n\t\t\t// Get a list of all descendants of the panel's parent which are runnable\r\n\t\t\t// (simulations, experiments, etc).\r\n\t\t\tList runnables = panel.Parent.FindAllDescendants().Cast().ToList();\r\n\r\n\t\t\t// Remove all simulations which are children of an experiment.\r\n\t\t\trunnables.RemoveAll(r => r is Simulation && (r as Simulation).Parent is Experiment);\r\n\r\n\t\t\t// Return the names of all simulations generated by these runnables.\r\n\t\t\treturn runnables.SelectMany(r => r.GenerateSimulationDescriptions().Select(d => d.Name)).ToArray();\r\n\t\t}\r\n\r\n /// \r\n /// Called on each graph before it is drawn in a tab.\r\n /// \r\n /// The graph.\r\n /// Simulation name for this tab.\r\n public void TransformGraph(Models.Graph graph, string simulationName)\r\n {\r\n }\r\n }\r\n}", + "Parameters": [], + "Name": "Config", + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Graph, Models", + "Caption": null, + "Axis": [ + { + "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", + "Title": null, + "Position": 3, + "Inverted": false, + "CrossesAtZero": false, + "Minimum": null, + "Maximum": null, + "Interval": null + }, + { + "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", + "Title": null, + "Position": 0, + "Inverted": false, + "CrossesAtZero": false, + "Minimum": null, + "Maximum": null, + "Interval": null + }, + { + "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", + "Title": "Leaf.LAI", + "Position": 2, + "Inverted": false, + "CrossesAtZero": false, + "Minimum": null, + "Maximum": null, + "Interval": null + } + ], + "LegendPosition": 0, + "LegendOrientation": 0, + "AnnotationLocation": 0, + "DisabledSeries": [], + "LegendOutsideGraph": false, + "Name": "BiomassYield", + "Children": [ + { + "$type": "Models.Series, Models", + "Type": 1, + "XAxis": 3, + "YAxis": 0, + "ColourArgb": -2793984, + "FactorToVaryColours": null, + "FactorToVaryMarkers": null, + "FactorToVaryLines": null, + "Marker": 1, + "MarkerSize": 0, + "Line": 4, + "LineThickness": 0, + "TableName": "HarvestReport", + "XFieldName": "Clock.Today", + "YFieldName": "Sorghum.Grain.Wt", + "X2FieldName": null, + "Y2FieldName": null, + "ShowInLegend": true, + "IncludeSeriesNameInLegend": false, + "Cumulative": false, + "CumulativeX": false, + "Filter": "", + "Name": "Yield", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Series, Models", + "Type": 1, + "XAxis": 3, + "YAxis": 0, + "ColourArgb": -16736653, + "FactorToVaryColours": null, + "FactorToVaryMarkers": null, + "FactorToVaryLines": null, + "Marker": 11, + "MarkerSize": 0, + "Line": 0, + "LineThickness": 0, + "TableName": "SowDailyReport", + "XFieldName": "Clock.Today", + "YFieldName": "Sorghum.AboveGround.Wt", + "X2FieldName": null, + "Y2FieldName": null, + "ShowInLegend": true, + "IncludeSeriesNameInLegend": false, + "Cumulative": false, + "CumulativeX": false, + "Filter": "", + "Name": "Biomass", + "Children": [], + "Enabled": false, + "ReadOnly": false + }, + { + "$type": "Models.Series, Models", + "Type": 1, + "XAxis": 3, + "YAxis": 2, + "ColourArgb": -16747854, + "FactorToVaryColours": null, + "FactorToVaryMarkers": null, + "FactorToVaryLines": null, + "Marker": 11, + "MarkerSize": 0, + "Line": 0, + "LineThickness": 0, + "TableName": "SowDailyReport", + "XFieldName": "Clock.Today", + "YFieldName": "Sorghum.Leaf.LAI", + "X2FieldName": null, + "Y2FieldName": null, + "ShowInLegend": true, + "IncludeSeriesNameInLegend": false, + "Cumulative": false, + "CumulativeX": false, + "Filter": "", + "Name": "LAI", + "Children": [], + "Enabled": false, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Core.Folder, Models", + "ShowInDocs": false, + "GraphsPerPage": 6, + "Name": "CO2AndTranspirationEfficiency", + "Children": [ + { + "$type": "Models.Factorial.Experiment, Models", + "DisabledSimNames": null, + "Name": "CO2TE", + "Children": [ + { + "$type": "Models.Memo, Models", + "Text": "This test examines the impact of a doubling of CO2 from historical (350ppm) on Transpiration Efficiency. [Reyenga1999] suggest an increase of approximately 37% in Transpiration Efficiency over this range in CO2 concentration.\nIn this test, a series of wheat crops are simulated for Dalby, Queensland, Australia. Nitrogen limitation is removed. The slope of plots of biomass production vs crop water use is used to quantify a gross seasonal TE. The change in slope should approximate the response suggested by [Reyenga1999].", + "Name": "Memo", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Factorial.Factors, Models", + "Name": "Factors", + "Children": [ + { + "$type": "Models.Factorial.Factor, Models", + "Specification": "[SetCO2]", + "Name": "CO2", + "Children": [ + { + "$type": "Models.Manager, Models", + "Code": "using Models.Climate;\r\nusing System;\r\nusing Models.Core;\r\nusing APSIM.Shared.Utilities;\r\nusing System.Collections.Generic;\r\nusing System.Text;\r\nusing Models.PMF;\r\nusing Models;\r\nusing System.Xml.Serialization;\r\n\r\nnamespace Models\r\n{\r\n [Serializable] \r\n [System.Xml.Serialization.XmlInclude(typeof(Model))]\r\n public class Script : Model\r\n {\r\n [Link] Weather Met;\r\n [Link] Clock Clock;\r\n \r\n [Description(\"CO2 conc\")]\r\n public double CO2 { get; set; }\r\n \r\n \r\n [EventSubscribe(\"PreparingNewWeatherData\")]\r\n private void OnPreparingNewWeatherData(object sender, EventArgs e)\r\n {\r\n Met.CO2 = CO2; \r\n }\r\n }\r\n}\r\n", + "Parameters": [ + { + "Key": "CO2", + "Value": "350" + } + ], + "Name": "350ppm", + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Manager, Models", + "Code": "using Models.Climate;\r\nusing System;\r\nusing Models.Core;\r\nusing APSIM.Shared.Utilities;\r\nusing System.Collections.Generic;\r\nusing System.Text;\r\nusing Models.PMF;\r\nusing Models;\r\nusing System.Xml.Serialization;\r\n\r\nnamespace Models\r\n{\r\n [Serializable] \r\n [System.Xml.Serialization.XmlInclude(typeof(Model))]\r\n public class Script : Model\r\n {\r\n [Link] Weather Met;\r\n [Link] Clock Clock;\r\n \r\n [Description(\"CO2 conc\")]\r\n public double CO2 { get; set; }\r\n \r\n \r\n [EventSubscribe(\"PreparingNewWeatherData\")]\r\n private void OnPreparingNewWeatherData(object sender, EventArgs e)\r\n {\r\n Met.CO2 = CO2; \r\n }\r\n }\r\n}\r\n", + "Parameters": [ + { + "Key": "CO2", + "Value": "700" + } + ], + "Name": "700ppm", + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Core.Simulation, Models", + "IsRunning": false, + "Descriptors": null, + "Name": "CO2TEBaseSimulation", + "Children": [ + { + "$type": "Models.Clock, Models", + "Start": "1900-01-01T00:00:00", + "End": "2000-12-31T00:00:00", + "Name": "Clock", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Summary, Models", + "Verbosity": 100, + "Name": "summaryfile", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Climate.Weather, Models", + "ConstantsFile": null, + "FileName": "%root%\\Examples\\WeatherFiles\\Dalby.met", + "ExcelWorkSheetName": "", + "Name": "Weather", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.Arbitrator.SoilArbitrator, Models", + "Name": "Soil Arbitrator", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Core.Zone, Models", + "Area": 1.0, + "Slope": 0.0, + "AspectAngle": 0.0, + "Altitude": 50.0, + "Name": "Field", + "Children": [ + { + "$type": "Models.Fertiliser, Models", + "ResourceName": "Fertiliser", + "Name": "Fertiliser", + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Surface.SurfaceOrganicMatter, Models", + "InitialResidueName": "wheat_stubble", + "InitialResidueType": "wheat", + "InitialResidueMass": 500.0, + "InitialStandingFraction": 0.0, + "InitialCPR": 0.0, + "InitialCNR": 100.0, + "ResourceName": "SurfaceOrganicMatter", + "Name": "SurfaceOrganicMatter", + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.MicroClimate, Models", + "a_interception": 0.0, + "b_interception": 1.0, + "c_interception": 0.0, + "d_interception": 0.0, + "SoilHeatFluxFraction": 0.4, + "MinimumHeightDiffForNewLayer": 0.0, + "NightInterceptionFraction": 0.5, + "ReferenceHeight": 2.0, + "Name": "MicroClimate", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Report, Models", + "VariableNames": [ + "[Clock].Today.Date", + "[Sorghum].Grain.Wt", + "[Sorghum].AboveGround.Wt", + "Sum of [Sorghum].Leaf.Transpiration from [Sorghum].Sowing to [Sorghum].Harvesting as CropET" + ], + "EventNames": [ + "[Sorghum].Harvesting" + ], + "GroupByVariableName": null, + "Name": "SensibilityReport", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.PMF.Plant, Models", + "ResourceName": "Sorghum", + "Name": "Sorghum", + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Manager, Models", + "Code": "using Models.Climate;\r\nusing System;\r\nusing Models.Core;\r\nusing APSIM.Shared.Utilities;\r\nusing System.Collections.Generic;\r\nusing System.Text;\r\nusing Models.PMF;\r\nusing Models;\r\nusing System.Xml.Serialization;\r\n\r\nnamespace Models\r\n{\r\n [Serializable] \r\n [System.Xml.Serialization.XmlInclude(typeof(Model))]\r\n public class Script : Model\r\n {\r\n [Link] Weather Met;\r\n [Link] Clock Clock;\r\n [Link] Zone zone;\r\n \r\n [Description(\"CO2 conc\")]\r\n public double CO2 { get; set; }\r\n \r\n \r\n [EventSubscribe(\"PreparingNewWeatherData\")]\r\n private void OnPreparingNewWeatherData(object sender, EventArgs e)\r\n {\r\n zone.Set(\"Weather.CO2\", CO2);\r\n }\r\n }\r\n}\r\n", + "Parameters": [ + { + "Key": "CO2", + "Value": "0" + } + ], + "Name": "SetCO2", + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Manager, Models", + "Code": "using Models.Interfaces;\nusing System;\nusing Models.Core;\nusing Models.PMF;\nusing Models.Soils;\nusing Models.Soils.Nutrients;\nusing Models.Utilities;\nusing APSIM.Shared.Utilities;\nusing Models.Climate;\n\nnamespace Models\n{\n [Serializable]\n public class Script : Model\n {\n [Link] private Clock Clock;\n [Link] private Fertiliser Fertiliser;\n [Link] private Summary Summary;\n [Link] private Plant Sorghum;\n [Link] private Soil Soil;\n private Accumulator accumulatedRain;\n [Link]\n private ISoilWater waterBalance;\n \n [Description(\"Start of sowing window (d-mmm)\")]\n public string StartDate { get; set;}\n [Description(\"End of sowing window (d-mmm)\")]\n public string EndDate { get; set;}\n [Description(\"Minimum extractable soil water for sowing (mm)\")]\n public double MinESW { get; set;}\n [Description(\"Accumulated rainfall required for sowing (mm)\")]\n public double MinRain { get; set;}\n [Description(\"Duration of rainfall accumulation (d)\")]\n public int RainDays { get; set;}\n [Description(\"Cultivar to be sown\")]\n [Display(Type=DisplayType.CultivarName)]\n public string CultivarName { get; set;}\n [Description(\"Sowing depth (mm)\")]\n public double SowingDepth { get; set;} \n [Description(\"Row spacing (mm)\")]\n public double RowSpacing { get; set;} \n [Description(\"Plant population (/m2)\")]\n public double Population { get; set;} \n \n \n [EventSubscribe(\"StartOfSimulation\")]\n private void OnSimulationCommencing(object sender, EventArgs e)\n {\n accumulatedRain = new Accumulator(this, \"[Weather].Rain\", RainDays);\n }\n \n\n [EventSubscribe(\"DoManagement\")]\n private void OnDoManagement(object sender, EventArgs e)\n {\n accumulatedRain.Update();\n \n if (DateUtilities.WithinDates(StartDate,Clock.Today,EndDate) &&\n !Sorghum.IsAlive &&\n MathUtilities.Sum(waterBalance.ESW) > MinESW &&\n accumulatedRain.Sum > MinRain)\n {\n Sorghum.Sow(population:Population, cultivar:CultivarName, depth:SowingDepth, rowSpacing:RowSpacing); \n }\n \n }\n \n }\n}\n", + "Parameters": [ + { + "Key": "StartDate", + "Value": "1-may" + }, + { + "Key": "EndDate", + "Value": "10-jul" + }, + { + "Key": "MinESW", + "Value": "100" + }, + { + "Key": "MinRain", + "Value": "25" + }, + { + "Key": "RainDays", + "Value": "7" + }, + { + "Key": "CultivarName", + "Value": "Buster" + }, + { + "Key": "SowingDepth", + "Value": "30" + }, + { + "Key": "RowSpacing", + "Value": "250" + }, + { + "Key": "Population", + "Value": "120" + } + ], + "Name": "SowingRule", + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Manager, Models", + "Code": "using Models.Soils.Nutrients;\r\nusing System;\r\nusing Models.Core;\r\nusing Models.PMF;\r\nusing Models.Soils;\r\nusing Models.Soils.Nutrients;\r\nusing Models.Utilities;\r\nusing APSIM.Shared.Utilities;\r\n\r\nnamespace Models\r\n{\r\n [Serializable]\r\n public class Script : Model\r\n {\r\n [Link] Plant Sorghum;\r\n\r\n [EventSubscribe(\"DoManagement\")]\r\n private void OnDoManagement(object sender, EventArgs e)\r\n {\r\n if (Sorghum.IsReadyForHarvesting)\r\n {\r\n Sorghum.Harvest();\r\n Sorghum.EndCrop(); \r\n }\r\n \r\n }\r\n \r\n }\r\n}\r\n", + "Parameters": [], + "Name": "Harvest", + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Manager, Models", + "Code": "using Models.PMF;\r\nusing Models.Core;\r\nusing System;\r\nnamespace Models\r\n{\r\n [Serializable]\r\n public class Script : Model\r\n {\r\n [Link] Clock Clock;\r\n [Link] Fertiliser Fertiliser;\r\n [Link] Summary Summary;\r\n \r\n \r\n [Description(\"Amount of fertiliser to be applied (kg/ha)\")]\r\n public double Amount { get; set;}\r\n \r\n [Description(\"Crop to be fertilised\")]\r\n public string CropName { get; set;}\r\n \r\n \r\n \r\n\r\n [EventSubscribe(\"Sowing\")]\r\n private void OnSowing(object sender, EventArgs e)\r\n {\r\n Model crop = sender as Model;\r\n if (crop.Name.ToLower()==CropName.ToLower())\r\n Fertiliser.Apply(Amount: Amount, Type: Fertiliser.Types.NO3N);\r\n }\r\n \r\n }\r\n}\r\n", + "Parameters": [ + { + "Key": "Amount", + "Value": "300" + }, + { + "Key": "CropName", + "Value": "Sorghum" + } + ], + "Name": "SowingFertiliser", + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.Soil, Models", + "RecordNumber": 0, + "ASCOrder": null, + "ASCSubOrder": null, + "SoilType": "HMM", + "LocalName": null, + "Site": "HRS", + "NearestTown": "Unknown", + "Region": "SE Queensland", + "State": null, + "Country": null, + "NaturalVegetation": "Unknown", + "ApsoilNumber": null, + "Latitude": 0.0, + "Longitude": 0.0, + "LocationAccuracy": null, + "YearOfSampling": null, + "DataSource": null, + "Comments": null, + "Name": "Soil", + "Children": [ + { + "$type": "Models.Soils.Physical, Models", + "Depth": [ + "0-10", + "10-20", + "20-40", + "40-60", + "60-80", + "80-100", + "100-120", + "120-140", + "140-160", + "160-180" + ], + "Thickness": [ + 100.0, + 100.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0 + ], + "ParticleSizeClay": null, + "ParticleSizeSand": null, + "ParticleSizeSilt": null, + "Rocks": null, + "Texture": null, + "BD": [ + 1.34, + 1.34, + 1.33, + 1.38, + 1.4, + 1.55, + 1.59, + 1.63, + 1.66, + 1.68 + ], + "AirDry": [ + 0.08, + 0.19, + 0.23, + 0.26, + 0.26, + 0.28, + 0.25, + 0.28, + 0.3, + 0.31 + ], + "LL15": [ + 0.226, + 0.226, + 0.258, + 0.27, + 0.268, + 0.304, + 0.335, + 0.33, + 0.32, + 0.33 + ], + "DUL": [ + 0.42, + 0.42, + 0.46, + 0.46, + 0.43, + 0.4, + 0.37, + 0.33, + 0.32, + 0.33 + ], + "SAT": [ + 0.45, + 0.45, + 0.48, + 0.47, + 0.45, + 0.41, + 0.38, + 0.37, + 0.37, + 0.36 + ], + "KS": null, + "BDMetadata": null, + "AirDryMetadata": null, + "LL15Metadata": null, + "DULMetadata": null, + "SATMetadata": null, + "KSMetadata": null, + "RocksMetadata": null, + "TextureMetadata": null, + "ParticleSizeSandMetadata": null, + "ParticleSizeSiltMetadata": null, + "ParticleSizeClayMetadata": null, + "Name": "Physical", + "Children": [ + { + "$type": "Models.Soils.SoilCrop, Models", + "LL": [ + 0.226, + 0.226, + 0.258, + 0.27, + 0.268, + 0.304, + 0.335, + 0.33, + 0.32, + 0.33 + ], + "KL": [ + 0.07, + 0.07, + 0.07, + 0.07, + 0.06, + 0.06, + 0.06, + 0.05, + 0.05, + 0.04 + ], + "XF": [ + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0 + ], + "LLMetadata": null, + "KLMetadata": null, + "XFMetadata": null, + "Name": "SorghumSoil", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.WaterModel.WaterBalance, Models", + "SummerDate": "1-Nov", + "SummerU": 1.5, + "SummerCona": 6.5, + "WinterDate": "1-Apr", + "WinterU": 1.5, + "WinterCona": 6.5, + "DiffusConst": 40.0, + "DiffusSlope": 16.0, + "Salb": 0.2, + "CN2Bare": 85.0, + "CNRed": 20.0, + "CNCov": 0.8, + "DischargeWidth": "NaN", + "CatchmentArea": "NaN", + "Thickness": [ + 100.0, + 100.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0 + ], + "SWCON": [ + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3, + 0.3 + ], + "KLAT": null, + "ResourceName": "WaterBalance", + "Name": "SoilWater", + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.SoilNitrogen, Models", + "fom_types": [ + "default", + "manure", + "mucuna", + "lablab", + "shemp", + "stable" + ], + "fract_carb": [ + 0.2, + 0.3, + 0.54, + 0.57, + 0.45, + 0.0 + ], + "fract_cell": [ + 0.7, + 0.3, + 0.37, + 0.37, + 0.47, + 0.1 + ], + "fract_lign": [ + 0.1, + 0.4, + 0.09, + 0.06, + 0.08, + 0.9 + ], + "NPartitionApproach": 0, + "Name": "SoilNitrogen", + "Children": [ + { + "$type": "Models.Soils.SoilNitrogenNO3, Models", + "Name": "NO3", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.SoilNitrogenNH4, Models", + "Name": "NH4", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.SoilNitrogenUrea, Models", + "Name": "Urea", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.Organic, Models", + "Depth": [ + "0-10", + "10-20", + "20-40", + "40-60", + "60-80", + "80-100", + "100-120", + "120-140", + "140-160", + "160-180" + ], + "FOMCNRatio": 50.0, + "Thickness": [ + 100.0, + 100.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0 + ], + "Carbon": [ + 1.19, + 0.59, + 0.45, + 0.3, + 0.2, + 0.16, + 0.17, + 0.17, + 0.17, + 0.17 + ], + "SoilCNRatio": [ + 12.5, + 12.5, + 12.5, + 12.5, + 12.5, + 12.5, + 12.5, + 12.5, + 12.5, + 12.5 + ], + "FBiom": [ + 0.05, + 0.02, + 0.01, + 0.01, + 0.01, + 0.01, + 0.01, + 0.05, + 0.02, + 0.01 + ], + "FInert": [ + 0.45, + 0.6, + 0.75, + 0.9, + 0.9, + 0.9, + 0.9, + 0.9, + 0.9, + 0.9 + ], + "FOM": [ + 260.58740315916066, + 220.5824745109322, + 158.0542495509277, + 113.25081857248298, + 81.14775745529565, + 58.14490899956697, + 41.66264784865344, + 29.852591664969907, + 21.390316629725067, + 15.32683160828522 + ], + "CarbonMetadata": null, + "FOMMetadata": null, + "Name": "Organic", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.Chemical, Models", + "Depth": [ + "0-10", + "10-20", + "20-40", + "40-60", + "60-80", + "80-100", + "100-120", + "120-140", + "140-160", + "160-180" + ], + "Thickness": [ + 100.0, + 100.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0 + ], + "NO3N": [ + 10.4, + 1.6329999999999996, + 1.2330000000000008, + 0.9, + 1.1, + 1.4670000000000005, + 3.6329999999999996, + 5.667000000000001, + 5.8, + 7.267000000000003 + ], + "NH4N": [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + "PH": [ + 6.3, + 6.4, + 6.5, + 6.6, + 6.6, + 6.5, + 6.5, + 6.5, + 6.5, + 6.5 + ], + "CL": null, + "EC": null, + "ESP": null, + "LabileP": null, + "UnavailableP": null, + "ECMetadata": null, + "CLMetadata": null, + "ESPMetadata": null, + "PHMetadata": null, + "Name": "Chemical", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.Sample, Models", + "Depth": [ + "0-10", + "10-20", + "20-40", + "40-60", + "60-80", + "80-100", + "100-120", + "120-140", + "140-160", + "160-180" + ], + "Thickness": [ + 100.0, + 100.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0, + 200.0 + ], + "NO3": null, + "NH4": null, + "LabileP": null, + "UnavailableP": null, + "SW": [ + 0.235, + 0.252, + 0.27, + 0.3, + 0.268, + 0.304, + 0.335, + 0.33, + 0.32, + 0.33 + ], + "OC": null, + "EC": null, + "CL": null, + "ESP": null, + "PH": null, + "SWUnits": 0, + "OCUnits": 0, + "PHUnits": 0, + "Name": "Initial Water", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Soils.CERESSoilTemperature, Models", + "Name": "Temperature", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Report, Models", + "VariableNames": [ + "GrainTempFactor", + "GrainTempFactor" + ], + "EventNames": null, + "GroupByVariableName": null, + "Name": "DailyReport", + "Children": [], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Graph, Models", + "Caption": null, + "Axis": [ + { + "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", + "Title": null, + "Position": 3, + "Inverted": false, + "CrossesAtZero": false, + "Minimum": null, + "Maximum": null, + "Interval": null + }, + { + "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", + "Title": null, + "Position": 0, + "Inverted": false, + "CrossesAtZero": false, + "Minimum": null, + "Maximum": null, + "Interval": null + } + ], + "LegendPosition": 0, + "LegendOrientation": 0, + "AnnotationLocation": 0, + "DisabledSeries": [], + "LegendOutsideGraph": false, + "Name": "BiomassWt", + "Children": [ + { + "$type": "Models.Series, Models", + "Type": 0, + "XAxis": 3, + "YAxis": 0, + "ColourArgb": 0, + "FactorToVaryColours": null, + "FactorToVaryMarkers": null, + "FactorToVaryLines": null, + "Marker": 0, + "MarkerSize": 0, + "Line": 0, + "LineThickness": 0, + "TableName": "DailyReport", + "XFieldName": "Date", + "YFieldName": "Date", + "X2FieldName": null, + "Y2FieldName": null, + "ShowInLegend": false, + "IncludeSeriesNameInLegend": false, + "Cumulative": false, + "CumulativeX": false, + "Filter": null, + "Name": "Series", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + }, + { + "$type": "Models.Graph, Models", + "Caption": null, + "Axis": [ + { + "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", + "Title": null, + "Position": 3, + "Inverted": false, + "CrossesAtZero": false, + "Minimum": null, + "Maximum": null, + "Interval": null + }, + { + "$type": "APSIM.Shared.Graphing.Axis, APSIM.Shared", + "Title": null, + "Position": 0, + "Inverted": false, + "CrossesAtZero": false, + "Minimum": null, + "Maximum": null, + "Interval": null + } + ], + "LegendPosition": 0, + "LegendOrientation": 0, + "AnnotationLocation": 0, + "DisabledSeries": [], + "LegendOutsideGraph": false, + "Name": "Biomass production vs Crop water Use", + "Children": [ + { + "$type": "Models.Series, Models", + "Type": 1, + "XAxis": 3, + "YAxis": 0, + "ColourArgb": -16777216, + "FactorToVaryColours": "CO2", + "FactorToVaryMarkers": null, + "FactorToVaryLines": null, + "Marker": 0, + "MarkerSize": 0, + "Line": 4, + "LineThickness": 0, + "TableName": "SensibilityReport", + "XFieldName": "CropET", + "YFieldName": "Sorghum.AboveGround.Wt", + "X2FieldName": null, + "Y2FieldName": null, + "ShowInLegend": true, + "IncludeSeriesNameInLegend": false, + "Cumulative": false, + "CumulativeX": false, + "Filter": null, + "Name": "Series 0", + "Children": [ + { + "$type": "Models.Regression, Models", + "ForEachSeries": true, + "showOneToOne": false, + "showEquation": false, + "Name": "Regression", + "Children": [], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false + } + ], + "Enabled": true, + "ReadOnly": false +} \ No newline at end of file