Introduction to ET0RadModels

Overview

The ET0RadModels package provides 10 radiation-based empirical models for estimating daily reference evapotranspiration (ET0). The FAO Penman-Monteith method is included as the standard reference against which the radiation-based models are compared and evaluated.

Radiation-based models require solar radiation (or sunshine hours) as the primary input, making them suitable where radiation data are available but wind speed or humidity data are limited.

Radiation-Based Models

# Model Function Primary Inputs
1 Jensen-Haise (1963) et0_jensen_haise() Tmean, J, lat, n
2 McGuinness-Bordne (1972) et0_mcguinness_bordne() Tmean, J, lat, n
3 Irmak (2003) et0_irmak() Tmean, J, lat, n
4 Makkink (1957) et0_makkink() Tmean, J, lat, n, z
5 Turc (1961) et0_turc() Tmean, J, lat, n
6 Caprio (1974) et0_caprio() Tmean, J, lat, n
7 Abtew (1996) et0_abtew() Tmean, J, lat, n
8 Priestley-Taylor (1972) et0_priestley_taylor() Tmin, Tmax, RH, n, J, lat, z
9 Jones-Ritchie (1990) et0_jones_ritchie() Tmin, Tmax, J, lat, n
10 Hargreaves (1975) et0_hargreaves() Tmean, J, lat, n

Quick Start

Loading the Package and Data

library(ET0RadModels)
data(jhansi_weather)
head(jhansi_weather)
#>         Date J Tmax Tmin RH_morning RH_evening SSH   WS
#> 1 2010-01-01 1 24.1  5.1         89         49 7.2 0.20
#> 2 2010-01-02 2 25.5  4.8         88         43 8.0 1.27
#> 3 2010-01-03 3 26.5  5.8         84         32 8.0 1.32
#> 4 2010-01-04 4 24.6  5.2         94         27 6.9 1.00
#> 5 2010-01-05 5 27.1  4.9         93         44 9.1 0.35
#> 6 2010-01-06 6 26.2  1.7         69         36 5.7 1.15

Computing ET0 for a Single Day

# FAO Penman-Monteith (reference)
et0_fao_pm(Tmin = 15, Tmax = 35, RH_morning = 90, RH_evening = 40,
           u2 = 1.5, n = 9, J = 172, lat = 25.43, z = 216)
#> [1] 5.611876

# Jensen-Haise (simple radiation-based)
et0_jensen_haise(Tmean = 25, J = 172, lat = 25.43, n = 9)
#> [1] 6.801125

# Priestley-Taylor (uses net radiation)
et0_priestley_taylor(Tmin = 15, Tmax = 35, RH_morning = 90,
                     RH_evening = 40, n = 9, J = 172,
                     lat = 25.43, z = 216)
#> [1] 5.410077

Computing All 10 Radiation-Based Models at Once

result <- et0_rad_all(
  Tmin       = jhansi_weather$Tmin[1:5],
  Tmax       = jhansi_weather$Tmax[1:5],
  RH_morning = jhansi_weather$RH_morning[1:5],
  RH_evening = jhansi_weather$RH_evening[1:5],
  u2         = jhansi_weather$WS[1:5],
  n          = jhansi_weather$SSH[1:5],
  J          = jhansi_weather$J[1:5],
  lat        = 25.43,
  z          = 216
)
round(result, 2)
#>   FAO_PM Jensen_Haise McGuinness_Bordne Irmak Makkink Turc Caprio Abtew
#> 1   1.60         2.44              2.65  2.55    1.95 2.39   0.14  2.90
#> 2   2.54         2.68              2.74  2.73    2.12 2.57   0.15  3.10
#> 3   2.84         2.83              2.88  2.81    2.17 2.66   0.15  3.11
#> 4   2.38         2.43              2.72  2.54    1.93 2.38   0.13  2.85
#> 5   1.98         3.06              2.88  2.99    2.36 2.85   0.16  3.38
#>   Priestley_Taylor Jones_Ritchie Hargreaves_1975
#> 1             1.82          2.85            2.41
#> 2             1.88          3.08            2.61
#> 3             1.82          3.15            2.70
#> 4             1.66          2.82            2.39
#> 5             2.08          3.42            2.92

Evaluating Model Performance Against FAO-PM

full_result <- et0_rad_all(
  Tmin       = jhansi_weather$Tmin,
  Tmax       = jhansi_weather$Tmax,
  RH_morning = jhansi_weather$RH_morning,
  RH_evening = jhansi_weather$RH_evening,
  u2         = jhansi_weather$WS,
  n          = jhansi_weather$SSH,
  J          = jhansi_weather$J,
  lat        = 25.43,
  z          = 216
)

obs   <- full_result$FAO_PM
preds <- full_result[, c("Jensen_Haise", "Makkink",
                          "Priestley_Taylor", "Turc")]
metrics <- evaluate_models(obs, preds)
print(metrics)
#>              Model       NSE         d      MSE     RMSE     NRMSE       MAE
#> 1     Jensen_Haise 0.3465057 0.8767865 2.195686 1.481785 0.3459658 1.2666413
#> 2          Makkink 0.3942794 0.7749451 2.035170 1.426594 0.3330799 1.0668363
#> 3 Priestley_Taylor 0.6535366 0.8799502 1.164088 1.078929 0.2519074 0.7874838
#> 4             Turc 0.6940078 0.8770548 1.028108 1.013957 0.2367377 0.7127894
#>        MBE         r        R2
#> 1 31.84700 0.9338969 0.8721635
#> 2 21.76825 0.9014774 0.8126616
#> 3 16.65892 0.8453959 0.7146942
#> 4 16.02313 0.9065383 0.8218117

Visualization

Scatter Plot

plot_scatter(obs, preds,
             main = "Radiation-Based Models vs FAO-PM")

Taylor Diagram

plot_taylor(obs, preds,
            main = "Taylor Diagram - Radiation-Based Models")

References

mirror server hosted at Truenetwork, Russian Federation.