net.simplace.client.simulation.lap.util.helper.diurnal.DiurnalWeatherHelper
Methods for calculating daylength and diurnal values
Includes methods for integration/normalization/rescaling of piecewise
linear functions, as well as methods for calculating diurnal values
for radiation and temperature.
Reference
(G) Goudriaan, Modeling Potential Crop Growth Processes, 1994, (revised version Nov. 2004)
public class DiurnalWeatherHelper {
// Public Constructors
public DiurnalWeatherHelper();
// Class Methods public static TreeSet
sortWeather(Set entrySet, FWSimResourceCache cache,
String dateField, String minTempField, String maxTempField, String
radiationField);
Extracts radiation and temperature information from resource
and add it to a sorted TreeSet of weather entries.
- entrySet
- cache
- dateField
- minTempField
- maxTempField
- radiationField
returns public static double
RadiationIntensitySinBeta(double t, double radiation,
double daylength, int doy, double a, double b, double integral);
Calculates the radiation intensity [radiation per hour] at a specified hour using SinBeta curve
Uses SinBeta curve as defined in (G), eq. 3.2
- t the hour (decimal from 0 to 24) [h]
- daylength day length in hours [h]
- radiation daily total radiation [J m^-2, kJ m^-2 or MJ m^-2]
- doy day of year [day]
- a shift of SinBeta curve, (G) eq. 3.3 [-]
- b amplitude of SinBeta curve, (G) eq. 3.3 [-]
- integral surface under the SinBeta curve, (G) eq. 3.7 [h]
returns radiation intensity [J m^-2 h^-1, kJ m^-2 h^-1 or MJ m^-2 h^-1]
public static double
RadiationIntensitySine(double t, double radiation,
double daylength);
Calculates the radiation intensity [radiation per hour] at a specified hour using simple sine curve
- t the hour (decimal from 0 to 24) [h]
- daylength day length in hours [h]
- radiation daily total radiation [J m^-2, kJ m^-2 or MJ m^-2]
returns radiation intensity [J m^-2 h^-1, kJ m^-2 h^-1 or MJ m^-2 h^-1]
public static double
RadiationSinBeta(double t, double radiation, double
daylength, int doy, double a, double b, double integral);
Calculates the radiation accumulated from beginning of day till a specified hour using SinBeta curve
Uses SinBeta curve as defined in (G), eq. 3.2
- t the hour (decimal from 0 to 24) [h]
- radiation daily total radiation [J m^-2, kJ m^-2 or MJ m^-2]
- daylength day length in hours [h]
- doy day of year [day]
- a shift of SinBeta curve, (G) eq. 3.3 [-]
- b amplitude of SinBeta curve, (G) eq. 3.3 [-]
- integral surface under the SinBeta curve, (G) eq. 3.7 [h]
returns radiation from begin of day until hour t [J m^-2, kJ m^-2 or MJ m^-2]
public static double
RadiationSinBetaFromTo(double t1, double t2, double
radiation, double daylength, int doy, double a, double b, double
integral);
Calculates the radiation that is accumulated within the time span from a to b using SinBeta curve
Uses SinBeta curve as defined in (G), eq. 3.2
- t1 begin of interval (hour as decimal from 0 to 24) [h]
- t2 end of interval (hour as decimal from 0 to 24) [h]
- radiation daily total radiation [J m^-2, kJ m^-2 or MJ m^-2]
- daylength in hours [h]
- doy
- a shift of SinBeta curve, (G) eq. 3.3 [-]
- b amplitude of SinBeta curve, (G) eq. 3.3 [-]
- integral surface under the SinBeta curve, (G) eq. 3.7 [h]
returns radiation accumulated during time span from a to b [J m^-2, kJ m^-2 or MJ m^-2]
public static double
RadiationSine(double t, double radiation, double
daylength);
Calculates the radiation accumulated from beginning of day till a specified hour using simple sine curve
- t the hour (decimal from 0 to 24) [h]
- radiation daily total radiation [J m^-2, kJ m^-2 or MJ m^-2]
- daylength day length in hours [h]
returns radiation from begin of day until hour t [J m^-2, kJ m^-2 or MJ m^-2]
public static double
RadiationSineFromTo(double t1, double t2, double
radiation, double daylength);
Calculates the radiation that is accumulated within the time span from t1 to t2 using simple sine curve
- t1 begin of interval (hour as decimal from 0 to 24)
- t2 end of interval (hour as decimal from 0 to 24)
- radiation daily total radiation [J m^-2, kJ m^-2 or MJ m^-2]
- daylength in hours [h]
returns radiation accumulated during time span from t1 to t2 [J m^-2, kJ m^-2 or MJ m^-2]
public static double
Temperature(double t, double ptmax, double tmin, double
tmax, double ntmin, double daylength, double p, double tc);
Calculates temperature at hour t
Calculates the temperature during day and night according to (G) eq. 3.9, 3.10
- t the hour (decimal from 0 to 24) [h]
- ptmax daily maximum temperature of previous day [°C]
- tmin daily minimum temperature [°C]
- tmax daily maximum temperature [°C]
- ntmin daily minimum temperature of next day [°C]
- daylength in hours [h]
- p time duration between solar noon and maximum temperature [h]
- tc nocturnal time coefficient [h]
returns temperature at hour t [°C]
}