====================== Postprocessing Modules ====================== .. _AL52CO: ------ :del:`AL52CO` ------ .. warning:: This module depreciated for flights after 2021-01-12 Process CO concentration from the AL5002 instrument. The instrument provides counts, concentration, sensitivity, and zero. However, the sensitivity and zero step change after calibrations, which propogate through to the CO concentration provided by the instrument. To avoid post-calibration step changes, we assume that the sensitivity and zero drift linearly between calibrations, and interpolate across the step changes to produce smoother sensitivity and zero-offset curves. The CO concentration is then given by .. math:: \text{CO} = \frac{c - z_i}{S_i}, where :math:`c` is the count reported by ther instrument, :math:`z_i` is the linearly interpolated zero and :math:`S_i` is the linearly interpolated sensitivity. After a calibration, data continue to be flagged for 5 seconds, to allow for calibration gasses to be flushed from the system. Where available, the state of the V1 valve on the Fast Greenhouse Gas Analyser (FGGA) is used to identify and flag span calibrations. Outputs ------- * CO_AERO * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: CO_AERO_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``instrument_manufacturer``: Aero-Laser GmbH * ``instrument_model``: AL5002 * ``long_name``: Mole fraction of Carbon Monoxide in air from the AERO AL5002 instrument * ``standard_name``: mole_fraction_of_carbon_monoxide_in_air * ``units``: ppb Flags ----- Variables in this module use bitmask flags. Some, all or none of these flags may be applied to each variable. Interrogate flag variable attributes ``flag_masks`` and ``flag_meanings`` to find the flags for each variable. * ``aircraft_on_ground`` - The aircraft is on the ground, as indicated by WOW\_IND. * ``co_out_of_range`` - The derived CO concentration is considered out of valid range. * ``in_calibration`` - The instrument is currently, or has recently been, in calibration. Data should be disregarded. * ``no_calibration`` - No calibration has yet been performed. Data should be disregarded. * ``counts_zero`` - The instrument is reporting zero counts. This is most likely erroneous. .. _AirSpeed: -------- AirSpeed -------- Calculates aircraft indicated and true air speeds. Mach number, :math:`M`, is calculated from static and dynamic pressures (here :math:`p` and :math:`q`, derived as ``PS_RVSM`` and ``Q_RVSM``, in processing module ``p_rvsm.py``) using the standard calculation ``sp_mach`` defined in ppodd.utils.calcs: .. math:: M = \sqrt{5\left(1 + \frac{q}{p}\right)^{2/7} - 1} Indicated airspeed is then given as .. math:: \text{IAS} = V_s M \sqrt{\frac{p}{P_\text{std}}}, where :math:`V_s` is the speed of sound at standard temperature and pressure, and :math:`P_{std}` is the surface pressure in the ICAO standard atmosphere. True airspeed is given as .. math:: \text{TAS} = T_c V_s M \sqrt{\frac{T_\text{di}}{T_\text{std}}}, where :math:`T_c` is a TAS correction term, defined in the flight constants, :math:`T_\text{di}` is the temperature from the de-iced temperature sensor, and :math:`T_\text{std}` is the surface temperature in the ICAO standard atmosphere. Outputs ------- * IAS_RVSM * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: IAS_RVSM_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``long_name``: Indicated air speed from the aircraft RVSM (air data) system * ``units``: m s-1 * TAS_RVSM * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: TAS_RVSM_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``long_name``: True air speed from the aircraft RVSM (air data) system and deiced temperature * ``standard_name``: platform_speed_wrt_air * ``units``: m s-1 Flags ----- Variables in this module use bitmask flags. Some, all or none of these flags may be applied to each variable. Interrogate flag variable attributes ``flag_masks`` and ``flag_meanings`` to find the flags for each variable. * ``mach_out_of_range`` - Either static or dynamic pressure out of acceptable limits during calculation of mach number. .. _BBRFlux: ------- BBRFlux ------- Caluclates the corrected fluxes from the upper and lower clear dome and red dome pyranometers. .. note:: Prior to software version 24.3.0, the BBRs were incorrectly labelled as manufactured by Kipp & Zonen. This has been corrected to The Eppley Laboratory inc. from version 24.3.0 onwards. The thermistors in the pyranometers have a characteristic non-linear temperature dependence due to the manufacturing process. If not corrected for, this can lead to errors in temperature of up to 1 :math:`^\circ\text{C}`. A quintic equation has been fitted to the manufacturer provided corrections for a range of temperatures, providing a correction between :math:`-50 ^\circ` C and :math:`40 ^\circ` C to within :math:`\pm0.07` :math:`^\circ` C. .. math:: T_c = T + \left(\alpha_0 + T\left(\alpha_1 + T\left(\alpha_2 + T\left(\alpha_3 + T\left(\alpha_4 + T\alpha_5\right)\right)\right)\right)\right). The polynomial coefficents :math:`\alpha_0\ldots\alpha_5` are hard-coded, and take the values .. math:: \left[-0.774, 6.08\times10^{-2}, 2.47\times10^{-3}, -6.29\times10^{-5}, -8.78\times10^{-7}, 1.37\times10^{-8}\right]. The flux for each dome, :math:`F_d`, is calculated by subtracting a 10 second running mean of the zero from the signal. The flux is then corrected for temperature sensitivity using .. math:: F_{d_c} = \frac{F_d}{1 + T_c\left(\gamma_1 + T_c\left(\gamma_2 + T_c\gamma_3\right)\right)}, where :math:`T_c` is the corrected dome thermistor temperature, and :math:`\gamma_n` are the first :math:`n` values in the dome constants array. A threshold value, :math:`F_{\text{crit}} = 920\cos(\zeta)^{1.28}`, is used to determine whether the dome is in direct or diffuse radiation, with fluxes above :math:`F_{\text{crit}}` (or :math:`F_{\text{crit}} / 2` for red domes) assumed to indicate direct radiation. This expression for :math:`F_{\text{crit}}` approximates the 'German' equation (ref?) but is simpler and remains positive at low sun elevations. If the flux is determined to be direct, then the upper radiometers are corrected for the pitch and roll of the aircraft (Ref: M/MRF/13/5): .. math:: F = \frac{F_{d_c}}{1 -f_r(\zeta)\left(1-c(\zeta)\frac{\cos\beta}{\cos\zeta} \right)}. Here, :math:`f_r(\zeta)` is the ratio of of direct:direct+diffuse radiation, currently assumed to be ``0.95`` for all solar zenith angles, :math:`c(\zeta)` is a correction term for the cosine effect (Ref: Tech note 8, table 4). The angle between the solar zenith and normal-to-instrument, :math:`\beta`, is given by .. math:: \cos\beta &= \sin\phi\sin\zeta\sin\psi \\ &+ \cos\phi\cos\theta\cos\zeta \\ &- \cos\phi\sin\theta\sin\zeta\cos\psi, where :math:`\phi` is the aircraft roll, :math:`\zeta` is the solar zenith angle, :math:`\psi` is the 'sun heading', the difference between the solar azimuth angle and the aircraft heading, and :math:`\theta` is the aircraft pitch angle. Ref: Tech. note 7, page 10. Prior to this correction, platform relative pitch and roll offsets, determined through flying clear sky box patterns, are added to the instrument-derived pitch and roll. These are given as elements 4 and 5 in the flight constants for each dome. Outputs ------- * SW_DN_C * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: SW_DN_C_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``instrument_manufacturer``: The Eppley Laboratory inc. * ``instrument_model``: PSP * ``instrument_serial_number``: * ``long_name``: Corrected downward short wave irradiance, clear dome * ``standard_name``: downwelling_shortwave_flux_in_air * ``units``: W m-2 * SW_UP_C * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: SW_UP_C_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``instrument_manufacturer``: The Eppley Laboratory inc. * ``instrument_model``: PSP * ``instrument_serial_number``: * ``long_name``: Corrected upward short wave irradiance, clear dome * ``standard_name``: upwelling_shortwave_flux_in_air * ``units``: W m-2 * RED_DN_C * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: RED_DN_C_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``instrument_manufacturer``: The Eppley Laboratory inc. * ``instrument_model``: PSP * ``instrument_serial_number``: * ``long_name``: Corrected downward short wave irradiance, red dome * ``units``: W m-2 * RED_UP_C * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: RED_UP_C_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``instrument_manufacturer``: The Eppley Laboratory inc. * ``instrument_model``: PSP * ``instrument_serial_number``: * ``long_name``: Corrected upward short wave irradiance, red dome * ``units``: W m-2 Flags ----- Variables in this module use bitmask flags. Some, all or none of these flags may be applied to each variable. Interrogate flag variable attributes ``flag_masks`` and ``flag_meanings`` to find the flags for each variable. * ``roll_limit_exceeded`` - The aircraft is in a roll exceeding the specified max roll limit of 7.0 degrees from horizontal. * ``low_sun_angle`` - The sun is low relative to the axis of the aircraft, exceeding the maximum allowed limit of 80.0 degrees. * ``flux_out_of_range`` - The calculated is outside of the specified allowable flux range [-20.0, 700.0] W/m2 .. _BBRSols: ------- BBRSols ------- Converts the raw voltages on the BBR channels to physical values via a linear calibration, using coefficients defined in the flight constants. Each radiometer provides a signal, a zero and a thermopile temperature. Required calibration coefficients are ``CALUP1S``, ``CALUP2S``, ``CALLP1S``, and ``CALLP2S``. The forth character in each of these identifies whether the calibration is for an (U)pper or (L)ower radiometer, and the fifth and sixth characters indicate whether the calibration is for position 1 (P1) or position 2 (P2). The first two constants in each calibration array are :math:`n_0` and :math:`n_1` linear coefficents for the sensitivity, while the second two are the linear coefficients for the thermopile temperature. Outputs ------- * UP1S * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: UP1S_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``long_name``: UPP VIS CLR SIG * ``units``: W m-2 * UP2S * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: UP2S_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``long_name``: UPP VIS RED SIG * ``units``: W m-2 * UIRS * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: UIRS_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``long_name``: UPP I/R SIGNAL * ``units``: W m-2 * UP1Z * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: UP1Z_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``long_name``: UPP VIS CLR ZERO * ``units``: W m-2 * UP2Z * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: UP2Z_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``long_name``: UPP VIS RED ZERO * ``units``: W m-2 * UIRZ * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: UIRZ_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``long_name``: UPP I/R ZERO * ``units``: W m-2 * UP1T * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: UP1T_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``long_name``: UPP VIS CLR TEMP * ``units``: degree C * UP2T * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: UP2T_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``long_name``: UPP VIS RED TEMP * ``units``: degree C * UIRT * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: UIRT_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``long_name``: UPP I/R TEMP * ``units``: degree C * LP1S * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: LP1S_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``long_name``: LWR VIS CLR SIG * ``units``: W m-2 * LP2S * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: LP2S_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``long_name``: LWR VIS RED SIG * ``units``: W m-2 * LIRS * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: LIRS_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``long_name``: LWR I/R SIGNAL * ``units``: W m-2 * LP1Z * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: LP1Z_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``long_name``: LWR VIS CLR ZERO * ``units``: W m-2 * LP2Z * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: LP2Z_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``long_name``: LWR VIS RED ZERO * ``units``: W m-2 * LIRZ * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: LIRZ_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``long_name``: LWR I/R ZERO * ``units``: W m-2 * LP1T * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: LP1T_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``long_name``: LWR VIS CLR TEMP * ``units``: degree C * LP2T * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: LP2T_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``long_name``: LWR VIS RED TEMP * ``units``: degree C * LIRT * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: LIRT_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``long_name``: LWR I/R TEMP * ``units``: degree C Flags ----- Variables in this module use classic, value based flagging. * UP1S_FLAG * ``-128``: ``data_not_flagged`` - A fill value. No flagging information has been provided * UP2S_FLAG * ``-128``: ``data_not_flagged`` - A fill value. No flagging information has been provided * UIRS_FLAG * ``-128``: ``data_not_flagged`` - A fill value. No flagging information has been provided * UP1Z_FLAG * ``-128``: ``data_not_flagged`` - A fill value. No flagging information has been provided * UP2Z_FLAG * ``-128``: ``data_not_flagged`` - A fill value. No flagging information has been provided * UIRZ_FLAG * ``-128``: ``data_not_flagged`` - A fill value. No flagging information has been provided * UP1T_FLAG * ``-128``: ``data_not_flagged`` - A fill value. No flagging information has been provided * UP2T_FLAG * ``-128``: ``data_not_flagged`` - A fill value. No flagging information has been provided * UIRT_FLAG * ``-128``: ``data_not_flagged`` - A fill value. No flagging information has been provided * LP1S_FLAG * ``-128``: ``data_not_flagged`` - A fill value. No flagging information has been provided * LP2S_FLAG * ``-128``: ``data_not_flagged`` - A fill value. No flagging information has been provided * LIRS_FLAG * ``-128``: ``data_not_flagged`` - A fill value. No flagging information has been provided * LP1Z_FLAG * ``-128``: ``data_not_flagged`` - A fill value. No flagging information has been provided * LP2Z_FLAG * ``-128``: ``data_not_flagged`` - A fill value. No flagging information has been provided * LIRZ_FLAG * ``-128``: ``data_not_flagged`` - A fill value. No flagging information has been provided * LP1T_FLAG * ``-128``: ``data_not_flagged`` - A fill value. No flagging information has been provided * LP2T_FLAG * ``-128``: ``data_not_flagged`` - A fill value. No flagging information has been provided * LIRT_FLAG * ``-128``: ``data_not_flagged`` - A fill value. No flagging information has been provided .. _BuckCR2: ------- BuckCR2 ------- This documentation adapted from FAAM document FAAM010015A (H. Price, 2016). For further details see the `FAAM Met. Handbook `_. The core processed data for the Buck CR2 includes the mirror temperature and the volume mixing ratio of water vapour. Prior to September 2016, the water vapour pressure was calculated using using the parameterisation given by Hardy (1998), which is based on the ITS-90 formulations. In September 2016, the data processing was updated to use the Murphy and Koop (2000) parameterisation for water vapour pressure. The vapour pressure over liquid water is now calculated according to .. math:: \ln(p_{\text{liq}}) &= 54.842763 - \frac{6763.22}{T} - 4.21\ln{T} +0.000367 T\\ &+ \tanh\left(0.0415\left(T - 218.8\right)\right)\left(53.878 - \frac{331.22}{T} - 9.44523 \ln T + 0.014025 T \right), valid for :math:`123 < T < 332` K. The vapour pressure over ice is calculated as follows: .. math:: \ln(p_\text{ice}) = 9.550426 - \frac{5723.265}{T} + 3.53068 \ln T -0.00728332 T, valid above 110 K. The water vapour pressure inside the instrument, :math:`p_{\text{H}_2\text{O,Buck}}` is calculated using either equation 1 or 2 depending on whether a dew point or a frost point has been observed. Above 273.15 K, a dew point is clearly observed. Below 243.15 K, we can be confident that a frost point is being measured. Between 243.15 and 273.15 K, a dew point is assumed if the mirror has not been below 243.15 K since it was last above 273.15 K and it has been below 273.15 K for less than ten minutes. If the mirror temperature is within the supercooled water regime but has been below 243.15 K since it was last at 273.15 K, or it has been below 273.15 K for more than ten minutes, a frost point is assumed. The fact that these are assumptions is reflected in the measurement uncertainty, described below. The vapour pressure is converted to volume mixing ratio, :math:`r_{\text{H}_2\text{O}}`, as follows: .. math:: r_{\text{H}_2\text{O}} = \frac{e_f p_{\text{H}_2\text{O,Buck}}}{p_\text{Buck} - e_f p_{\text{H}_2\text{O,Buck}}}, where :math:`e_f` is the enhancement factor given by Hardy (1998) and :math:`p_\text{Buck}` is the air pressure inside the instrument. A corrected dew or frost point is calculated, which is slightly different to the mirror temperature, correcting for the difference between the pressure inside the insturment and the static air pressure outside the aircraft. The water vapour pressure outside the aircraft is .. math:: p_{\text{H}_2\text{o,outside}} = \frac{p_s r_{\text{H}_2\text{O}}}{e_f + e_f r_{\text{H}_2\text{O}}}, where :math:`p_s` is the static air pressure. A dew or frost point is then calculated using the Murphy and Koop (2005) parameterisation. Frost points are calculated using an equation given in the paper: .. math:: T_\text{frost,outside} = \frac{1.814625\ln{p_{\text{H}_2\text{O,outside}}} + 6190.134}{29.120 - \ln{p_{\text{H}_2\text{O,outside}}}}. In the the absence of an equation to calculate dew point, a numerical solving routine is used to find :math:`T_\text{dew,outside}` from Equation 1. The uncertainty associated with the Buck CR2 measurements have several sources * The uncertainty associated with the calibration performed at NPL (where applicable). This is derived from the NPL expanded uncertainty and fit to a power law. * The repeatability of the calibration. This is derived from the NPL calibration measurements of different dew points and fit to a power law. * The response time of the instrument and the atmospheric variability. This is based on an assessment of the standard deviation of subsequent readings to give an indication of atmospheric variability. * The uncertainty involved in the interpolation of data between calibration datapoints. This is a function of temperature, increasing below 233.15 K. * The bias associated with the uncertainty about whether there is water or ice on the mirror between 243.15 and 273.15 K. This is calculated using a flagging scheme according to the temperature history of the mirror. These are combined to produce one uncertainty value for the mirror temperature, which may be propagated through to the volume mixing ratio and the pressure-corrected dew or frost point. Note that prior to software version 0.10.1 the uncertainties are expanded uncertainties. From software version 0.10.1 onwards, the uncertainties are combined uncertainties, for consistency with other variables in the core dataset which have an associated uncertainty. Outputs ------- * VMR_CR2 * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: VMR_CR2_FLAG * ``calibration_date``: * ``calibration_information``: * ``calibration_url``: * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``instrument_manufacturer``: Buck Research Instruments * ``instrument_model``: CR2 Chilled Mirror Hygrometer * ``instrument_serial_number``: * ``long_name``: Water vapour volume mixing ratio measured by the Buck CR2 * ``units``: ppmv * VMR_C_U * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: VMR_C_U_FLAG * ``coordinates``: * ``coverage_content_type``: auxiliaryInformation * ``frequency``: 1 * ``instrument_manufacturer``: Buck Research Instruments * ``instrument_model``: CR2 Chilled Mirror Hygrometer * ``instrument_serial_number``: * ``long_name``: Combined uncertainty estimate for water vapour volume mixing ratio measured by the Buck CR2 * ``units``: ppmv * TDEW_CR2 * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: TDEW_CR2_FLAG * ``calibration_date``: * ``calibration_information``: * ``calibration_url``: * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``instrument_manufacturer``: Buck Research Instruments * ``instrument_model``: CR2 Chilled Mirror Hygrometer * ``instrument_serial_number``: * ``long_name``: Mirror Temperature measured by the Buck CR2 Hygrometer * ``standard_name``: dew_point_temperature * ``units``: degK * TDEW_C_U * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: TDEW_C_U_FLAG * ``coordinates``: * ``coverage_content_type``: auxiliaryInformation * ``frequency``: 1 * ``instrument_manufacturer``: Buck Research Instruments * ``instrument_model``: CR2 Chilled Mirror Hygrometer * ``instrument_serial_number``: * ``long_name``: Combined uncertainty estimate for Buck CR2 Mirror Temperature * ``units``: degK * TDEWCR2C * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: TDEWCR2C_FLAG * ``calibration_date``: * ``calibration_information``: * ``calibration_url``: * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``instrument_manufacturer``: Buck Research Instruments * ``instrument_model``: CR2 Chilled Mirror Hygrometer * ``instrument_serial_number``: * ``long_name``: Corrected dew point temperature measured by the Buck CR2 Hygrometer * ``standard_name``: dew_point_temperature * ``units``: degK Flags ----- Variables in this module use classic, value based flagging. * VMR_CR2_FLAG * ``0``: ``data_good`` - Data are considered valid * ``1``: ``not_controlling`` - The instrument is not controlling on a dew point * ``2``: ``mirror_contaminated`` - The instrument is reporting contamination on the mirror * ``3``: ``in_balance_cycle`` - The instrument is in a balance cycle and not recording a dew point * ``4``: ``data_missing`` - Data are expected but are not present * VMR_C_U_FLAG * ``0``: ``data_good`` - Data are considered valid * ``1``: ``not_controlling`` - The instrument is not controlling on a dew point * ``2``: ``mirror_contaminated`` - The instrument is reporting contamination on the mirror * ``3``: ``in_balance_cycle`` - The instrument is in a balance cycle and not recording a dew point * ``4``: ``data_missing`` - Data are expected but are not present * TDEW_CR2_FLAG * ``0``: ``data_good`` - Data are considered valid * ``1``: ``not_controlling`` - The instrument is not controlling on a dew point * ``2``: ``mirror_contaminated`` - The instrument is reporting contamination on the mirror * ``3``: ``in_balance_cycle`` - The instrument is in a balance cycle and not recording a dew point * ``4``: ``data_missing`` - Data are expected but are not present * TDEW_C_U_FLAG * ``0``: ``data_good`` - Data are considered valid * ``1``: ``not_controlling`` - The instrument is not controlling on a dew point * ``2``: ``mirror_contaminated`` - The instrument is reporting contamination on the mirror * ``3``: ``in_balance_cycle`` - The instrument is in a balance cycle and not recording a dew point * ``4``: ``data_missing`` - Data are expected but are not present * TDEWCR2C_FLAG * ``0``: ``data_good`` - Data are considered valid * ``1``: ``not_controlling`` - The instrument is not controlling on a dew point * ``2``: ``mirror_contaminated`` - The instrument is reporting contamination on the mirror * ``3``: ``in_balance_cycle`` - The instrument is in a balance cycle and not recording a dew point * ``4``: ``data_missing`` - Data are expected but are not present .. _CPC: --- CPC --- Reports particle counts from the TSI 3786 condensation particle counter. Counts are reported as-is from the instrument; this module only provides flagging information. .. note:: Prior to v23.3.0, the CPC included flags for both sample flow and sheath flow. These have been combined into a single flag, and a cloud flag has been added, as CPC data are not valid in cloud. **The cloud flag is added by a separate flagging module**. Outputs ------- * CPC_CNTS * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: CPC_CNTS_FLAG * ``comment``: Sampled through a modified Rosemount Aerospace Inc. Type 102 Total Temperature Housing. * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 10 * ``instrument_manufacturer``: TSI Incorporated * ``instrument_model``: Modified Water Filled 3786 Condensation Particle Counter * ``instrument_serial_number``: * ``long_name``: Condensation Particle Counts measured by the TSI 3786 * ``units``: 1 Flags ----- Variables in this module use bitmask flags. Some, all or none of these flags may be applied to each variable. Interrogate flag variable attributes ``flag_masks`` and ``flag_meanings`` to find the flags for each variable. * ``saturator_over_temp`` - The saturator temperature is above 6 C * ``growth_tube_temp_out_of_range`` - Growth tube temperature is outside the valid range [40.5, 49.5] C * ``optics_temp_out_of_range`` - Optics temperature is outside the valid range [40.5, 49.5] C * ``sample_or_sheath_flow_out_of_range`` - Sample or sheath flows are outside the valid range [270, 330] * ``counter_saturated`` - Counter has exceeded its saturation value, 1000000 .. _CabinPressure: ------------- CabinPressure ------------- Derives cabin pressure from a pressure transducer located in the core console. A polynomial fit, with coefficients provided in the constants variable ``CALCABP``, converts DLU counts :math:`\rightarrow` transducer voltage :math:`\rightarrow` pressure. Outputs ------- * CAB_PRES * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: CAB_PRES_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``long_name``: Cabin Pressure * ``sensor_manufacturer``: Rosemount Aerospace Inc. * ``sensor_model``: 1201F2 * ``sensor_serial_number``: * ``units``: hPa Flags ----- Variables in this module use classic, value based flagging. * CAB_PRES_FLAG * ``0``: ``data_good`` - Data are considered valid * ``1``: ``pressure_out_of_range`` - Data are outside the valid range [650, 1050] hPa .. _CabinTemp: --------- CabinTemp --------- Derives cabin temperature from a sensor located on the right of the core console. A polynomial fit, with coefficients provided in the constants variable ``CALCABT``, converts DLU counts :math:`\rightarrow` raw :math:`\rightarrow` temperature. Outputs ------- * CAB_TEMP * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: CAB_TEMP_FLAG * ``comment``: Should be considered a qualitative measure only, due to lack of calibration and proximity to the core console * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``long_name``: Cabin temperature at the core consoles * ``units``: degC Flags ----- Variables in this module use classic, value based flagging. * CAB_TEMP_FLAG * ``0``: ``data_good`` - Data are considered valid * ``1``: ``sensor_uncalibrated`` - Indicates that the sensor is considered to be poorly calibrated. Temperatures are to be considered qualitative. * ``2``: ``data_missing`` - Data are expected, but are missing .. _DryMach: ------- DryMach ------- This module calculate a dry-air Mach number using RVSM pressure measurements. Dry-air Mach number, :math:`M`, is given by .. math:: M = \sqrt{\left(\frac{2c_v}{R_a}\right)\left(\left(\frac{p+q}{q}\right)^\frac{R_a}{c_p} - 1\right)}, The module also provides the parameter ``SH_GAMMA``, which is the ratio of specific heats at constant pressure and constant volume, along with uncertainty estimates for ``MACH`` and ``SH_GAMMA``. The former is the combined uncertainty of the uncertainy in BAe report 127 and the uncertainty in gamma, while the latter is a constant and assumed to be 0.003, which is derived from the impact of neglecting humidity at the highest expected VMR of 35000 at 1100 hPa. Outputs ------- * MACH * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: MACH_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``long_name``: Dry air Mach derived from and RVSM * ``units``: 1 * SH_GAMMA * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: SH_GAMMA_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``long_name``: Ratio of specific heats at constant pressure and constant pressure * ``units``: 1 * SH_GAMMA_CU * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: SH_GAMMA_CU_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``long_name``: Uncertainty estimate for SH_GAMMA * ``units``: 1 * MACH_CU * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: MACH_CU_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``long_name``: Uncertainty estimate for MACH * ``units``: 1 Flags ----- Variables in this module use bitmask flags. Some, all or none of these flags may be applied to each variable. Interrogate flag variable attributes ``flag_masks`` and ``flag_meanings`` to find the flags for each variable. * ``aircraft_on_ground`` - The aircraft is on the ground, as indicated by the weight-on-wheels indicator .. _ElectricFieldJci140: ------------------- ElectricFieldJci140 ------------------- This module reports the raw counts from the JCI static monitor on the core console. Outputs ------- * EXX_JCI * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: EXX_JCI_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``long_name``: Raw data from the Fwd Core Console JCI static monitor, static signal * ``units``: 1 Flags ----- Variables in this module use classic, value based flagging. * EXX_JCI_FLAG * ``0``: ``data_good`` - Data are assumed to be valid and representative of the physical quantity measured * ``1``: ``uncalibrated_counts`` - Indicates this data is raw, uncalibrated counts from the DLU. Use with caution. .. _ElectricFieldZeus: ----------------- ElectricFieldZeus ----------------- Provides the electric field measurement from the Zeus instrument. No processing is actually performed, the data reported by the instrument is simply passed through to the output, with the addition of a flag. ZEUS is a window mounted static mill created by the MetOffice OBR group. It uses a sensor designed by Dr John Chubb (JCI 140) made by Hearn Morley/Fraser Anti-Static and an Arduino Uno to digitize the analogue signal. It is fitted in SW1. Outputs ------- * EXX_ZEUS * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: EXX_ZEUS_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``instrument_manufacturer``: Met Office OBR, Hearn Morley, Fraser Anti-Static * ``instrument_serial_number``: 12230002 * ``long_name``: Electric field measured by the Zeus instrument * ``units``: kV m-1 Flags ----- Variables in this module use bitmask flags. Some, all or none of these flags may be applied to each variable. Interrogate flag variable attributes ``flag_masks`` and ``flag_meanings`` to find the flags for each variable. * ``aircraft_on_ground`` - Aircraft is on the ground, as indicated by weight-on-wheels .. _GINWinds: -------- GINWinds -------- Calculates a horizontal wind vector from the aircraft true air speed, derived from the air data computer, and the speed and heading from the GPS-aided inertial navigation unit. The RVSM derived TAS is corrected to account for a discrepancy with the turbulence-probe derived TAS according to .. math:: \Delta\text{TAS} = -(4.0739 - (32.1681 M) + (52.7136 M^2)) where :math:`M` is the Mach number, given by .. math:: M = \frac{\text{TAS}}{(661.4788 * 0.514444) \sqrt{\frac{T_{\text{DI}}} {288.15}}}, where :math:`T_\text{DI}` is the air temperature measured in the deiced housing. The resulting corrected TAS may also be modified with a scaling correction, specified in the constants as ``GINWIND_TASCOR``. The eastward and northward components of TAS, :math:`\text{TAS}_u` and :math:`\text{TAS}_v` are given by .. math:: \text{TAS}_u &= \text{TAS}\cos(\theta - 90),\\ \text{TAS}_v &= \text{TAS}\sin(\theta - 90). Where :math:`\theta` is the aircraft heading, which may be corrected with an offset given in the constant ``GIN_HDG_OFFSET`` to account for any misalignment of the GIN to the aircraft axis. The horizontal winds :math:`u` and :math:`v` are then given by .. math:: u &= u_G - \text{TAS}_u,\\ v &= v_G + \text{TAS}_v, where :math:`u_G` and :math:`v_G` are the eastward and northward components of the aircraft speed, reported by the GIN. Outputs ------- * U_NOTURB * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: U_NOTURB_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``long_name``: Eastward wind component derived from aircraft instruments and GIN * ``standard_name``: eastward_wind * ``units``: m s-1 * V_NOTURB * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: V_NOTURB_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``long_name``: Northward wind component derived from aircraft instruments and GIN * ``standard_name``: northward_wind * ``units``: m s-1 Flags ----- Variables in this module use bitmask flags. Some, all or none of these flags may be applied to each variable. Interrogate flag variable attributes ``flag_masks`` and ``flag_meanings`` to find the flags for each variable. * ``roll_exceeds_threshold`` - No flag description provided. .. _GeneralEastern: -------------- GeneralEastern -------------- Processing module to calculate Dew Point temperature from the General Eastern 1011B chilled mirror hygrometer. Counts from the core console are converted to dew point with a polynomial fit, using coefficients provided in the flight constants paramater ``CALGE``. The General Eastern provides a control signal voltage to indicate whether the instrument is controlling on a due point, and the data are flagged when outside this range. The valid range is provided through the flight constants parameter ``GELIMS``. Outputs ------- * TDEW_GE * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: TDEW_GE_FLAG * ``calibration_information``: This instrument cannot be calibrated * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 4 * ``instrument_manufacturer``: General Eastern Instruments * ``instrument_model``: 1011B Chilled Mirror Hygrometer * ``instrument_serial_number``: * ``long_name``: Dew Point from the General Eastern instrument * ``standard_name``: dew_point_temperature * ``units``: degK Flags ----- Variables in this module use bitmask flags. Some, all or none of these flags may be applied to each variable. Interrogate flag variable attributes ``flag_masks`` and ``flag_meanings`` to find the flags for each variable. * ``control_data_missing`` - No control data is available. The instrument may or may not be controlling on a dew point * ``control_out_of_range`` - The control signal is outside of the specified valid range [7000, 5000] * ``dewpoint_out_of_range`` - Dew point outside valid range [195, 394] K .. _Gin: --- Gin --- This module provides variables from the Applanix POS AV 410 GPS-aided inertial navigation system (GIN). The GIN provides parameters at a frequency of 50 Hz; this module simply downsamples these parameters to 32 Hz. The STATUS_GIN parameter gives the current solution status reported by the GIN. This is defined as * 0: Full Nav. (user accuracies met) * 1: Fine Align (heading RMS < 15 deg) * 2: GC CHI 2 (alignment w/ GPS, RMS heading error > 15 deg) * 3: PC CHI 2 (alignment w/o GPS, RMS heading error > 15 deg) * 4: GC GHI 1 (alignment w/ GPS, RMS heading error > 45 deg) * 5: PC CHI 1 (alignment w/o GPS, RMS heading error > 45 deg) * 6: Course levelling active * 7: Initial solution assigned * 8: No solution Outputs ------- * LAT_GIN * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: LAT_GIN_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``instrument_manufacturer``: Applanix * ``instrument_model``: POS AV 410 * ``long_name``: Latitude from POS AV 410 GPS-aided Inertial Navigation unit * ``standard_name``: latitude * ``units``: degree_north * LON_GIN * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: LON_GIN_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``instrument_manufacturer``: Applanix * ``instrument_model``: POS AV 410 * ``long_name``: Longitude from POS AV 410 GPS-aided Inertial Navigation unit * ``standard_name``: longitude * ``units``: degree_east * ALT_GIN * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: ALT_GIN_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``instrument_manufacturer``: Applanix * ``instrument_model``: POS AV 410 * ``long_name``: Altitude from POS AV 410 GPS-aided Inertial Navigation unit * ``standard_name``: altitude * ``units``: m * VELN_GIN * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: VELN_GIN_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``instrument_manufacturer``: Applanix * ``instrument_model``: POS AV 410 * ``long_name``: Aircraft velocity north from POS AV 410 GPS-aided Inertial Navigation unit * ``units``: m s-1 * VELE_GIN * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: VELE_GIN_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``instrument_manufacturer``: Applanix * ``instrument_model``: POS AV 410 * ``long_name``: Aircraft velocity east from POS AV 410 GPS-aided Inertial Navigation unit * ``units``: m s-1 * VELD_GIN * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: VELD_GIN_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``instrument_manufacturer``: Applanix * ``instrument_model``: POS AV 410 * ``long_name``: Aircraft velocity down from POS AV 410 GPS-aided Inertial Navigation unit * ``units``: m s-1 * ROLL_GIN * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: ROLL_GIN_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``instrument_manufacturer``: Applanix * ``instrument_model``: POS AV 410 * ``long_name``: Roll angle from POS AV 410 GPS-aided Inertial Navigation unit * ``standard_name``: platform_roll_angle * ``units``: degree * PTCH_GIN * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: PTCH_GIN_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``instrument_manufacturer``: Applanix * ``instrument_model``: POS AV 410 * ``long_name``: Pitch angle from POS AV 410 GPS-aided Inertial Navigation unit * ``standard_name``: platform_pitch_angle * ``units``: degree * HDG_GIN * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: HDG_GIN_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``instrument_manufacturer``: Applanix * ``instrument_model``: POS AV 410 * ``long_name``: Heading from POS AV 410 GPS-aided Inertial Navigation unit * ``standard_name``: platform_yaw_angle * ``units``: degree * WAND_GIN * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: WAND_GIN_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``instrument_manufacturer``: Applanix * ``instrument_model``: POS AV 410 * ``long_name``: Wander angle from POS AV 410 GPS-aided Inertial Navigation unit * ``units``: degree s-1 * TRCK_GIN * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: TRCK_GIN_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``instrument_manufacturer``: Applanix * ``instrument_model``: POS AV 410 * ``long_name``: Aircraft track angle from POS AV 410 GPS-aided Inertial Navigation unit * ``standard_name``: platform_course * ``units``: degree * GSPD_GIN * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: GSPD_GIN_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``instrument_manufacturer``: Applanix * ``instrument_model``: POS AV 410 * ``long_name``: Groundspeed from POS AV 410 GPS-aided Inertial Navigation unit * ``standard_name``: platform_speed_wrt_ground * ``units``: m s-1 * ROLR_GIN * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: ROLR_GIN_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``instrument_manufacturer``: Applanix * ``instrument_model``: POS AV 410 * ``long_name``: Rate-of-change of roll angle from POS AV 410 GPS-aided Inertial Navigation unit * ``standard_name``: platform_roll_rate * ``units``: degree s-1 * PITR_GIN * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: PITR_GIN_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``instrument_manufacturer``: Applanix * ``instrument_model``: POS AV 410 * ``long_name``: Rate-of-change of pitch angle from POS AV 410 GPS-aided Inertial Navigation unit * ``standard_name``: platform_pitch_rate * ``units``: degree s-1 * HDGR_GIN * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: HDGR_GIN_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``instrument_manufacturer``: Applanix * ``instrument_model``: POS AV 410 * ``long_name``: Rate-of-change of heading from POS AV 410 GPS-aided Inertial Navigation unit * ``standard_name``: platform_yaw_rate * ``units``: degree s-1 * ACLF_GIN * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: ACLF_GIN_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``instrument_manufacturer``: Applanix * ``instrument_model``: POS AV 410 * ``long_name``: Acceleration along the aircraft longitudinal axis from POS AV 410 GPS-aided Inertial Navigation unit (positive forward) * ``units``: m s-2 * ACLS_GIN * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: ACLS_GIN_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``instrument_manufacturer``: Applanix * ``instrument_model``: POS AV 410 * ``long_name``: Acceleration along the aircraft transverse axis from POS AV 410 GPS-aided Inertial Navigation unit (positive starboard) * ``units``: m s-2 * ACLD_GIN * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: ACLD_GIN_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``instrument_manufacturer``: Applanix * ``instrument_model``: POS AV 410 * ``long_name``: Acceleration along the aircraft vertical axis from POS AV 410 GPS-aided Inertial Navigation unit (positive down) * ``units``: m s-2 * STATUS_GIN * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: STATUS_GIN_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``instrument_manufacturer``: Applanix * ``instrument_model``: POS AV 410 * ``long_name``: Solution status from POS AV 410 GPS-aided Inertial Navigation unit * ``units``: 1 Flags ----- Variables in this module use bitmask flags. Some, all or none of these flags may be applied to each variable. Interrogate flag variable attributes ``flag_masks`` and ``flag_meanings`` to find the flags for each variable. * ``no_solution`` - The GIN status flag indicates no solution has been obtained. * ``latlon_identically_zero`` - Latitude and Longitude are exactly zero. This indicates an erroneous data message. .. _Heimann: ------- Heimann ------- Processing for the Heimann Radiometer. The Heimann outputs a voltage with a range of 0 - 10 V corresponding to an inferred brightness temperature of :math:`-50` - :math:`50` :math:`^\circ\text{C}`. This module simply applies a linear transformation to the counts recorded on the DLU to convert counts :math:`\rightarrow` volts :math:`\rightarrow` temperature. During a calibration, temperature from the black body are reported. Parameters for the linear transformations are taken from the flight constant parameters ``HEIMCAL`` for the Heimann and ``PRTCCAL`` for the PRT on the black body. Outputs ------- * BTHEIM_U * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: BTHEIM_U_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 4 * ``instrument_manufacturer``: Heitronics * ``instrument_model``: KT19.82 * ``instrument_serial_number``: * ``long_name``: Uncorrected brightness temperature from the Heimann radiometer * ``units``: K Flags ----- Variables in this module use bitmask flags. Some, all or none of these flags may be applied to each variable. Interrogate flag variable attributes ``flag_masks`` and ``flag_meanings`` to find the flags for each variable. * ``aircraft_on_ground`` - The aircraft is on the ground * ``data_out_of_range`` - Brightness temperature is outside the range 253.15 - 313.15 K * ``in_calibration`` - The Heimann is in a calibration cycle. Black body temperature is being reported * ``data_missing`` - Data are expected but not present .. _KippZonenPyrgeometer: -------------------- KippZonenPyrgeometer -------------------- Calculation of longwave fluxes from the upward and downward facing Kipp and Zonen CR4 Pyrgeometers. The 0 - 32 mV output of the CR4 thermopile is mapped to a 4 - 20 mA signal in the amp box, which carries sensor specific calibrations, corresponding to a flux range of :math:`-600` - :math:`200` Wm\ :math:`^{-2}`. This is then converted to a voltage using a 350 :math:`\Omega` resistor, which is recorded in the DLU, with 16 bits covering a :math:`-10` - :math:`10` V range. Similarly, the thermistor is placed in parallel with a 100 k\ :math:`\Omega` linearising resistor, and 100 :math:`\mu`\ A is passed through the combination, with the resulting voltage measured at the DLU. This module first applies the inverse transformations to recover the amp box current and the thermistor resistance. The thermistor temperature is given by .. math:: T = \left(\alpha + \left(\beta\log\left(R\right) + \gamma\log\left(R\right)^3\right)\right)^{-1}, where :math:`R` is the thermistor resistance and :math:`\alpha`, :math:`\beta`, and :math:`\gamma` are calibration coefficients supplied by the manufacturer. The longwave flux, :math:`L_D`, is then given by .. math:: L_D = \beta(A - \alpha) - \gamma + \sigma T^4, where :math:`\alpha = 4`, :math:`\beta=50`, and :math:`\gamma=600` map the current from the amp box, :math:`A`, onto the specified range of flux values, :math:`T` is the temperature recorded by the thermistor, and :math:`\sigma` is the Stefan-Boltzmann constant. Outputs ------- * IR_UP_C * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: IR_UP_C_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``instrument_manufacturer``: Kipp and Zonen * ``instrument_model``: CGR 4 * ``instrument_serial_number``: * ``long_name``: Corrected upward longwave irradiance * ``units``: W m-2 * IR_DN_C * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: IR_DN_C_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``instrument_manufacturer``: Kipp and Zonen * ``instrument_model``: CGR 4 * ``instrument_serial_number``: * ``long_name``: Corrected downward longwave irradiance * ``units``: W m-2 Flags ----- Variables in this module use bitmask flags. Some, all or none of these flags may be applied to each variable. Interrogate flag variable attributes ``flag_masks`` and ``flag_meanings`` to find the flags for each variable. * ``aircraft_on_ground`` - Aircraft is on the ground .. _Nephelometer: ------------ Nephelometer ------------ Provides data and flagging information from the TSI nephelometer. The data from the nephelometer do not require any further processing, however this module parses the instrument status information to provide a QC flag for the data. .. note:: Prior to software version 24.0.0, this module used classic flagging. From version 24.0.0, the module uses bitmask flagging, and further flagging may be added by standalone flagging modules. Outputs ------- * TSC_BLUU * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: TSC_BLUU_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``instrument_manufacturer``: TSI * ``instrument_model``: 3563 * ``long_name``: Uncorrected blue total scattering coefficient from TSI 3563 Nephelometer * ``units``: m-1 * TSC_GRNU * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: TSC_GRNU_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``instrument_manufacturer``: TSI * ``instrument_model``: 3563 * ``long_name``: Uncorrected green total scattering coefficient from TSI 3563 Nephelometer * ``units``: m-1 * TSC_REDU * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: TSC_REDU_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``instrument_manufacturer``: TSI * ``instrument_model``: 3563 * ``long_name``: Uncorrected red total scattering coefficient from TSI 3563 Nephelometer * ``units``: m-1 * BSC_BLUU * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: BSC_BLUU_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``instrument_manufacturer``: TSI * ``instrument_model``: 3563 * ``long_name``: Uncorrected blue back scattering coefficient from TSI 3563 Nephelometer * ``units``: m-1 * BSC_GRNU * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: BSC_GRNU_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``instrument_manufacturer``: TSI * ``instrument_model``: 3563 * ``long_name``: Uncorrected green back scattering coefficient from TSI 3563 Nephelometer * ``units``: m-1 * BSC_REDU * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: BSC_REDU_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``instrument_manufacturer``: TSI * ``instrument_model``: 3563 * ``long_name``: Uncorrected red back scattering coefficient from TSI 3563 Nephelometer * ``units``: m-1 * NEPH_PR * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: NEPH_PR_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``instrument_manufacturer``: TSI * ``instrument_model``: 3563 * ``long_name``: Internal sample pressure of the Nephelometer * ``units``: hPa * NEPH_T * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: NEPH_T_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``instrument_manufacturer``: TSI * ``instrument_model``: 3563 * ``long_name``: Internal sample temperature of the Nephelometer * ``units``: K * NEPH_RH * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: NEPH_RH_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``instrument_manufacturer``: TSI * ``instrument_model``: 3563 * ``long_name``: Relative humidity from TSI 3563 Nephelometer * ``units``: % Flags ----- Variables in this module use bitmask flags. Some, all or none of these flags may be applied to each variable. Interrogate flag variable attributes ``flag_masks`` and ``flag_meanings`` to find the flags for each variable. * ``instrument_flag_raised`` - A fault has been raised by the instrument .. _Nevzorov: -------- Nevzorov -------- Post processing for liquid and total water from the Nevzorov Vane. Works with both ``1T1L2R`` and ``1T2L1R`` vanes, which should be specified in the flight constants as ``VANETYPE``. The Nevzorov hot-wire probe measures total and liquid water content by recording the powers required to hold exposed and sheltered wires at a constant temperature. The water content, :math:`W`, measured by a collector is given by .. math:: W = \frac{P_c - K P_r}{V_t A L}, where :math:`P_c` is the collector power, :math:`P_r` is the reference power, :math:`K` is the baseline, the ratio of :math:`P_c` and :math:`P_r` in clear air, :math:`V_t` is the true air speed, :math:`A` is the forward-facing area of the collector, and :math:`L` is the energy required to melt and then evaporate the water impacted on the sensor, specified in the flight constants as ``CALNVL``. The baseline, :math:`K`, is not a true constant, but varies with the ambient conditions. `Abel et al. (2014) `_ parameterise :math:`K` as a function of indicated air speed, :math:`V_\text{IAS}` and ambient pressure, :math:`P`, .. math:: K = \alpha_\text{IAS}\frac{1}{V_\text{IAS}} + \alpha_P\log_{10}(P). If, for any reason, the fitting above fails, then only the uncorrected outputs, using a constant :math:`K` specified in the flight constants, are written to file. The outputs listed produced by this module depend on the type of Nevzorov vane fitted to the aircraft. If an old-style ``1T1L2R`` vane is fitted, then the default outputs are `NV_TWC_U`, `NV_TWC_C`, `NV_LWC_U`, `NV_LWC_C`. If a new-style ``1T2L1R`` vane is fitted, then the default outputs are `NV_TWC_U`, `NV_TWC_C`, `NV_LWC1_U`, `NV_LWC1_C`, `NV_LWC2_U`, `NV_LWC2_C`. Outputs ------- * NV_TWC_C * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: NV_TWC_C_FLAG * ``comment``: Automatically baselined. May require further processing. * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 64 * ``instrument_manufacturer``: Sky Phys Tech Inc. * ``instrument_model``: * ``instrument_serial_number``: * ``long_name``: Corrected total condensed water content from the Nevzorov probe * ``units``: gram m-3 * NV_TWC_U * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: NV_TWC_U_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 64 * ``instrument_manufacturer``: Sky Phys Tech Inc. * ``instrument_model``: * ``instrument_serial_number``: * ``long_name``: Uncorrected total condensed water content from the Nevzorov probe * ``units``: gram m-3 * NV_TWC_COL_P * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: NV_TWC_COL_P_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 64 * ``instrument_manufacturer``: Sky Phys Tech Inc. * ``instrument_model``: * ``instrument_serial_number``: * ``long_name``: TWC collector power * ``units``: W * NV_TWC_REF_P * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: NV_TWC_REF_P_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 64 * ``instrument_manufacturer``: Sky Phys Tech Inc. * ``instrument_model``: * ``instrument_serial_number``: * ``long_name``: TWC reference power * ``units``: W * NV_REF_P * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: NV_REF_P_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 64 * ``instrument_manufacturer``: Sky Phys Tech Inc. * ``instrument_model``: * ``instrument_serial_number``: * ``long_name``: Reference power * ``units``: W * NV_LWC_C * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: NV_LWC_C_FLAG * ``comment``: Automatically baselined. May require further processing. * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 64 * ``instrument_manufacturer``: Sky Phys Tech Inc. * ``instrument_model``: * ``instrument_serial_number``: * ``long_name``: Corrected liquid water content from the Nevzorov probe * ``standard_name``: mass_concentration_of_liquid_water_in_air * ``units``: gram m-3 * NV_LWC_U * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: NV_LWC_U_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 64 * ``instrument_manufacturer``: Sky Phys Tech Inc. * ``instrument_model``: * ``instrument_serial_number``: * ``long_name``: Uncorrected liquid water content from the Nevzorov probe * ``units``: gram m-3 * NV_LWC_COL_P * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: NV_LWC_COL_P_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 64 * ``instrument_manufacturer``: Sky Phys Tech Inc. * ``instrument_model``: * ``instrument_serial_number``: * ``long_name``: LWC collector power * ``units``: W * NV_LWC_REF_P * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: NV_LWC_REF_P_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 64 * ``instrument_manufacturer``: Sky Phys Tech Inc. * ``instrument_model``: * ``instrument_serial_number``: * ``long_name``: LWC reference power * ``units``: W * NV_LWC1_C * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: NV_LWC1_C_FLAG * ``comment``: Automatically baselined. May require further processing. * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 64 * ``instrument_manufacturer``: Sky Phys Tech Inc. * ``instrument_model``: * ``instrument_serial_number``: * ``long_name``: Corrected liquid water content from the Nevzorov probe (1st collector) * ``standard_name``: mass_concentration_of_liquid_water_in_air * ``units``: gram m-3 * NV_LWC1_U * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: NV_LWC1_U_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 64 * ``instrument_manufacturer``: Sky Phys Tech Inc. * ``instrument_model``: * ``instrument_serial_number``: * ``long_name``: Uncorrected liquid water content from the Nevzorov probe (1st collector) * ``units``: gram m-3 * NV_LWC1_COL_P * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: NV_LWC1_COL_P_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 64 * ``instrument_manufacturer``: Sky Phys Tech Inc. * ``instrument_model``: * ``instrument_serial_number``: * ``long_name``: LWC1 collector power * ``units``: W * NV_LWC2_C * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: NV_LWC2_C_FLAG * ``comment``: Automatically baselined. May require further processing. * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 64 * ``instrument_manufacturer``: Sky Phys Tech Inc. * ``instrument_model``: * ``instrument_serial_number``: * ``long_name``: Corrected liquid water content from the Nevzorov probe (2nd collector) * ``standard_name``: mass_concentration_of_liquid_water_in_air * ``units``: gram m-3 * NV_LWC2_U * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: NV_LWC2_U_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 64 * ``instrument_manufacturer``: Sky Phys Tech Inc. * ``instrument_model``: * ``instrument_serial_number``: * ``long_name``: Uncorrected liquid water content from the Nevzorov probe (2nd collector) * ``units``: gram m-3 * NV_LWC2_COL_P * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: NV_LWC2_COL_P_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 64 * ``instrument_manufacturer``: Sky Phys Tech Inc. * ``instrument_model``: * ``instrument_serial_number``: * ``long_name``: LWC2 collector power * ``units``: W * NV_CLEAR_AIR_MASK * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: NV_CLEAR_AIR_MASK_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 64 * ``instrument_manufacturer``: Sky Phys Tech Inc. * ``instrument_model``: * ``instrument_serial_number``: * ``long_name``: Clear air mask based on Nevzorov Total Water power variance * ``units``: None Flags ----- Variables in this module use bitmask flags. Some, all or none of these flags may be applied to each variable. Interrogate flag variable attributes ``flag_masks`` and ``flag_meanings`` to find the flags for each variable. * ``aircraft_on_ground`` - The aircraft is on the ground .. _PRTTemperatureUncertainties: --------------------------- PRTTemperatureUncertainties --------------------------- For further details see the `FAAM Met. Handbook `_. This module calculates combined uncertainty estimates for indicated and true air temperatures, when these are recorded with platinum resistance thermometers. Uncertainties in the indicated temperatures are derived from: * Uncertainty in the thermometer calibration from NPL * Drift of sensors between NPL calibrations * Resolution uncertainty in the DECADES DLU * DECADES calibration uncertainty * Noise in the system when a fixed resistor is fitted * Keithley calibration * Keithley stability * DECADES calibration (counts to resistance) residual * NPL calibration (resistance to temperature) residual. Uncertainties in the true air temperatures are derived from: * Uncertainty of the corresponding indicated air temperature * Uncertainty in the Mach number * Uncertainty in the ratio of specific heats * Uncertainty in the variable housing recovery factor. Outputs ------- * IAT_ND_R_CU * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: IAT_ND_R_FLAG * ``coordinates``: * ``coverage_content_type``: auxiliaryInformation * ``frequency``: 32 * ``long_name``: Combined uncertainty estimate for IAT_ND_R * ``units``: K * TAT_ND_R_CU * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: TAT_ND_R_FLAG * ``coordinates``: * ``coverage_content_type``: auxiliaryInformation * ``frequency``: 32 * ``long_name``: Combined uncertainty estimate for TAT_ND_R * ``units``: K * IAT_DI_R_CU * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: IAT_DI_R_FLAG * ``coordinates``: * ``coverage_content_type``: auxiliaryInformation * ``frequency``: 32 * ``long_name``: Combined uncertainty estimate for IAT_DI_R * ``units``: K * TAT_DI_R_CU * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: TAT_DI_R_FLAG * ``coordinates``: * ``coverage_content_type``: auxiliaryInformation * ``frequency``: 32 * ``long_name``: Combined uncertainty estimate for TAT_DI_R * ``units``: K Flags ----- .. _PRTTemperatures: --------------- PRTTemperatures --------------- For further details see the `FAAM Met. Handbook `_. Calculate indicated and true (static) air temperatures from the deiced and non-deiced Rosemount housings, when fitted with platinum resistance thermometer sensors. Indicated temperatures are calculated with a polynomial transformation of the DLU signal, using calibration factors in constants variables ``CALDIT`` and ``CALNDT``, which incorporates the DLU and sensor calibrations. The deiced indicated temperature is subject to a heating correction term when the heater is active, given by .. math:: \Delta T_{\text{IAT}} = \frac{1}{10}\exp{\left(\exp{\left(a + \left(\log\left(M\right)+b\right)\left(c\left(q+P\right)+d\right)\right) }\right),} where :math:`M` is the Mach number, :math:`q` is the dynamic pressure and :math:`P` the static pressure. The parameters :math:`a`, :math:`b`, :math:`c`, and :math:`s` are .. math:: \left[1.171, 2.738, -0.000568, -0.452\right]. True air temperatures are a function of indicated temperatures, Mach number and housing recovery factor, and are given by .. math:: T_\text{TAT} = \frac{T_\text{IAT}}{1 + \left(0.2 R_f M^2\right)}, where :math:`M` is the Mach number and :math:`R_f` the recovery factor. Recovery factors are calculated in the processing module `RecoveryFactor`. A flag is applied to the data when the Mach number is out of range. **Further flags may be added by standalone flagging modules**. Outputs ------- * TAT_ND_R * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: TAT_ND_R_FLAG * ``calibration_date``: * ``calibration_information``: * ``calibration_url``: * ``comment``: Sensor housed in Rosemount Aerospace Inc. Type 102 non-deiced Total Temperature Housing * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``long_name``: True air temperature from the Rosemount non-deiced temperature sensor * ``sensor_serial_number``: * ``sensor_type``: * ``standard_name``: air_temperature * ``units``: K * TAT_DI_R * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: TAT_DI_R_FLAG * ``calibration_date``: * ``calibration_information``: * ``calibration_url``: * ``comment``: Sensor housed in Rosemount Aerospace Inc. Type 102 deiced Total Temperature Housing * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``long_name``: True air temperature from the Rosemount deiced temperature sensor * ``sensor_serial_number``: * ``sensor_type``: * ``standard_name``: air_temperature * ``units``: K * IAT_ND_R * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: IAT_ND_R_FLAG * ``calibration_date``: * ``calibration_information``: * ``calibration_url``: * ``comment``: Sensor housed in Rosemount Aerospace Inc. Type 102 non-deiced Total Temperature Housing * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``long_name``: Indicated air temperature from the Rosemount non-deiced temperature sensor * ``sensor_serial_number``: * ``sensor_type``: * ``units``: K * IAT_DI_R * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: IAT_DI_R_FLAG * ``calibration_date``: * ``calibration_information``: * ``calibration_url``: * ``comment``: Sensor housed in Rosemount Aerospace Inc. Type 102 deiced Total Temperature Housing * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``long_name``: Indicated air temperature from the Rosemount deiced temperature sensor * ``sensor_serial_number``: * ``sensor_type``: * ``units``: K Flags ----- Variables in this module use bitmask flags. Some, all or none of these flags may be applied to each variable. Interrogate flag variable attributes ``flag_masks`` and ``flag_meanings`` to find the flags for each variable. * ``mach_out_of_range`` - Mach number is below acceptable minimum of 0.05 .. _PSAP: ---- PSAP ---- Reports data from the Radiance Research Particle Soot Absorbtion Photometer. The following transformations are applied to the data from the aerosol rack DLU: .. math:: F = \frac{F_\text{DLU}}{2}, .. math:: P_\text{lin} = \frac{P_{\text{lin}_\text{DLU}}}{2\times10^{5}}, .. math:: P_\text{log} = 10^{(P_{\text{log}_\text{DLU}} / 2) - 7}, .. math:: T = \frac{T_\text{DLU}}{8}, where :math:`P_\text{lin}`, :math:`P_\text{log}`, :math:`F`, and :math:`T` correspond to the outputs ``PSAP_LIN``, ``PSAP_LOG``, ``PSAP_FLO``, and ``PSAP_TRA`` respectively. Flagging is based on the flow rate and transmittance ratio limits. Outputs ------- * PSAP_FLO * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: PSAP_FLO_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``instrument_manufacturer``: Radiance Research * ``long_name``: PSAP Flow * ``units``: l min-1 * PSAP_LIN * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: PSAP_LIN_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``instrument_manufacturer``: Radiance Research * ``long_name``: Uncorrected absorbtion coefficient at 565nm, linear, from PSAP * ``units``: m-1 * PSAP_LOG * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: PSAP_LOG_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``instrument_manufacturer``: Radiance Research * ``long_name``: Uncorrected absorption coefficient at 565nm, log, from PSAP * ``units``: 1 * PSAP_TRA * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: PSAP_TRA_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``instrument_manufacturer``: Radiance Research * ``long_name``: PSAP Transmittance * ``units``: percent Flags ----- Variables in this module use bitmask flags. Some, all or none of these flags may be applied to each variable. Interrogate flag variable attributes ``flag_masks`` and ``flag_meanings`` to find the flags for each variable. * ``transmittance_out_of_range`` - Transmittance ratio is outside the valid range [0.5, 1.05 * ``flow_out_of_range`` - PSAP flow is out of range. This most likely indicates that the PSAP interrupt is active, to prevent water ingress .. _RadAlt: ------ RadAlt ------ Calculate the radar altitude, in metres. The radar altitude, from radalt2, is read from the aircraft ARINC-429 data bus at the rear core console, and recodred at a frequency of 2 Hz. The signal is received as a 16 bit signed integer, with a least significant bit resolution of 0.25 ft, giving a max valid value of :math:`(((2^{16} / 2) - 1) / 4)`. Data are flagged when below 10 feet or above 5000 feet, which is the nominal maximum range of the instrument, though altitude is reported up to 8000 ft. Outputs ------- * HGT_RADR * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: HGT_RADR_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 2 * ``instrument_manufacturer``: Thales * ``instrument_model``: AVH16 Radar Altimeter * ``long_name``: Radar height from the aircraft radar altimeter * ``standard_name``: height * ``units``: m Flags ----- Variables in this module use bitmask flags. Some, all or none of these flags may be applied to each variable. Interrogate flag variable attributes ``flag_masks`` and ``flag_meanings`` to find the flags for each variable. * ``data_out_of_range`` - RadAlt reading outside valid range (10.00, 1524.00) * ``aircraft_on_ground`` - The aircraft is on the ground, as indicated by the weight on wheels flag. .. _RecoveryFactor: -------------- RecoveryFactor -------------- For further details see the `FAAM Met. Handbook `_. This module produces a Mach dependent recovery factor for the deiced and non-deiced Rosemount housings, which house the temperature probes. The recovery factor for the non-deiced housing is given by Rosemount Aerospace as .. math:: \eta_{nd} = a_1 M + a_2 M^2 where :math:`a_1 = 0.0014054157` and :math:`a_2 = -0.00060943146` The recovery factor for the deiced housing is calculated from in-flight data, under the assumption that the recovery factor given by Rosemount is correct. It is given by .. math:: \eta_{di} = 1 - \alpha\left(1 - \eta_{nd}\right), where :math:`\alpha = 0.9989` is the average ratio of deiced and non-deiced indicated temperatures. Further information is available in the FAAM Recovery Factor report (H. Price, document # FAAM013006). Uncertainties are given by .. math:: \alpha_U &= 0.0006\\ \eta_{nd,U} &= -0.0003458119 M^2 + 0.00059345748 M\\ \eta_{di,U} &= ((\eta_{nd}-1)^2\alpha_U^2 + \alpha^2 \eta_{nd,U}^2)^\frac{1}{2} Outputs ------- * ETA_ND * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``long_name``: Variable recovery factor for non-deiced Rosemount housing * ``units``: 1 * ETA_DI * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``long_name``: Variable recovery factor for deiced Rosemount housing * ``units``: 1 * ETA_ND_CU * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: ETA_ND_FLAG * ``coordinates``: * ``coverage_content_type``: auxiliaryInformation * ``frequency``: 32 * ``long_name``: Uncertainty in recovery factor for deiced Rosemount housing * ``units``: 1 * ETA_DI_CU * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: ETA_DI_FLAG * ``coordinates``: * ``coverage_content_type``: auxiliaryInformation * ``frequency``: 32 * ``long_name``: Uncertainty in recovery factor for non-deiced Rosemount housing * ``units``: 1 Flags ----- .. _Rvsm: ---- Rvsm ---- Calculate derived parameters from the aircraft's RVSM system. Pressure altitude and indicated air speed are obtained from the aircraft's ARINC-429 data bus, with a least significant bit resolution of 4 ft and :math:`1/32` kts respectively. Static pressure, :math:`P`, is obtained from the pressure altitude, :math:`Z_p`, using the ICAO standard atmosphere, .. math:: P = P_0\left(\frac{T_0}{T_0 + L_0 \left(Z_p - h_0\right)}\right)^{\frac{g_0 M}{R L_0}}, where :math:`T_0=288.15`, :math:`L_0=-0.0065`, :math:`h_0=0`, :math:`g_0=9.80655`, :math:`M=0.0289644`, :math:`R=8.31432`, :math:`P_0=1013.25` below 11000 m, or .. math:: P = P_1\exp\left(\frac{-g_0 M \left(Z_p - h_1\right)}{R T_1}\right), where :math:`T_1=216.65`, :math:`P_1=226.321`, :math:`h_1=11000`, above 11000 m. Pitot static pressure, :math:`q`, is given as .. math:: q = P \left(\frac{M^2}{5} + 1\right)^{\frac{7}{2}} - 1, with the Mach number, :math:`M`, given by .. math:: M = \frac{V_{IAS}}{V_0 \sqrt{\frac{P}{P_0}}}, where :math:`V_0 = 340.294` and :math:`P_0=1013.25`, and :math:`V_{IAS}` is the indicated air speed. Data are flagged where either the pressure altitude or indicated air speed are considered out of range. Outputs ------- * PS_RVSM * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: PS_RVSM_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``instrument_manufacturer``: BAE Systems * ``long_name``: Static pressure from the aircraft RVSM (air data) system * ``standard_name``: air_pressure * ``units``: hPa * PALT_RVS * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: PALT_RVS_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``instrument_manufacturer``: BAE Systems * ``long_name``: Pressure altitude from the aircraft RVSM (air data) system * ``standard_name``: barometric_altitude * ``units``: m * Q_RVSM * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: Q_RVSM_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``instrument_manufacturer``: BAE Systems * ``long_name``: Pitot static pressure inverted from RVSM (air data) system indicated airspeed * ``units``: hPa Flags ----- Variables in this module use bitmask flags. Some, all or none of these flags may be applied to each variable. Interrogate flag variable attributes ``flag_masks`` and ``flag_meanings`` to find the flags for each variable. * ``altitude_out_of_range`` - Pressure altitude outside acceptable range [-2000, 50000] * ``ias_out_of_range`` - Indicated air speed outside acceptable range [-50, 500] .. _S10Pressure: ----------- S10Pressure ----------- Calculate static pressure from the S10 fuselage ports. Static pressure is calulated by applying a polynomial transformation to the DLU signal. The coefficients, specified in the flight constants parameter ``CALS10SP``, combine both the DLU and pressure transducer calibrations. Data are flagged when they are considered out of range. Outputs ------- * P10_STAT * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: P10_STAT_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``long_name``: Static pressure from S10 fuselage ports * ``sensor_manufacturer``: Rosemount Aerospace Inc. * ``sensor_model``: 1201F2 * ``sensor_serial_number``: * ``standard_name``: air_pressure * ``units``: hPa Flags ----- Variables in this module use bitmask flags. Some, all or none of these flags may be applied to each variable. Interrogate flag variable attributes ``flag_masks`` and ``flag_meanings`` to find the flags for each variable. * ``data_out_of_range`` - Pressure outside acceptable limits [100, 1050] .. _S9Pressure: ---------- S9Pressure ---------- Calculate static pressure from the S9 fuselage ports. Static pressure is calulated by applying a polynomial transformation to the DLU signal. The coefficients, specified in the flight constants parameter ``CALS9SP``, combine both the DLU and pressure transducer calibrations. Additionally, a Mach dependent 'position error' correction term is applied, aimed at accounting for the unknown position error associated with the S9 port, derived by minimising errors between the S9 and RVSM static pressure measurements. This correction is of the form .. math:: \Delta P = \alpha M ^ \beta, with parameters :math:`\alpha` and :math:`\beta` specified in the flight constants parameter ``S9_PE_C``. Data are flagged when they are considered out of range. Outputs ------- * P9_STAT * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: P9_STAT_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``long_name``: Static pressure from S9 fuselage ports * ``sensor_manufacturer``: Rosemount Aerospace Inc. * ``sensor_model``: 1201F2 * ``sensor_serial_number``: * ``standard_name``: air_pressure * ``units``: hPa * P9_STAT_U * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: P9_STAT_U_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``long_name``: Static pressure from S9 fuselage ports, uncorrected * ``sensor_manufacturer``: Rosemount Aerospace Inc. * ``sensor_model``: 1201F2 * ``sensor_serial_number``: * ``standard_name``: air_pressure * ``units``: hPa Flags ----- Variables in this module use bitmask flags. Some, all or none of these flags may be applied to each variable. Interrogate flag variable attributes ``flag_masks`` and ``flag_meanings`` to find the flags for each variable. * ``data_out_of_range`` - Pressure outside acceptable limits [100, 1050] .. _SeaProbe: -------- SeaProbe -------- Calculates bulk water contents from the SEA WCM-2000 sensor. **Element Power** First element powers :math:`P = V*I` are derived from recorded voltages and currents for each element (TWC, 083, 021, CMP, DCE). **Cloud mask** A cloud mask is derived using a rolling window applied to the TWC element temperature, with the aircraft assumed to be in cloud whenever the temperature range within the rolling window exceeds a specified range, or where the temperature withing the window exceeds a specified high or low value. **Parameters** Temperature of evaporation, :math:`T_{\text{evap}}`, and latent heat of evaporation, :math:`L_{\text{evap}}`, are given by .. math:: T_{\text{evap}} &= 32.16 + 0.1901 P - 2.391\times 10^{-4} P^2 + 1.785\times 10^{-7} P^3 - 5.19\times 10^4, \\ L_\text{evap} &= 4.1868\left( 594.4 - 0.484 T_\text{evap} - 7\times 10^{-4} T_\text{evap}^2 \right), where :math:`P` is the static pressure from the aircraft's air data system. The specific energies for evaporation and sublimination, :math:`L_\text{liq}` and :math:`L_\text{ice}`, are given by .. math:: L_\text{liq} = C_\text{liq}(T_\text{evap} - T_a) + L_\text{evap}, where :math:`T_a` is the ambient air temperature, and .. math:: C_\text{liq}\left(T\right) = 4.169828 + (0.000364(T+100)^{5.26})\cdot10^{-10} + 0.046709 \cdot 10^{-0.036 T}, and .. math:: L_\text{ice} = C_\text{ice}(T) + L_\text{ice} + C_\text{liq}(T_\text{evap}) + L_\text{evap}, where :math:`L_\text{ice} = 333.5`, and :math:`C_\text{ice}` is given by an interpolant between :math:`T = [77, 173, 273]` and :math:`C = [0.686, 1.372, 2.097]`. **Dry air term** The dry air compensation term is calculated in two methods, with the method which gives the best fit meing used * Method 1: Calculate dry air power term by fitting constants for 1st principles. The calculation of the dry air power term is based on method three as described on page 58 of the WCM-2000 manual. This uses a fit between the theoretical and measured (in cloud-free conditions) sense powers to find the fitting constants :math:`k_1` and :math:`k_2` (:math:`k_2\approx0.5`). .. math:: P_\text{sense,dry} &= k_1 (T - T_a) (P \times \text{TAS})^{k_2} \\ P_\text{sense,total} &= P_\text{sense,dry} + P_\text{sense,wet} \\ &\rightarrow P_\text{sense,total} - P_\text{sense,dry} = 0 \text{ in cloud-free conditions.} * Method 2: Calculate dry air power term from compensation element measurements. The calculation of the dry air power term (DAT) is based on the use of the compensation element as described on page 56 of the WCM-2000 manual. This finds the slope and offset for conversion of the compensation power to dry air sense element power. .. math:: P_\text{sense,dry} &= P0 + K P_\text{comp} \\ P_\text{sense,total} &= P0 + K P_\text{comp} \text{ when in clear air} This will be TAS and :math:`P` dependent (possibly :math:`T_a`). This function determines optimum fitting parameters for the entire dataset, thus any baseline drift shall be lost. **Sense element water content** The water content for an element is given by .. math:: W = \frac{(2.389 \times 10^5) P_\text{sense}} {L_\text{evap} + (T_\text{evap} - T_a) \times \text{TAS} \times w \times h}, where :math:`P_\text{sense}` is the (wet) sense element power, and :math:`w` and :math:`h` are the width and height of the sense element, respectively. .. note:: The flags on upstream variables ``TAT_DI_R`` and ``TAS_RVSM`` are not included in the ``dependency_is_flagged`` flag of this variable, as these are likely to be flagged whenever the aircraft is in cloud. Outputs ------- * SEA_TWC_021 * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: SEA_TWC_021_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 20 * ``instrument_manufacturer``: Science Engineering Associates, Inc. * ``instrument_model``: WCM-2000 * ``instrument_serial_number``: * ``long_name``: Total water content from the SEA WCM-2000 probe, element 021 * ``units``: g m-3 * SEA_TWC_083 * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: SEA_TWC_083_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 20 * ``instrument_manufacturer``: Science Engineering Associates, Inc. * ``instrument_model``: WCM-2000 * ``instrument_serial_number``: * ``long_name``: Total water content from the SEA WCM-2000 probe, element 083 * ``units``: g m-3 * SEA_LWC_021 * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: SEA_LWC_021_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 20 * ``instrument_manufacturer``: Science Engineering Associates, Inc. * ``instrument_model``: WCM-2000 * ``instrument_serial_number``: * ``long_name``: Liquid water content from the SEA WCM-2000 probe, element 021 * ``standard_name``: mass_concentration_of_liquid_water_in_air * ``units``: g m-3 * SEA_LWC_083 * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: SEA_LWC_083_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 20 * ``instrument_manufacturer``: Science Engineering Associates, Inc. * ``instrument_model``: WCM-2000 * ``instrument_serial_number``: * ``long_name``: Liquid water content from the SEA WCM-2000 probe, element 083 * ``standard_name``: mass_concentration_of_liquid_water_in_air * ``units``: g m-3 Flags ----- Variables in this module use bitmask flags. Some, all or none of these flags may be applied to each variable. Interrogate flag variable attributes ``flag_masks`` and ``flag_meanings`` to find the flags for each variable. * ``element_temperature_out_of_range`` - No flag description provided. * ``aircraft_on_ground`` - No flag description provided. .. _SignalRegister: -------------- SignalRegister -------------- The DECADES signal register is a packed representation of some boolean state variables, which is used internally in DECADES. Here we reproduce part of the register from flag variables reported in the TCP data, for use in other processing modules. No outputs defined here are expected to ever be written to file. Outputs ------- * SREG * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: SREG_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 2 * ``long_name``: Signal Register * ``units``: None Flags ----- Variables in this module use classic, value based flagging. * SREG_FLAG * ``-128``: ``data_not_flagged`` - A fill value. No flagging information has been provided .. _SolarAngles: ----------- SolarAngles ----------- Calculates solar azimuth and zenith angles at the aircraft location. Uses the third party python module ``pysolar``. Outputs ------- * SOL_ZEN * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: SOL_ZEN_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``long_name``: Solar zenith derived from aircraft position and time * ``standard_name``: solar_zenith_angle * ``units``: degree * SOL_AZIM * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: SOL_AZIM_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``long_name``: Solar azimuth derived from aircraft position and time * ``standard_name``: solar_azimuth_angle * ``units``: degree Flags ----- Variables in this module use classic, value based flagging. * SOL_ZEN_FLAG * ``-128``: ``data_not_flagged`` - A fill value. No flagging information has been provided * SOL_AZIM_FLAG * ``-128``: ``data_not_flagged`` - A fill value. No flagging information has been provided .. _TPress: ------ TPress ------ This module calculates turbulence probe pressure differentials between P0-S10, left-right, and up-down. The raw inputs are DLU counts from the differential pressure transducers. Pressures are calculated with polynomial fits to the raw counts, which encompass both the pressure to volts calibration of the transducer, and the volts to counts calibration of the DLU. These are given in the constant parameters ``CALTP1``, ``CALTP2``, and ``CALTP3``, for P0-S10, up-down, and left right, respectively. Data are flagged when outside specified limits. Outputs ------- * P0_S10 * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: P0_S10_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``long_name``: Calibrated differential pressure between centre (P0) port and S10 static * ``sensor_manufacturer``: Rosemount Aerospace. Inc. * ``sensor_model``: 1221F2 * ``sensor_serial_number``: * ``units``: hPa * PA_TURB * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: PA_TURB_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``long_name``: Calibrated differential pressure between turbulence probe vertical ports * ``sensor_manufacturer``: Rosemount Aerospace. Inc. * ``sensor_model``: 1221F2 * ``sensor_serial_number``: * ``units``: hPa * PB_TURB * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: PB_TURB_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``long_name``: Calibrated differential pressure between turbulence probe horizontal ports * ``sensor_manufacturer``: Rosemount Aerospace. Inc. * ``sensor_model``: 1221F2 * ``sensor_serial_number``: * ``units``: hPa Flags ----- Variables in this module use classic, value based flagging. * P0_S10_FLAG * ``0``: ``data_good`` - None * ``1``: ``data_out_of_range`` - None * PA_TURB_FLAG * ``0``: ``data_good`` - None * ``1``: ``data_out_of_range`` - None * PB_TURB_FLAG * ``0``: ``data_good`` - None * ``1``: ``data_out_of_range`` - None .. _TecoSO2: ------- :del:`TecoSO2` ------- .. warning:: This module depreciated for flights after 2021-01-09 Calculate SO\ :math:`_2` concentration from the TECO 43 instrument. The instrument reports a nominal concentration and sensitivity, valve states V6 (indicating cylinder air) and V8 (indicating cabin air), and a status flag. Zeros are taken whenever the instrument in sampling cylinder or cabin air, and interploated back to 1 Hz, assuming a linear drift of the offsets between zeros. SO\ :math:`_2` concentration is then given by .. math:: \left[\text{SO}_2\right] = \frac{\left[\text{SO}_{2|\text{INS}}\right] - Z}{S}, where :math:`\left[\text{SO}_{2|\text{INS}}\right]` is the concentration reported by the instrument, :math:`Z` is the zero obtained from sampling cylinder or cabin air, and :math:`S` is the sensitivity reported by the instrument. Flagging is based on valve states and the instrument status flag. Outputs ------- * SO2_TECO * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: SO2_TECO_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``instrument_manufacturer``: Thermo Fisher Scientific, Inc. * ``instrument_model``: 43i TLE pulsed fluorescence SO2 spectrometer * ``long_name``: Mole fraction of Sulphur Dioxide in air from TECO 43 instrument * ``standard_name``: mole_fraction_of_sulfur_dioxide_in_air * ``units``: ppb Flags ----- Variables in this module use bitmask flags. Some, all or none of these flags may be applied to each variable. Interrogate flag variable attributes ``flag_masks`` and ``flag_meanings`` to find the flags for each variable. * ``aircraft_on_ground`` - Aircraft is on the ground * ``before_first_zero`` - The instrument has not yet sampled cylinder or cabin air, the zero is invalid * ``in_zero`` - The instrument is currently sampling cylinder or cabin air for a zero reading * ``in_alarm`` - The instrument status flag is currently indicating an alarm state .. _TecoSO2V2: --------- TecoSO2V2 --------- .. note:: This module only active for flights after 2021-01-09 Calculate SO\ :math:`_2` concentration from the TECO 43 instrument. Zeros are taken whenever valve states V7 or V8 are 1, and are interpolated back to 1 Hz, assuming a linear drift of the offsets between zeros. SO\ :math:`_2` concentration is then given by .. math:: \left[\text{SO}_2\right] = \frac{\left[\text{SO}_{2|\text{INS}}\right] - Z}{S}, where :math:`\left[\text{SO}_{2|\text{INS}}\right]` is the concentration reported by the instrument, :math:`Z` is the zero obtained from sampling scrubbed ambient air, and :math:`S` is the instrument sensitivity given in the flight constants. Flagging is based on valve states, weight on wheels, and the instrument status flag. Outputs ------- * SO2_TECO * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: SO2_TECO_FLAG * ``calibration_date``: * ``calibration_information``: * ``calibration_url``: * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``instrument_manufacturer``: Thermo Fisher Scientific, Inc. * ``instrument_model``: 43i Trace Level-Enhanced pulsed fluorescence SO2 spectrometer * ``instrument_serial_number``: 1505564557 * ``long_name``: Mole fraction of Sulphur Dioxide in air from TECO 43 instrument * ``standard_name``: mole_fraction_of_sulfur_dioxide_in_air * ``units``: ppb * SO2_TECO_ZERO * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``calibration_date``: * ``calibration_information``: * ``calibration_url``: * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``instrument_manufacturer``: Thermo Fisher Scientific, Inc. * ``instrument_model``: 43i Trace Level-Enhanced pulsed fluorescence SO2 spectrometer * ``instrument_serial_number``: 1505564557 * ``long_name``: TECO 43 SO2 interpolated zero * ``units``: ppb Flags ----- .. _TeiOzone: -------- TeiOzone -------- Provides ozone concentration from the TE49C O\ :math:`_3` analyser. Ozone data are taken as-is from the instrument; this module provides flagging information based on threshold values and instrument status flags. Outputs ------- * O3_TECO * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: O3_TECO_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``instrument_manufacturer``: Thermo Fisher Scientific, Inc. * ``instrument_model``: 49i IV absorption ozone photometer * ``long_name``: Mole fraction of Ozone in air from the TECO 49 instrument * ``standard_name``: mole_fraction_of_ozone_in_air * ``units``: ppb Flags ----- Variables in this module use bitmask flags. Some, all or none of these flags may be applied to each variable. Interrogate flag variable attributes ``flag_masks`` and ``flag_meanings`` to find the flags for each variable. * ``instrument_alarm`` - The status flag provided by the instrument is indicating an alarm state * ``conc_out_of_range`` - Reported ozone concentration is below the valid minimum of -10 * ``flow_out_of_range`` - At least one of the recorded flow rates is below the valid minimum of 0.5 * ``aircraft_on_ground`` - The aircraft is on the ground .. _ThermistorV1Temperatures: ------------------------ ThermistorV1Temperatures ------------------------ Calculate indicated and true (static) air temperatures from the Rosemount temperature probes, for the V1 (prototype) thermistor circuit. Note that when using this circuit, only one of the housings may host a thermistor type sensor. * Processes the NPL calibrations to produce a resistance to probe temperature relationship. The NPL calibration is performed with two different applied voltages so that self-heating can be calculated. This allows the probe temperature to be inferred by adding the calibration chamber temperature to the self-heating in order to produce a useable probe temperature to resistance calibration.} * Processes the NPL calibrations for a temperature to dissipation constant relationship. The dissipation constant measured in the calibration chamber for a given temperature is used later in the removal of self-heating in flight.} * Calculates the indicated temperature of the thermistor sensor by applying the NPL calibration and the DECADES counts to voltage calibration. * Calculates the dissipation constant at that indicated temperature based on the calibration dissipation constant and the flight dissipation multiplier (as described in FAAM013004A).} * Calculates the in-flight self-heating for each measurement, based on the voltage measurements and in-flight dissipation constants.} * Produces an indicated temperature corrected for self-heating by subtracting the self-heating from the temperature of the sensor.} The deiced indicated temperature is subject to a heating correction term when the heater is active, given by .. math:: \Delta T_{\text{IAT}} = \frac{1}{10}\exp{\left(\exp{\left(a + \left(\log\left(M\right)+b\right)\left(c\left(q+P\right)+d\right)\right) }\right),} where :math:`M` is the Mach number, :math:`q` is the dynamic pressure and :math:`P` the static pressure. The parameters :math:`a`, :math:`b`, :math:`c`, and :math:`d` are .. math:: \left[1.171, 2.738, -0.000568, -0.452\right]. True air temperatures are a function of indicated temperatures, Mach number and housing recovery factor, and are given by .. math:: T_\text{TAT} = \frac{T_\text{IAT}}{1 + \left(0.2 R_f M^2\right)}, where :math:`M` is the Mach number and :math:`R_f` the recovery factor. Recovery factors are currently considered constant, and are specified in the flight constants parameters ``RM_RECFAC/DI`` and ``RM\_RECFAC/ND``. A flag is applied to the data when the Mach number is out of range. **Further flags may be added by standalone flagging modules.** Outputs ------- * IAT_ND_R * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: IAT_ND_R_FLAG * ``calibration_date``: * ``calibration_information``: * ``calibration_url``: * ``comment``: Sensor housed in Rosemount Aerospace Inc. Type 102 non-deiced Total Temperature Housing * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``long_name``: Indicated air temperature from the Rosemount non-deiced temperature sensor * ``sensor_serial_number``: * ``sensor_type``: thermistor * ``units``: K * TAT_ND_R * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: TAT_ND_R_FLAG * ``calibration_date``: * ``calibration_information``: * ``calibration_url``: * ``comment``: Sensor housed in Rosemount Aerospace Inc. Type 102 non-deiced Total Temperature Housing * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``long_name``: True air temperature from the Rosemount non-deiced temperature sensor * ``sensor_serial_number``: * ``sensor_type``: thermistor * ``standard_name``: air_temperature * ``units``: K * IAT_DI_R * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: IAT_DI_R_FLAG * ``calibration_date``: * ``calibration_information``: * ``calibration_url``: * ``comment``: Sensor housed in Rosemount Aerospace Inc. Type 102 deiced Total Temperature Housing * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``long_name``: Indicated air temperature from the Rosemount deiced temperature sensor * ``sensor_serial_number``: * ``sensor_type``: thermistor * ``units``: K * TAT_DI_R * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: TAT_DI_R_FLAG * ``calibration_date``: * ``calibration_information``: * ``calibration_url``: * ``comment``: Sensor housed in Rosemount Aerospace Inc. Type 102 deiced Total Temperature Housing * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``long_name``: True air temperature from the Rosemount deiced temperature sensor * ``sensor_serial_number``: * ``sensor_type``: thermistor * ``standard_name``: air_temperature * ``units``: K Flags ----- Variables in this module use bitmask flags. Some, all or none of these flags may be applied to each variable. Interrogate flag variable attributes ``flag_masks`` and ``flag_meanings`` to find the flags for each variable. * ``mach_out_of_range`` - No flag description provided. .. _TurbulenceProbe: --------------- TurbulenceProbe --------------- This module produces flow angles and airspeed from the turbulence probe pressure differentials, and combines these with inertial/GPS measurements to derive 3-dimensional winds. These two processes are performed iteratively so that covariances between inferred winds and inertial measurements can be used to calculate on-the-fly flow angle correction terms. Alternatively, flow angle corrections can be provided in the flight constants. **Flow angles, dynamic pressure, and TAS** Initial estimates for angle of attack, :math:`\alpha`, and angle of sideslip, :math:`\beta`, are given by .. math:: \alpha &= \left(P_a / q - a_0\right) / a_1,\\ \beta &= \left(P_b / q - b_0\right) / b_1. Here, :math:`P_a` and :math:`P_b` are the pressure differentials between the top/bottom and left/right probe ports, :math:`a_n` and :math:`b_n` are calibration coefficients derived from flight data, and :math:`q` is the RVSM-derived dynamic pressure. Correction terms to these flow angles, required as stagnation points do not correspond exactly with probe ports, calculated by BAeS during the probe commissioning, are given by .. math:: \delta_\alpha &= 0.0273 + \alpha\left(-0.0141 + \alpha\left(0.00193 - 0.000052\alpha\right)\right),\\ \delta_\beta &= 0.00076172\beta^2. An initial estimate of dynamic pressure from the turbulence probe, :math:`q_t`, is then given by .. math:: q_t = \Delta_{P_0S_{10}} + q(\delta_\alpha + \delta_\beta), where :math:`\Delta_{P_0S_{10}}` is the pressure differential between :math:`P_0` and :math:`S_{10}`. This whole process is then iteratively repeated with :math:`q = q_t`, either until the difference in both flow angles between iterations is less than 0.2 degrees, or 5 iterations have been completed. Mach number, :math:`M`, is given by .. math:: M = \sqrt{5\left(\left(1 + \frac{q_t}{p}\right)^\frac{2}{7} - 1\right)}, where :math:`p` is the static pressure from the RVSM system. True airspeed, TAS, is then given by .. math:: \text{TAS} = \text{TAS}_c C_0 M \sqrt{T_\text{air} / T_0}, where :math:`\text{TAS}_c` is a correction term derived from flight data, :math:`C_0` is the speed of sound at ICAO STP, :math:`T_\text{air}` is the (deiced) true air temperature, and :math:`T_0` is the temperature at ICAO STP. **Wind vector** First let us define rotation matricies which provide the transformations between geographical and aircraft-relative coordinate systems. .. math:: \mathbf{A_1} &= \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos(r) & -\sin(r) \\ 0 & sin(r) & cos(r) \end{bmatrix},\\ \mathbf{A_2} &= \begin{bmatrix} \cos(\theta) & 0 & -\sin(\theta) \\ 0 & 1 & 0 \\ \sin(\theta) & 0 & \cos(\theta) \end{bmatrix}, \\ \mathbf{A_3} &= \begin{bmatrix} \cos(\phi) & \sin(\phi) & 0 \\ -\sin(\phi) & \cos(\phi) & 0 \\ 0 & 0 & 1 \end{bmatrix}, where :math:`r`, :math:`\theta`, and :math:`\phi` are the aircraft roll, pitch, and yaw, respectively. We can combine these into a single transformation tensor, :math:`\mathbf{R} = (\mathbf{A_3}\cdot\mathbf{A_2}) \cdot\mathbf{A_1}`. The wind vector :math:`\mathbf{U}`, is given by .. math:: \mathbf{U} = \mathbf{V} + \mathbf{T} + \mathbf{L}, where :math:`\mathbf{V}` is the aircraft velocity vector, :math:`\mathbf{T}` is the aircraft TAS vector, relative to the earth, and :math:`\mathbf{L}` is a correction term which accounts for the offset between the aircraft inertial measurement and the turbulence probe. The correction term :math:`\mathbf{L}` is given by .. math:: \mathbf{L} = \mathbf{L_L} \times \mathbf{L_R}, where :math:`\mathbf{L_R} = \mathbf{R} \cdot \mathbf{l}` and :math:`\mathbf{L_L} = \mathbf{L_1} + \mathbf{L_2} + \mathbf{L_3}`. Here :math:`\mathbf{l}` is the position vector describing the offset of the inertial measurement from the turbulence probe, and .. math:: \mathbf{L_1} &= [0, 0, -\dot\phi],\\ \mathbf{L_2} &= \mathbf{A_3} \cdot [0, \dot\theta, 0],\\ \mathbf{L_3} &= (\mathbf{A_3}\cdot\mathbf{A_2})\cdot[\dot{r}, 0, 0], where an overdot represents a time derivative. The TAS term :math:`\mathbf{T}` is given by .. math:: R = \mathbf{R} \cdot [-T_p, -T_p\tan(\beta), T_p\tan(\alpha)], where .. math:: T_p = \frac{\text{TAS}}{\sqrt{1 + \tan(\beta)^2 + \tan(\alpha)^2}}. **Flow angle corrections** The derivation of the variables above assumes no flow angle corrections, which are generally required. We take the approach of calculating flow angle corrections on line. This is done in an iterative loop where, after calculation of the flow angles and wind vector, flow angle corrections are calulated by 1) minimising the covariance between platform roll and vertical wind in the turns, and 2) minimising the mean vertical wind when the platform is straight and level. Flow angles and are then recalculated, and so on until the flow angle corrections converge suitably. This has been seen to occur rapidly, and only two iterations after the initial calculations are performed. Outputs ------- * TAS * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: TAS_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``long_name``: True airspeed (dry-air) from turbulence probe * ``standard_name``: platform_speed_wrt_air * ``units``: m s-1 * AOA * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: AOA_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``long_name``: Angle of attack from the turbulence probe (positive, flow upwards wrt a/c axes) * ``units``: degree * AOSS * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: AOSS_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``long_name``: Angle of sideslip from the turbulence probe (positive, flow from left) * ``units``: degree * PSP_TURB * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: PSP_TURB_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``long_name``: Pitot-static pressure from centre-port measurements corrrected for AoA and AoSS * ``units``: hPa * U_C * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: U_C_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``long_name``: Eastward wind component from turbulence probe and GIN * ``standard_name``: eastward_wind * ``units``: m s-1 * V_C * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: V_C_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``long_name``: Northward wind component from turbulence probe and GIN * ``standard_name``: northward_wind * ``units``: m s-1 * W_C * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: W_C_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``long_name``: Vertical wind component from turbulence probe and GIN * ``standard_name``: upward_air_velocity * ``units``: m s-1 Flags ----- Variables in this module use bitmask flags. Some, all or none of these flags may be applied to each variable. Interrogate flag variable attributes ``flag_masks`` and ``flag_meanings`` to find the flags for each variable. * ``data_out_of_range`` - V_C is outside the specified valid range [(-60, 60)] m/s * ``aircraft_on_ground`` - aircraft on ground * ``mach_out_of_range`` - Mach # is outside the specified valid range [(0.05, 0.8)] .. _TwoBOzone: --------- TwoBOzone --------- .. note:: This module only active for flights after 2021-01-09 Provides ozone concentration from the 2B Tech Ozone instrument. The instrument natively provides an ozone concentration, however this may be zero adjusted and scaled by zero and senstivity parameters given in the flight constants as `TWBOZO_ZERO` and `TWBOZO_SENS`. .. math:: \text{O}_3 = \frac{\text{O}_3 - z}{S}, where :math:`z` is the given zero offset and :math:`S` is the given sensitivity. Additional calibration information for metadata can be provided through the constant parameters `TWBOZO_CALINFO_DATE`, `TWBOZO_CALINFO_INFO`, and `TWBOZO_CALINFO_URL`. Flagging information is provided based on instrument and aircraft status. Outputs ------- * O3_2BTECH * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: O3_2BTECH_FLAG * ``calibration_date``: * ``calibration_information``: * ``calibration_url``: * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``instrument_description``: * ``instrument_manufacturer``: 2B Technologies Inc. * ``instrument_model``: 205 * ``instrument_serial_number``: 1034DB * ``long_name``: Mole fraction of Ozone in air from the 2BTech photometer * ``standard_name``: mole_fraction_of_ozone_in_air * ``units``: ppb Flags ----- Variables in this module use bitmask flags. Some, all or none of these flags may be applied to each variable. Interrogate flag variable attributes ``flag_masks`` and ``flag_meanings`` to find the flags for each variable. * ``aircraft_on_ground`` - The aircraft is on the ground, as indicated by the weight on wheels flag. An additional 10 seconds are addedafter take-off to allow for instrument flushing. * ``inlet_flow_out_of_range`` - The inlet sample overflow is out of range. * ``sample_flow_out_of_range`` - The spectrometer sample mass flow rate is out of range. .. _WVSS2A: ------ WVSS2A ------ Process data from the WVSS-II water vapour spectrometers. The WVSS2 report volume mixing ratio and other parameters approximately every 2.3 seconds. This represents ~2 s of sampling at ~4 Hz, followed by around 0.3 seconds of processing. This module simply linearly interpolates these data onto a regular 1 Hz index, and provides flagging and metadata. Outputs ------- * WVSS2F_VMR_U * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: WVSS2F_VMR_U_FLAG * ``comment``: WVSS-II measurements rely on manufacturer calibrations, and are not tracable to national standards * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``instrument_manufacturer``: SpectraSensors * ``long_name``: Water Vapour Measurement from WVSS2F linearly interpolated to 1 Hz * ``units``: ppmv * WVSS2F_PRESS_U * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: WVSS2F_PRESS_U_FLAG * ``comment``: WVSS-II measurements rely on manufacturer calibrations, and are not tracable to national standards * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``instrument_manufacturer``: SpectraSensors * ``long_name``: Pressure inside WVSS2F sample cell linearly interpolated to 1 Hz * ``units``: hPa Flags ----- Variables in this module use bitmask flags. Some, all or none of these flags may be applied to each variable. Interrogate flag variable attributes ``flag_masks`` and ``flag_meanings`` to find the flags for each variable. * ``data_out_of_range`` - No flag description provided. * ``data_missing`` - No flag description provided. * ``aircraft_on_ground`` - No flag description provided. .. _WVSS2B: ------ WVSS2B ------ Process data from the WVSS-II water vapour spectrometers. The WVSS2 report volume mixing ratio and other parameters approximately every 2.3 seconds. This represents ~2 s of sampling at ~4 Hz, followed by around 0.3 seconds of processing. This module simply linearly interpolates these data onto a regular 1 Hz index, and provides flagging and metadata. Outputs ------- * WVSS2R_VMR_U * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: WVSS2R_VMR_U_FLAG * ``comment``: WVSS-II measurements rely on manufacturer calibrations, and are not tracable to national standards * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``instrument_manufacturer``: SpectraSensors * ``long_name``: Water Vapour Measurement from WVSS2R linearly interpolated to 1 Hz * ``units``: ppmv * WVSS2R_PRESS_U * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: WVSS2R_PRESS_U_FLAG * ``comment``: WVSS-II measurements rely on manufacturer calibrations, and are not tracable to national standards * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``instrument_manufacturer``: SpectraSensors * ``long_name``: Pressure inside WVSS2R sample cell linearly interpolated to 1 Hz * ``units``: hPa Flags ----- Variables in this module use bitmask flags. Some, all or none of these flags may be applied to each variable. Interrogate flag variable attributes ``flag_masks`` and ``flag_meanings`` to find the flags for each variable. * ``data_out_of_range`` - No flag description provided. * ``data_missing`` - No flag description provided. * ``aircraft_on_ground`` - No flag description provided. .. _WVSS2Calibrated: --------------- WVSS2Calibrated --------------- For further details see the `FAAM Met. Handbook `_. This module provides a calibrated WVSS2 volume mixing ratio, along with its uncertainty estimate, from the flush mounted instrument. The calibration is a polynomial in VMR, with coefficients provided in the constants parameter ``WVSS2_F_CAL``. The calibration is assumed to only be valid within a certain VMR range, specified in the constants parameter ``WVSS2_F_CAL_RANGE``. Outside of this range, data are set to NaN. The uncertainty estimate, :math:`U_c`, is given by .. math:: U_c = \sqrt{\sigma_f^2 + \sigma_r^2 + \sigma_b^2}, where .. math:: \sigma_f &= \sigma_0 + \sigma_1 V + ... + \sigma_n V^n\\ \sigma_b &= \frac{l_0 + l_1 V}{2}\\ \sigma_r &= V\left(p_0 V^{p_1}\right) where :math:`V` is the uncorrected volume mixing ratio, :math:`\sigma_0, ..., \sigma_n` are specified in the constants parameter ``WVSS2_F_UNC_FITPARAMS``, :math:`l_0 \text{ and} l_1` are specified in the constants parameter ``WVSS2_F_UNC_BUCK`` and :math:`p_0 \text{ and} p_1` are specified in the constants parameter ``WVSS2_F_UNC_FITRES``. Outputs ------- * WVSS2F_VMR_C * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: WVSS2F_VMR_C_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``instrument_manufacturer``: SpectraSensors * ``instrument_serial_number``: * ``long_name``: Calibrated volume mixing ratio from WVSS2F * ``units``: ppm * WVSS2F_VMR_C_CU * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: WVSS2F_VMR_C_FLAG * ``coordinates``: * ``coverage_content_type``: auxiliaryInformation * ``frequency``: 1 * ``instrument_manufacturer``: SpectraSensors * ``instrument_serial_number``: * ``long_name``: Uncertainty estimate for calibrated volume mixing ratio from WVSS2F * ``units``: ppm Flags ----- .. _WVSS2RH: ------- WVSS2RH ------- This module provides estimates of relative humidity with respect to both water and ice, along with their combined uncertainty estimates, derived from the WVSS2 water vapour mixing ratio and Rosemount temperatures. For full details of the methodology, see the `FAAM Met. Handbook `_. Outputs ------- * RH_ICE * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: RH_ICE_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``long_name``: Relative humidity wrt ice water, derived from corrected WVSS-II VMR and Rosemount temperatures * ``standard_name``: relative_humidity * ``units``: % * RH_LIQ * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: RH_LIQ_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``long_name``: Relative humidity wrt liquid water, derived from corrected WVSS-II VMR and Rosemount temperatures * ``standard_name``: relative_humidity * ``units``: % * RH_ICE_CU * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: RH_ICE_FLAG * ``coordinates``: * ``coverage_content_type``: auxiliaryInformation * ``frequency``: 1 * ``long_name``: Combined uncertainty estimate for RH_ICE * ``units``: % * RH_LIQ_CU * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: RH_LIQ_FLAG * ``coordinates``: * ``coverage_content_type``: auxiliaryInformation * ``frequency``: 1 * ``long_name``: Combined uncertainty estimate for RH_LIQ * ``units``: % Flags ----- .. _WeightOnWheels: -------------- WeightOnWheels -------------- This module simply provides the aircraft weight-on-wheels flag, recorded on the rear core console. A value of 1 indicates weight on wheels (i.e. the aircraft is on the ground) and a value of 0 indicates no weight on wheels (i.e. the aircraft is airborne). Outputs ------- * WOW_IND * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 1 * ``long_name``: Weight on wheels indicator * ``units``: 1 Flags ----- .. _WetMach: ------- WetMach ------- This module calculate a moist-air Mach number using RVSM pressure measurements and the volume mixing ratio from the flush mounted WVSSII (assumed to identify itself as ``WVSS2A``). Moist-air Mach number, :math:`M`, is given by .. math:: M = \sqrt{\left(\frac{2c_v}{R_a}\right)\left(\left(\frac{p+q}{q}\right)^\frac{R_a}{c_p} - 1\right)}, where .. math:: R_a = c_p - c_v and .. math:: c_p &= c_{pd} \left(1 + q_h\left(\frac{8}{7\epsilon} - 1\right)\right)\\ c_v &= c_{vd} \left(1 + q_h\left(\frac{6}{5\epsilon} - 1\right)\right)\\ Here :math:`c_{pd}` and :math:`c_{vd}` are specific heats for dry air at constant pressure and volume, respectively, :math:`\epsilon` is the ratio of the molecular mass of water to that of dry air, and the specific humidity, :math:`q_h`, is given by .. math:: q_h = \frac{\epsilon V}{\epsilon V + 1}, where :math:`V = 1000000\times\text{vmr}_\text{WVSS2F}`. The module also provides the parameter ``SH_GAMMA``, which is the ratio of specific heats at constant pressure and constant volume, along with uncertainty estimates for ``MACH`` and ``SH_GAMMA``. The former is a combination from uncertainties in the corrected WVSS2 VMR and the uncertainty reported in BAe Reoprt 126, while the latter arises from the uncertainty in the corrected WVSS2 VMR. Outputs ------- * MACH * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: MACH_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``long_name``: Moist air Mach derived from WVSS-II(F) and RVSM * ``units``: 1 * SH_GAMMA * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: SH_GAMMA_FLAG * ``coordinates``: * ``coverage_content_type``: physicalMeasurement * ``frequency``: 32 * ``long_name``: Ratio of specific heats at constant pressure and constant pressure * ``units``: 1 * SH_GAMMA_CU * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: SH_GAMMA_CU_FLAG * ``coordinates``: * ``coverage_content_type``: auxiliaryInformation * ``frequency``: 32 * ``long_name``: Uncertainty estimate for SH_GAMMA * ``units``: 1 * MACH_CU * ``_FillValue``: -9999 * ``actual_range``: ['', ''] * ``ancillary_variables``: MACH_CU_FLAG * ``coordinates``: * ``coverage_content_type``: auxiliaryInformation * ``frequency``: 32 * ``long_name``: Uncertainty estimate for moist-air Mach * ``units``: 1 Flags ----- Variables in this module use bitmask flags. Some, all or none of these flags may be applied to each variable. Interrogate flag variable attributes ``flag_masks`` and ``flag_meanings`` to find the flags for each variable. * ``aircraft_on_ground`` - The aircraft is on the ground, as indicated by the weight-on-wheels indicator