landlab

PotentialEvapotranspiration: Compute potential evapotranspiration

class PotentialEvapotranspiration(self, grid, method='Cosine', priestley_taylor_const=1.26, albedo=0.6, latent_heat_of_vaporization=28.34, psychometric_const=0.066, stefan_boltzmann_const=5.67e-08, solar_const=1366.67, latitude=34.0, elevation_of_measurement=300, adjustment_coeff=0.18, lt=0.0, nd=365.0, MeanTmaxF=12.0, delta_d=5.0, **kwds)[source]

Bases: landlab.core.model_component.Component

Potential Evapotranspiration Component calculates spatially distributed potential evapotranspiration based on input radiation factor (spatial distribution of incoming radiation) using chosen method such as constant or Priestley Taylor. Ref: Xiaochi et. al. 2013 for ‘Cosine’ method and ASCE-EWRI Task Committee Report Jan 2005 for ‘PriestleyTaylor’ method. Note: Calling ‘PriestleyTaylor’ method would generate/overwrite shortwave & longwave radiation fields.

Code author: Sai Nudurupati and Erkan Istanbulluoglu

Examples

>>> from landlab import RasterModelGrid
>>> from landlab.components.pet import PotentialEvapotranspiration
>>> grid = RasterModelGrid((5, 4), xy_spacing=(0.2, 0.2))
>>> PET = PotentialEvapotranspiration(grid)
>>> PET.name
'Potential Evapotranspiration'
>>> PET.input_var_names
('radiation__ratio_to_flat_surface',)
>>> sorted(PET.output_var_names)
['radiation__incoming_shortwave_flux',
 'radiation__net_flux',
 'radiation__net_longwave_flux',
 'radiation__net_shortwave_flux',
 'surface__potential_evapotranspiration_rate']
>>> sorted(PET.units) 
[('radiation__incoming_shortwave_flux', 'W/m^2'),
 ('radiation__net_flux', 'W/m^2'),
 ('radiation__net_longwave_flux', 'W/m^2'),
 ('radiation__net_shortwave_flux', 'W/m^2'),
 ('radiation__ratio_to_flat_surface', 'None'),
 ('surface__potential_evapotranspiration_rate', 'mm')]
>>> PET.grid.number_of_cell_rows
3
>>> PET.grid.number_of_cell_columns
2
>>> PET.grid is grid
True
>>> pet_rate = grid.at_cell['surface__potential_evapotranspiration_rate']
>>> np.allclose(pet_rate, 0.)
True
>>> grid['cell']['radiation__ratio_to_flat_surface'] = np.array([
...       0.38488566, 0.38488566,
...       0.33309785, 0.33309785,
...       0.37381705, 0.37381705])
>>> current_time = 0.5
>>> PET.update(current_time)
>>> np.allclose(pet_rate, 0.)
False
Parameters
  • grid (RasterModelGrid) – A grid.

  • method ({'Constant', 'PriestleyTaylor', 'MeasuredRadiationPT', 'Cosine'}, optional) – Priestley Taylor method will spit out radiation outputs too.

  • priestley_taylor_constant (float, optional) – Alpha used in Priestley Taylor method.

  • albedo (float, optional) – Albedo.

  • latent_heat_of_vaporization (float, optional) – Latent heat of vaporization for water Pwhv (Wd/(m*mm^2)).

  • psychometric_const (float, optional) – Psychometric constant (kPa (deg C)^-1).

  • stefan_boltzmann_const (float, optional) – Stefan Boltzmann’s constant (W/(m^2K^-4)).

  • solar_const (float, optional) – Solar constant (W/m^2).

  • latitude (float, optional) – Latitude (radians).

  • elevation_of_measurement (float, optional) – Elevation at which measurement was taken (m).

  • adjustment_coeff (float, optional) – adjustment coeff to predict Rs from air temperature (deg C)^-0.5.

  • lt (float, optional) – lag between peak TmaxF and solar forcing (days).

  • nd (float, optional) – Number of days in year (days).

  • MeanTmaxF (float, optional) – Mean annual rate of TmaxF (mm/d).

  • delta_d (float, optional) – Calibrated difference between max & min daily TmaxF (mm/d).

update(current_time=None, const_potential_evapotranspiration=12.0, Tmin=0.0, Tmax=1.0, Tavg=0.5, obs_radiation=350.0, **kwds)[source]

Update fields with current conditions.

Parameters
  • current_time (float, required only for 'Cosine' method) – Current time (Years)

  • constant_potential_evapotranspiration (float, optional for) – ‘Constant’ method Constant PET value to be spatially distributed.

  • Tmin (float, required for 'Priestley Taylor' method) – Minimum temperature of the day (deg C)

  • Tmax (float, required for 'Priestley Taylor' method) – Maximum temperature of the day (deg C)

  • Tavg (float, required for 'Priestley Taylor' and 'MeasuredRadiationPT') – methods Average temperature of the day (deg C)

  • float, required for 'MeasuredRadiationPT' method (obs_radiation) – Observed radiation (W/m^2)