Actual Evapotranspiration with Energy Balance Models

Tools and functions to calculate actual Evapotranspiration using surface energy balance models.

Repository for the development version of water package.

water package is available at CRAN network

You can install development version with:


Title: Actual Evapotranspiration with Surface Energy Balance models

Author: Guillermo Federico Olmedo, Samuel Ortega-Farías, David Fonseca-Luengo, Daniel de la Fuente-Saiz and Fernando Fuentes-Peñailillo

Maintainer: Guillermo Federico Olmedo [email protected]

Description: Tools and functions to calculate actual evapotranspiration using surface energy balance models. Depends: R (>= 3.2.1), raster (>= 2.1), sp (>= 1.1-1), proj4, stringr

License: GPL (>= 2)


Contributions are accepted by fork and pull-request


water: change log. From 09/09/2015. Most recent changes first / on top. Guillermo OLMEDO


  • New S3 class for the results of METRIC.EB(). The new class includes the RasterStack with the LSEB results, the weather station data used, and the parameters and methods selected in METRIC.EB().
  • When using METRIC.EB(), calcAnchors always uses method="short.crops" not matter the method selected for Zom.method.
  • water can handle filenames for Landsat images using the pre-collection or the collection 1 sets.
  • New method for calcAnchors: "flexible". This method is based in the "best" method, but, will relax the requesites for the anchors when there is no pixel with those conditions. "flexible" is the default method now.
  • in LAI() the method "vineyard" used the toa reflectancy image. This was corrected and now uses the radiance image
  • Added a function to estimate radiance from a digital counts image and a metadata file: calcRadiance().
  • Several minor bugs fixed.


  • Added a workaround for read.WSdata() when there is not rain data
  • Fixed a bug in momentumRoughness() when using the Perrier equation
  • Added extraParameters to METRIC.EB. This allows to pass more parameters to the internal functions and apply different methods. i.e. extra parameters for different Zom.methods.


  • Added a new function loadImageSR to load surface reflectance from Landsat 8 from ESPA files
  • calcSR only works for L7
  • calcTOAr() now estimates TOA reflectance for Landsat 8
  • surfaceTemperature() uses the scene in DN and estimates the brightness temperature for Landsat 7 or 8. Argument thermalband is deprecated.
  • Added a new example of weather station for the new Landsat 8 example
  • Added a Landsa 8 scene as example dataset in raw format complete with the surface reflectance estimated by ESPA
  • Added a new vignette describing how to use Landsat 8 data in water package


  • Fixed checkSRTMgrids for positives values of lat/long.
  • Small improvement in waterWeatherStation plot. Now the time axis is always complete.
  • Added daily summary for WeatherStation objects
  • Fixed minor bug in vignette


  • Added maxit parameter to calcH to control the maximun number of iterations.
  • Added an optional constrain to the selection of anchors pixels using the location of the weather station and a 30km buffer.
  • Changed default value for in calcH. (From 0.0018 to 0.03)
  • Added a new parameter to calcAnchors, available for both methods: buffer. buffer allow to set the minimun distance between two anchor pixels of the same kind
  • Added a new method for calcAnchors = "CITRA-MCBbc". This method chooses the coldest and hottest anchors pixels availables. Previous method ("CITRA-MCBr") chooses random pixel who meets the conditions. CITRA-MCBbc is now the default method for calcAnchors
  • General remote sensing functions moved to a separate file
  • loadImage detects when there is more than 1 image on the working folder
  • Rn, G, H, LE are restricted to values > 0
  • Improvements to anchors pixels selection: more releaxed hot temperature criterium, distance, mean of many pixels, etc
  • Added two methods for land surface estimation: single channel and split windows. Split windows only works for Landsat 8.
  • loadImage now loads thermal data also: low gain for L7 and both bands for L8
  • Fixed big bug when estimating ETo with a large weather station file


  • Solved errors when using non ASCII characters
  • Fixes some bug who prevent using water with L8 data
  • More flexibility on band names and changes to reflect the changes on USGS's ESPA file naming
  • Improvement to plot.waterWeatherStation to plot only data from the sattelite overpass when the object was created using a MTL file.


  • First release to CRAN!


  • Added dailyET function to calc and sum hourly ET for a complete day
  • Added new parameter to hourlyET and dailyET to choose between ETo or ETr
  • read.WSdata doesn't require a Landsat metadata anymore. Now you can process weatherstation data without a landsat flyby. print method changed to reflect this
  • function METRIC.EB now accepts many parameters for method of the included functions. For example, you can set with method you choose for LAI estimation
  • We're approaching CRAN launch date. Changed version numbering to reflect this. First CRAN version will be 0.3


  • Added function to prepare data from Weather Station and calc weather conditions at satellite flyby.
  • Added function to calculate Surface Energy Balance using METRIC


  • Rename sensibleHeatFlux() to sensibleHeatFlux_old()
  • Remove sensibleHeatFlux.CITRA()
  • Split sensibleHeatFlux in 2 new functions:
    • calcAnchors() for anchors points
    • calcH() for the iterative process to calculate H and dT
  • Added function to estimate Net Radiation

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.


0.7 by Guillermo Federico Olmedo, 5 months ago

Report a bug at

Browse source code at

Authors: Guillermo Federico Olmedo [aut, cre], Samuel Ortega-Farías [aut], David Fonseca-Luengo [aut], Daniel de la Fuente-Sáiz [aut], Fernando Fuentes Peñailillo [aut], María Victoria Munafó [ctb]

Documentation:   PDF Manual  

GPL (>= 2) license

Depends on raster, sp, rgdal

Suggests knitr, rmarkdown

See at CRAN