Introduction to ET0MassModels

Overview

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

Mass transfer-based models estimate evaporation from the vapor pressure deficit and wind speed, making them suitable where humidity and wind data are available but radiation data are limited.

Mass Transfer-Based Models

# Model Function Primary Inputs
1 Dalton (1802) et0_dalton() Tmin, Tmax, RH, u
2 Trabert (1896) et0_trabert() Tmin, Tmax, RH, u
3 Meyer (1926) et0_meyer() Tmin, Tmax, RH, u
4 Rohwer (1931) et0_rohwer() Tmin, Tmax, RH, u
5 Penman (1948) et0_penman() Tmin, Tmax, RH, u
6 Albrecht (1950) et0_albrecht() Tmin, Tmax, RH, u
7 WMO (1966) et0_wmo() Tmin, Tmax, RH, u
8 Brockamp-Wenner (1963) et0_brockamp_wenner() Tmin, Tmax, RH, u
9 Romanenko (1961) et0_romanenko() Tmean, Tmin, Tmax, RH
10 Mahringer (1970) et0_mahringer() Tmin, Tmax, RH, u

Quick Start

Loading the Package and Data

library(ET0MassModels)
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

# Dalton (linear wind function)
et0_dalton(Tmin = 15, Tmax = 35, RH_morning = 90, RH_evening = 40, u = 1.5)
#> [1] 8.384469

# Romanenko (temperature and humidity based)
et0_romanenko(Tmean = 25, Tmin = 15, Tmax = 35,
              RH_morning = 90, RH_evening = 40)
#> [1] 8.70556

Computing All 10 Mass Transfer-Based Models at Once

result <- et0_mass_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 Dalton Trabert Meyer Rohwer Penman Albrecht  WMO Brockamp_Wenner
#> 1   1.60   3.09    1.12  3.13   2.83  16.05     1.30 1.12            2.12
#> 2   2.54   4.48    3.40  4.31   4.35  19.57     4.69 1.77            5.94
#> 3   2.84   5.76    4.42  5.52   5.60  24.95     6.16 2.27            7.71
#> 4   2.38   5.05    3.55  4.91   4.84  22.97     4.59 1.96            6.27
#> 5   1.98   4.04    1.88  4.06   3.74  20.44     2.12 1.49            3.48
#>   Romanenko Mahringer
#> 1      4.74      1.04
#> 2      5.53      3.16
#> 3      6.96      4.11
#> 4      6.66      3.30
#> 5      5.62      1.75

Evaluating Model Performance Against FAO-PM

full_result <- et0_mass_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("Dalton", "Meyer", "WMO", "Mahringer")]
metrics <- evaluate_models(obs, preds)
print(metrics)
#>       Model         NSE         d       MSE     RMSE     NRMSE      MAE
#> 1    Dalton -11.0745334 0.5145592 40.569413 6.369412 1.4871250 4.576065
#> 2     Meyer  -9.1394406 0.5390250 34.067664 5.836751 1.3627597 4.237460
#> 3       WMO   0.3758223 0.8909920  2.097184 1.448166 0.3381165 1.193545
#> 4 Mahringer  -3.4615148 0.6982560 14.990313 3.871733 0.9039688 2.502738
#>        MBE         r        R2
#> 1 95.24875 0.8980270 0.8064524
#> 2 89.56579 0.8909122 0.7937246
#> 3 30.81095 0.9058781 0.8206152
#> 4 47.04053 0.9241537 0.8540601

Visualization

Scatter Plot

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

Taylor Diagram

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

References