| Type: | Package |
| Title: | Evapotranspiration Estimation Using Temperature-Based Models |
| Version: | 1.0.0 |
| Description: | Provides functions to estimate daily reference evapotranspiration (ET0) using 10 temperature-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/ET0TempModels |
| BugReports: | https://github.com/samirigfri/ET0TempModels/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-09-28 11:03:32 UTC; usr |
| Author: | Ajay N. Satpute [aut],
Samir Barman |
| Maintainer: | Samir Barman <samir.igfri@gmail.com> |
| Repository: | CRAN |
| Date/Publication: | 2026-10-08 10:20:19 UTC |
ET0TempModels: Evapotranspiration Estimation Using Temperature-Based Models
Description
The ET0TempModels package provides functions for estimating daily reference evapotranspiration (ET0) using 10 temperature-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.
Temperature-Based Models (10)
- Blaney-Criddle (1950)
Requires only mean temperature.
- Schendel (Bormann, 2011)
Requires mean temperature and relative humidity.
- Hargreaves-Samani (1985)
Requires Tmin, Tmax, day of year, and latitude.
- Linacre (1977)
Requires temperature, humidity, elevation, and latitude.
- Tabari-Talaee 1 (2011)
Modified Hargreaves (coefficient 0.031).
- Tabari-Talaee 2 (2011)
Modified Hargreaves (coefficient 0.0028).
- Droogers-Allen (2002)
Modified Hargreaves with temperature range^0.4.
- Berti et al. (2014)
Modified Hargreaves with temperature range^0.517.
- Dorji et al. (2016)
Modified Hargreaves with temperature range^0.296.
- Baier-Robertson (1965)
Regression-based using Ra, Tmax, and temperature range.
Key Functions
et0_temp_allCompute ET0 using all 10 temperature-based models + FAO PM.
et0_fao_pmFAO Penman-Monteith reference method.
evaluate_modelsCompute all 9 statistical metrics.
plot_taylorGenerate Taylor diagrams.
plot_scatterGenerate 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:
Ajay N. Satpute
Amit Kumar Singh
Avijit Ghosh
Gaurendra Gupta
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:
Report bugs at https://github.com/samirigfri/ET0TempModels/issues
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)
Baier-Robertson ET0 Model
Description
Estimates daily ET0 using the Baier and Robertson (1965) method, a regression-based equation using extraterrestrial radiation, maximum temperature and temperature range.
Usage
et0_baier_robertson(Tmin, Tmax, J, lat)
Arguments
Tmin |
Minimum air temperature (degrees Celsius). |
Tmax |
Maximum air temperature (degrees Celsius). |
J |
Day of the year (1-366). |
lat |
Latitude (degrees). |
Value
Daily ET0 (mm/day).
References
Baier, W. & Robertson, G.W. (1965). Estimation of latent evaporation from simple weather observations. Canadian Journal of Plant Science, 45(3), 276-284.
See Also
Other temperature models:
et0_berti(),
et0_blaney_criddle(),
et0_dorji(),
et0_droogers_allen(),
et0_hargreaves_samani(),
et0_linacre(),
et0_schendel(),
et0_tabari_talee1(),
et0_tabari_talee2()
Examples
et0_baier_robertson(15, 30, 172, 25.43)
Berti et al. ET0 Model
Description
Estimates daily ET0 using the Berti et al. (2014) method, a modified Hargreaves formula using the temperature range raised to the power 0.517.
Usage
et0_berti(Tmin, Tmax, J, lat)
Arguments
Tmin |
Minimum air temperature (degrees Celsius). |
Tmax |
Maximum air temperature (degrees Celsius). |
J |
Day of the year (1-366). |
lat |
Latitude (degrees). |
Value
Daily ET0 (mm/day).
References
Berti, A., Tardivo, G., Chiaudani, A., Rech, F., & Borin, M. (2014). Assessing reference evapotranspiration by the Hargreaves method in north-eastern Italy. Agricultural Water Management, 140, 20-25.
See Also
Other temperature models:
et0_baier_robertson(),
et0_blaney_criddle(),
et0_dorji(),
et0_droogers_allen(),
et0_hargreaves_samani(),
et0_linacre(),
et0_schendel(),
et0_tabari_talee1(),
et0_tabari_talee2()
Examples
et0_berti(15, 30, 172, 25.43)
Blaney-Criddle ET0 Model
Description
Estimates daily ET0 using the Blaney-Criddle (1950) method, which relies only on mean air temperature.
Usage
et0_blaney_criddle(Tmean)
Arguments
Tmean |
Mean air temperature (degrees Celsius). |
Value
Daily ET0 (mm/day).
References
Blaney, H.F. & Criddle, W.D. (1950). Determining water requirements in irrigated areas from climatological and irrigation data. USDA Soil Conservation Service, SCS-TP 96.
See Also
Other temperature models:
et0_baier_robertson(),
et0_berti(),
et0_dorji(),
et0_droogers_allen(),
et0_hargreaves_samani(),
et0_linacre(),
et0_schendel(),
et0_tabari_talee1(),
et0_tabari_talee2()
Examples
et0_blaney_criddle(25)
Dorji et al. ET0 Model
Description
Estimates daily ET0 using the Dorji et al. (2016) method, a modified Hargreaves formula using the temperature range raised to the power 0.296.
Usage
et0_dorji(Tmin, Tmax, J, lat)
Arguments
Tmin |
Minimum air temperature (degrees Celsius). |
Tmax |
Maximum air temperature (degrees Celsius). |
J |
Day of the year (1-366). |
lat |
Latitude (degrees). |
Value
Daily ET0 (mm/day).
References
Dorji, U., Olesen, J.E., & Seidenkrantz, M.S. (2016). Water balance in the complex mountainous terrain of Bhutan and linkages to land use. Journal of Hydrology: Regional Studies, 7, 55-68.
See Also
Other temperature models:
et0_baier_robertson(),
et0_berti(),
et0_blaney_criddle(),
et0_droogers_allen(),
et0_hargreaves_samani(),
et0_linacre(),
et0_schendel(),
et0_tabari_talee1(),
et0_tabari_talee2()
Examples
et0_dorji(15, 30, 172, 25.43)
Droogers-Allen ET0 Model
Description
Estimates daily ET0 using the Droogers and Allen (2002) method, a modified Hargreaves formula using the temperature range raised to the power 0.4.
Usage
et0_droogers_allen(Tmin, Tmax, J, lat)
Arguments
Tmin |
Minimum air temperature (degrees Celsius). |
Tmax |
Maximum air temperature (degrees Celsius). |
J |
Day of the year (1-366). |
lat |
Latitude (degrees). |
Value
Daily ET0 (mm/day).
References
Droogers, P. & Allen, R.G. (2002). Estimating reference evapotranspiration under inaccurate data conditions. Irrigation and Drainage Systems, 16(1), 33-45.
See Also
Other temperature models:
et0_baier_robertson(),
et0_berti(),
et0_blaney_criddle(),
et0_dorji(),
et0_hargreaves_samani(),
et0_linacre(),
et0_schendel(),
et0_tabari_talee1(),
et0_tabari_talee2()
Examples
et0_droogers_allen(15, 30, 172, 25.43)
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-Samani ET0 Model
Description
Estimates daily ET0 using the Hargreaves-Samani (1985) method based on temperature range and extraterrestrial radiation.
Usage
et0_hargreaves_samani(Tmin, Tmax, J, lat)
Arguments
Tmin |
Minimum air temperature (degrees Celsius). |
Tmax |
Maximum air temperature (degrees Celsius). |
J |
Day of the year (1-366). |
lat |
Latitude (degrees). |
Value
Daily ET0 (mm/day).
References
Hargreaves, G.H. & Samani, Z.A. (1985). Reference crop evapotranspiration from temperature. Applied Engineering in Agriculture, 1(2), 96-99.
See Also
Other temperature models:
et0_baier_robertson(),
et0_berti(),
et0_blaney_criddle(),
et0_dorji(),
et0_droogers_allen(),
et0_linacre(),
et0_schendel(),
et0_tabari_talee1(),
et0_tabari_talee2()
Examples
et0_hargreaves_samani(15, 30, 172, 25.43)
Linacre ET0 Model
Description
Estimates daily ET0 using the Linacre (1977) method, which accounts for altitude, latitude and dew point depression.
Usage
et0_linacre(Tmean, Tmin, Tmax, RH_morning, RH_evening, z, lat)
Arguments
Tmean |
Mean air temperature (degrees Celsius). |
Tmin |
Minimum air temperature (degrees Celsius). |
Tmax |
Maximum air temperature (degrees Celsius). |
RH_morning |
Morning relative humidity (percent). |
RH_evening |
Evening relative humidity (percent). |
z |
Elevation above sea level (m). |
lat |
Latitude (degrees). |
Value
Daily ET0 (mm/day).
References
Linacre, E.T. (1977). A simple formula for estimating evaporation rates in various climates, using temperature data alone. Agricultural Meteorology, 18(6), 409-424.
See Also
Other temperature models:
et0_baier_robertson(),
et0_berti(),
et0_blaney_criddle(),
et0_dorji(),
et0_droogers_allen(),
et0_hargreaves_samani(),
et0_schendel(),
et0_tabari_talee1(),
et0_tabari_talee2()
Examples
et0_linacre(25, 15, 35, 90, 40, 216, 25.43)
Schendel ET0 Model
Description
Estimates daily ET0 using the Schendel method (Bormann, 2011), which uses mean temperature and relative humidity.
Usage
et0_schendel(Tmean, RH)
Arguments
Tmean |
Mean air temperature (degrees Celsius). |
RH |
Mean relative humidity (percent). |
Value
Daily ET0 (mm/day).
References
Bormann, H. (2011). Sensitivity analysis of 18 different potential evapotranspiration models to observed climatic change at German climate stations. Climatic Change, 104(3), 729-753.
See Also
Other temperature models:
et0_baier_robertson(),
et0_berti(),
et0_blaney_criddle(),
et0_dorji(),
et0_droogers_allen(),
et0_hargreaves_samani(),
et0_linacre(),
et0_tabari_talee1(),
et0_tabari_talee2()
Examples
et0_schendel(25, 60)
Tabari-Talaee Model 1 ET0
Description
Estimates daily ET0 using the first Tabari and Talaee (2011) modified Hargreaves equation with coefficient 0.031.
Usage
et0_tabari_talee1(Tmin, Tmax, J, lat)
Arguments
Tmin |
Minimum air temperature (degrees Celsius). |
Tmax |
Maximum air temperature (degrees Celsius). |
J |
Day of the year (1-366). |
lat |
Latitude (degrees). |
Value
Daily ET0 (mm/day).
References
Tabari, H. & Talaee, P.H. (2011). Local calibration of the Hargreaves and Priestley-Taylor equations for estimating reference evapotranspiration in arid and cold climates of Iran based on the Penman-Monteith model. Journal of Hydrologic Engineering, 16(10), 837-845.
See Also
Other temperature models:
et0_baier_robertson(),
et0_berti(),
et0_blaney_criddle(),
et0_dorji(),
et0_droogers_allen(),
et0_hargreaves_samani(),
et0_linacre(),
et0_schendel(),
et0_tabari_talee2()
Examples
et0_tabari_talee1(15, 30, 172, 25.43)
Tabari-Talaee Model 2 ET0
Description
Estimates daily ET0 using the second Tabari and Talaee (2011) modified Hargreaves equation with coefficient 0.0028.
Usage
et0_tabari_talee2(Tmin, Tmax, J, lat)
Arguments
Tmin |
Minimum air temperature (degrees Celsius). |
Tmax |
Maximum air temperature (degrees Celsius). |
J |
Day of the year (1-366). |
lat |
Latitude (degrees). |
Value
Daily ET0 (mm/day).
References
Tabari, H. & Talaee, P.H. (2011). Local calibration of the Hargreaves and Priestley-Taylor equations for estimating reference evapotranspiration in arid and cold climates of Iran based on the Penman-Monteith model. Journal of Hydrologic Engineering, 16(10), 837-845.
See Also
Other temperature models:
et0_baier_robertson(),
et0_berti(),
et0_blaney_criddle(),
et0_dorji(),
et0_droogers_allen(),
et0_hargreaves_samani(),
et0_linacre(),
et0_schendel(),
et0_tabari_talee1()
Examples
et0_tabari_talee2(15, 30, 172, 25.43)
Compute ET0 Using All 10 Temperature-Based Models and FAO Penman-Monteith
Description
A convenience wrapper that computes daily reference evapotranspiration using all 10 temperature-based empirical models plus the FAO Penman-Monteith standard method as the reference/base for comparison.
Usage
et0_temp_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 Schendel, Linacre, and FAO Penman-Monteith. |
RH_evening |
Evening relative humidity (percent). Used by Schendel, Linacre, and FAO Penman-Monteith. |
u2 |
Wind speed at 2 m height (m/s). Used by FAO Penman-Monteith only. |
n |
Actual sunshine hours. Used by FAO Penman-Monteith only. |
J |
Day of the year (1-366). |
lat |
Latitude (degrees, negative for Southern Hemisphere). |
z |
Elevation above sea level (m). Used by Linacre and FAO Penman-Monteith. Default is 0. |
Details
The 10 temperature-based models included are:
Blaney-Criddle (1950)
Schendel (Bormann, 2011)
Hargreaves-Samani (1985)
Linacre (1977)
Tabari-Talaee 1 (2011)
Tabari-Talaee 2 (2011)
Droogers-Allen (2002)
Berti et al. (2014)
Dorji et al. (2016)
Baier-Robertson (1965)
The FAO Penman-Monteith column serves as the standard reference
against which the temperature-based models can be evaluated using
evaluate_models.
Value
A data.frame with 11 columns: FAO_PM (reference) plus
one column per temperature-based model. The number of rows equals the
length of the input vectors.
Examples
# Single day example
result <- et0_temp_all(Tmin = 15, Tmax = 30, RH_morning = 90,
RH_evening = 40, u2 = 1.5, n = 8,
J = 172, lat = 25.43, z = 216)
print(result)
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 |
main |
Title for the plot. |
colors |
Character vector of bar colors. If |
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: |
model_names |
Character vector of model names to plot (in addition to
FAO_PM). If |
main |
Title for the plot. |
colors |
Named character vector of colors per model. If |
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 |
main |
Title for the plot. |
colors |
Character vector of colors. If |
... |
Additional arguments passed to |
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 |
main |
Title for the plot. |
colors |
Character vector of colors. If |
normalize |
Logical; if |
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 |
z |
Elevation above sea level (m). Used only if |
Value
Psychrometric constant (kPa/degrees C).
References
Allen et al. (1998), FAO-56, Eq. 8.
Examples
psychrometric_constant(z = 216)
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)
Temperature-Based ET0 Models
Description
Functions implementing 10 temperature-based empirical models for reference evapotranspiration (ET0) estimation.