Package {ET0RadModels}


Type: Package
Title: Evapotranspiration Estimation Using Radiation-Based Models
Version: 1.0.0
Description: Provides functions to estimate daily reference evapotranspiration (ET0) using 10 radiation-based empirical models, with the Food and Agriculture Organization (FAO) Penman-Monteith method included as the standard reference for model comparison. Includes statistical evaluation metrics, such as Nash-Sutcliffe efficiency (NSE), root mean square error (RMSE), mean absolute error (MAE), and mean bias error (MBE), and visualization tools (scatter plots and Taylor diagrams). Based on Singh et al. (2026) <doi:10.1016/j.ejrh.2026.103925>.
License: GPL (≥ 3)
URL: https://github.com/samirigfri/ET0RadModels
BugReports: https://github.com/samirigfri/ET0RadModels/issues
Encoding: UTF-8
LazyData: true
RoxygenNote: 7.3.3
Depends: R (≥ 3.5.0)
Imports: graphics, grDevices, stats
Suggests: testthat (≥ 3.0.0), knitr, rmarkdown
Config/testthat/edition: 3
VignetteBuilder: knitr
NeedsCompilation: no
Packaged: 2026-10-11 10:14:23 UTC; usr
Author: Ajay N. Satpute [aut], Samir Barman ORCID iD [aut, cre], Amit Kumar Singh [aut], Avijit Ghosh [aut], Gaurendra Gupta [aut]
Maintainer: Samir Barman <samir.igfri@gmail.com>
Repository: CRAN
Date/Publication: 2026-10-21 15:10:15 UTC

ET0RadModels: Reference Evapotranspiration Estimation Using Radiation-Based Models

Description

The ET0RadModels package provides functions for estimating daily reference evapotranspiration (ET0) using 10 radiation-based empirical models, with the FAO Penman-Monteith method included as the standard reference for model comparison. The package also includes statistical evaluation metrics and visualization tools.

Radiation-Based Models (10)

Jensen-Haise (1963)

Solar radiation and mean temperature.

McGuinness-Bordne (1972)

Extraterrestrial radiation and mean temperature.

Irmak (2003)

Solar radiation-based regression equation.

Makkink (1957)

Solar radiation and slope of SVP curve.

Turc (1961)

Solar radiation and mean temperature (humid conditions).

Caprio (1974)

Linear function of solar radiation and temperature.

Abtew (1996)

Simple solar radiation-based approach (coefficient 0.53).

Priestley-Taylor (1972)

Net radiation with empirical coefficient alpha = 1.26.

Jones-Ritchie (1990)

Simplified Priestley-Taylor with alpha = 1.1.

Hargreaves (1975)

Radiation-based method using solar radiation.

Key Functions

et0_rad_all

Compute ET0 using all 10 radiation-based models + FAO PM.

et0_fao_pm

FAO Penman-Monteith reference method.

evaluate_models

Compute all 9 statistical metrics.

plot_taylor

Generate Taylor diagrams.

plot_scatter

Generate scatter plots.

Data

The package includes a sample meteorological dataset (jhansi_weather) from a semi-arid region in central India for demonstrating package functionality.

Author(s)

Maintainer: Samir Barman samir.igfri@gmail.com (ORCID)

Authors:

References

Satpute, A.N., Barman, S., Singh, A.K., Ghosh, A., & Gupta, G. (2026). A multi-scale evaluation of 30 empirical models for reference evapotranspiration estimation in a data-scarce semi-arid region: A case study of Jhansi, India. Journal of Hydrology: Regional Studies. doi:10.1016/j.ejrh.2026.103925

Allen, R.G., Pereira, L.S., Raes, D., & Smith, M. (1998). Crop evapotranspiration: Guidelines for computing crop water requirements. FAO Irrigation and Drainage Paper No. 56.

See Also

Useful links:


Actual Vapor Pressure

Description

Computes actual vapor pressure from relative humidity and temperature.

Usage

actual_vapor_pressure(Tmin, Tmax, RH_morning, RH_evening)

Arguments

Tmin

Minimum air temperature (degrees Celsius).

Tmax

Maximum air temperature (degrees Celsius).

RH_morning

Morning relative humidity (percent).

RH_evening

