Package {ET0MassModels}


Type: Package
Title: Evapotranspiration Estimation Using Mass Transfer-Based Models
Version: 1.0.0
Description: Provides functions to estimate daily reference evapotranspiration (ET0) using 10 mass transfer-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/ET0MassModels
BugReports: https://github.com/samirigfri/ET0MassModels/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:04:25 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:22 UTC

ET0MassModels: Evapotranspiration Estimation Using Mass Transfer-Based Models

Description

The ET0MassModels package provides functions for estimating daily reference evapotranspiration (ET0) using 10 mass transfer-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.

Mass Transfer-Based Models (10)

Dalton (1802)

Linear wind function of vapor pressure deficit.

Trabert (1896)

Square-root wind function of vapor pressure deficit.

Meyer (1926)

Linear wind function of vapor pressure deficit.

Rohwer (1931)

Wind function using vapor pressure deficit in mmHg.

Penman (1948)

Mass transfer form using wind in miles/day and mmHg.

Albrecht (1950)

Linear wind function of vapor pressure deficit.

WMO (1966)

Linear wind function of vapor pressure deficit.

Brockamp-Wenner (1963)

Power wind function of vapor pressure deficit.

Romanenko (1961)

Temperature and relative humidity based approach.

Mahringer (1970)

Square-root wind function of vapor pressure deficit.

Key Functions

et0_mass_all

Compute ET0 using all 10 mass transfer-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)

Albrecht ET0 Model

Description

Estimates daily ET0 using the Albrecht (1950) mass transfer method.

Usage

et0_albrecht(Tmin, Tmax, RH_morning, RH_evening, u)

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).

u

Wind speed (m/s).

Details

Vapor pressures are internally converted to hPa.

Value

Daily ET0 (mm/day).

References

Albrecht, F. (1950). Die Methoden zur Bestimmung der Verdunstung der naturlichen Erdoberflache. Archiv fur Meteorologie, Geophysik und Bioklimatologie, Serie B, 2, 1-38.

See Also

Other mass transfer models: et0_brockamp_wenner(), et0_dalton(), et0_mahringer(), et0_meyer(), et0_penman(), et0_rohwer(), et0_romanenko(), et0_trabert(), et0_wmo()

Examples

et0_albrecht(15, 30, 90, 40, 1.5)

Brockamp-Wenner ET0 Model

Description

Estimates daily ET0 using the Brockamp and Wenner (1963) mass transfer method.

Usage

et0_brockamp_wenner(Tmin, Tmax, RH_morning, RH_evening, u)

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).

u

Wind speed (m/s).

Details

Vapor pressures are internally converted to hPa.

Value

Daily ET0 (mm/day).

References

Brockamp, B. & Wenner, H. (1963). Verdunstungsmessungen auf den Steiner See bei Munster. Deutsche Gewasserkundliche Mitteilungen, 7, 149-154.

See Also

Other mass transfer models: et0_albrecht(), et0_dalton(), et0_mahringer(), et0_meyer(), et0_penman(), et0_rohwer(), et0_romanenko(), et0_trabert(), et0_wmo()

Examples

et0_brockamp_wenner(15, 30, 90, 40, 1.5)

Dalton ET0 Model

Description

Estimates daily ET0 using the Dalton (1802) mass transfer method.

Usage

et0_dalton(Tmin, Tmax, RH_morning, RH_evening, u)

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).

u

Wind speed (m/s).

Details

Vapor pressures are internally converted to hPa as required by this model.

Value

Daily ET0 (mm/day).

References

Dalton, J. (1802). Experimental essays on the constitution of mixed gases. Memoirs of the Literary and Philosophical Society of Manchester, 5, 535-602.

See Also

Other mass transfer models: et0_albrecht(), et0_brockamp_wenner(), et0_mahringer(), et0_meyer(), et0_penman(), et0_rohwer(), et0_romanenko(), et0_trabert(), et0_wmo()

Examples

et0_dalton(15, 30, 90, 40, 1.5)

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)

Mahringer ET0 Model

Description

Estimates daily ET0 using the Mahringer (1970) mass transfer method.

Usage

et0_mahringer(Tmin, Tmax, RH_morning, RH_evening, u)

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).

u

Wind speed (m/s).

Details

Vapor pressures are internally converted to hPa.

Value

Daily ET0 (mm/day).

References

Mahringer, W. (1970). Verdunstungsstudien am Neusiedler See. Archiv fur Meteorologie, Geophysik und Bioklimatologie, Serie B, 18, 1-20.

See Also

Other mass transfer models: et0_albrecht(), et0_brockamp_wenner(), et0_dalton(), et0_meyer(), et0_penman(), et0_rohwer(), et0_romanenko(), et0_trabert(), et0_wmo()

Examples

et0_mahringer(15, 30, 90, 40, 1.5)

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

Description

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

Usage

et0_mass_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).

RH_evening

Evening relative humidity (percent).

u2

Wind speed at 2 m height (m/s). Used by FAO Penman-Monteith and by the wind-dependent mass transfer models.

n

Actual sunshine hours. Used by FAO Penman-Monteith only.

J

Day of the year (1-366). Used by FAO Penman-Monteith only.

lat

