The NOAA/NASA SSM/I Pathfinder Precipitation Rate (PR) data sets are
created using the SSM/I Pathfinder daily HDF Antenna Temperature
(TA) files.
Instantaneous global (over land and ocean) precipitation rates are
calculated using the Goddard Scattering Algorithm, Version 2 documented
in Adler et al. (1991, 1993, 1994). The 19 GHz
horizontal and vertical, 22 GHz vertical, and 37 GHz horizontal antenna
temperatures are interpolated to the higher resolution of the 85 GHz
horizontal channel. These temperatures and the 85 GHz horizontal
temperatures are subjected to a discrimination process in which each
pixel is tested for the presence of precipitation or no precipitation.
At pixels with precipitation, the precipitation rates are calculated
using a numerical model-based regression equation.
The algorithm developers strongly suggest some method of pixel
weighting be used when interpolating the precipitation rates to a grid.
This is because of the overlap of the pixels changes depending on its
location within the scan.
Each daily Precipitation Rate file begins with the first A scan
after 00:00:00 UTC and contains all data up to 23:59:59 UTC. Each file
contains precipitation rate (PRT), confidence/surface type values (CST),
latitudes (LAT), longitudes (LON), scan start times (SST), orbital
elements (ORB), and a file description. See Data Format
for a description of the file structure.
Data Characteristics
| Parameters/Units |
Precipitation Rate (mm/hr * 10 ) Confidence/Surface
Type ( N/A ) Latitude ( deg * 100 ) Longitude ( deg * 100 )
Scan Start Time ( seconds of day ) Orbit Parameters
( see Table 8 ) |
| Temporal Coverage |
August 1987 - December 1988 (some data
gaps) |
| Temporal Resolution |
Daily |
| Spatial Coverage |
Global |
| Spatial Resolution |
12.5 km
|
For various reasons (e.g., instrument turned off due to overheating),
daily precipitation files were not created for the following periods:
- December 3, 1987 - January 12, 1988
- October 6, 1988
- May 6, 1988 - May 8, 1988
- September 23, 1988
- December 25, 1988 - December 27, 1988
The physical file characteristics for the daily Pathfinder precipitation
files are as follows:
| File Name |
rr08miYY.DDD_Pfndr_daily.hdf |
| File Size | 48 MB
(uncompressed) ~ 20 MB (compressed) |
| File Format |
Hierarchical Data
Format (HDF) |
| Number of Files |
470 |
where:
- YY is the 2 digit year (i.e., 87 or 88)
- DDD is the day of the year
It should be noted that the data are actually distributed to users as
compressed files using the standard UNIX "compress" command; thus, the
suffix ".Z" will be appended to the names of all files.
Data Format
The files were created on a Silicon Graphics VGX class computer with
version 3.3, release 4 of the HDF library. The
file size for an uncompressed file is 48 megabytes.
NOTE: All discussions in this text are for row major applications
written in c. If you are using the HDF FORTRAN interface to read the
HDF objects, the arrays will be transposed. For example, array A(5,3) in
an HDF c interface would become A(3,5) in an HDF FORTRAN interface. This
will apply to all HDF data array discussions in this text.
Table 1 shows the contents (HDF objects) of each daily precipitation
rate file:
TABLE 1
| Item | HDF Object Type | HDF Ref.
Number |
| Version Descriptor | N/A | 1 |
| Precipitation Rate | Scientific
Data Set | 2 |
Confidence/Surface Type
| Scientific Data
Set | 3 |
| File Description | Annotation | 4 |
| Latitude | Scientific Data
Set | 5 |
| Longitude | Scientific Data
Set | 6 |
| Scan Start Times | Scientific
Data Set | 7 |
| Orbit Parameters | Scientific
Data Set | 8 |
| Precipitation image | Raster
Image
Group | 9 |
The DMSP satellite completes just over 14 orbits in a day. An orbit is
defined as starting when the satellite crosses the equator going from
south to north. Because the Pathfinder PR files are organized by time,
it is not uncommon to have a fractional part of an orbit prior to the
first full orbit in the daily PR file and a fractional part of an orbit
following the last full orbit in the daily PR file. To accommodate
this, arrays were set up that store the orbits "side-by-side" from left
to right as shown in Table 2 below:
Table 2
Orbit Arrangement in Arrays
ORBIT -->
------------------------------------------------------------------------
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16|
------------------------------------------------------------------------
| | | | | | | SCAN 1 for each orbit | | | | |
| | | | | | | SCAN 2 for each orbit | | | | |
S| | | | | | | SCAN 3 for each orbit | | | | |
C| | | | | | | SCAN 4 for each orbit | | | | |
A| | | | | | | SCAN 5 for each orbit | | | | |
N| | | | | | | o | | | | |
| | | | | | | o | | | | |
| | | | | | | o | | | | |
| | | | | | | SCAN N for each orbit | | | | |
------------------------------------------------------------------------
The first orbit may be a fractional part of an orbit. Its first scan
contains the first data for the 24 hour period. That scan may originate
at a point other than the beginning of a true DMSP orbit. Following
from left to right are up to 15 more orbits. The last orbit to the
right may be a fractional portion of a DMSP orbit. If so, it begins
before time 23:59:59 but does not complete. The remainder of the orbit
will appear as orbit 1 in the daily PR file for the following day. The
last DMSP orbit, or fraction of an orbit, may appear as orbit 15 or 16.
Each orbit or portion of an orbit is separated from the next by a
delimiter column for all objects except the scan start times and the
orbit parameters. See Table 4a for the value used as a delimiter in
each object.
For each orbit, including the partial orbits, the data has been located
in the proper scan position. Any missing scans are identified by
missing data flags (see descriptions below for these flag values). This
means that if the second orbit of the day is missing there will be a
missing data flag in orbit position 2. For the partial orbit at the
beginning of the day, any data that falls on the previous day (before
00:00:00 UTC of current day) will not be present in this file, and the
scan position will be filled with a missing data flag (see
Data Format for a explanation of the exceptions to this).
Likewise, for any last partial orbit, the data after 23:59:59 UTC will
be flagged as missing for this day but will appear on the next day's
file.
The beginning DMSP orbit (or fraction of an orbit)number and ending DMSP
orbit (fraction) number can be found by reading the file description
stored with each daily PR file. Use the getfiledesc_pr utility
described
in section 6.0 to get this information from the file.
The number of scans is 3224 for all Pathfinder SSM/I HDF objects except
the orbit parameters (see section 5.2). The "width" or number of
columns in each product array is 2064. This is calculated from the
following:
- Each scan has 128 samples.
- There are 14 orbits plus 2 fractions for a total of 16.
- The orbits are separated by a delimiter column.
- Thus (128 samples + 1 delimiter) * 16 orbits = 2064 columns.
The valid data and delimiter columns are shown in the Table 3 below:
TABLE 3
| Orbit | Data Columns | Delimiter
Columns |
| 1 | 001 - 128 | 129 |
| 2 | 130 - 257 | 258 |
| 3 | 299 - 386 | 387 |
| 4 | 388 - 515 | 516 |
| 5 | 517 - 644 | 645 |
| 6 | 646 - 773 | 774 |
| 7 | 779 - 902 | 903 |
| 8 | 904 - 1031 | 1032 |
| 9 | 1033 - 1160 | 1161 |
| 10 | 1162 - 1289 | 1280 |
| 11 | 1291 - 1418 | 1419 |
| 12 | 1420 - 1547 | 1548 |
| 13 | 1549 - 1676 | 1677 |
| 14 | 1678 - 1805 | 1806 |
| 15 | 1807 - 1934 | 1935 |
| 16 | 1936 - 2063 | 2064 |
For example, to get PRT for orbit 2 you would use an HDF utility to read
the precipitation rate HDF object into a 3224 x 2064 array, then copy
columns 130 through 257 into another array dimensioned 3224x128. MSFC
has software available to separate the HDF objects into orbits. The
software, getorbpr is described in See Sample
Software
.
Table 4a shows the flags used in the geophysical products objects and
column delimiter. Valid calculated values of the geophysical product
are scaled before being stored. Table 4b shows the scale factor. For
example, the precipitation rates are multiplied by 10.0 and then stored
as integers, so to retrieve a precipitation rate you must divide the
stored number by 10.0.
TABLE 4A
| FLAG 1 | FLAG 2 | FLAG 3
| FLAG 4 | FLAG 5 | DELIMITER
|
| PRT | -10 |
-
20 | -30 | -40 |
-50 |
-10 |
TABLE 4B
| All Surface Types |
| PRT | PRT * 0.0 |
where:
- PRT = Precipitation Rates (0.0 - 100.0 mm/hr.)
- FLAG 1 = Missing data.
- FLAG 2 = Erroneous input TA data; either out of bounds or
mislocated.
- TA values not between 50 and 315 degrees K are considered as out of
bounds.
- FLAG 3 = The GSCAT-2 algorithm flagged the 85H antenna temperature
as "bad".
- FLAG 4 = This pixel could not be interpolated from one of the low
resolution arrays.
- FLAG 5 = The pixel is located within a scan which failed one of
the scan tests
- (either the scan average check or the number of out of bounds was
too high.
The following sections provide further details on each of the HDF
precipitation rate objects. Each of these objects can be extracted from
the HDF file using special tools which the DAAC provides with the
data. See Sample Software for instructions on how to get the HDF
library and to compile and create these extraction utilities. The
following sections provide further details on each of the HDF
precipitation rate objects.
GSCAT-2 Precipitation Rate (PRT):
This HDF object contains the precipitation rates. Each value is
stored as a 2 byte integer. The values are multiplied by 10 before
storing to retain a precision of 0.1 mm/hr. For example, 31.5 mm/hr. is
stored as 315. The minimum value for precipitation rate is 0, and the
maximum value is 100. Table 5 shows the range of stored values.
Flagged values are stored in locations where the precipitation rate
could not/should not be calculated. The flagged values are shown in
Table 4a.
TABLE 5
| RANGE | DESCRIPTION |
| < 0 > | Flagged
data |
| 0 - 1000 | Precipitation Rate
(mm/hr)
|
The HDF data type used to store the precipitation rate is
DFNT_INT16. It will be necessary to use this type in any software
written to access the data. The HDF reference number is 2.
Confidence/Surface Type Values (CST):
This HDF object contains labeled values from the discrimination part
of the
algorithm. Each value is stored as a 1 byte integer and are at full
resolution
(array size 3224 x 2064). Certain conditions can lead to precipitation
rates
which are of lower confidence; i.e. although they can not be absolutely
defined
as raining pixels, there is not a scientific reason to mask them as non
raining
pixels. These pixels are labeled as ambiguous.
The CST values may also be used to determine the surface type
associated
with a given pixel. The surface types are a modified version of the
Fleet
Numerical Oceanographic Center (FNOC) database. The original
land/vegetated
land classes concatenated into the value 0. The ice/possible ice have
been
concatenated into the value 4. The database was also modified through
the use
of a GEMPAK map of the CIA high resolution coastline map, with the
coastline
thickened to about 75 km in width. An additional surface type named
"Coast-Ice" was added; the labeled value is 7. Table 6 gives the labeled
values for CST.
TABLE 6
| CST VALUE | DESCRIPTION |
| Surface Type | Precipitation
Rate is
good |
| Surface Type + 10 |
Precipitation Rate is ambiguous |
| Surface Type + 20 |
No Precipitation Rate;
Cold surface |
| Surface Type + 100 | No
Precipitation Rate but good surface type exists. This occurs when the
antenna temperatures are flagged but the geolocation is good |
| 110 | No Precipitation Rate or
Surface Type available |
The HDF data type used to store these values is DFNT_INT16. The HDF
reference number is 3.
Latitude Values (LAT):
The latitude values are stored as signed 2 byte integers ranging from
-9000 to 9000 (-90.00 to 90.00 degrees). The values are negative south
of the equator and positive north of the equator. There is a value for
every A/B pixel. Thus the array dimensions are 3224 x 2064; there are
3224 scans, each orbit has 128 samples per scan, and the orbits are
separated by a delimiter column. The precision of the latitudes is to
0.01 degrees. Thus a value of 7524 means 75.24 degrees North latitude.
Missing scans are denoted by the value -29999. Erroneous or mislocated
scan latitudes have 200 subtracted from them before being stored. To
retrieve an erroneous or mislocated latitude divide the stored value by
100 and then add 200 to the result, as shown in Table 7 below.
TABLE 7
| GOOD | FLAG 6 | FLAG
7 | FLAG 8 | DELIMITER |
| LAT | LAT*100.0 | LAT*100.0 | -29999 |
(LAT-
200)*100.0 | -10 |
| LON | LON*100.0 | LON*100.0 | -18999 | LON*100.0 | -10 |
| SST | SST*1.0 | 99999.9 | -189.99 | SST*1.0 | N/A |
where:
- LON = Longitude in degrees
- SST = Scan start time in seconds of day
- FLAG 6 = Out of bounds
- FLAG 7 = Missing
- FLAG 8 = Erroneous/mislocated
Note that the Pathfinder latitudes were updated to reflect the
geolocation corrections for yaw, along-track, and pixel 128 identified
by Mr. Frank Wentz of Remote Sensing Systems. The HDF data type used
with this object is DFNT_INT16. The HDF reference number is 5.
Longitude Values (LON):
Similar to the latitude values described above, the longitudes are
stored
as signed 2 byte integers ranging from -18000 to 18000 (-180.00 to
180.00)
degrees. The values are negative West of the Prime Meridian and
positive
East. Missing scans are denoted by a value of -18999. Erroneous or
mislocated
scans are not tagged since that information can be extracted from the
latitude
object. See the previous table for the Latitude object for the stored
longitude values. The HDF object is otherwise organized exactly as
that for
the latitudes described above. The HDF reference number is 6. Note
that
the Pathfinder longitudes were updated to reflect the geolocation
corrections
for yaw, along-track, and pixel 128 identified by Mr. Frank Wentz of
Remote
Sensing Systems.
Scan Start Times (SST):
The scan start times for both the A- and B-scans are stored in this HDF object.
The times are stored in seconds of day (0.0 to 86399.9). Each value is stored
as a 4 byte real number (floating point). Any missing scans are identified by
-189.99. Any out of bounds values are flagged by 99999.9.
Since there are 16 orbits per day and as many as 3224 scans per orbit, the
array for SST is 3224 x 16. There are no delimiter columns in this object. The
A-scan start times are derived by subtracting 1.9 seconds from the B-scan start
times since the antenna temperatures are originally tagged with only the B-scan
start times. Note that the B- scan start times were rounded to the nearest
second for the period beginning 1 August 1987 and ending on orbit 5 of 16
September 1987. There is the possibility that the first A-scan encountered in
the file may actually have occurred on the previous day. If this is the case,
the scan start time for the first scan will be between 86398.1 and 86399.9, and
it is possible there is a scan near the end of the file with an A-scan start
time equal to or greater than the first scan time.
The HDF data type used with this object is
DFNT_FLOAT32 and the HDF reference number is 7.
HDF File Annotation:
This object is an ASCII description of the daily PR file. It has the file name,
satellite name, Julian date, beginning orbit number, ending orbit number,
software version number, file structure version number, HDF version number, MSFC
tool set version number, and the email address and phone number for MSFC User
Services. The description can be read with the supplied program
"getfiledesc_pr", after you compile it with the HDF library. See See Sample Software for instructions on how to get the HDF library.
The HDF object reference number is 4.
An example of a file description is:
SSM/I Adler Rain Rates
Satellite = F8
Julian Date = 88080
Beginning Orbit = 3868
Ending Orbit = 3882
Time Of First Scan (hhmmss) = 000001
Time Of Last Scan (hhmmss) = 235959
SSM/I PATHFINDER Software Version Number 1.0
MSFC File Structure Version Number 1.0
HDF Version Number 3.3
MSFC Tool Set Version Numbers:
extractpr 1.0
getorbpr 1.0
getfiledesc 2.0
For more information about this file please contact
Marshall Space Flight Center User Services.
Phone: 205-922-5932
email address: msfcuser@microwave.msfc.nasa.gov
For more information about this file please contact
Marshall Space Flight Center User Services.
Phone: 205-922-5932
email address: msfcuser@microwave.msfc.nasa.gov
- Please note that these files were generated and archived at
MSFC. Recently the SSM/I Pathfinder precipitation data set was moved to the
Goddard DAAC. The file description written into the HDF annotation for each
file has not been updated for the new point of contact and User Services email
address, since it is anticipated that this data set will be replaced with a
new version produced at GSFC by Drs. Adler and Huffman.
- The file description in the Pathfinder HDF file refers to the SSM/I Adler
Rain Rate. After the HDF files were generated, the name was changed to
Precipitation Rate, which were created using the GSCAT-2 algorithm.
Orbit Parameters:
The last HDF object is the Orbit Parameters object. This object
contains a set of classical orbital elements derived from the two-line
elements for the DMSP satellite and time tagged to 00:00:00 UTC. The
file format is shown in Table 8 below:
TABLE 8
| COLUMN
POSITION | DESCRIPTION | UNITS |
| 1 | Satellite ID |
(08, 10, or 11) |
| 2 | Julian Day of Data | (YYDDD) |
| 3 | Epoch Time of
Elements | (DD.DDDD) |
| 4 | Inclination Angle |
Degrees |
| 5 | Right Ascension | Degrees |
| 6 | Eccentricity | N/A |
| 7 | Argument of Perigee | Degrees |
| 8 | Mean Anomaly | Degrees |
| 9 | Mean Motion | Orbits/day |
| 10 | Semi Major Axis | Kilometers |
| 11 | Period | Seconds/orbit |
Three C programs are included with this distribution. They are
extractpr.c, getfiledesc_pr.c, and getorbpr.c. Both run on
the Silicon Graphics but should port easily to other platforms. A makefile,
named Make.pr, is included with the distribution. It can be used to
compile the three programs on a UNIX platform. You must have the HDF library
(HDF3.3r3 or higher) installed on your system before attempting to run this
makefile. Information and instructions on how to obtain this library can be
found on the Goddard DAAC
HDF Information Page.
After making changes to the directory paths and flags in
Make.pr,
use the following UNIX command to run the makefile program:
- make -f Make.pr all clean
This will compile both programs, delete the object modules, and
produce the following three executables:
- extractrg , getorbpr , getfiledesc
extractpr
Extractpr.c will be the most useful. This program extracts an HDF object
from the daily PR file. It produces a new HDF file with the name of the HDF
object selected. The format for using the utility is as follows:
- extractpr < Daily HDF filename > < list of HDF objects
>
For example, the command
- extractpr rr08mi88.080_Pfndr_daily.hdf PRT
produces a new HDF file called PRT.88080 from the file
rr08mi88.080_Pfndr_daily.hdf. Run the program with no arguments, and it
will
list all of the options as shown below:
| Acronym | File | Object Type |
Variable Type |
| PRT | Precipitation
Rate |
SDS | INT16 |
| CST | CST
Values | SDS | INT16 |
| LAT | Latitude | SDS | INT16 |
| LON | Longitude | SDS | INT16 |
| SST | Scan Start
Time | SDS | FLOAT32 |
| ORB | Orbital
Elements | SDS | FLOAT32 |
where SDS is Scientific Data Set, INT32 is a 32 bit integer, and FLOAT32 is
a 32 bit floating point numbers. Use the 3-letter parameter code when selecting
an object to extract. You may select several codes at once, separated by a
space.
getfiledesc_pr
The getfiledesc_pr program prints the text of the HDF annotation
contained in the daily file. Its usage is:
- getfiledesc_pr < Daily HDF filename >
The result should look like the example HDF file annotation dump
presented earlier.
getorbpr
The getorbpr program extracts an orbit for any object from the daily
PR file. It produces a new HDF file with the name and orbit number of
the HDF object selected. Usage is as follows:
- getorbpr < Daily HDF filename > < HDF object
> < orbit #(1-16) >
For example,
- getorbpr rr08mi88.080_Pfndr_daily.hdf PRT05
produces a new HDF file called PRT05.88080 from the original file
rr08mi88.080_Pfndr_daily.hdf.