Evening relative humidity (percent).

Value

Actual vapor pressure (kPa).

References

Allen et al. (1998), FAO-56, Eq. 17.

Examples

actual_vapor_pressure(15, 30, 90, 40)

Willmott's Index of Agreement (d)

Description

Computes Willmott's index of agreement. Values range from 0 to 1, with 1 indicating perfect agreement.

Usage

calc_d(observed, predicted)

Arguments

observed

Numeric vector of observed (reference) values.

predicted

Numeric vector of predicted (model) values.

Value

Index of agreement (numeric scalar between 0 and 1).

References

Willmott, C.J. (1981). On the validation of models. Physical Geography, 2(2), 184-194.

Examples

obs <- c(3.5, 4.2, 5.1, 2.8, 6.0)
pred <- c(3.3, 4.5, 4.9, 3.0, 5.8)
calc_d(obs, pred)

Mean Absolute Error (MAE)

Description

Mean Absolute Error (MAE)

Usage

calc_mae(observed, predicted)

Arguments

observed

Numeric vector of observed (reference) values.

predicted

Numeric vector of predicted (model) values.

Value

MAE value (numeric scalar).

Examples

calc_mae(c(3.5, 4.2, 5.1), c(3.3, 4.5, 4.9))

Mean Bias Error (MBE)

Description

Computes the mean bias error as mean percentage absolute error. Positive values indicate overall overestimation by the model.

Usage

calc_mbe(observed, predicted)

Arguments

observed

Numeric vector of observed (reference) values.

predicted

Numeric vector of predicted (model) values.

Value

MBE value (numeric scalar, as percentage).

Examples

calc_mbe(c(3.5, 4.2, 5.1), c(3.3, 4.5, 4.9))

Mean Squared Error (MSE)

Description

Mean Squared Error (MSE)

Usage

calc_mse(observed, predicted)

Arguments

observed

Numeric vector of observed (reference) values.

predicted

Numeric vector of predicted (model) values.

Value

MSE value (numeric scalar).

Examples

calc_mse(c(3.5, 4.2, 5.1), c(3.3, 4.5, 4.9))

Normalized Root Mean Squared Error (NRMSE)

Description

RMSE normalized by the mean of observed values.

Usage

calc_nrmse(observed, predicted)

Arguments

observed

Numeric vector of observed (reference) values.

predicted

Numeric vector of predicted (model) values.

Value

NRMSE value (numeric scalar).

Examples

calc_nrmse(c(3.5, 4.2, 5.1), c(3.3, 4.5, 4.9))

Nash-Sutcliffe Efficiency (NSE)

Description

Computes the Nash-Sutcliffe efficiency coefficient. A value of 1 indicates perfect agreement; values below 0 indicate the model is worse than the mean.

Usage

calc_nse(observed, predicted)

Arguments

observed

Numeric vector of observed (reference) values.

predicted

Numeric vector of predicted (model) values.

Value

NSE value (numeric scalar).

References

Nash, J.E. & Sutcliffe, J.V. (1970). River flow forecasting through conceptual models. Journal of Hydrology, 10(3), 282-290.

Examples

obs <- c(3.5, 4.2, 5.1, 2.8, 6.0)
pred <- c(3.3, 4.5, 4.9, 3.0, 5.8)
calc_nse(obs, pred)

Pearson Correlation Coefficient (r)

Description

Pearson Correlation Coefficient (r)

Usage

calc_r(observed, predicted)

Arguments

observed

Numeric vector of observed (reference) values.

predicted

Numeric vector of predicted (model) values.

Value

Pearson correlation coefficient (numeric scalar).

Examples

calc_r(c(3.5, 4.2, 5.1), c(3.3, 4.5, 4.9))

Coefficient of Determination (R-squared)

Description

Computes R-squared as the square of the Pearson correlation coefficient.

Usage

calc_r2(observed, predicted)

Arguments

observed

Numeric vector of observed (reference) values.

predicted

Numeric vector of predicted (model) values.

Value

R-squared value (numeric scalar between 0 and 1).

Examples

calc_r2(c(3.5, 4.2, 5.1), c(3.3, 4.5, 4.9))

Root Mean Squared Error (RMSE)

Description

