The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

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

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.