|
Specification of the HDF data file format
Gridded data give the SO2 concentrations on a rectangular latitude-longitude
grid of 0.25 by 0.25 degrees is written to HDF-4 files -- for daily data,
for 3-day composites and for monthly averages.
See the main Data format specification page
for some general notes on the data formats.
Simply said, an HDF file has the following structure (note that the vertical
column field or cloud cover fraction may not be available):
- File header, with the file attributes
these specify the product name, data, version, units, etc.
- Data sets:
- SO2 slant column field
- Error in the slant column field
from the slant column retrieval
- SO2 vertical column field for different plume heights
- Error in the vertical column fields
from the slant column error
- Cloud cover fraction
There are several tools around on the web for viewing and treating HDF
files, notably at the
NCSA HDF Home Page.
Software for viewing and reading HDF files is available via
this page,
where you can find a binary distributions for several operating
systems (UNIX, Linux, Windows).
The HDF file can also be read with many plot programs, such as IDL
(example page) and MatLab,
as well as with the
BEAT toolbox.
Name of the HDF files
The name of the HDF files gives the data (range) of the dates covered
by the data sets in the file:
so2cdYYYYMMDD.hdf
|
file with data for a single day; the name contains the orbit date
YYYYMMDD
|
so2cdYYYYMMDFDL.hdf
|
file with data for a 3-day composite; the name contains the year, the
month and the first (DF ) and last (DL ) day
here:
DFDL = 0103, 0406, 0709, ...., 2527 , for February followed by
2828 or 2829 , for other months followed by
2830 and 3131 if the month has 31 days
|
so2cdYYYYMM.hdf
|
file with data for a monthly average; the name contains the year and month
|
File header
The following table gives as an example the header of the HDF file of the
daily slant column data of 21 March 2007.
Global Attribute |
Type |
Value |
Product |
string |
SO2 slant column [DU] |
Data_version |
string |
1.0.3 |
Creation_date |
string |
26 August 2007 |
Product_status |
string |
archive |
SO2_field_date_1 |
integer |
2007, 3, 21 |
SO2_field_date_2 |
integer |
2007, 3, 21 |
Data_begin |
integer |
2007, 3, 21, 1, 54, 50 |
Data_end |
integer |
2007, 3, 22, 0, 29, 50 |
Date_format |
string |
year, month, day, hour, minute, second (UTC) |
Instrument |
string |
SCIAMACHY (ENVISAT) |
Cloud_fraction |
string |
Taken from FRESCO (made by KNMI) |
Projects |
string |
SACS for TEMIS / PROMOTE |
Authors |
string |
Jos van Geffen & Michel Van Roozendael |
Affiliation |
string |
BIRA-IASB (Belgian Institute for Space Aeronomy) |
E-mail |
string |
michelv@aeronomie.be |
Number_of_longitudes |
integer |
1440 |
Longitude_range |
real |
-179.875, 179.875 |
Longitude_step |
real |
0.25 |
Number_of_latitudes |
integer |
720 |
Latitude_range |
real |
-89.875, 89.875 |
Latitude_step |
real |
0.25 |
Iscd_field |
string |
SO2 slant column = Iscd_field/1000 [DU] |
Iscd_error |
string |
Error on SO2 slant column = Iscd_error/1000 [DU] |
Number_of_VCD_sets |
integer |
3 |
Ivcd_field_# |
string |
SO2 vertical column (VCD) = Ivcd_field/1000 [DU] |
Ivcd_error_# |
string |
Error on SO2 vert. column = Ivcd_error/1000 [DU] |
Iccf_field |
string |
Cloud cover fraction = Iccf_field/1000 [-] |
No_data |
string |
Entries with -99.0 represent "no data" |
Product_code |
string |
sbfdaa |
Data set |
Type |
Rank --> dimensions |
Iscd_field |
integer |
2 --> 1440 x 720 |
Iscd_error |
integer |
2 --> 1440 x 720 |
Ivcd_field_1 |
integer |
2 --> 1440 x 720 |
Ivcd_error_1 |
integer |
2 --> 1440 x 720 |
Ivcd_field_2 |
integer |
2 --> 1440 x 720 |
Ivcd_error_2 |
integer |
2 --> 1440 x 720 |
Ivcd_field_3 |
integer |
2 --> 1440 x 720 |
Ivcd_error_3 |
integer |
2 --> 1440 x 720 |
Iccf_field |
integer |
2 --> 1440 x 720 |
Remarks regarding some of the attributes in the file header:
- Product
This attribute gives so to say the title of the product. In the
example it says that the file has SO2 slant column data for one day.
- For 3-day composites " -- 3-day composite" is added.
- For monthly averages " -- monthly average" is added.
- ... etc.
If the file contains slant column as well as vertical column densities,
the main title is "SO2 column densities [DU]".
- Data_version
The coding for this is described in the section on the
Data and Services version history.
- Product_status
This can be "preliminary" or "archive".
- SO2_field_date_1 & SO2_field_date_2
These two attributes give the period for which the data applies in
whole days (UTC). In the example above this is one day; for longer
time periods they give the first and last day.
- Data_begin & Data_end
These two give the date and time of the very first and the very last
measurement included in making the gridded data.
Measurements of SCIAMACHY come in principle as one file per
orbit. The data included is from all data files which have a start
time in the given period. The last orbit of a given day can, of
course, continue into the next day. In that case "Data_end" shows the
beginning of the next day, as in the above example.
- Cloud_fraction
If no cloud cover fraction is included, the value of this attribute
is "None included" and there is no 'ccf' data set.
- Longitude & latitude ranges and steps
These are given in degrees.
See further down on how to (re)construct
the longitude-latitude grid of the data sets.
- Number_of_VCD_sets
This is the number of different plume heights used to compute
vertical column densities (VCDs) and thus gives the number of
VCD data sets; which plume heights were used is connected to
the version number of the data product.
- Product_code
This is for internal use, to ease post-processing.
- Data sets
The above example is for a file which contains the slant column
density (SCD), three data sets for the vertical column densities
(VCD) and the cloud cover fraction (CCF).
The error values given in the HDF files for the SCD and VCD fields
are an average over the error values given in the orbit data files;
they include no "standard deviation" of the averaging itself.
Grid
The data sets in the HDF file are given in the form of a two-dimensional
array with each grid cell having a specific longitude-latitude grid.
This grid can be (re)constructed using the information given in the header
of the HDF file:
gridlon(ilon)=lonmin+(ilon-1)*dlon
gridlat(ilat)=latmin+(ilat-1)*dlat
Note that the coordinates of the grid refer to the
centre of the grid cells, as indicated by the filled circles in the
graph on the right.
|
|
An example Fortran code for this can be found in the
so2hdfgrid.f program. It generates the
grid and gives a few lines of output as example:
ilon ilat gridlon gridlat
1 1 -179.8750 -89.8750
1440 720 179.8750 89.8750
38 562 -170.6250 50.3750
722 362 0.3750 0.3750
1222 62 125.3750 -74.6250
The fourth in this list is the centre of the coloured grid cell in the
image.
|
|