using LeafWeb.Core.Parsers; using LeafWeb.Core.Utility; namespace LeafWeb.Core.Models { /// /// First model prediction is calculated at each sampling point. /// Then model prediction is calculated at many selected levels of intercelluar CO2 partial pressure /// levels under three limitation states to enable plotting curves.The same structure is then repeated for /// each fitting of the same curve with different parameters to be estimated and with different curves. Note /// that some common information about a curve is repeated for each data point to make the structure of the /// file as regular as possible. /// public class CntrlComparisonFittingInfo { /// /// the curve identifier, repeated for each point /// [ParseInfo(1)] public string CurveID { get; set; } /// /// whether or not chlorophyll fluorescence data are used for identifying the limitation states /// 0 = not used, 1 = used. (Currently this choice is still under evaluation and therefore ChlFlUse? = 0). /// [ParseInfo(2, alternateTitle: "ChlFlUse?")] public bool ChlFlUse {get; set; } /// /// whether or not the internal conductance (gi) is fitted for. /// 0 = not fitted and gi is either infinite or fixed at the value provided by the user. /// 1 = gi is estiamted, repeated for each point /// [ParseInfo(3, alternateTitle: "FitGi?")] public bool FitGi {get; set;} /// /// whether or not the chloroplastic CO2 partial pressure photocompensation point is /// fitted for. 0= not fitted, a prescribed value is used, repeated for each point /// [ParseInfo(4, alternateTitle: "FitGamma*?")] public bool FitGammaStar {get; set; } /// /// whether or not the apparent Michaelis - Menten constant Kco = Kc(1+O/Ko) is fitted for. /// 0= not fitted, a prescribed value is calculated from Kc, Ko and the oxygen partial pressure. /// 1= Fitted for, repeated for each point /// [ParseInfo(5, alternateTitle: "FitKco?")] public bool FitKco {get; set; } /// /// whether the dark respiration is fitted for. 0= not fitted for, a prescribed value is used. /// 1= fitted for. repeated for each point /// [ParseInfo(6, alternateTitle: "FitRd?")] public bool FitRd {get; set;} /// /// whether alpha (the non-returned fraction of the glycolate carbon /// recycled in the photorespiratory cycle) is fitted for. /// 0= not fitted for and alpha = 0 /// 1= fitted for, repeated for each point /// [ParseInfo(7, alternateTitle: "FitAlpha?")] public bool FitAlpha {get; set;} /// /// the combination of limitation states present in the A/Ci dataset. Parameters /// are estimated for those limitation states that occur in the measured curve, repeated for each point /// Rubisco: Rubisco limitation(Vcmax, Kco) /// RuBP: RuBP regeneration limitation(J) /// Tpu: export limitation(TPU, alpha) /// [ParseInfo(8)] public string LimitCombina { get; set; } /// /// intercellular CO2 partial pressure /// [ParseInfo(9, units:"Pa")] public double PCO2i { get; set; } /// /// chloroplastic CO2 partial pressure corresponding to the PCO2i of a point. /// PCO2c=PCO2i-AnetCal/internal conductance /// [ParseInfo(10, units:"Pa")] public double PCO2c { get; set; } /// /// measured net assimilation rate /// [ParseInfo(11, units: "umol/m2/s")] public double AnetMeas { get; set; } /// /// calculated net assimilation rate /// [ParseInfo(12, units: "umol/m2/s")] public double AnetCal { get; set; } // TODO: readme has weitedrms, data file has PCOiCal // weitedrms - (umol/m2/s), root mean square error of the fitting (weiting coefficient =1) [ParseInfo(13)] public double PCOiCal { get; set; } /// /// 1 = point limited by rubisco /// 2 = point limited by RuBP regeneration /// 3 = point limited by TPU /// [ParseInfo(14, units:"1,2,3")] public int PointLimitType { get; set; } public virtual CntrlComparison CntrlComparison { get; set; } } }