Latitude (degrees, negative for Southern Hemisphere). Used by FAO Penman-Monteith only.

z

Elevation above sea level (m). Default is 0. Used by FAO Penman-Monteith only.

Details

The 10 mass transfer-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 mass transfer-based model. The number of rows equals the length of the input vectors.

Examples

result <- et0_mass_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)

Meyer ET0 Model

Description

Estimates daily ET0 using the Meyer (1926) mass transfer method.

Usage

et0_meyer(Tmin, Tmax, RH_morning, RH_evening, u)

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).

u

Wind speed (m/s).

Details

Vapor pressures are internally converted to hPa.

Value

Daily ET0 (mm/day).

References

Meyer, A. (1926). Uber einige Zusammenhange zwischen Klima und Boden in Europa. Chemie der Erde, 2, 209-347.

See Also

Other mass transfer models: et0_albrecht(), et0_brockamp_wenner(), et0_dalton(), et0_mahringer(), et0_penman(), et0_rohwer(), et0_romanenko(), et0_trabert(), et0_wmo()

Examples

et0_meyer(15, 30, 90, 40, 1.5)

Penman Mass Transfer ET0 Model

Description

Estimates daily ET0 using the Penman (1948) mass transfer method.

Usage

et0_penman(Tmin, Tmax, RH_morning, RH_evening, u)

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).

u

Wind speed (m/s).

Details

Wind speed is internally converted to miles/day and vapor pressures to mmHg as required by the original Penman formulation.

Value

Daily ET0 (mm/day).

References

Penman, H.L. (1948). Natural evaporation from open water, bare soil and grass. Proceedings of the Royal Society A, 193, 120-145.

See Also

Other mass transfer models: et0_albrecht(), et0_brockamp_wenner(), et0_dalton(), et0_mahringer(), et0_meyer(), et0_rohwer(), et0_romanenko(), et0_trabert(), et0_wmo()

Examples

et0_penman(15, 30, 90, 40, 1.5)

Rohwer ET0 Model

Description

Estimates daily ET0 using the Rohwer (1931) mass transfer method.

Usage

et0_rohwer(Tmin, Tmax, RH_morning, RH_evening, u)

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).

u

Wind speed (m/s).

Details

Vapor pressures are internally converted to mmHg as required by this model.

Value

Daily ET0 (mm/day).

References

Rohwer, C. (1931). Evaporation from free water surfaces. USDA Technical Bulletin No. 271.

See Also

Other mass transfer models: et0_albrecht(), et0_brockamp_wenner(), et0_dalton(), et0_mahringer(), et0_meyer(), et0_penman(), et0_romanenko(), et0_trabert(), et0_wmo()

Examples

et0_rohwer(15, 30, 90, 40, 1.5)

Romanenko ET0 Model

Description

Estimates daily ET0 using the Romanenko (1961) mass transfer method.

Usage

et0_romanenko(Tmean, Tmin, Tmax, RH_morning, RH_evening)

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).

Value

Daily ET0 (mm/day).

References

Romanenko, V.A. (1961). Computation of the autumn soil moisture using a universal relationship for a large area. Proceedings of the Ukrainian Hydrometeorological Research Institute, 3, 12-25.

See Also

Other mass transfer models: et0_albrecht(), et0_brockamp_wenner(), et0_dalton(), et0_mahringer(), et0_meyer(), et0_penman(), et0_rohwer(), et0_trabert(), et0_wmo()

Examples

et0_romanenko(25, 15, 35, 90, 40)

Trabert ET0 Model

Description

Estimates daily ET0 using the Trabert (1896) mass transfer method.

Usage

et0_trabert(Tmin, Tmax, RH_morning, RH_evening, u)

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).

u

Wind speed (m/s).

Details

Vapor pressures are internally converted to hPa.

Value

Daily ET0 (mm/day).

References

Trabert, W. (1896). Neue Beobachtungen uber Verdampfungsgeschwindigkeiten. Meteorologische Zeitschrift, 13, 261-263.

See Also

Other mass transfer models: et0_albrecht(), et0_brockamp_wenner(), et0_dalton(), et0_mahringer(), et0_meyer(), et0_penman(), et0_rohwer(), et0_romanenko(), et0_wmo()

Examples

et0_trabert(15, 30, 90, 40, 1.5)

WMO ET0 Model

Description

Estimates daily ET0 using the World Meteorological Organization (WMO, 1966) mass transfer method.

Usage

et0_wmo(Tmin, Tmax, RH_morning, RH_evening, u)

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).

u

Wind speed (m/s).

Details

Vapor pressures are internally converted to hPa.

Value

Daily ET0 (mm/day).

References

World Meteorological Organization (1966). Measurement and estimation of evaporation and evapotranspiration. Technical Note No. 83.

See Also

Other mass transfer models: et0_albrecht(), et0_brockamp_wenner(), et0_dalton(), et0_mahringer(), et0_meyer(), et0_penman(), et0_rohwer(), et0_romanenko(), et0_trabert()

Examples

et0_wmo(15, 30, 90, 40, 1.5)

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)

Mass Transfer-Based ET0 Models

Description

Functions implementing 10 mass transfer-based empirical models for reference evapotranspiration (ET0) estimation. These models are based on the vapor pressure deficit and wind speed.


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)

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)