Root Mean Squared Error (RMSE)

Usage

calc_rmse(observed, predicted)

Arguments

observed

Numeric vector of observed (reference) values.

predicted

Numeric vector of predicted (model) values.

Value

RMSE value (numeric scalar).

Examples

calc_rmse(c(3.5, 4.2, 5.1), c(3.3, 4.5, 4.9))

Daylight Hours

Description

Computes the maximum possible daylight hours for a given day and latitude.

Usage

daylight_hours(J, lat)

Arguments

J

Day of the year (1-366).

lat

Latitude (degrees, negative for Southern Hemisphere).

Value

Maximum daylight hours.

References

Allen et al. (1998), FAO-56, Eq. 34.

Examples

daylight_hours(172, 25.43)

Dew Point Temperature

Description

Estimates dew point temperature from actual vapor pressure.

Usage

dew_point_temperature(ea)

Arguments

ea

Actual vapor pressure (kPa).

Value

Dew point temperature (degrees Celsius).

Examples

ea <- actual_vapor_pressure(15, 30, 90, 40)
dew_point_temperature(ea)

Abtew ET0 Model

Description

Estimates daily ET0 using the Abtew (1996) method, a simple solar radiation-based approach developed for subtropical wetland conditions.

Usage

et0_abtew(Tmean, J, lat, n)

Arguments

Tmean

Mean air temperature (degrees Celsius).

J

Day of the year (1-366).

lat

Latitude (degrees).

n

Actual sunshine hours.

Value

Daily ET0 (mm/day).

References

Abtew, W. (1996). Evapotranspiration measurements and modelling for three wetland systems in south Florida. JAWRA, 32(3), 465-473.

See Also

Other radiation models: et0_caprio(), et0_hargreaves(), et0_irmak(), et0_jensen_haise(), et0_jones_ritchie(), et0_makkink(), et0_mcguinness_bordne(), et0_priestley_taylor(), et0_turc()

Examples

et0_abtew(25, 172, 25.43, 9)

Caprio ET0 Model

Description

Estimates daily ET0 using the Caprio (1974) method, a linear function of solar radiation and mean temperature.

Usage

et0_caprio(Tmean, J, lat, n)

Arguments

Tmean

Mean air temperature (degrees Celsius).

J

Day of the year (1-366).

lat

Latitude (degrees).

n

Actual sunshine hours.

Value

Daily ET0 (mm/day).

References

Caprio, J.M. (1974). The solar thermal unit concept in problems related to plant development and potential evapotranspiration. In: Phenology and Seasonality Modeling. Springer, Berlin, 353-364.

See Also

Other radiation models: et0_abtew(), et0_hargreaves(), et0_irmak(), et0_jensen_haise(), et0_jones_ritchie(), et0_makkink(), et0_mcguinness_bordne(), et0_priestley_taylor(), et0_turc()

Examples

et0_caprio(25, 172, 25.43, 9)

FAO Penman-Monteith Reference Evapotranspiration

Description

Computes daily reference evapotranspiration (ET0) using the FAO Penman-Monteith equation (Allen et al., 1998). This is the standard reference method recommended by FAO.

Usage

et0_fao_pm(Tmin, Tmax, RH_morning, RH_evening, u2, n, J, lat, z = 0)

Arguments

Tmin

Minimum air temperature (degrees Celsius).

Tmax

Maximum air temperature (degrees Celsius).

RH_morning

Morning relative humidity (percent).

RH_evening

Evening relative humidity (percent).

u2

Wind speed at 2 m height (m/s).

n

Actual sunshine hours.

J

Day of the year (1-366).

lat

Latitude (degrees, negative for Southern Hemisphere).

z

Elevation above sea level (m).

Value

Daily ET0 (mm/day).

References

Allen, R.G., Pereira, L.S., Raes, D., & Smith, M. (1998). Crop evapotranspiration: Guidelines for computing crop water requirements. FAO Irrigation and Drainage Paper No. 56.

Examples

et0_fao_pm(Tmin = 15, Tmax = 30, RH_morning = 90, RH_evening = 40,
           u2 = 1.5, n = 8, J = 172, lat = 25.43, z = 216)

Hargreaves (1975) Radiation-Based ET0 Model

Description

