pycontrails.models.pcc

Probability of persistent contrail coverage (PCC).

Classes

PCC(met, surface[, params])

Potential Contrail Coverage Algorithm.

PCCParams([copy_source, ...])

PCC Model Parameters.

class pycontrails.models.pcc.PCC(met, surface, params=None, **params_kwargs)

Bases: Model

Potential Contrail Coverage Algorithm.

Determines the potential of ambient atmosphere to allow contrail formation at grid points.

Parameters:
  • met (MetDataset) – Dataset containing met_variables variables.

  • surface (MetDataset) – Surface level dataset containing “air_pressure”.

  • params (dict[str, Any], optional) – Override PCC model parameters with dictionary. See PCCParams for model parameters.

  • **params_kwargs – Override PCC model parameters with keyword arguments. See PCCParams for model parameters.

Notes

Based on Ponater et al. (2002)

Slingo1980(T, p, iwc, q, rh_crit_old, rh_crit_new)

Apply Slingo scheme described in Wood and Field, 1999.

Relationships between Total Water, Condensed Water, and Cloud Fraction in Stratiform Clouds Examined Using Aircraft Data

Parameters:
  • T (xarray:DataArray) – Air Temperature, [\(K\)]

  • p (xarray:DataArray) – Air Pressure, [\(Pa\)]

  • iwc (xarray:DataArray) – Cloud ice water content, [\(kg \ kg^{-1}\)]

  • q (xarray:DataArray) – Specific humidity

  • rh_crit_old (xarray:DataArray) – Critical relative humidity, [\([0 - 1]\)]

  • rh_crit_new (xarray:DataArray) – Critical relative humidity, [\([0 - 1]\)]

Returns:

xarray:DataArray – Probability of cirrus formation, [\([0 - 1]\)]

Smith1990(T, p, iwc, q, rh_crit_old, rh_crit_new)

Apply Smith Scheme described in Rap et al. (2009).

Parameterization of contrails in the UK Met OfficeClimate Model;

Parameters:
  • T (xarray:DataArray) – Air Temperature, [\(K\)]

  • p (xarray:DataArray) – Air Pressure, [\(Pa\)]

  • iwc (xarray:DataArray) – Cloud ice water content, [\(kg \ kg^{-1}\)]

  • q (xarray:DataArray) – Specific humidity

  • rh_crit_old (xarray:DataArray) – Critical relative humidity, [\([0 - 1]\)]

  • rh_crit_new (xarray:DataArray) – Critical relative humidity, [\([0 - 1]\)]

Returns:

xarray:DataArray – Probability of cirrus formation, [\([0 - 1]\)]

Sundqvist1989(T, p, iwc, q, rh_crit_old, rh_crit_new)

Apply Sundqvist scheme described in Ponater et al. (2002).

Contrails in a comprehensive global climate model: Parameterization and radiative forcing results

Parameters:
  • T (xarray:DataArray) – Air Temperature, [\(K\)]

  • p (xarray:DataArray) – Air Pressure, [\(Pa\)]

  • iwc (xarray:DataArray) – Cloud ice water content, [\(kg \ kg^{-1}\)]

  • q (xarray:DataArray) – Specific humidity

  • rh_crit_old (xarray:DataArray) – Critical relative humidity, [\([0 - 1]\)]

  • rh_crit_new (xarray:DataArray) – Critical relative humidity, [\([0 - 1]\)]

Returns:

xarray:DataArray – Probability of cirrus formation, [\([0 - 1]\)]

b_contr()

Calculate critical relative humidity threshold of contrail formation.

Returns:

xarray.DataArray – Critical relative humidity of contrail formation, [\([0 - 1]\)]

Notes

Instead of using a prescribed threshold relative humidity for rh_crit_old the threshold relative humidity now change with pressure.

This equation is described in Roeckner et al. 1996, Eq.57 THE ATMOSPHERIC GENERAL CIRCULATION MODEL ECHAM-4: MODEL DESCRIPTION AND SIMULATION OF PRESENT-DAY CLIMATE

default_params

alias of PCCParams

eval(source=None, **params)

Evaluate PCC model.

Currently only implemented to work on the met data input.

Parameters:
  • source (MetDataset | None, optional) –

    Input MetDataset.

    If None, evaluates at the met grid points.

  • **params (Any) – Overwrite model parameters before eval

Returns:

MetDataArray – PCC model output

long_name = 'Potential contrail coverage'
met_variables = (MetVariable(short_name='t', standard_name='air_temperature', long_name='Air Temperature', level_type='isobaricInhPa', ecmwf_id=130, grib1_id=11, grib2_id=(0, 0, 0), units='K', amip='ta', description='Air temperature is the bulk temperature of the air, not the surface (skin) temperature.'), MetVariable(short_name='q', standard_name='specific_humidity', long_name='Specific Humidity', level_type='isobaricInhPa', ecmwf_id=133, grib1_id=51, grib2_id=(0, 1, 0), units='kg kg**-1', amip='hus', description='Specific means per unit mass. Specific humidity is the mass fraction of water vapor in (moist) air.'), MetVariable(short_name='ciwc', standard_name='specific_cloud_ice_water_content', long_name='Specific cloud ice water content', level_type='isobaricInhPa', ecmwf_id=247, grib1_id=None, grib2_id=(0, 1, 84), units='kg kg**-1', amip=None, description="This parameter is the mass of cloud ice particles per kilogram of the total mass of moist air. The 'total mass of moist air' is the sum of the dry air, water vapour, cloud liquid, cloud ice, rain and falling snow. This parameter represents the average value for a grid box."))

Required meteorology pressure level variables. Each element in the list is a MetVariable or a tuple[MetVariable]. If element is a tuple[MetVariable], the variable depends on the data source. Only one variable in the tuple is required.

name = 'pcc'
surface
class pycontrails.models.pcc.PCCParams(copy_source=True, interpolation_method='linear', interpolation_bounds_error=False, interpolation_fill_value=nan, interpolation_localize=False, interpolation_use_indices=False, interpolation_q_method=None, verify_met=True, downselect_met=True, met_longitude_buffer=(0.0, 0.0), met_latitude_buffer=(0.0, 0.0), met_level_buffer=(0.0, 0.0), met_time_buffer=(numpy.timedelta64(0, 'h'), numpy.timedelta64(0, 'h')), cloud_model='Smith1990', rh_crit_factor=0.7, fuel=<factory>, engine_efficiency=0.35, humidity_scaling=None)

Bases: ModelParams

PCC Model Parameters.

cloud_model = 'Smith1990'

Cloud model Options include “Smith1990”, “Sundqvist1989”, “Slingo1980”

engine_efficiency = 0.35

Engine efficiency

fuel

Fuel type

humidity_scaling = None

Humidity scaling

rh_crit_factor = 0.7

Critical RH Factor for the model to cirrus clouds