net.simplace.model.dwd.FAO56TermsHelper




public final class FAO56TermsHelper {
// Public Constructors
public FAO56TermsHelper();

// Constants
public static final List DECADE_TIME_SLICES;
public static final List DECADE_TIME_STEPS;
public static final double REF_TEMP;
public static final double REF_SAT_CONST;
public static final double DEFAULT_ANGSTROM_A;
public static final double DEFAULT_ANGSTROM_B;
public static final double BOLZMANN_CONST;

// Class Methods
public static double calculateDecadeReferenceEvapotranspiration(double
aMaxTemp, double aMinTemp, double aRelativeHumidity, double aWindSpeed,
double aAltidude, double aPreviousMonthTemp, double aNextMonthTemp,
double aNetRadiation) throws Exception;

Reference Evapotranspiration calculation, ETo in mm/day, using the FAO Penman-Monteith equation (FAO56 Cap. 2, eq. 6)
public static double calculateReferenceEvapotranspiration(double aMaxTemp,
double aMinTemp, double aRelativeHumidity, double aWindSpeed, double
aAltidude, double aPreviousMonthTemp, double aNextMonthTemp, double
aNetRadiation) throws Exception;

Reference Evapotranspiration calculation, ETo in mm/day, using the FAO Penman-Monteith equation (FAO56 Cap. 2, eq. 6)
public static double calculateReferenceEvapotranspirationAlt(double aMaxTemp,
double aMinTemp, double aActVapourPress, double aWindSpeed, double
aAltidude, double aPreviousMonthTemp, double aNextMonthTemp, double
aNetRadiation) throws Exception;

Reference Evapotranspiration calculation, ETo in mm/day, using the FAO Penman-Monteith equation (FAO56 Cap. 2, eq. 6), but alternative equation for satVapourPressure
public static double calculateReferenceEvapotranspiration(double aMaxTemp,
double aMinTemp, double aVapourPressure, double aWindSpeed, double
aNetRadiation, double aAltidude) throws Exception;

Reference Evapotranspiration calculation, ETo in mm/day, using the FAO Penman-Monteith equation (FAO56 Cap. 2, eq. 6)
public static double calculateReferenceEvapotranspiration(double aMaxTemp,
double aMinTemp, double aWindSpeed, double aAltidude, double aAngstroemA,
double aAngstroemB, double aGlobalRadiation, double aLatitudeInRad, int
aDOY) throws Exception;

Reference Evapotranspiration calculation, ETo in mm/day, using the FAO Penman-Monteith equation (FAO56 Cap. 2, eq. 6)
returns the calculated evapotranspiration
public static double calculateReferenceEvapotranspirationCGMS(double
aMaxTemp, double aMinTemp, double aVapourPressure, double aWindSpeed,
double aNetRadiation, double aLatidude, int aDayOfYear) throws Exception;

Reference Evapotranspiration calculation, ETo in mm/day, using the FAO Penman-Monteith equation (FAO56 Cap. 2, eq. 6)
public static double getNetAbsorbedRadiation(double aEa, double
aNetRadiation, double aT, double aLatidude, int aDayOfYear);


returns the Net absorbed radiation
public static double calculateReferenceEvapotranspiration(double aDewTemp,
double aMaxTemp, double aMinTemp, double aMaxRelativeHumidity, double
aMinRelativeHumidity, double aWindSpeed, double aBrightSunshineHours,
double aLatitudeIntRadians, int aDayOfYear, double aAltidude, double
aPreviousMonthTemp, double aNextMonthTemp) throws Exception;

Reference Evapotranspiration calculation, ETo in mm/day, using the FAO Penman-Monteith equation (FAO56 Cap. 2, eq. 6)
public static double getSaturationVapourPressureAlt(double aTemp)
throws Exception;

Saturated Vapour Pressure
public static double getSaturationVapourPressure(double
aMeanDaylyAirTemperature) throws Exception;

Returns the saturation vapour pressure (es in kPa) for the given temperature (t in °C) according to FAO 56 chap. 3, eq. 11
public static double getSaturationVapourPressureGradient(double aMaxTemp,
double aMinTemp) throws Exception;

Returns the slope vapour pressure curve (or pressure gradient) in kPa/°C according to FAO 56, ch. 3, eq. 13
public static double getSaturationVapourPressureGradient(double aMeanTemp)
throws Exception;

Returns the slope vapour pressure curve (or pressure gradient) in kPa/°C according to FAO 56, ch. 3, eq. 13
public static double convertWindSpeedInto2mHeight(double v, double z);

A method to convert wind speed that measured at a height z, to 2 m height
public static double getPsychrometricConstant(double aAltidude);

Calculates the psychrometric constant from atmospheric pressure according to FAO 56, ch. 3, eq. 8 as default 0.67
returns psychrometric constant [kPa/°C]
public static double getPressure(double aAltidude);

Calculate the pressure [[kPa] from the given altitude according to FAO 56, ch. 3, eq. 7
public static double getSoilHeatFluxDensity(double aPreviousMonthTemp,
double aNextMonthTemp);

Calculates the soil heat flux density [MJ/m².day] according to FAO 56, ch. 3, eq. 43 and 44
returns soil heat flux density [MJ/m².day]
public static double getDecadeSoilHeatFluxDensity(double aPreviousMonthTemp,
double aNextMonthTemp);

Calculates the soil heat flux density [MJ/m².day] according to FAO 56, ch. 3, eq. 43 and 44
returns soil heat flux density [MJ/m².day]
public static double getNetRadiation(double aDewTemp, double aMaxTemp,
double aMinTemp, double aMaxRelativeHumidity, double
aMinRelativeHumidity, double aBrightSunshineHours, double
aLatitudeIntRadians, int aDayOfYear, double aAltidude) throws Exception;

A method to calculate net Radiation, Rn (MJ/m^2/day)
public static double getSolarRadiation(double aBrightSunshineHours, double
aLatitudeIntRadians, int aDayOfYear, double aAngstrom_a, double
aAngstrom_b) throws Exception;

Returns the solar radiation (Rs in [MJ/m².day]). If the solar radiation is not measured, it is calculated with the Angstrom formula which relates solar radiation to extraterrestrial radiation and relative sunshine duration (FAO 56, chap. 3, eq, 35)
returns solar radiation [MJ/m².day]
public static double getIncomingNetShortwaveRadiation(double
aBrightSunshineHours, double aLatitudeIntRadians, int aDayOfYear)
throws Exception;

Returns the net shortwave radiation resulting from the balance between incoming and reflected solar radiation is given by FAO 56, ch. 3, eq. 38
returns net solar or shortwave radiation [MJ/m².day]
public static double getOutgoingNetLongwaveRadiation(double aDewTemp, double
aMaxTemp, double aMinTemp, double aMaxRelativeHumidity, double
aMinRelativeHumidity, double aBrightSunshineHours, double
aLatitudeIntRadians, int aDayOfYear, double aAltidude) throws Exception;

Returns the net longwave radiation (Rnl) [MJ/m².day] according to FAO 56, ch. 3, eq. 39
returns net longwave radiation [MJ/m².day]
public static double getSolarDeclination(int aDayOfYear);

Returns the solar declination [rad] according to FAO 56, ch. 3, eq. 24
returns solar declination [rad]
public static double getExtraterrestrialRadiation(double aLatitudeIntRadians,
int aDayOfYear) throws Exception;

Returns the extraterrestrial radiation (MJ/m².day), for each day of the year and for different latitudes can be estimated from the solar constant, the solar declination and the time of the year
returns extraterrestrial radiation [MJ/m².day]
public static double getClearSkySolarRadiation(double aLatitudeIntRadians,
int aDayOfYear, double aAltidude) throws Exception;

Calculates the clear-sky radiation, Rso, when n = N, required for computing net longwave radiation.
returns clear-sky radiation [MJ/m².day]
public static double getInverseRelativeDistanceEarthSun(int aDayOfYear);

A method to calculate inverse relative distance, dr [1/m], according to FAO 56, ch. 3, eq. 23
returns inverse relative distance [1/m]
public static double getTotalDayLength(double aLatitudeInRadians, int
aDayOfYear) throws Exception;

Returns the maximum possible duration of sunshine or daylight hours [hour] according to FAO 56, ch. 3, eq. 34
returns maximum possible duration of sunshine [hours]
public static double getSunsetHourAngle(double aLatitudeInRadians, int
aDayOfYear) throws Exception;

Returns the sunset hour angle, omega [rad] according to FAO 56, ch. 3, eq. 25
returns the sunset hour angle [radian]
public static double getActualVapourPressure(double aDewTemp, double
aMaxTemp, double aMinTemp, double aMaxRelativeHumidity, double
aMinRelativeHumidity) throws Exception;

Return the actual vapour pressure (ea) in [kPa] using the dew temperature when set, or the relative humidity according to FAO the vapour pressure can be directly used if humidity is given with values < 10
returns actual vapour pressure [kPa]
public static double getActualVapourPressureFromTemperature(double aDewTemp)
throws Exception;

Returns the actual vapour pressure [kPa] from dew temperature [°C] according to FAO 56, ch. 3, eq. 14
returns actual vapour pressure [kPa]
public static double getActualVapourPressureFromRelativeHumidity(double
aMaxTemp, double aMinTemp, double aMaxRelativeHumidity, double
aMinRelativeHumidity) throws Exception;

Calculate the actual vapour pressure [kPa]from the relative humidity [%] according to FAO 56, ch. 3, eq. 17
returns actual vapour pressure [kPa]
public static double getSaturationVapourPressure(double aMaxTemp, double
aMinTemp) throws Exception;

Returns the mean saturation vapour pressure based on known max. and min. temperatures according to FAO 56, ch. 3, eq. 12
public static double getFixedEffectiveRainfall(double rainfall, double
xPercent);

public static double getDependableEffectiveRainfall(double rainfall);

public static double getEmpiricalEffectiveRainfall(double rainfall, double
aFactor, double bFactor, double cFactor, double dFactor, double zFactor);

public static double getUSDAEffectiveRainfall(double rainfall);

public static double getUSDAEffective10DayRainfall(double rainfall);



}