Two functions to generate daily profile properties then apply these to a time series

daily_evap_profile(eMin = 0, eMax = 3, max_day = 183)

evap_est(ts, daily_profile, daily_data = NULL, pet_name = "pet")

Arguments

eMin

Minimum daily PE total (m or mm)

eMax

Maximum daily PE total (m or mm)

max_day

Year day of maximum PET

ts

as vector of POSIXct data/times

daily_profile

data.frame containing annual profile properties for PET calculation

daily_data

data frame containing daily PET values for disaggregation

pet_name

column of daily_data containing the PET values

Value

daily_evap_profile returns a data.frame of year day, dawn (s since start of day), day length (s) and PET (units as eMin/eMax). evap_est a data.frame with columns dateTime containing the time stamps of the data and pet containing the PET values.

Details

Dynamic TOPMODEL requires a time series of potential evapotranspiration in order to calculate and remove actual evapotranspiration from the root zone during a run. Many sophisticated physical models have been developed for estimating potential and actual evapotranspiration, including the Priestly-Taylor (Priestley and Taylor, 1972) and Penman-Monteith (Montieth, 1965) methods. These, however, require detailed meteorological data such as radiation input and relative humidities that are, in general, difficult to obtain. Calder (1983) demonstrated that a simple approximation using a sinusoidal variation in potential evapotranspiration to be a good approximation to more complex schemes.

If the insolation is also taken to vary sinusoidally through the daylight hours then, ignoring diurnal meteorological variations, the potential evapotranspiration during daylight hours for each year day number can be calculated (for the catchment's latitude). Integration over the daylight hours allows the daily maximum to be calculated and thus a sub-daily series generated.

The daily_evap_profile function computes a profile properties based on a simple sinusoid giving year day values for PET, dawn and day length. The evap_est function takes a time series of steps and computes the aggregated PET over each time step baed on the profile and optionally daily PET values.

All inputs times are handled as though they are UTC!

References

Beven, K. J. (2012). Rainfall-runoff modelling : the primer. Chichester, UK, Wiley-Blackwell.

Calder, I. R., Harding, R. J. and Rosier, P. T. W. (1983) An objective assessment of soil-moisture deficit models. Journal of Hydrology, 60(1-4) 329-355

Examples

## Generating daily and hourly PET data for 1970
## the values of eMin and eMax may not by not be realistic
st_day <- as.POSIXct("1970-01-02 00:00:00",tz='GMT')
st_hour <- as.POSIXct("1970-01-01 01:00:00",tz='GMT')
fn <- as.POSIXct("1971-01-01 00:00:00",tz='GMT')

daily_prof <- daily_evap_profile(0,1)
daily_ts <- seq(st_day,fn,by=24*60*60)
daily_pet <- evap_est(daily_ts,daily_prof)

hourly_ts <- seq(st_hour,fn,by=1*60*60)
hourly_pet <- evap_est(hourly_ts,daily_prof)

## the totals should be the same...
stopifnot(all.equal(sum(hourly_pet$pet), sum(daily_pet$pet)))