Class DiurnalWeatherHelper
java.lang.Object
net.simplace.sim.components.util.helper.diurnal.DiurnalWeatherHelper
Methods for calculating daylength and diurnal values
WIKI_START
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)
WIKI_END
- Author:
- Gunther Krauss
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic 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.2static double
RadiationIntensitySinBetaEffective
(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*(1+0.4*SinBeta) curve Uses SinBeta*(1+0.4*SinBeta) curve with SinBeta as defined in (G), eq. 3.2static double
RadiationIntensitySine
(double t, double radiation, double daylength) Calculates the radiation intensity [radiation per hour] at a specified hour using simple sine curvestatic 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.2static double
RadiationSinBetaEffective
(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*(1+0.4*SinBeta) curve Uses SinBeta*(1+0.4*SinBeta) curve with SinBeta as defined in (G), eq. 3.2static double
RadiationSinBetaEffectiveFromTo
(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*(1+0.4*SinBeta) curve Uses SinBeta*(1+0.4*SinBeta) curve with SinBeta as defined in (G), eq. 3.2static 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.2static double
RadiationSine
(double t, double radiation, double daylength) Calculates the radiation accumulated from beginning of day till a specified hour using simple sine curvestatic 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 curvestatic TreeSet<ComparableWeatherEntry>
sortWeather
(Set<Map.Entry<Object, Object[]>> entrySet, net.simplace.sim.io.resources.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.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
-
Constructor Details
-
DiurnalWeatherHelper
public DiurnalWeatherHelper()
-
-
Method Details
-
sortWeather
public static TreeSet<ComparableWeatherEntry> sortWeather(Set<Map.Entry<Object, Object[]>> entrySet, net.simplace.sim.io.resources.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.- Parameters:
entrySet
-cache
-dateField
-minTempField
-maxTempField
-radiationField
-- Returns:
-
RadiationIntensitySine
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- Parameters:
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]
-
RadiationSine
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- Parameters:
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]
-
RadiationSineFromTo
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- Parameters:
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]
-
RadiationIntensitySinBeta
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- Parameters:
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]
-
RadiationSinBeta
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- Parameters:
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]
-
RadiationSinBetaFromTo
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- Parameters:
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]
-
RadiationIntensitySinBetaEffective
public static double RadiationIntensitySinBetaEffective(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*(1+0.4*SinBeta) curve Uses SinBeta*(1+0.4*SinBeta) curve with SinBeta as defined in (G), eq. 3.2- Parameters:
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]
-
RadiationSinBetaEffective
public static double RadiationSinBetaEffective(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*(1+0.4*SinBeta) curve Uses SinBeta*(1+0.4*SinBeta) curve with SinBeta as defined in (G), eq. 3.2- Parameters:
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]
-
RadiationSinBetaEffectiveFromTo
public static double RadiationSinBetaEffectiveFromTo(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*(1+0.4*SinBeta) curve Uses SinBeta*(1+0.4*SinBeta) curve with SinBeta as defined in (G), eq. 3.2- Parameters:
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]
-
Temperature
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- Parameters:
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]
-