Abstract: The L2g reader is a piece of IDL software designed to read the level 2g files which are produced for a number of Ozone Monitoring Instrument products.
The L2g data file is an amalgamation of a days worth of level 2 data files--i.e. those files which contain a single orbit of atmospheric chemical composition data from the OMI instrument. The L2g is typically composed from 14 to 15 individual ... orbital data files. A number of data fields in the L2 deemed less useful are not included in the L2g--however it is believe that almost everthing thing of interest to a science users will be available.
With the exception of the missing fields an L2g file contains sufficient information to re-generate its constituant L2 files. The reasons for prefering the L2g files over the L2 is:
1) The L2g file is significantly smaller than the 14 or 15 constituent L2's. This is because of some data fields where dropped and internal gzip compression was used. (Because the compression is internal it is transparent to the user.)
2) Each ground pixel has been assigned to a latitude and longitude position on a 1/4 by 1/4 degree grid. When ground pixels from different orbits are assigned to the same grid point NO selection is made. Both points are still stored in L2g file. This is an important difference between the L2g and a true "gridded" product, known in AURA parlance as an L3 product. This is an important point, the L2g product is constructed using the HDF-EOS grid structure, however semantically it is NOT a gridded product.
Since many users will want gridded data the L2g_reader is provided. It produces a two dimensional area for any data field in the L2g file using the grid point assignements in the L2g file. When ground pixels corresponding to different orbits are in the same grid point one of them is selected by using the shortest path length index criteria. The path length index is the quantity 1/sec(SZA)+1/sec(VZA) where SZA is the solar zenith angle and VZA is the viewing zenith angle.
The HDF-EOS5 file can contain several grids, each of which can contain several data fields. To date all L2g's produced contain only one grid.
The L2g_reader uses the IDL object system. However no knowledge of writing IDL object oriented programs is required to use it. Here is an outline of how to open an L2g file and produce an image:
To use the function create an L2g object
l2gobj = obj_new('l2g',filename=,gridname=)
E.g. = 'OMI Column Amount O3'
You may then list the names of the data fields using the DATAGRIDS method
or generate a datagrid using the GRID method.
O3grid = l2gobj->grid()
E.g. = 'ColumnAmountO3'
The O3grid variable will be a 1440 by 720 array suitable for plotting. Not that the grid returned by the grid method contains NANs to represent the values of grid cells for which there was no suitable value. This is quite common near the equator where coverage is low. Decimating the result to be 1 by 1 degree can remove many of these undefined values.
To plot the full 1/4 by 1/4 degree grid, set the undefined cells to zero DU.