Unified loader for AIRS, ACE, GNSS, HIRDLS, MIPAS,MLS, SABER and SOFIE, loading data from the below-listed data formats. See file headers for options.
Several child functions used in this routine can currently be found in https://github.com/corwin365/MatlabFunctions; over time these will become better-integrated into this repository.
HIRDLS:
standard HDF5 product from NASA: https://disc.gsfc.nasa.gov/
MIPAS:
the Oxford product, available from CEDA as netCDF: https://catalogue.ceda.ac.uk/uuid/2d14cb23b3318b12c0aea374998e4a4d
MLS:
standard HDF5 product from NASA: https://disc.gsfc.nasa.gov/
SABER:
monthly T-O3-H2O files from GATS: https://data.gats-inc.com/saber/custom/Temp_O3_H2O/v2.0/
SOFIE:
GATS level 2 netCDF format: https://data.gats-inc.com/sofie/
AIRS:
Lars Hoffman's 3D retrieval netCDF files: https://datapub.fz-juelich.de/slcs/airs/gravity_waves/data/retrieval/
Important note: this function returns the AIRS data as a 2D heights vs profiles matrix, which is not standard for AIRS as it takes no account of the granular structure, and is thus only useful in some cases. It also thins out the data by default to reduce volume- how much it does this can be specified in the function.
ACE, GNSS, Misc:
custom Matlab save format produced from the original ACE and GNSS files - contact us for details. With additional options set to locate the files, any other files in this data format can also be loaded.
Unified function to quickly load geophysical context for a given set of lat/lon points. Can currently load:
- low resolution topography (easyTopo)
- high-resolution topography (TessaDEM)
- ERA5 wind (1.5 degree, 3 hour)
- a set of 1D climate indices
- Sentinel surface imagery (directly from the Sentinel API)
- lower-resolution surface imagery, stored locally
- tropopause and stratopause pressure (computed from 1.5 degree, 3hour ERA5)
A small number of external function are required for this to operate - see file headers for locations.
Unified function to compute gravity waves using data outputted in the format produced by get_limbsounders(). See file headers for options.
Several functions used in this routine can currently be found in https://github.com/corwin365/MatlabFunctions; over time these will become better-integrated into this repository.
Script (not function!) to generate a noise floor suitable for Wright and Gille (GRL, 2013) analyses, using get_limbsounders() and gwanalyse_limb().
Functions for handling Matlab structs more efficiently, plus some functions used internally in these.
cat_struct()
For a pair of structs containing fields which share a length in one (or more) dimensions, concatenate all fields along the common specified dimension. Fields which are exceptions can be set to ignore.
reduce_struct()
For a structure containing a series of fields which share a length in one (or more) dimensions, index all fields along the common specific dimension. Fields which are exceptions can be set to ignore.
spawn_uniform_struct()
Produce a struct containing a series of identically-sized fields.
Primarily intended for internal use in the above, but can be useful independently.
expose_dim()
Take an n-dimensional Matlab array and reshape such that the array becomes 2D with the chosen dimension as the first and all other dimensions merged in the second. Useful for e.g. feeding multiple independent series in higher dimensions into functions that can vectorise do multiple 1D operations like interp1().
index_dim()
Select elements of an array along a selected dimension.
list_non_modal_size()
List the fields in a structure which differ from the most common size.