NAME

Meteorology::PET::Thornthwaite - Calculate potential evapotranspiration (PET) using the Thornthwaite Method

SYNOPSIS

use Meteorology::PET::Thornthwaite;

my $pet_calc = Meteorology::PET::Thornthwaite->new({
    LATITUDE          => $lat,
    TEMPERATURE_CLIMO => \@temperature_climo,
    TEMPERATURE_UNITS => 'F',
    PET_UNITS         => 'mm',
});

my $pet = $pet_calc->pet({
    YDAY              => 180,
    NDAYS             => 31,
    TEMPERATURE       => $temperature,
    TEMPERATURE_UNITS => 'C',
});

DESCRIPTION

The Meteorology::PET::Thornthwaite module provides an object-oriented interface with a dedicated method to calculate potential evapotranspiration (PET) using equations developed by Charles Warren Thornthwaite and published in Geographical Review in 1948. Relying on temperature data and daylight hours as a function of latitude and the time of year, the Thornthwaite method is straightforward to implement, and has been utilized in many weather and climate applications, such as the two-layer soil water balance model used in the Palmer Drought Index (Palmer 1965), and the one-layer "Leaky Bucket" soil moisture model (e.g., Huang et al. 1996) used for seasonal temperature forecasts.

In addition to a location's temperature observations, the time of year, and its latitude, the Thornthwaite Equation also requires a monthly temperature climatology for the location, used to compute a term called the Temperature Efficiency Index (TEI). To allow for faster processing, therefore, information about the location(s) to be used, such as the monthly temperature climatology and latitude, are supplied at the time of object construction (new), allowing the TEI to be pre-computed.

The module is designed to work with two data input types:

  • Scalar values for a single location

  • PDL ndarray objects for multiple locations

The module automatically detects which input type the caller is using by analyzing the latitude and temperature climatology arguments passed to the constructor. All PDL arguments must have the exact same spatial dimensions. The PDL module is not required to be installed on your system if you are only using the scalar argument mode.

All input and output data units must be specified. The module has a limited ability to convert between units: Kelvin/ Celsius/Fahrenheit (K, C, F) for temperatures, and millimeters/inches (mm/in) for PET.

METHODS

new

my $pet_calc = Meteorology::PET::Thornthwaite->new({
    LATITUDE          => $lat,
    TEMPERATURE_CLIMO => \@temperature_climo,
    TEMPERATURE_UNITS => 'F',
    PET_UNITS         => 'mm',
});

Returns a Meteorology::PET::Thornthwaite object to the calling program, defining the location(s) to be used in PET calculations by latitude and 12-month temperature climatology. The constructor accepts a hash ref argument with four required parameters:

  • LATITUDE - location latitude(s) ranging from -90 to 90. Can be a numeric scalar value for a single location, or a PDL ndarray object for multiple locations.

  • TEMPERATURE_CLIMO - an array ref containing 12 monthly temperature climatological values for the location(s). The array elements can be numeric scalars for a single location, or PDL ndarray objects for multiple locations. The dimensions of each PDL object must match those of LATITUDE exactly.

  • TEMPERATURE_UNITS - The units of the TEMPERATURE_CLIMO values. Can be C (Celsius), K (Kelvin), or F (Fahrenheit).

  • PET_UNITS - The units of the PET values that this object will return via calls to the pet method. Can be mm (millimeters) or in (inches).

pet

my $pet = $pet_calc->pet({
    YDAY              => 180,
    NDAYS             => 31,
    TEMPERATURE       => $temperature,
    TEMPERATURE_UNITS => 'C',
});

Returns a scalar PET value to the calling program in scalar mode, or a PDL object containing PET values in PDL mode for the locations defined in the constructor. Accepts a hash ref argument with four required parameters:

  • YDAY - the day of the year of the midpoint of the time period to calculate PET, ranging from 1 (Jan 1) to 366 (Dec 31 of a leap year).

  • NDAYS - the number of days in the time period for which to calculate PET. The original Thornthwaite formulation assumed monthly time scales, but the equation can be scaled for daily, weekly, bi-weekly, or other periods.

  • TEMPERATURE - the mean temperature observed at the location(s) during the time period defined by YDAY and NDAYS. Can be a numeric scalar value or a PDL object with dimensions matching the objects passed to the constructor.

  • TEMPERATURE_UNITS - The units of the TEMPERATURE value(s). Can be C (Celsius), K (Kelvin), or F (Fahrenheit).

SEE ALSO

REFERENCES

  • Thornthwaite, C. W., 1948: An approach toward a rational classification of climate. Geographical Review, 38, 55-94.

  • Palmer, Wayne C., 1965: Meteorological Drought. U.S. Weather Bureau, Research Paper No. 45.

  • Huang, J., H. M. van den Dool, and K. E. Georgakakos, 1996: Analysis of model-calculated soil moisture over the United States (1931-1993) and applications to long-range temperature forecasts. J. Climate, 9, 1350-1362.

AUTHOR

Adam Allgood, NOAA/NWS/NCEP/Weather Prediction Center

LICENSE

As a work of the United States Government, this project is in the public domain within the United States.

Additionally, we waive copyright and related rights in the work worldwide through the CC0 1.0 Universal public domain dedication.

CC0 1.0 Universal Summary

This is a human-readable summary of the Legal Code (read the full text).

The person who associated a work with this deed has dedicated the work to the public domain by waiving all of his or her rights to the work worldwide under copyright law, including all related and neighboring rights, to the extent allowed by law.

You can copy, modify, distribute and perform the work, even for commercial purposes, all without asking permission.

Other Information

In no way are the patent or trademark rights of any person affected by CC0, nor are the rights that other persons may have in the work or in how the work is used, such as publicity or privacy rights.

Unless expressly stated otherwise, the person who associated a work with this deed makes no warranties about the work, and disclaims liability for all uses of the work, to the fullest extent permitted by applicable law. When using or citing the work, you should not imply endorsement by the author or the affirmer.