Estimates daily ET0 using the Hargreaves (1975) radiation-based method, distinct from the Hargreaves-Samani (1985) temperature-range method.

Usage

et0_hargreaves(Tmean, J, lat, n)

Arguments

Tmean

Mean air temperature (degrees Celsius).

J

Day of the year (1-366).

lat

Latitude (degrees).

n

Actual sunshine hours.

Value

Daily ET0 (mm/day).

References

Hargreaves, G.H. (1975). Moisture availability and crop production. Transactions of the ASAE, 18(5), 980-984.

See Also

Other radiation models: et0_abtew(), et0_caprio(), et0_irmak(), et0_jensen_haise(), et0_jones_ritchie(), et0_makkink(), et0_mcguinness_bordne(), et0_priestley_taylor(), et0_turc()

Examples

et0_hargreaves(25, 172, 25.43, 9)

Irmak ET0 Model

Description

Estimates daily ET0 using the Irmak et al. (2003) solar radiation-based regression equation.

Usage

et0_irmak(Tmean, J, lat, n)

Arguments

Tmean

Mean air temperature (degrees Celsius).

J

Day of the year (1-366).

lat

Latitude (degrees).

n

Actual sunshine hours.

Value

Daily ET0 (mm/day).

References

Irmak, S., Irmak, A., Allen, R.G., & Jones, J.W. (2003). Solar and net radiation-based equations to estimate reference evapotranspiration in humid climates. Journal of Irrigation and Drainage Engineering, 129(5), 336-347.

See Also

Other radiation models: et0_abtew(), et0_caprio(), et0_hargreaves(), et0_jensen_haise(), et0_jones_ritchie(), et0_makkink(), et0_mcguinness_bordne(), et0_priestley_taylor(), et0_turc()

Examples

et0_irmak(25, 172, 25.43, 9)

Jensen-Haise ET0 Model

Description

Estimates daily ET0 using the Jensen and Haise (1963) method based on solar radiation and mean air temperature.

Usage

et0_jensen_haise(Tmean, J, lat, n)

Arguments

Tmean

Mean air temperature (degrees Celsius).

J

Day of the year (1-366).

lat

Latitude (degrees).

n

Actual sunshine hours.

Value

Daily ET0 (mm/day).

References

Jensen, M.E. & Haise, H.R. (1963). Estimating evapotranspiration from solar radiation. Journal of Irrigation and Drainage Division, ASCE, 89(4), 15-41.

See Also

Other radiation models: et0_abtew(), et0_caprio(), et0_hargreaves(), et0_irmak(), et0_jones_ritchie(), et0_makkink(), et0_mcguinness_bordne(), et0_priestley_taylor(), et0_turc()

Examples

et0_jensen_haise(25, 172, 25.43, 9)

Jones-Ritchie ET0 Model

Description

Estimates daily ET0 using the Jones and Ritchie (1990) radiation-based approach, a simplified Priestley-Taylor variant with alpha = 1.1.

Usage

et0_jones_ritchie(Tmin, Tmax, J, lat, n)

Arguments

Tmin

Minimum air temperature (degrees Celsius).

Tmax

Maximum air temperature (degrees Celsius).

J

Day of the year (1-366).

lat

Latitude (degrees).

n

Actual sunshine hours.

Value

Daily ET0 (mm/day).

References

Jones, C.A. & Ritchie, J.T. (1990). Chapter 4: crop growth models. In: Jones, J.W. & Kiniry, J.R. (Eds.), CERES-Maize: A Simulation Model of Maize Growth and Development. Texas A&M University Press, 49-75.

See Also

Other radiation models: et0_abtew(), et0_caprio(), et0_hargreaves(), et0_irmak(), et0_jensen_haise(), et0_makkink(), et0_mcguinness_bordne(), et0_priestley_taylor(), et0_turc()

Examples

et0_jones_ritchie(15, 35, 172, 25.43, 9)

Makkink ET0 Model

Description

Estimates daily ET0 using the Makkink (1957) method based on solar radiation and the slope of the saturation vapor pressure curve.

Usage

et0_makkink(Tmean, J, lat, n, z = 0)

Arguments

Tmean

Mean air temperature (degrees Celsius).

J

Day of the year (1-366).

