Atmosphere types

An EarthAtmosphere object, as the name suggests, characterizes an atmospheric state on Earth with a number of profiles and other quantities to the extent needed by most models to generate radiances.

Convenience functions exist which make the creation of EarthAtmosphere objects easier, such as create_empty_EarthAtmosphere or create_example_atmosphere.

The concept of an atmospheric state supported by RetrievalToolbox is one that includes two categories of profiles. One type of profile is associated with the retrieval grid, a one-dimensional vertical pressure profile (pressure_levels) that dictates e.g. optical property calculations and also determines the pressures at which the gas profile values are defined. The second type are the meteorological profiles, reserved for specific humidity, temperature, altitude and gravity. These are laid out on another pressure grid (met_pressure_levels) which can be a completely different one compared to the retrieval grid.

Each profile has its own physical unit with denoted by _unit, so e.g. the altitude levels are stored in .altitude_levels, and the corresponding unit field is .altitude_unit. The type definition restricts the possible units to those that make sense physically, so users can use u"km" or u"m" as their physical units for the altitude profile, but not e.g. u"Pa", as that is not a valid length-type unit.

When users write a retrieval algorithm that performs retrievals on many scenes, it is generally advised to not create new atmosphere objects as that tends to fill up memory quite fast. Instead, use the ingest! function to copy values into the atmosphere object, over-writing existing values. As with most objects in RetrievalToolbox, users must be cautious as it is always possible to change values inside the object.

RetrievalToolbox.EarthAtmosphereType
  • atm_elements::Vector{<:AbstractAtmosphereElement}: Vector of atmosphere elements present in this atmosphere

  • N_level::Int64: Number of retrieval levels in this atmosphere

  • N_layer::Int64: Number of retrieval layers in this atmosphere

  • pressure_levels::Vector{T} where T<:AbstractFloat: Pressure level locations

  • pressure_layers::Vector{T} where T<:AbstractFloat: Mid-layer pressure locations

  • pressure_unit::Unitful.Units{U, 𝐌 𝐋^-1 𝐓^-2} where U: Pressure unit

  • N_met_level::Int64: Number of meteorological levels in this atmosphere

  • N_met_layer::Int64: Number of meteorological layers in this atmosphere

  • met_pressure_levels::Vector{T} where T<:AbstractFloat: Meteorological pressure level locations

  • met_pressure_layers::Vector{T} where T<:AbstractFloat: Mid-layer pressure locations for meteorology

  • met_pressure_unit::Unitful.Units{U, 𝐌 𝐋^-1 𝐓^-2} where U: Pressure units for meteorology

  • temperature_levels::Vector{T} where T<:AbstractFloat: Temperatures at pressure levels

  • temperature_layers::Vector{T} where T<:AbstractFloat: Temperatures at mid-layer pressures

  • temperature_unit::Unitful.Units{U, 𝚯, nothing} where U: Temperature unit

  • specific_humidity_levels::Vector{T} where T<:AbstractFloat: Specific humidity at pressure levels

  • specific_humidity_layers::Vector{T} where T<:AbstractFloat: Specific humidity at mid-layer pressures

  • specific_humidity_unit::Unitful.Units{U, NoDims} where U: Specific humidity unit

  • altitude_levels::Vector{T} where T<:AbstractFloat: Altitude at pressure levels

  • altitude_layers::Vector{T} where T<:AbstractFloat: Altitude at mid-layer pressures

  • altitude_unit::Unitful.Units{U, 𝐋} where U: Altitude units

  • gravity_levels::Vector{T} where T<:AbstractFloat: Gravity at pressure levels

  • gravity_layers::Vector{T} where T<:AbstractFloat: Gravity at mid-layer pressures

  • gravity_unit::Unitful.Units{U, 𝐋 𝐓^-2} where U: Gravity unit