Program convert_airs_L2
Overview
The Atmospheric Infrared Sounder (AIRS) is a facility instrument aboard the second Earth Observing System (EOS) polar-orbiting platform Aqua. Aqua is one of a group of satellites flying close together in a polar orbit, collectively known as the “A-train”. In combination with the Advanced Microwave Sounding Unit (AMSU) and the Humidity Sounder for Brazil (HSB), AIRS constitutes an innovative atmospheric sounding group of visible, infrared, and microwave sensors. AIRS data will be generated continuously.
The AIRS Standard Retrieval Product consists of retrieved estimates of cloud and surface properties, plus profiles of retrieved temperature, water vapor, ozone, carbon monoxide and methane. Estimates of the errors associated with these quantities will also be part of the Standard Product. The temperature profile vertical resolution is 28 levels total between 1100 and 0.1 hPa, while moisture profile is reported at 14 atmospheric layers between 1100 hPa and 50 hPa. The horizontal resolution is 50 km. An AIRS granule has been set as 6 minutes of data, There are 240 granules per day, with orbit repeat cycle of approximately 16 days.
Overview of L1-L3 Atmospheric Infrared Sounder (AIRS) Observations
The convert_airs_L2
converter is designed specifically for
temperature and moisture retrievals for L2 observations only.
For reference, we provide a brief description of the L1-L3 AIRS data
products below. For more detailed information please see the
AIRS documentation page:
The L1B data product includes geolocated, calibrated observed microwave, infrared and visible/near infrared radiances, as well as Quality Assessment (QA) data. The radiances are well calibrated; however, not all QA data have been validated. Each product granule contains 6 minutes of data. Thus there are 240 granules of each L1B product produced every day.
The L2 data product includes geolocated, calibrated cloud-cleared radiances and 2-dimensional and 3-dimensional retrieved physical quantities (e.g., surface properties and temperature, moisture, ozone, carbon monoxide and methane profiles throughout the atmosphere). Each product granule contains 6 minutes of data. Thus there are 240 granules of each L2 product produced every day.
The L3 data are created from the L2 data product by binning them in 1°x1° grids. There are three products: daily, 8-day and monthly. Each product provides separate ascending (daytime) and descending (nighttime) binned data sets.
Downloading Atmospheric Infrared Sounder (AIRS) L2 Observations
There are several data file types and versions that contain L2
observations for temperature and moisture profiles. We recommend the use of
the AIRS2RET version 7 (AIRS2RETv7) data product. The AIRS2RET
data (AIRS data only)
product is preferred to the AIRX2RET
(AIRS/AMSU data) because the radiometric
noise in several AMSU channels increased (since June 2007) degrading the
AIRX2RET
product. Furthermore, the version 7 product is higher quality than version 6
because of an improved retrieval algorithm leading to significantly improved RMSE and bias statistics.
See the AIRS2RETv7 documentation
for more information.
Although we recommend AIRS2RETv7
, the convert_airs_L2
converter is compatible
with AIRS2RET
and AIRX2RET
versions 5-7. Version 5 is no longer available
within the GES DISC database. For more information on these data products see the
links below:
The AIRS data is located within the Goddard Earth Sciences Data and Information
Services Center (GES DISC) located here. You need
to create an Earthdata account before you can download data. As an example, to
access the AIRS2RETv7 data, search on keyword AIRS2RET
and locate
the AIRS2RET 7.0 data set within your search results. The full name is listed as
Aqua/AIRS L2 Standard Physical Retrieval (AIRS-only) V7.0 (AIRS2RET). Next, click on the
Subset/Get Data
link within the Data Access portion of the webpage. This will
bring up a separate window that allows you to refine your search results
by 1) Refine range (time)
and 2) Refine region (spatial)
.
There are various options for downloading, however, the most straightforward approach
for macOS and Linux users is to use the wget
command. The download instructions
provide the proper wget flags/options. The Download Links List
provides
the AIRS file list based on your search results.
convert_airs_L2.f90
The convert_airs_L2
converter is for temperature and moisture retrievals from
the L2 data.
The vertical coordinate is pressure.
The temperature observations are defined at standard pressure levels (see Overview).
Those are defined in each file by the array
‘StdPressureLev:L2_Standard_atmospheric&surface_product’.
Between 2 levels is a “layer”.
A moisture observation is an average across the layer
and is defined at the midpoint (in log(pressure)) of the layer.
This choice makes half of the mass of the layer above the midpoint and half below.
The midpoints are defined in ‘H2OPressureLay:L2_Standard_atmospheric&surface_product’.
There is an alternative computation for the moisture across the layer which may be more accurate, but requires a forward operator subroutine to be written and for the observation converter to include additional metadata to support this forward operator. For more information see the Future Plans section below.
The converter program reads each AIRS hdf file granule and outputs a DART obs_seq file containing up to 56700 observations. Only those with a quality control of 0 (Best) are kept. The resulting obs_seq files can be merged with the program obs_sequence_tool into larger time periods.
During the excecution of the obs converter, It is possible to restrict the output
observation sequence to contain data from a region of interest throught the use of
the namelist parameters (described in Namelist section below). If you need a region
that spans the Prime Meridian, lon1
can be a larger number than lon2
.
For example, a region from 300 E to 40 E and 60 S to 30 S (some of the South Atlantic),
would be lon1 = 300
, lon2 = 40
, lat1 = -60
, lat2 = -30
.
Namelist
This namelist is read in a file called input.nml
. We adhere to the F90
standard of starting a namelist with an ampersand ‘&’ and terminating with a
slash ‘/’ for all our namelist input. Character strings that contain a ‘/’ must be
enclosed in quotes to prevent them from prematurely terminating the namelist.
The default values are shown below. More realistic values are provided in
AIRS/work/input.nml
&convert_airs_L2_nml
l2_files = ''
l2_file_list = ''
outputfile = ''
lon1 = 0.0
lon2 = 360.0
lat1 = -90.0
lat2 = 90.0
min_MMR_threshold = 1.0e-30
top_pressure_level = 0.0001
cross_track_thin = 0
along_track_thin = 0
use_NCEP_errs = .false.
version = 7
/
Contents |
Type |
Description |
---|---|---|
l2_files |
character(len=256), dimension(512) |
A list of one or more names of the HDF file(s) to read. If multiple files are listed, each will be read and the results will be placed in a separate file with an output filename constructed based on the input filename. |
l2_file_list |
character(len=256) |
The name of an ascii text file which contains one filename per line. Each file will be read and the observations converted into an output file where the output filename is based on the input filename. Only one of ‘l2_files’ and ‘l2_file_list’ can be specified. The other must be ‘ ‘ (empty). |
outputfile |
character(len=256) |
The name of the output observation sequence file. |
lon1 |
real(r8) |
The West-most longitude of interest in degrees. [0.0, 360] |
lon2 |
real(r8) |
The East-most longitude of interest in degrees. [0.0, 360] |
lat1 |
real(r8) |
The South-most latitude of interest in degrees. [-90.0,90.0] |
lat2 |
real(r8) |
The North-most latitude of interest in degrees. [-90.0,90.0] |
min_MMR_threshold |
real(r8) |
The data files contain ‘Retrieved Water Vapor Mass Mixing Ratio’. This is the minimum threshold (g/kg) that will be converted into a specific humidity observation (kg/kg). |
top_pressure_level |
real(r8) |
The highest pressure level of interest (in hPa). |
cross_track_thin |
integer |
Provides ability to thin the data by keeping every Nth data value in the cross-track scan. [0,30] e.g. 3 == keep every third value. 0 is no thinning. |
along_track_thin |
integer |
Provides ability to thin the data by keeping every Nth data value in the along-track scan. [0,45] e.g. 4 == keep only every 4th row. 0 is no thinning. |
use_NCEP_errs |
logical |
If .true. use the maximum observation error from either the
granule or the NCEP equivalent (from |
version |
integer |
The AIRS file format version. Version 7 is recommended, but the converter is compatible with versions 5-7. |
l2_files = '../data/AIRS.2007.11.01.001.L2.RetStd.v5.2.2.0.G08078150655.hdf'
l2_files = '../data/AIRS.2017.01.01.110.L2.RetStd_IR.v6.0.31.1.G19058124823.hdf'
l2_files = '../data/AIRS.2020.06.15.224.L2.RetStd_IR.v7.0.4.0.G20330033505.hdf'
Known Bugs
Earlier versions of this converter mistakenly put the moisture obs at level heights, in the same location as the temperature observations. The moisture observations are in fact an integrated value across the distance between two levels. This means the location was shifted 1/2 level in the vertical from the center of the layer. The fixed converter outputs the location at the center, in log space, of each layer.
Future Plans
If a more accurate moisture observation was needed, the observation value could be computed by actually integrating multiple values between the levels. The observation could be defined with a layer top, in pressure, and a number of points to use for the integration across the layer. Then the forward operator would query the model at each of the N points in the vertical for a given horizontal location, and compute the mean moisture value. This code has not been implemented yet, and would require a different QTY_xxx to distinguish it from the simple location/value moisture obs. The observation converter would also have to bring in moisture observation metadata for this forward operator. See the GPS non-local operator code (GPS Observations) for an example of how this would need to be implemented.