Climatology

The sasktran_tir module includes climatology classes for generating one dimensional custom climatology classes from existing model atmospheres.

sasktran.tir.climatology.ClimatologyAtmosphericState([...])

Creates a custom climatology, containing temperature and pressure, for use as an atmospheric state.

sasktran.tir.climatology.ClimatologySpecies(species)

Create a custom climatology using a species profile from data files.

sasktran.tir.climatology.ClimatologyFull([...])

Creates a custom climatology from data files.

class sasktran.tir.climatology.ClimatologyAtmosphericState(dataset: str = 'fascode', climatology: str = 'std', interp: str = 'linear', spline: bool = False)

Bases: ClimatologyUserDefined

Creates a custom climatology, containing temperature and pressure, for use as an atmospheric state. The profiles are from http://eodg.atm.ox.ac.uk/RFM/atm/ and are divided into three folders: ‘FASCODE/ICRCCM Model Atmospheres’, ‘MIPAS Model Atmospheres (1998)’, and ‘MIPAS Model Atmospheres (2001)’. Each folder contains several ‘.atm’ files, where each file contains a set of profiles describing various latitudinal regions and times.

NOTE: These are one-dimensional atmospheric profiles. Latitude, longitude, and mjd will not affect the returned values.

class sasktran.tir.climatology.ClimatologySpecies(species: str, dataset: str = 'fascode', climatology: str = 'std', interp: str = 'linear', spline: bool = False)

Bases: ClimatologyUserDefined

Create a custom climatology using a species profile from data files. By default uses the US Standard Atmosphere. The CLIMATOLOGY_HANDLE of the species will be SKCLIMATOLOGY_<species>_CM3. Note that despite the files providing profiles of species in PPMV (parts per million by volume) the climatology created will be a profile with units of molecules per cm^3. This is because the VMR climatologies are currently not supported in the SASKTRAN cross section calculation. The species PPMV is converted to using the temperature, \(T\), and pressure, \(p\), in the specified ‘.atm’ file and using the Ideal Gas Law to compute a neutral density, \(n\):

\[n = p / (k T)\]

where k is the Boltzmann constant. The species VMR is multiplied by the neutral density to obtain the species density.

NOTE: These are one-dimensional atmospheric profiles. Latitude, longitude, and MJD will not affect the returned values.

Parameters:
  • species (str) – Chemical formula of the species to use. E.g. ‘O3’, ‘CO2’, etc.

  • dataset (str, optional) – Name of dataset to use. Valid choices are ‘fascode’, ‘mipas_1998’, and ‘mipas_2001’. Default is ‘fascode’.

  • climatology (str, optional) – Name of the data file within the chosen dataset to load. Default is ‘std’.

  • interp (str, optional) – One of ‘linear’ or ‘log’. Defines the interpolation space. Default is ‘linear’.

  • spline (bool, optional) – One of True or False. If True then a quadratic spline will be used to interpolate, if False the piecewise linear interpolation is done. Default is False.

Examples

>>> from sasktran.tir.climatology import ClimatologySpecies
>>> mipas_2001_polar_summer_co2 = ClimatologySpecies('CO2', dataset='mipas_2001', climatology='sum')
>>> mipas_2001_polar_summer_co2.get_parameter('SKCLIMATOLOGY_CO2_CM3', latitude=0, longitude=0, altitudes=[10000, 11000], mjd=54372)
array([2.94644516e+15, 2.50292282e+15])

The following table lists the species supported by each climatology. Each dataset contains several different climatologies. Each climatology contains unique profiles of temperature, pressure, and VMRs of the major species. The VMRs for the minor species are the same for all climatologies in each dataset. However, the number density of each species is computed using the pressure and temperature of the selected climatology.

Dataset

Climatologies

Major Species

Minor Species

fascode

tro (Tropical), mls (Mid-Latitude Summer), mlw (Mid-Latitude Winter), sas (Sub-Arctic Summer), saw (Sub-Arctic Winter), std (US Standard Atmosphere),

H2O, CO2, O3, N2O, CO, CH4, O2

NO, SO2, NO2, NH3, HNO3, OH, HF, HCl, HBr, HI, ClO, OCS, H2CO, HOCl, N2, HCN, CH3Cl, H2O2, C2H2, C2H6, PH3, COF2, SF6, H2S, CFCl3, CF2Cl2, CClF3, CF4, CHCl2F, CHClF2, C2Cl3F3, C2Cl2F4, C2ClF5, CCl4, ClONO2, N2O5, HNO4

mipas_1998

day_imk (Mid-Latitude Day) ngt_imk (Mid-Latitude Night) win_imk (Polar Winter) sum_imk (Polar Summer)

N2, O2, O3P, CO2, O3, H2O, CH4, N2O, HNO3, CO, NO2, N2O5, ClO, HOCl, ClONO2, NO

HCN, H2O2, F12, F14, F22, COF2, OCS, NH3, SO2, CFCl3, C2H2, C2H6, CCl4, SF6, HNO4, CH3Cl, CClF3, CHCl2F, C2Cl3F3, C2Cl2F4

mipas_2001

day (Mid-Latitude Day) ngt (Mid-Latitude Night) win (Polar Winter) sum (Polar Summer) equ (Equatorial Day)

N2, O2, CO2, O3, H2O, CH4, N2O, HNO3, CO, NO2, N2O5, ClO, HOCl, ClONO2, NO, HNO4, HCN, NH3, F11, F12, F14, F22, CCl4, COF2, H2O2, C2H2, C2H6, OCS, SO2, SF6

CClF3, CHCl2F, C2Cl3F3, C2Cl2F4, C2ClF5, CH3Cl, H2S

class sasktran.tir.climatology.ClimatologyFull(dataset: str = 'fascode', climatology: str = 'std', include_minor=True, interp: str = 'linear', spline: bool = False)

Bases: ClimatologyUserDefined

Creates a custom climatology from data files. Similar to ClimatologySpecies and ClimatologyAtmosphericState but includes ALL profiles defined in the data file. See ClimatologySpecies for the species contained in each file. If minor species are included, they are interpolated to the same altitude grid as the major species.

Examples

>>> from sasktran_tir.climatology import ClimatologyFull
>>> clim = ClimatologyFull()  # US Standard Atmosphere
>>> clim.get_parameter('SKCLIMATOLOGY_TEMPERATURE_K', latitude=0, longitude=0, altitudes=[10000, 11000], mjd=54372)
array([223.3, 216.8])
>>> clim.get_parameter('SKCLIMATOLOGY_PRESSURE_PA', latitude=0, longitude=0, altitudes=[10000, 11000], mjd=54372)
array([26500., 22700.])
>>> clim.get_parameter('SKCLIMATOLOGY_O3_CM3', latitude=0, longitude=0, altitudes=[10000, 11000], mjd=54372)
array([1.12859623e+12, 1.62974521e+12])
Parameters:
  • dataset (str, optional) – Name of dataset to use. Valid choices are ‘fascode’, ‘mipas_1998’, and ‘mipas_2001’. Default is ‘fascode’.

  • climatology (str, optional) – Name of the data file within the chosen dataset to load. Default is ‘std’.

  • include_minor (bool, optional) – If True, minor species are included in the climatology. Default is True.

  • interp (str, optional) – One of ‘linear’ or ‘log’. Defines the interpolation space. Default is ‘linear’.

  • spline (bool, optional) – One of True or False. If True then a quadratic spline will be used to interpolate, if False the piecewise linear interpolation is done. Default is False.