lat

Latitude (degrees).

n

Actual sunshine hours.

z

Elevation above sea level (m). Default is 0.

Value

Daily ET0 (mm/day).

References

Makkink, G.F. (1957). Testing the Penman formula by means of lysimeters. Journal of the Institution of Water Engineers, 11(3), 277-288.

See Also

Other radiation models: et0_abtew(), et0_caprio(), et0_hargreaves(), et0_irmak(), et0_jensen_haise(), et0_jones_ritchie(), et0_mcguinness_bordne(), et0_priestley_taylor(), et0_turc()

Examples

et0_makkink(25, 172, 25.43, 9, 216)

McGuinness-Bordne ET0 Model

Description

Estimates daily ET0 using the McGuinness and Bordne (1972) method based on extraterrestrial radiation and mean air temperature.

Usage

et0_mcguinness_bordne(Tmean, J, lat, n)

Arguments

Tmean

Mean air temperature (degrees Celsius).

J

Day of the year (1-366).

lat

Latitude (degrees).

n

Actual sunshine hours.

Value

Daily ET0 (mm/day).

References

McGuinness, J.L. & Bordne, E.F. (1972). A comparison of lysimeter-derived potential evapotranspiration with computed values. USDA Technical Bulletin No. 1452.

See Also

Other radiation models: et0_abtew(), et0_caprio(), et0_hargreaves(), et0_irmak(), et0_jensen_haise(), et0_jones_ritchie(), et0_makkink(), et0_priestley_taylor(), et0_turc()

Examples

et0_mcguinness_bordne(25, 172, 25.43, 9)

Priestley-Taylor ET0 Model

Description

Estimates daily ET0 using the Priestley and Taylor (1972) method, an equilibrium evaporation approach using net radiation with an empirical coefficient (alpha = 1.26).

Usage

et0_priestley_taylor(Tmin, Tmax, RH_morning, RH_evening, n, J, lat, z = 0)

Arguments

Tmin

Minimum air temperature (degrees Celsius).

Tmax

Maximum air temperature (degrees Celsius).

RH_morning

Morning relative humidity (percent).

RH_evening

Evening relative humidity (percent).

n

Actual sunshine hours.

J

Day of the year (1-366).

lat

Latitude (degrees).

z

Elevation above sea level (m). Default is 0.

Value

Daily ET0 (mm/day).

References

Priestley, C.H.B. & Taylor, R.J. (1972). On the assessment of surface heat flux and evaporation using large-scale parameters. Monthly Weather Review, 100(2), 81-92.

See Also

Other radiation models: et0_abtew(), et0_caprio(), et0_hargreaves(), et0_irmak(), et0_jensen_haise(), et0_jones_ritchie(), et0_makkink(), et0_mcguinness_bordne(), et0_turc()

Examples

et0_priestley_taylor(15, 35, 90, 40, 9, 172, 25.43, 216)

Compute ET0 Using All 10 Radiation-Based Models and FAO Penman-Monteith

Description

A convenience wrapper that computes daily reference evapotranspiration using all 10 radiation-based empirical models plus the FAO Penman-Monteith standard method as the reference/base for comparison.

Usage

et0_rad_all(Tmin, Tmax, RH_morning, RH_evening, u2, n, J, lat, z = 0)

Arguments

Tmin

Minimum air temperature (degrees Celsius).

Tmax

Maximum air temperature (degrees Celsius).

RH_morning

Morning relative humidity (percent). Used by Priestley-Taylor and FAO Penman-Monteith.

RH_evening

Evening relative humidity (percent). Used by Priestley-Taylor and FAO Penman-Monteith.

u2

Wind speed at 2 m height (m/s). Used by FAO Penman-Monteith only.

n

Actual sunshine hours.

J

Day of the year (1-366).

lat

Latitude (degrees, negative for Southern Hemisphere).

z

Elevation above sea level (m). Default is 0.

Details

The 10 radiation-based models included are:

The FAO Penman-Monteith column serves as the standard reference against which models can be evaluated using evaluate_models.

Value

A data.frame with 11 columns: FAO_PM (reference) plus one column per radiation-based model. The number of rows equals the length of the input vectors.

Examples

