NOMAD - Nadir and Occultation for MArs Discovery

Instrument Retrieval Models

The previous sections explained how to set up the instrument forward models and how to acquire an a-priori atmosphere to start the retrieval. On this page is an example of a water vapour retrieval with NOMAD-SO, performed by ASIMUT-ALVL from Vandaele, A. C., et al. (2006).

Example SO Water Retrieval

Download the spectra from the PSA. Here an observation of diffraction order 134 is chosen as this spectral region contains water absorption lines:

import pds4_tools
from psa_utils import download, tap

lid = "nmd_cal_sc_so_20230930t090935-20230930t092801-a-i-134"
lid_full = "urn:esa:psa:em16_tgo_nmd:data_calibrated:%s" % lid
xml_path = lid + ".xml"

psa = tap.PsaTap(tap_url="https://psa.esa.int/psa-tap/tap/")

channel = "SO"
query = "SELECT TOP 1 * FROM psa.epn_core WHERE obs_id = '%s'" % (lid_full.lower())

filepaths = download.download_by_query(query)
structures = pds4_tools.read(xml_path)
data = structures["CAL_NOMAD_%s" % channel].data

# get a list of available data fields
available_fields = list(data.meta_data.keys())

# extract altitudes, wavenumbers and transmittances from product
tangent_altitudes = data["TangentAltAreoidStart0"]
wavenumbers = data["Wavenumber, Pixel wavenumber"]
transmittances = data["Transmittance, Pixel transmittance"]
transmittance_errors = data["Transmittance error, Pixel transmittance error"]
aotf_frequency = data["AOTFFrequency"]
centre_diffraction_order = data["DiffractionOrder"]
temperature = data["InstrumentTemperature"]

Plotting the transmittances vs wavenumbers for a selection of altitudes between 10 and 15 km gives the following:


The retrieval process is too complicated to describe in full here and depends on the code used - these are the basic steps: 1) starting from the a-priori atmosphere, generate a simulated NOMAD-SO spectrum of the transmittance of the atmosphere through which the line of sight passes; 2) iterate the water abundance in the simulation until the best fit to the observed spectrum is found; 3) check that the water lines have been fitted correctly and the residual (difference between spectrum and simulation) is small.

Running ASIMUT on the spectra above, the following fits are obtained:


Troubleshooting

Retrievals can fail if the spectral calibration (dataset "wavenumbers" above) is incorrect. In SO, the wavenumbers assigned to each pixel are calculated from the temperature of the instrument, not from the absorption lines in the spectra, which means that there can be a small shift present from the true wavenumber. This can typically be solved by preprocessing the data, to detect absorption lines and correct for the shift prior to the analysis, or by introducing another parameter into the retrieval to fit the spectral shift.

The uncertainty on each pixel (dataset "transmittance_errors" above) should be taken into account during the retrieval, as the pixels on the left of the detector have higher uncertainties than those at the centre and on the right, due to the diffraction grating efficiency being centred around pixel 200 rather than pixel 160 in the detector centre. Therefore a worse fit should be observed on the left-most 50 pixels due to this higher error.



Back to introduction