Skip to main content

OpenET - PT-JPL

Latest version on PyPI Build status

WARNING: This code is in development, is being provided without support, and is subject to change at any time without notification

This repository provides an Earth Engine Python API based implementation of the PT-JPL model for computing evapotranspiration (ET).

Through ecophysiological constraint functions, PT-JPL retrieves actual ET by reducing potential ET starting with the Priestley-Taylor equation (PriestleyTaylor1972). A series of ecophysiological scalar functions, based on atmospheric vapor pressure deficit, relative humidity, and vegetation indices simultaneously reduce potential ET to actual ET, and partition total ET into three sources for canopy transpiration, soil evaporation, and interception evaporation (Fisher2008). PT-JPL is run globally and continuously in space and time with no need for calibration or site-specific parameters.

Model Design

The primary component of the PT-JPL model is the Image() class. The Image class can be used to compute a single ET image from a single input image. The Image class should generally be instantiated from an Earth Engine Landsat image using the collection specific methods listed below. ET image collections can be built by computing ET in a function that is mapped over a collection of input images. Please see the Example Notebooks for more details.

Input Collections

PT-JPL can currently be computed for Landsat Collection 2 Level 2 (SR/ST) images images from the following Earth Engine image collections:

  • LANDSAT/LT05/C02/T1_L2

  • LANDSAT/LE07/C02/T1_L2

  • LANDSAT/LC08/C02/T1_L2

  • LANDSAT/LC09/C02/T1_L2

Landsat Collection 2 SR/ST Input Image

To instantiate the class for a Landsat Collection 2 SR/ST image, use the Image.from_landsat_c2_sr method.

The input Landsat image must have the following bands and properties:

SPACECRAFT_ID

Band Names

LANDSAT_5

SR_B1, SR_B2, SR_B3, SR_B4, SR_B5, SR_B7, ST_B6, QA_PIXEL

LANDSAT_7

SR_B1, SR_B2, SR_B3, SR_B4, SR_B5, SR_B7, ST_B6, QA_PIXEL

LANDSAT_8

SR_B1, SR_B2, SR_B3, SR_B4, SR_B5, SR_B6, SR_B7, ST_B10, QA_PIXEL

LANDSAT_9

SR_B1, SR_B2, SR_B3, SR_B4, SR_B5, SR_B6, SR_B7, ST_B10, QA_PIXEL

Property

Description

system:index

  • Landsat Scene ID

  • Must be in the Earth Engine format (e.g. LC08_044033_20170716)

  • Used to lookup the scene specific c-factor

system:time_start

Image datetime in milliseconds since 1970

SPACECRAFT_ID

  • Used to determine which Landsat type

  • Must be: LANDSAT_5, LANDSAT_7, LANDSAT_8, or LANDSAT_9

Model Output

The primary output of the PT-JPL model is the actual ET (ETa) in millimeters.

Example

import openet.ptjpl as ptjpl

landsat_img = ee.Image('LANDSAT/LC08/C02/T1_L2/LC08_044033_20170716')
et_actual = ptjpl.Image.from_landsat_c2_sr(landsat_img).et

Example Notebooks

Meteorology

The GEE NLDAS hourly image collection is the default meteorology source for the hourly air temperature, vapor pressure, windspeed, and incoming short and longwave solar radiation.

Ancillary Datasets

Optimal temperature (Topt)

Maximum fraction of absorbed photosynthetically active radiation (fAPARmax)

Installation

The OpenET PT-JPL python module can be installed via pip:

pip install openet-ptjpl

Dependencies

OpenET Namespace Package

Each OpenET model is stored in the “openet” folder (namespace). The model can then be imported as a “dot” submodule of the main openet module.

import openet.ptjpl as model

Development and Testing

Please see the CONTRIBUTING.rst.

References

[Fisher2008]
Fisher, J., K. Tu, and D. Baldocchi (2008). Global estimates of the land-atmosphere water flux based on monthly AVHRR and ISLSCP-II data, validated at 16 FLUXNET sites, Remote Sensing of Environment, 112(3), 901-919.
[PriestleyTaylor1972]
Priestley, C. and R. Taylor (1972). On the assessment of surface heat flux and evaporation using large scale parameters. Monthly Weather Review, 100, 81–92.

Metadata

Release files for openet-ptjpl 0.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for openet-ptjpl 0.5.0
File Size Uploaded
openet_ptjpl-0.5.0.tar.gz 65.1 kB Details

Release files / openet_ptjpl-0.5.0.tar.gz

Download URL openet_ptjpl-0.5.0.tar.gz
Size 65.1 kB
Tags Source
SHA-256 checksum
How to use checksums
86b517d1f4554fb6d914042dbecbe89729ba7f062828babb9a03e15dc7f1290b
BLAKE2b-256 checksum
How to use checksums
b551b5ab714de7dcad191d3662306531b3e290a43d9d1a4f56d63874a2f78345
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.15

Release history Release notifications | RSS feed

This release

0.5.0 This release

1 release file

0.4.1

1 release file

0.4.0

1 release file

0.3.1

1 release file

0.3.0

1 release file

0.2.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page