sebal | R Documentation |
This R function computes Bastiaanssen (1998) surface energy balance components of evapotranspiration (ET), Sensible heat(H), soil heat flux(G) and Net Radiation(Rn).
sebal(albedo, Ts, NDVI, SAVI, welev, xyhot = "auto", xycold = "auto",
DOY = NULL, sunelev, zx = 10, u = 2, zomw = 2, zom = NULL,
LAI = NULL, DEM = NULL, lapse = 0.0065, Rn24 = NULL, ETr = NULL,
ETr24 = NULL, wmo = NULL, airport = NULL, Krs = 0.16,
surface = "grass", latitude = NULL, t1 = 1, time = NULL, Lz = NULL,
Lm = NULL, model = "SEBAL", iter.max = 7, clip = NULL,
folder = NULL)
## Default S3 method:
sebal(albedo = NULL, Ts = NULL, NDVI = NULL,
SAVI = NULL, welev, xyhot = "auto", xycold = "auto", DOY = NULL,
sunelev = NULL, zx = 10, u = 2, zomw = 2, zom = NULL, LAI = NULL,
DEM = NULL, lapse = 0.0065, Rn24 = NULL, ETr = NULL, ETr24 = NULL,
wmo = NULL, airport = NULL, Krs = 0.16, surface = "grass",
latitude = NULL, t1 = 1, time = NULL, Lz = NULL, Lm = NULL,
model = "SEBAL", iter.max = 7, clip = NULL, folder = NULL)
albedo |
A RasterLayer data that has albedo values. You can also provide file path or location on your computer |
Ts |
A RasterLayer data that indicates radiometric surface temperature values from remote sensing image, preferably in Kelvin (K). You can also point to raster file on your computer. |
NDVI |
A RasterLayer data that indicates NDVI (Normalized Difference Vegetation Index) values. You can also point to a file on your computer. |
SAVI |
A RasterLayer data that indicates SAVI(Soil-adjusted Vegetation Index) values. You can also point to file on your computer. |
welev |
Weather station elevation in meters |
xyhot |
numeric or "auto". A list of x and y coordinates of a
hot pixel in the form c(x,y). If it is set to "auto", |
xycold |
numeric or "auto". A list of x and y coordinates of a
cold pixel in the form of c(x,y). If it set to "auto", |
DOY |
Numeric or Date [YYYY-mm-dd]. Day of the Year. If you give data in the form of date [YYYY-mm-dd], it will be converted to DOY |
sunelev |
Angle of Sun elevation in degrees, as found in the meta data of the satellite image |
zx |
The height above the weather station where the wind speed is measured [m] |
u |
The satellites overpass time wind speed at the weather station [m/s] |
zomw |
the roughness length for the weather station surface [m] |
zom |
the momentum roughness length for each pixel [m]. You can also point to a raster file on your computer |
LAI |
Leaf Area Index, dimensionless |
DEM |
A digital elevation model[m] |
lapse |
A local lapse rate that is applied to correct DEM [K/m]. Default value is 0.0065 |
Rn24 |
A 24 hour net radiation [W/m2]. It is needed to estimate daily ET.
It can be computed with |
ETr |
an alfalfa or grass reference ET at the time of satellites overpass. It only needed if you set model to "metric" [mm/hr] |
ETr24 |
daily grass or alfalfa reference Evapotranspiration (mm/day) |
wmo |
numeric. World Meteorological Organization weather station code. You can use the Worldwide Station List at https://www.wunderground.com/about/faq/international_cities.asp [Accessed on 2016-5-6] or http://www.wetterzentrale.de/klima/stnlst.html [Accessed on 2016-5-6] |
airport |
numeric. IATA or ICAO code. They are alphabetically listed at https://en.wikipedia.org/wiki/List_of_airports_by_IATA_code:_A [Accessed on 2016-5-6] |
Krs |
Relationship between the fraction of extraterrestrial radiation that reaches the earth's surface, Rs/Ra, and the air temperature difference Tmax - Tmin for interior (Krs = 0.16) and coastal (Krs = 0.19) regions |
surface |
character. It is either "grass" or "alfalfa" |
latitude |
geographical coordinates in decimal degrees. It should be negative for southern hemisphere |
t1 |
numeric. The length of the calculation period in hour; 1 for hour, 0.5 for 30 minutes 0.25 for 15 minutes |
time |
The midpoint of the time of measurement[hour]; for example time is 12.5 for a period between 12:00 and 13:00 |
Lz |
longitude of the centre of the local time zone [degrees west of Greenwich]. MUST BE POSITIVE Lz = 0° for Greenwich. |
Lm |
longitude of the measurement site [degrees west of Greenwich]. MUST BE POSITIVE |
model |
character. The type of model. It takes either "SEBAL" or "METRIC" |
iter.max |
maximum iterations of sensible heat calculation. |
clip |
extent object or raster object or polygon from which an Extent object can be extracted. A polygon or raster will be reprojected to conform the data to be cropped. for example clip can take the form of c(xmin, xmax, ymin, ymax) |
folder |
An original directory of the images that contains all landsat 5,7 or 8 bands and metadata. At the moment only Landsat folder is supported |
sebal
can compute either SEBAL(Bastiaanssen et al,1998)
or METRIC (Allen et al 2007). In the case of METRIC, input data such as DEM,
local lapse rate, and ETr must be provided. See Allen et al (2007) for more
details.
Though this sebkc
function is not sensor dependent, one can point the
folder parameter to a Landsat TM(5), ETM(7) or 8 folder that contains
landsat bands and metadata. One can also point the folder parameter
to object of landsat578
When xycold and xyhot are set to "auto", about 80 per cent of the input image pixels are used to compute cold and hot pixels. This avoids using NAs in classification of pixels.
If you point the folder to landsat files and
set xycold and xyhot to "auto", it will take about 2 hours for
the function to run. Without these "autos", it will take about 45
minutes. It is advisable to perform 3 step analyses of using three
functions as follows: sebkcstack
, landsat578
,
hotTs
, coldTs
. You need not to go through this if you have your
albedo, Ts, NDVI, SAVI from MODIS, ASTER etc
LE: latent heat flux [W/m2]
Rn: Net Radiation [W/m2]
H: Sensible Heat Flux [W/m2]
G: Soil heat flux [W/m2]
ETins: instantaneous ET if model = "METRIC" [mm/hr]
ET24: 24 hour Evapotranspiration only if Rn24 is not NULL [mm/day]
ETrF: METRIC ET fraction [dimensionless]
EF: ET fraction [dimensionless]
Ta: Air temperature = Ts-dT [K]
iter.coef: Parameters from sensible heat iteration
George Owusu
Bastiaanssen, W. G. M., Menenti, M., Feddes, R. A., & Holtslag, A. A. M. 1998. A remote sensing surface energy balance algorithm for land (SEBAL), part 1: formulation. Journal of Hydrology: 212-213: 198-212.
Bastiaanssen, W. G. M., Pelgrum, H., Wang, J., Ma, Y., Moreno, J. F., Roerink, G. J., & van der Wal, T. 1998. A remote sensing surface energy balance algorithm for land (SEBAL).: Part 2: Validation. Journal of Hydrology, 212-213(0): 213-229.
Allen, R., Tasumi, M., & Trezza, R. 2007. Satellite-Based Energy Balance for Mapping Evapotranspiration with Internalized Calibration (METRIC)-Model. Journal of Irrigation and Drainage Engineering, 133(4): 380-394.
Allen, R., Tasumi, M., Morse, A., Trezza, R., Wright, J., Bastiaanssen, W., Kramber, W., Lorite, I., & Robison, C. 2007. Satellite-Based Energy Balance for Mapping Evapotranspiration with Internalized Calibration (METRIC)-Applications. Journal of Irrigation and Drainage Engineering, 133(4): 395-406.
## Not run:
#use original landsat 8 data by specifying folder path
folder=system.file("extdata","stack",package="sebkc")
modauto=sebal(folder = folder,welev = 380,xycold="full",xyhot="full")
#plot ET fraction
plot(modauto$EF)
#Semi-auto
#load individual input files, for example from MODIS, ASTER etc
albedo=raster(system.file("extdata","albedo.grd",package="sebkc"))
Ts=raster(system.file("extdata","Ts.grd",package="sebkc"))
NDVI=raster(system.file("extdata","NDVI.grd",package="sebkc"))
LAI=raster(system.file("extdata","LAI.grd",package="sebkc"))
mod=sebal(albedo=albedo,Ts=Ts,NDVI=NDVI,SAVI=NULL,
iter.max=7,xyhot="full",xycold="full",
DOY=37,sunelev=50.71154048,welev=317.1,zx=10,
u=2,zomw=3,zom=NULL,LAI=LAI,DEM=NULL,
lapse=0.0065,Rn24=NULL,ETr=NULL,model="SEBAL")
#get latent heat flux
mod$LE
#evaporation fraction
mod$EF
#3 step simulation using landsat 7 with SLC OFF
##step one: prepare the input data
### point to landsat 7 data with strips
folder=system.file("extdata","slc",package="sebkc")
#####get the data stacked and remove strips
rawdata=sebkcstack(folder,remove_cloud = 2,gap_fill = TRUE)
###### check if strips are removed
plot(rawdata$data)
#get Ts, Albedo, NDVI, SAVI, sunelev, DOY from landsat data
welev=278
data=landsat578(rawdata,welev=welev)
#perform semi-auto simulation mod=sebal(data,welev=welev)
# Determine xyhot. Digitize polygon on the Ts map
modhot=hotTs(data,welev=welev,extent="digitize",cluster=2)
#determine the cold. Digitize polygon on the Ts map
modcold=coldTs(data,welev=welev,extent="digitize",cluster=2)
xyhot=modhot$xyhot
xycold=modcold$xycold
modsebal=sebal(folder=data,xyhot=xyhot,xycold=xycold,welev=welev)
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.