API Reference

This page documents objects and methods provided by AeroEvap.

Aero

class aeroevap.Aero(df=None)[source]

Bases: object

Manages meterological time series input/output for aerodynamic mass-transfer evaporation calculation and contains methods for batch and single calculations.

An Aero object allows the aerodynamic mass-transfer evaporation estimation to be calculated from meterological data that is stored in a pandas.DataFrame with a date or datetime-like index. The Aero.df can be assigned on initialization or later, it can also be reassigned at anytime.

The Aero.single_calc static method calculates evaporation for a single measurement set and can be used without creating an Aero object, e.g. in another module. For calculating evaporation for a time series of input meterological data use the Aero.run method which uses multiple processors (if they are available).

property df

pandas.DataFrame containing input time series meterological data and calculated variables after running Aero.run.

run(sensor_height, timestep, variable_names=None, nproc=None)[source]

Run aerodynamic mass-transfer evaporation routine on time series data that contains necessary input in-place and in parallel.

Parameters
  • sensor_height (float) – height of sensor in meters.

  • timestep (float or int) – sensor sampling frequency in seconds.

Keyword Arguments
  • variable_names (None or dict) – default None. Dictionary with user variable names as keys and variable names needed for aeroevap as values. If None, the needed input variables must be named correctly in the Aero.df dataframe: ‘WS’, ‘P’, ‘T_air’, ‘T_skin’, and ‘RH’ for windspeed, air pressure, air temperature, skin temperature, and relative humidity resepctively.

  • nproc (None or int) – default None. If none use half of the available cores for parallel calculations.

Returns

None

Hint

A pandas.DataFrame must be assigned to the Aero.df instance property before calling Aero.run. If the names of the required meterological variables in the dataframe are not named correctly you may pass a dictionary to the variable_names argument which maps your names to those used by AeroEvap. For example if your surface temperature column is named ‘surface_temp’ then

>>> variable_names = {'surface_temp' : 'T_skin'}
static single_calc(datetime, wind, pressure, T_air, T_skin, RH, sensor_height, timestep)[source]

Estimates open water evaporation using the aerodynamic mass transfer approach for a single time period.

Parameters
  • datetime (datetime.datetime or str) – date-time of measurements for error logging.

  • wind (float) – windspeed in m/s

  • pressure (float) – air pressure in mbar

  • T_air (float) – air temperature in C

  • T_skin (float) – skin temperature (water surface) in C

  • RH (float) – relative humidity (0-100)

  • sensor_height (float) – sensor height in m

  • timestep (int or float) – measurement frequency in seconds

Returns (tuple):

evaporation (mm/timestep), bulk transfer coefficient (Ce), vapor pressure deficit (kPa), and MOST stability (z/L)