Exemplo n.º 1
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="canopy"></param>
 /// <param name="pathway"></param>
 /// <param name="water"></param>
 /// <param name="leaf"></param>
 public Transpiration(
     ICanopyParameters canopy,
     IPathwayParameters pathway,
     IWaterInteraction water,
     TemperatureResponse leaf
     )
 {
     Canopy  = canopy;
     Pathway = pathway;
     Water   = water;
     Leaf    = leaf;
 }
Exemplo n.º 2
0
 public CanopyAttributes(
     ICanopyParameters canopy,
     IPathwayParameters pathway,
     IAssimilationArea sunlit,
     IAssimilationArea shaded
     )
 {
     Canopy       = canopy;
     this.pathway = pathway;
     Sunlit       = sunlit;
     Shaded       = shaded;
 }
Exemplo n.º 3
0
 public DCAPSTModel(
     ISolarGeometry solar,
     ISolarRadiation radiation,
     ITemperature temperature,
     IPathwayParameters pathway,
     ICanopyAttributes canopy,
     Transpiration trans
     )
 {
     Solar         = solar;
     Radiation     = radiation;
     Temperature   = temperature;
     this.pathway  = pathway;
     Canopy        = canopy;
     transpiration = trans;
 }
Exemplo n.º 4
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="canopy"></param>
 /// <param name="parameters"></param>
 /// <returns></returns>
 public AssimilationCCM(ICanopyParameters canopy, IPathwayParameters parameters) : base(canopy, parameters)
 {
 }
Exemplo n.º 5
0
 public TemperatureResponse(ICanopyParameters canopy, IPathwayParameters pathway)
 {
     this.canopy  = canopy;
     this.pathway = pathway;
 }
Exemplo n.º 6
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="canopy"></param>
 /// <param name="pathway"></param>
 public AssimilationPathway(ICanopyParameters canopy, IPathwayParameters pathway)
 {
     Canopy  = canopy;
     Pathway = pathway;
 }
Exemplo n.º 7
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="canopy"></param>
 /// <param name="parameters"></param>
 public Assimilation(ICanopyParameters canopy, IPathwayParameters parameters)
 {
     this.canopy     = canopy;
     this.parameters = parameters;
 }
Exemplo n.º 8
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="CP"></param>
        /// <param name="PP"></param>
        /// <param name="DOY"></param>
        /// <param name="latitude"></param>
        /// <param name="maxT"></param>
        /// <param name="minT"></param>
        /// <param name="radn"></param>
        /// <param name="rpar"></param>
        /// <returns></returns>
        public static DCAPSTModel SetUpModel(
            ICanopyParameters CP,
            IPathwayParameters PP,
            int DOY,
            double latitude,
            double maxT,
            double minT,
            double radn,
            double rpar)
        {
            // Model the solar geometry
            var SG = new SolarGeometry
            {
                Latitude  = latitude.ToRadians(),
                DayOfYear = DOY
            };

            // Model the solar radiation
            var SR = new SolarRadiation(SG)
            {
                Daily = radn,
                RPAR  = rpar
            };

            // Model the environmental temperature
            var TM = new Temperature(SG)
            {
                MaxTemperature      = maxT,
                MinTemperature      = minT,
                AtmosphericPressure = 1.01325
            };

            // Model the pathways
            var SunlitAc1 = new AssimilationPathway(CP, PP);
            var SunlitAc2 = new AssimilationPathway(CP, PP);
            var SunlitAj  = new AssimilationPathway(CP, PP);

            var ShadedAc1 = new AssimilationPathway(CP, PP);
            var ShadedAc2 = new AssimilationPathway(CP, PP);
            var ShadedAj  = new AssimilationPathway(CP, PP);

            // Model the canopy
            IAssimilation A;

            if (CP.Type == CanopyType.C3)
            {
                A = new AssimilationC3(CP, PP);
            }
            else if (CP.Type == CanopyType.C4)
            {
                A = new AssimilationC4(CP, PP);
            }
            else
            {
                A = new AssimilationCCM(CP, PP);
            }

            var sunlit = new AssimilationArea(SunlitAc1, SunlitAc2, SunlitAj, A);
            var shaded = new AssimilationArea(ShadedAc1, ShadedAc2, ShadedAj, A);
            var CA     = new CanopyAttributes(CP, PP, sunlit, shaded);

            // Model the transpiration
            var WI = new WaterInteraction(TM);
            var TR = new TemperatureResponse(CP, PP);
            var TS = new Transpiration(CP, PP, WI, TR);

            // Model the photosynthesis
            var DM = new DCAPSTModel(SG, SR, TM, PP, CA, TS)
            {
                B = 0.409
            };

            return(DM);
        }