Klasse DiurnalWeatherHelper

java.lang.Object
net.simplace.sim.components.util.helper.diurnal.DiurnalWeatherHelper

public class DiurnalWeatherHelper extends Object
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
Autor:
Gunther Krauss
  • Konstruktorübersicht

    Konstruktoren
    Konstruktor
    Beschreibung
     
  • Methodenübersicht

    Modifizierer und Typ
    Methode
    Beschreibung
    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
    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
    static double
    RadiationIntensitySine(double t, double radiation, double daylength)
    Calculates the radiation intensity [radiation per hour] at a specified hour using simple sine curve
    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
    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
    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
    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
    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
    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
    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

    Von Klasse geerbte Methoden java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Konstruktordetails

    • DiurnalWeatherHelper

      public DiurnalWeatherHelper()
  • Methodendetails

    • 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.
      Parameter:
      entrySet -
      cache -
      dateField -
      minTempField -
      maxTempField -
      radiationField -
      Gibt zurück:
    • 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
      Parameter:
      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]
      Gibt zurück:
      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
      Parameter:
      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]
      Gibt zurück:
      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
      Parameter:
      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]
      Gibt zurück:
      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
      Parameter:
      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]
      Gibt zurück:
      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
      Parameter:
      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]
      Gibt zurück:
      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
      Parameter:
      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]
      Gibt zurück:
      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
      Parameter:
      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]
      Gibt zurück:
      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
      Parameter:
      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]
      Gibt zurück:
      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
      Parameter:
      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]
      Gibt zurück:
      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
      Parameter:
      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]
      Gibt zurück:
      temperature at hour t [°C]