result <- et0_rad_all(Tmin = 15, Tmax = 35, RH_morning = 90,
                      RH_evening = 40, u2 = 1.5, n = 9,
                      J = 172, lat = 25.43, z = 216)
print(result)

Turc ET0 Model

Description

Estimates daily ET0 using the Turc (1961) method based on solar radiation and mean air temperature. Assumes humid conditions (RH >= 50

Usage

et0_turc(Tmean, J, lat, n)

Arguments

Tmean

Mean air temperature (degrees Celsius).

J

Day of the year (1-366).

lat

Latitude (degrees).

n

Actual sunshine hours.

Value

Daily ET0 (mm/day).

References

Turc, L. (1961). Estimation of irrigation water requirements, potential evapotranspiration: a simple climatic formula evolved up to date. Annals of Agronomy, 12, 13-49.

See Also

Other radiation models: et0_abtew(), et0_caprio(), et0_hargreaves(), et0_irmak(), et0_jensen_haise(), et0_jones_ritchie(), et0_makkink(), et0_mcguinness_bordne(), et0_priestley_taylor()

Examples

et0_turc(25, 172, 25.43, 9)

Evaluate Multiple ET0 Models Against a Reference

Description

Computes all 9 statistical evaluation metrics for one or more ET0 models compared against a reference method (typically FAO Penman-Monteith).

Usage

evaluate_models(observed, predicted)

Arguments

observed

Numeric vector of observed (reference) ET0 values.

predicted

A named list or data.frame of predicted ET0 values. Each element/column represents a different model.

Value

A data.frame with one row per model and columns for each metric: NSE, d, MSE, RMSE, NRMSE, MAE, MBE, r, R2.

Examples

obs <- c(3.5, 4.2, 5.1, 2.8, 6.0)
preds <- data.frame(
  Model_A = c(3.3, 4.5, 4.9, 3.0, 5.8),
  Model_B = c(4.0, 4.0, 5.5, 2.5, 6.5)
)
evaluate_models(obs, preds)

Extraterrestrial Radiation

Description

Computes the extraterrestrial radiation (Ra) for a given day and latitude following Allen et al. (1998).

Usage

extraterrestrial_radiation(J, lat)

Arguments

J

Day of the year (1-366).

lat

Latitude (degrees, negative for Southern Hemisphere).

Value

Extraterrestrial radiation (MJ/m2/day).

References

Allen et al. (1998), FAO-56, Eq. 21.

Examples

extraterrestrial_radiation(172, 25.43)

Sample Meteorological Data from Jhansi, India

Description

A dataset containing daily meteorological observations from the Central Research Farm of ICAR-Indian Grassland and Fodder Research Institute (IGFRI), Jhansi, Uttar Pradesh, India (25 deg 26' N, 78 deg 30' E, 216 m above sea level). The data covers one year (2010) and is representative of semi-arid climate conditions.

Usage

jhansi_weather

Format

A data frame with 365 rows and 8 columns:

Date

Date of observation (Date class).

J

Day of the year (1-365).

Tmax

Maximum air temperature (degrees Celsius).

Tmin

Minimum air temperature (degrees Celsius).

RH_morning

Morning relative humidity (percent).

RH_evening

Evening relative humidity (percent).

SSH

Bright sunshine hours.

WS

Wind speed at 2 m height (m/s).

Details

The study area has a semi-arid climate with extreme summers (average 32.7 degrees C) and mild winters (average 25.1 degrees C). The average annual precipitation is 840 mm, with 90 percent contributed by southwest monsoons between July and September. This dataset is suitable for demonstrating the package functions and comparing ET0 model performance in data-scarce semi-arid conditions.

The latitude for this station is 25.43 degrees N and the elevation is 216 m above sea level.

Source

ICAR-Indian Grassland and Fodder Research Institute (IGFRI), Jhansi, India.

Examples

data(jhansi_weather)
head(jhansi_weather)

# Compute FAO-PM ET0 for the first day
with(jhansi_weather[1, ],
  et0_fao_pm(Tmin, Tmax, RH_morning, RH_evening, WS, SSH, J,
             lat = 25.43, z = 216))

Convert Vapor Pressure from kPa to hPa

Description

Convert Vapor Pressure from kPa to hPa

Usage

kpa_to_hpa(kPa)

Arguments

kPa

Vapor pressure in kPa.

Value

Vapor pressure in hPa.


Convert Vapor Pressure from kPa to mmHg

Description

Convert Vapor Pressure from kPa to mmHg

Usage

kpa_to_mmhg(kPa)

Arguments

kPa

Vapor pressure in kPa.

Value

Vapor pressure in mmHg.


Latent Heat of Vaporization

Description

Computes the latent heat of vaporization as a function of air temperature following Allen et al. (1998).

Usage

latent_heat(Tmean)

Arguments

Tmean

Mean air temperature (degrees Celsius).

Value

Latent heat of vaporization (MJ/kg).

References

Allen, R.G., Pereira, L.S., Raes, D., & Smith, M. (1998). FAO Irrigation and Drainage Paper No. 56.

Examples

latent_heat(25)

Statistical Evaluation Metrics for ET0 Models

Description

Functions to compute statistical performance metrics for comparing ET0 model estimates against a reference (e.g., FAO Penman-Monteith).


Convert Wind Speed from m/s to miles/day

Description

Convert Wind Speed from m/s to miles/day

Usage

ms_to_miles_day(u)

Arguments

u

Wind speed in m/s.

Value

Wind speed in miles/day.


Net Radiation

Description

Computes net radiation (Rn) following the FAO-56 approach.

Usage

net_radiation(J, lat, n, Tmin, Tmax, ea, albedo = 0.23, a_s = 0.25, b_s = 0.5)

Arguments

J

Day of the year (1-366).

lat

Latitude (degrees).

n

Actual sunshine hours.

Tmin

Minimum air temperature (degrees Celsius).

Tmax

Maximum air temperature (degrees Celsius).

ea

Actual vapor pressure (kPa).

albedo

Surface albedo (default 0.23 for reference crop).

a_s

Angstrom coefficient a (default 0.25).

b_s

Angstrom coefficient b (default 0.50).

Value

Net radiation (MJ/m2/day).

References

Allen et al. (1998), FAO-56.

Examples

ea <- actual_vapor_pressure(15, 30, 90, 40)
net_radiation(172, 25.43, 8, 15, 30, ea)

Annual ET0 Bar Chart

Description

Creates a bar chart comparing total annual ET0 estimated by each model against the FAO-PM reference.

Usage

plot_annual_bar(annual_et0, main = "Annual ET0 by Model", colors = NULL)

Arguments

annual_et0

A named numeric vector of total annual ET0 values for each model. Must include FAO_PM.

main

Title for the plot.

colors

Character vector of bar colors. If NULL, generated automatically.

Value

Invisible NULL.

Examples

annual <- c(FAO_PM = 1571, Blaney_Criddle = 1933, Schendel = 2593,
            Hargreaves_Samani = 1393)
plot_annual_bar(annual)

Monthly Comparison Plot

Description

Creates a line plot comparing the average monthly ET0 from multiple models against the FAO-PM reference.

Usage

plot_monthly_comparison(
  monthly_data,
  model_names = NULL,
  main = "Monthly ET0 Comparison",
  colors = NULL
)

Arguments

monthly_data

A data.frame with columns: Month (1-12) and one column per model containing mean monthly ET0 values. Must include a FAO_PM column.

model_names

Character vector of model names to plot (in addition to FAO_PM). If NULL, all models are plotted.

main

Title for the plot.

colors

Named character vector of colors per model. If NULL, colors are generated automatically.

Value

Invisible NULL.

Examples

monthly <- data.frame(
  Month = 1:12,
  FAO_PM = c(2.0, 2.5, 3.5, 5.0, 6.5, 7.0, 6.0, 5.5, 4.5, 3.5, 2.5, 2.0),
  Model_A = c(2.2, 2.8, 3.8, 5.3, 6.8, 7.3, 6.3, 5.8, 4.8, 3.8, 2.8, 2.2)
)
plot_monthly_comparison(monthly)

Scatter Plot of Predicted vs Observed ET0

Description

Creates a scatter plot comparing predicted ET0 values from one or more models against observed (reference) values, with 1:1 line and regression lines.

Usage

plot_scatter(
  observed,
  predicted,
  model_names = NULL,
  main = "Predicted vs Observed ET0",
  colors = NULL,
  ...
)

Arguments

observed

Numeric vector of observed (reference) ET0 values.

predicted

A named list or data.frame of predicted ET0 values.

model_names

Character vector of model names to plot. If NULL, all models in predicted are plotted.

main

Title for the plot.

colors

Character vector of colors. If NULL, colors are generated automatically.

...

Additional arguments passed to plot.

Value

Invisible NULL. Called for its side effect of producing a plot.

Examples

obs <- c(3.5, 4.2, 5.1, 2.8, 6.0, 3.1, 4.8)
preds <- data.frame(
  Model_A = c(3.3, 4.5, 4.9, 3.0, 5.8, 3.4, 4.6),
  Model_B = c(4.0, 4.0, 5.5, 2.5, 6.5, 3.8, 5.0)
)
plot_scatter(obs, preds)

Taylor Diagram

Description

Creates a Taylor diagram showing the correlation coefficient, standard deviation, and centered RMSE of multiple models relative to the observed reference.

Usage

plot_taylor(
  observed,
  predicted,
  model_names = NULL,
  main = "Taylor Diagram",
  colors = NULL,
  normalize = FALSE
)

Arguments

observed

Numeric vector of observed (reference) ET0 values.

predicted

A named list or data.frame of predicted ET0 values.

model_names

Character vector of model names to plot. If NULL, all models are plotted.

main

Title for the plot.

colors

Character vector of colors. If NULL, colors are generated automatically.

normalize

Logical; if TRUE, standard deviations are normalized by the observed standard deviation (default FALSE).

Value

Invisible NULL. Called for its side effect of producing a plot.

Examples

set.seed(42)
obs <- rnorm(100, mean = 5, sd = 2)
preds <- list(
  Model_A = obs + rnorm(100, 0, 0.5),
  Model_B = obs * 1.1 + rnorm(100, 0, 1)
)
plot_taylor(obs, preds)

Visualization Functions for ET0 Model Comparison

Description

Functions for graphical evaluation of ET0 model performance including scatter plots, Taylor diagrams, monthly comparison plots, and annual bar charts.


Psychrometric Constant

Description

Computes the psychrometric constant as a function of atmospheric pressure.

Usage

psychrometric_constant(P = NULL, z = 0)

Arguments

P

Atmospheric pressure (kPa). If NULL, computed from elevation.

z

Elevation above sea level (m). Used only if P is NULL.

Value

Psychrometric constant (kPa/degrees C).

References

Allen et al. (1998), FAO-56, Eq. 8.

Examples

psychrometric_constant(z = 216)

Radiation-Based ET0 Models

Description

Functions implementing 10 radiation-based empirical models for reference evapotranspiration (ET0) estimation.


Saturation Vapor Pressure

Description

Computes the saturation vapor pressure at a given temperature using the Tetens formula (Allen et al., 1998).

Usage

saturation_vapor_pressure(Temp)

Arguments

Temp

Air temperature (degrees Celsius).

Value

Saturation vapor pressure (kPa).

References

Allen et al. (1998), FAO-56, Eq. 11.

Examples

saturation_vapor_pressure(25)

Slope of Saturation Vapor Pressure Curve

Description

Computes the slope of the saturation vapor pressure-temperature curve.

Usage

slope_vapor_pressure(Tmean)

Arguments

Tmean

Mean air temperature (degrees Celsius).

Value

Slope of saturation vapor pressure curve (kPa/degrees C).

References

Allen et al. (1998), FAO-56, Eq. 13.

Examples

slope_vapor_pressure(25)

Solar Radiation (Angstrom)

Description

Estimates incoming solar radiation (Rs) using the Angstrom formula with sunshine hours.

Usage

solar_radiation(J, lat, n, a_s = 0.25, b_s = 0.5)

Arguments

J

Day of the year (1-366).

lat

Latitude (degrees).

n

Actual sunshine hours.

a_s

Angstrom coefficient a (default 0.25).

b_s

Angstrom coefficient b (default 0.50).

Value

Solar radiation (MJ/m2/day).

References

Allen et al. (1998), FAO-56, Eq. 35.

Examples

solar_radiation(172, 25.43, 8)