Skip to main content

Google Earth Engine ASCE Standardized Reference Evapotranspiration Functions

Project description

Latest version on PyPI Build status

Google Earth Engine (GEE) functions for computing daily and hourly reference ET.

Usage

Daily

The following demonstrates how to compute a single daily ETr value using weather data for 2015-07-01 from the Fallon, NV AgriMet station. The necessary unit conversions are shown on the input values. The raw input data is available here.

import math
import ee
import geerefet

# Unit conversions
tmin_c = (66.65 - 32) * (5.0 / 9)                          # F -> C
tmax_c = (102.80 - 32) * (5.0 / 9)                         # F -> C
tdew_c = (57.26 - 32) * (5.0 / 9)                          # F -> C
ea = 0.6108 * math.exp(17.27 * tdew_c / (tdew_c + 237.3))  # kPa
rs = (674.07 * 0.041868)                                   # Langleys -> MJ m-2 d-1
uz = 4.80 * 0.44704                                        # mpg -> m s-1
lat_radians = (39.4575 * math.pi / 180)                    # degrees -> radians

etr = geerefet.Daily(
    tmin=tmin_c, tmax=tmax_c, ea=ea, rs=rs, uz=uz, zw=3, elev=1208.5,
    lat=lat_radians, doy=182).etr().getInfo()

print('ETr: {:.2f} mm'.format(float(etr)))

Hourly

The following demonstrates how to compute a single hourly ETr value using weather data for 18:00 UTC (11:00 AM PDT) on 2015-07-01 from the Fallon, NV AgriMet station. The necessary unit conversions are shown on the input values. The raw input data is available here

import math
import ee
import geerefet

# Unit conversions
tmean_c = (91.80 - 32) * (5.0 / 9)           # F -> C
ea = 1.20                                    # kPa
rs = (61.16 * 0.041868)                      # Langleys -> MJ m-2 h-1
uz = 3.33 * 0.44704                          # mph -> m s-1
lat_radians = (39.4575 * math.pi / 180)      # degrees -> radians
lon_radians = (-118.77388 * math.pi / 180)   # degrees -> radians

etr = geerefet.Hourly(
    tmean=tmean_c, ea=ea, rs=rs, uz=uz, zw=3, elev=1208.5,
    lat=lat_radians, lon=lon_radians, doy=182, time=18).etr().getInfo()

print('ETr: {:.2f} mm'.format(float(etr)))

GRIDMET

A helper function for computing daily ETo and ETr for GRIDMET images is available.

import ee
import geerefet

gridmet_img = ee.Image(ee.ImageCollection('IDAHO_EPSCOR/GRIDMET').first())
etr = geerefet.Daily.gridmet(gridmet_img).etr().getInfo()

print('ETr: {:.2f} mm'.format(float(etr)))

Input Parameters

Required Parameters (hourly & daily)

Variable Type Description [units]
ea ee.Image, ee.Number Actual vapor pressure [kPa]
rs ee.Image, ee.Number Incoming shortwave solar radiation [MJ m-2 day-1]
uz ee.Image, ee.Number Wind speed [m/s]
zw ee.Number Wind speed height [m]
elev ee.Image, ee.Number Elevation [m]
lat ee.Image, ee.Number Latitude [radians]
doy ee.Image, ee.Number Day of year

Required Daily Parameters

Variable Type Description [units]
tmin ee.Image, ee.Number Minimum daily temperature [C]
tmax ee.Image, ee.Number Maximum daily temperature [C]

Required Hourly Parameters

Variable Type Description [units]
tmean ee.Image, ee.Number Average hourly temperature [C]
lon ee.Image, ee.Number Longitude [degrees]
time ee.Image, ee.Number UTC hour at start of time period

Optional Parameters

Variable Type Description [units]
method str
Calculation method
  • ‘asce’ – Calculations will follow ASCE-EWRI 2005 (default)
  • ‘refet’ – Calculations will follow RefET software
rso_type str
Clear sky solar radiation (Rso) model
  • ‘full’ – Full clear sky solar formulation (default)
  • ‘simple’ – Simplified clear sky solar formulation (Eq. 19)
  • ‘array’ – Read Rso values from “rso” function parameter
rso ee.Image, ee.Number
Clear sky solar radiation [MJ m-2 day-1]
  • Only needed if rso_type is ‘array’
  • Defaults to None if not set

ASCE vs. RefET

TODO Discuss differences between “asce” and “refet” methods.

Issues

Currently the user must handle all of the file I/O and unit conversions.

The latitude/longitude units are in degrees, not radians (this is different than the python RefET modules).

Cloudiness Fraction (hourly)

The hourly reference ET calculation is currently performed independently for each time step. The cloudiness fraction (fcd) for very low sun angles (i.e. at night) is hard coded to 1 for very low sun angles instead of being derived from the .

Installation

To install the RefET-GEE python module:

pip install geerefet

Validation

Please see the validation document for additional details on the source of the test values and the comparison of the functions to the Ref-ET software.

Dependencies

Modules needed to run the test suite:

References

ASCE-EWRI Standardized Reference Evapotranspiration Equation (2005)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for geerefet, version 0.1.5
Filename, size File type Python version Upload date Hashes
Filename, size geerefet-0.1.5.tar.gz (24.5 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page