Skip to content. | Skip to navigation

GES DISC Banner Image
Personal tools
You are here: GES DISC Home Additional Features FAQs Precipitation






Data Products

Data Access

Data Formats, Tools and Visualization

Data Applications



What is GPM?

The Global Precipitation Measurement (GPM) mission is an international network of satellites that provide the next-generation global observations of rain and snow. For details, visit:

Any quick overview about GPM products?

Yes, check this document:

What is the schedule for GPM data release?

The schedule is (from the GPM site),

June 16th – GMI Level 1 Brightness Temperature data have been released. This includes GMI instrument swath data.

July 14th – GMI Level 2 Precipitation Rate data will be released. This includes precipitation rates estimated using the Goddard Profiling algorithm (GPROF14) and are available as swath data.

Early September – DPR Level 2 precipitation rate data will be released via PPS and JAXA. This includes three-dimensional swath data from the DPR Ka and Ku-band radars.

Mid-September - The DPR-GMI Level 2 combined product will be released

January 2015 – NASA’s Level 3 Integrated Multi-Satellite Retrievals for GPM (IMERG) will be released with all available data. This gridded product will have a resolution of 0.1 degrees and updated every 30 minutes from 60N-60S.

What is the naming convention for GPM products?

The naming convention is in this document:

Where to find the meta data descriptions about GPM products?

The meta data descriptions are in this document:

Where is the file specification document?

The file specification document is in,

Where I can find GPM Algorithm Theoretical Basis Documents (ATBD)?

The ATBD documents are in,

How can I keep informed about the latest GPM news?

Yes, contact the GES DISC User Services to be added to the list.

For TRMM product alerts, subscribe this RSS feed:

Data Products


What is IMERG?

The Integrated Multi-satelliE Retrievals for GPM (*IMERG*) is the unified U.S. algorithm that provides the Day-1multi-satellite precipitation product for the U.S.GPM team.    

The IMERG system is run twice in near-real time

    “Early” multi-satellite product ~4 hr after observation time and

    “Late” multi-satellite product ~12 hr after observation time,

and once after the monthly gauge analysis is received

     “Final” satellite-gauge product ~2 months after the observation month.

Additional details can be found in the following documents:

Key documents:

Algorithm Theoretical Basis Document (ATBD):

IMERG readme:

Release document:

How can I download IMERG data?

The data landing pages provide different methods for access:



Why some GPM products are available before the GPM launch?


Data Access

Where can I search and download GPM data?

The GES DISC currently has several different access methods for the data. You can view these methods and further information at the Data Holdings interface.

The GES DISC primary search and download interface, Mirador, is available at

Can I use OPeNDAP to download GPM data?


Data Formats, Tools and Visualization


What format are GPM data in?

They are stored in HDF-5 format, and they follow the netCDF format model, making them usable in many netCDF-compatible software packages.

Any tools to convert GPM HDF5 data to NetCDF?

The netCDF-4/HDF5 format was introduced in version 4.0; it is the HDF5 data format, with some restrictions (from Wiki). The HDF Group provides very useful software and services:

Are GPM data in Giovanni?

Not yet. We are working on adding them to Giovanni. Stay tuned.

How can I display GPM data?

A number of tools are available:


    Panoply (visualization):

    Orbit Viewer THOR (visualization):

What software packages are available?

Visit the HDF Group:

How can I read IMERG files with GrADS?

The following ctl files have been tested in Version 2.1.a2:


dset 3B-HHR.MS.MRG.3IMERG.20140615-S030000-E032959.0180.V03D.HDF5

dtype hdf5_grid

title IMERG sample

undef -9999.9

xdef 3600 linear -179.95 0.1

ydef 1800 linear -89.95 0.1

zdef 1 levels 1 1

tdef 1 linear 03:00Z15jun2014 30mn

vars 5

/Grid/HQprecipitation=>HQp 0 x,y HQ precipitation

/Grid/IRprecipitation=>IRp 0 x,y IR precipitation

/Grid/precipitationCal=>Calp 0 x,y cal precipitation

/Grid/precipitationUncal=>Uncalp 0 x,y uncal precipitation

/Grid/randomError=>error 0 x,y random error



Time aggregation (due to an issue in file name, %ch has to be used. If you find a better way, please let us know):

dset %ch

chsub 1 1 3B-HHR.MS.MRG.3IMERG.20140615-S030000-E032959.0180.V03D.HDF5

chsub 2 2 3B-HHR.MS.MRG.3IMERG.20140615-S033000-E035959.0210.V03D.HDF5

chsub 3 3 3B-HHR.MS.MRG.3IMERG.20140615-S040000-E042959.0240.V03D.HDF5

options template

dtype hdf5_grid

title IMERG sample

undef -9999.9

xdef 3600 linear -179.95 0.1

ydef 1800 linear -89.95 0.1

zdef 1 levels 1 1

tdef 3 linear 03:00Z15jun2014 30mn

vars 5

/Grid/HQprecipitation=>HQp 0 x,y HQ precipitation

/Grid/IRprecipitation=>IRp 0 x,y IR precipitation

/Grid/precipitationCal=>Calp 0 x,y cal precipitation

/Grid/precipitationUncal=>Uncalp 0 x,y uncal precipitation

/Grid/randomError=>error 0 x,y random error



dset 3B-HHR.MS.MRG.3IMERG.20140615-S030000-E032959.0180.V03D.HDF5

dtype hdf5_grid

title IMERG sample

undef -9999

xdef 3600 linear -179.95 0.1

ydef 1800 linear -89.95 0.1

zdef 1 levels 1 1

tdef 1 linear 03:00Z15jun2014 30mn

vars 4

/Grid/HQobservationTime=>HQt 0 x,y HQ observation time

/Grid/HQprecipSource=>HQs 0 x,y HQ precipitation source

/Grid/IRkalmanFilterWeight=>kalman 0 x,y IR Kalman filter weight

/Grid/probabilityLiquidPrecipitation=>prob 0 x,y probability of liquid precip




dset 3B-MO.MS.MRG.3IMERG.%y4%m201-S000000-E235959.%m2.V03D.HDF5

dtype hdf5_grid

options template

title IMERG sample

undef -9999.9

xdef 3600 linear -179.95 0.1

ydef 1800 linear -89.95 0.1

zdef 1 levels 1 1

tdef 100 linear jun2014 1mo

vars 2

/Grid/precipitation=>p 0 x,y precipitation

/Grid/randomError=>error 0 x,y random error



Time aggregation:

dset 3B-MO.MS.MRG.3IMERG.%y4%m201-S000000-E235959.%m2.V03D.HDF5

dtype hdf5_grid

options template

title IMERG sample

undef -9999

xdef 3600 linear -179.95 0.1

ydef 1800 linear -89.95 0.1

zdef 1 levels 1 1

tdef 100 linear jun2014 30mn

vars 2

/Grid/gaugeRelativeWeighting=>gw 0 x,y gauge relative weighting

/Grid/probabilityLiquidPrecipitation=>probp 0 x,y prob liquid precip



How can I import GPM data into ArcGIS?

The netCDF files can be imported in ArcGIS using ArcGIS' Multidimension tool. Here is the recipe with instructions on how to do this:


The HDF files can be directly added to the software but the geolocation info is not recognized. Additional manipulation is needed after the data are added. We advise  users to use only the netCDF files through OPeNDAP or follow an additional recipe to perform the HDF manipulation which will be released soon!

Data Applications


Any web portals or tools that support applications?

Yes, the PMM site has a list of GPM related applications:


What are the major changes between TRMM Version 6 and TRMM Version 7?

This document,

describes major Data Format Changes in Version 7 TRMM products as compared to previous Version 6 TRMM products.

Metadata changes:

File Specifications for TRMM Products:

Online tools for inter-comparing V6 and V7 TRMM L-3 monthly and TMPA products: 

I am using the 3-hourly 3B42 rainfall rates from TRMM. How can I convert these 3-hourly rainfall rate (mm/hour) to total daily rainfall (mm/day)?

The 3B42 rain rate is a 3-hourly average centered at the middle of each 3-hour period (i.e., 0Z, 3Z, 6Z, 9Z, 12Z, 15Z, 18Z, and 21Z). To convert these rainfall rates to total daily rainfall, first multiply each 3-hourly rainfall rate by 3 hours, to get the total rainfall for each 3-hour period. Then, for your desired 24-hour-day begin and end times, sum all the 3-hourly total rainfalls in your defined 24-hour period, to get the total daily rainfall.

What is the TMPA (3B42, 3B43) grid structure?

Each 3B42 file contains a 3-hourly estimate and each 3B43 file contains a one-month estimate. The grid on which each field of values is presented is a 0.25 deg x 0.25 deg latitude--longitude (Cylindrical Equal Distance) array of points over the latitude range 50N-S. It is size 400x1440, with X (latitude) incrementing most rapidly South to North, and then Y (longitude) incrementing West to East from the Date Line. Grid edges are located at whole-degree values:


First point center      = (49.875S,179.875W)

Second point center = (49.625S,179.625W)

Last point center      = (49.875N,179.875E)


The same grid-box definition applies to the RT and to the monthly.



What are the values for latitude and longitude in TRMM 3B42 and 3B43 HDF data files?

The data in the HDF file are written in the following order, (-49.875, -179.875), (-49.625, -179.875), (-49.375, -179.875), (-49.125, -179.875)......(49.875, -179.875), (-49.875, -179.625), (-49.625, -179.625)...... The dimension for longitude is 1440 and the dimension for latitude is 400. The value used to indicate missing data is "-9999.9".

Where can I find more information on the TRMM Data Set?

More information on the TRMM instruments and science can be found at the GES DISC/DAAC TRMM Data Web site:

How can I find out about TRMM-related activities, and the status of the TRMM spacecraft?

Please visit the Precipitation Processing System Activity Bulletin.

How current are the TRMM data?

The GES DISC/DAAC receives, under normal circumstances, processed standard orbital/swath data products about 2-3 days after satellite data acquisition, depending on the level of processing required. In addition to this ongoing collection of data, archives of older data are maintained.

TRMM V7 3B43 and 3B42 data product availability will be delayed for a period of 2 to 3 months.  For example; the 3B42 and 3B43 V7 products for May 2012 would not be available until August 2012 due to the extra inputs, variables and quality control measures. According to Dr. George Huffman, "The pacing item is the precipitation gauge analysis. In Version 7 we moved to using the GPCC "monitoring analysis", which is relatively high-quality and consistent with the GPCC "full analysis" that only appears a few years after the observation time. In previous versions we used the NOAA CAMS analysis, which gave better timeliness, but recently proved to differ from the expected patterns in the GPCC "full analysis" due to upgrades in the latter."

What is the GES DISC/DAAC Search and Order Web Interface?

The GES DISC/DAAC data search and order interface is a simple point-and-click web interface that is based on a hierarchical organization of data, displayed as tables. At different levels of the hierarchy, the tables contain some or all of the following: a particular data product grouping such as data product name, year, or month in the first column on the left; followed by columns of short description, begin date, end date, number of items available in the archives, average item size, a preview feature (if a data product has browse images), and documentation ("readme"). The last column on the right allows one to "Select" an item. At certain levels of the hierarchy, you can also use orbital and parameter search features to customize your search.

Specific help is provided at the top of each page of this system.


Where can I find some documentation describing TRMM and TRMM data?

Information about TRMM and TRMM data can be found in:

Where can I find some information describing the TRMM algorithms?

Information about algorithms used for the TRMM products can be found in the Algorithm Status Page, where the links to the products take you to brief descriptions of the status of the products and, for some products, key references.

I would like to receive all new files generated for a data product, over a given time period, at a specified time interval (e.g., weekly). Can I set up a procedure by which specified data will be sent to me automatically?

Yes, just contact (or 301-614-5224, voice; or 301-614-5268, fax) and request a "subscription." Information that would be needed from you are data product(s) desired, begin date, and end date. You will receive an email notification whenever data are ready for FTP pickup.

How are the daily products computed from 3B42RT and 3B42 in TOVAS?

These daily products are computed by accumulating all the estimates available in the eight observation times of a given UTC day, namely 00, 03, ..., 21 UTC. Formally, this "day" covers the period from 2230 UTC of the previous day through 2230 UTC of the given day. Other "day" products can be computed interactively for 3B42RT and 3B42 by specifying similar 8-period runs of data. For example, a day that starts at 09 UTC can be approximated by taking data from 09 UTC of one day through 06 UTC of the next. At present, there is no capability in TOVAS for a more exact approximation of a "day" for these data sets.

What’s the key documentation describing the 3B42RT and 3B42 products?

The paper describing the 3B42RT (real-time) and 3B42 (research quality) of the TRMM Multi-satellite Precipitation Analysis (TMPA) products is accessible at Huffman, G.J., R.F. Adler, D.T. Bolvin, G. Gu, E.J. Nelkin, K.P. Bowman, Y. Hong, E.F. Stocker, and D.B. Wolff, 2007, The TRMM Multi-satellite Precipitation Analysis: Quasi-Global, Multi-Year, Combined-Sensor Precipitation Estimates at Fine Scale. J. Hydrometeor., 8(1), 38-55. Technical documentation is also available for the research product and real-time product, as is a WHATSNEW file, which contains recent notices about issues with the RT product.

What’s the difference between the real time and research products of the TRMM Multi-satellite Precipitation Analysis (TMPA)?

The Near-Real-Time TRMM product *3B42RT* is being computed with the TMPA in near-real-time, and constitutes the most timely source of TMPA estimates. The near-real time computation requires several simplifications in 3B42RT compared to 3B42:

  1. The complete 3B42RT data record is not reprocessed as upgrades are made to the procedure – its main focus is timeliness.
  2. The IR calibration period is a trailing 30-day accumulation, rather than the calendar month in which the observation time falls.
  3. A real-time version of the TMI is used as the calibrating standard because the TRMM Combined Instrument product (2B31) is not available in real time.
  4. In near-real time it is not possible to apply precipitation gauge data.

Note that 3B42 estimates are considered to supersede the 3B42RT estimates as each month of the 3B42 data are computed  during the following month. The 3B42 processing is designed to maximize data quality, so 3B42 is strongly recommended for any
research work not specifically focused on real-time applications.

For more details:



What are the caveats in using TRMM Multi-satellite Precipitation Analysis (TMPA) products?

The following are some caveats in using TMPA:

  • The key caveat is that all of the TMPA products are research products, not "operational" in the sense of hot spares, contingency plans, and backup machines waiting to take over in the event of a failure. Looking back through the RT news, the prospective user should get the sense that the system could run for months at a time, but if there's a network failure or a disk crash, it might take days to fix, particularly over weekends or holidays.

  • The TMPA is a gridded product, which is different from the point rain gauge data more familiar to some users. On the other hand, grid values might be more appropriate for certain applications than are point values from rain gauges.
  • Although the TMPA analysis scheme is consistent for the time period of a given version, the suite of input data varies. For example, there is less of the (higher-quality) microwave data before 2001 or so; the infrared data are on a coarser grid in 1998-1999; gauge sites report individually, and, therefore, are subject to availability issues, particularly in developing countries.
  • Occurrence of precipitation over land tends to be underestimated, because satellite schemes tend to miss light precipitation and precipitation that is enhanced by flow lifting over mountains.
  • Occurrence and amount of precipitation in some, but not all, coastal areas tend to be underestimated. Conversely, arid coastal areas (oceans and lakes) sometimes show persistent artifacts. Both effects are due to issues in the input microwave estimates.
  • The RT amounts tend to be biased high in warm-season convective weather due to biases in the input microwave estimates.
  • The Version 6 amounts tend to be biased low in regions of complex terrain due to gauge-location biases toward lower elevations.


Can I see an example of a GrADS ctl file for TRMM Level-2 and Level-3 HDF data?

The following document  provides examples of ctl files. These examples may be useful to TRMM data users familiar with GrADS.

Sample GrADS ctl files for TRMM Level-3 Products (PDF)

For the time being, GrADS can't read TRMM Level-1 and Level-2 products. Please check, for other software packages.


How do I extract time information from the TRMM 3B42 file name?

In a TRMM 3B42 file name (e.g., 3B42.19980115.00.7.HDF.Z) the "0" in the file name following the date (MMDD) indicates the midpoint of a 3-hour interval. In the example filename, the "00" indicates 00:00Z. So the data in this file were acquired commencing at 22:30Z (1/14/1998) and ending at 1:30Z (1/15/1998). The precipitation quantity is the average rain rate calculated over this 3-hour interval. Note that the "Z" in the filename indicates that the file is compressed with Unix compression and does not designate a time. Thus, the 3B42 filename template is 3B42.YYYYMMDD.<midpoint of a 3-hour interval>.<version #>.HDF.Z


How can I read the TRMM binary files in TOVAS?

The following read programs in Fortran can be applied to TRMM TOVAS binary files. For some products, an adjustment to the array size is needed.

1) For 3B42 and 3B43,

C The binary data are in Big Endian. This
C Fortran code is for Little Endian machines
real*4 data(1440,400),datain(1440,400)
real lon
real lat
CHARACTER*1 cvarin (4), cvar (4)
EQUIVALENCE (cvarin, varin)
EQUIVALENCE (cvar, var)
+ access='DIRECT',status='OLD',recl=1440*400*4)
read(10,rec=1)((datain(ii,jj), ii=1, 1440), jj=1,400)
C Now that the month of data has been read into the array, swap
C the byte order.
DO i = 1, 1440
DO j = 1, 400
varin = datain (i, j)
cvar (1) = cvarin (4)
cvar (2) = cvarin (3)
cvar (3) = cvarin (2)
cvar (4) = cvarin (1)
data (i, j) = var
do 10 jj=1,400
do 10 ii=1,1440
lon = -179.875+0.25*(ii-1)
lat = -49.875+0.25*(jj-1)
10 continue


2) For 3B42 and 3B42RT daily

C The binary data are in Big Endian. This
C Fortran code is for Little Endian machines
real*4 data(1440,400),datain(1440,400)
real lon
real lat
CHARACTER*1 cvarin (4), cvar (4)
EQUIVALENCE (cvarin, varin)
EQUIVALENCE (cvar, var)
+ access='DIRECT',status='OLD',recl=1440*400*4)
C This part is for Little Endian machine
C (The data was written in Big Endian).
C Now that the data has been read into the array, swap
C the byte order.
DO i = 1, 1440
DO j = 1, 400
varin = datain (i, j)
cvar (1) = cvarin (4)
cvar (2) = cvarin (3)
cvar (3) = cvarin (2)
cvar (4) = cvarin (1)
data (i, j) = var
do 15 jj=1,400
do 15 ii=1,1440
if (ii <= 720) then
lon = 0.125 + 0.25*(ii-1)
lon = 0.125 + 0.25*(ii-1) - 360.0
lat = -49.875+0.25*(jj-1)
15 continue

How can I convert mm/hr in TRMM 3B43 to mm/month?

Because the total days in each month are different, mm/hr is used for easy comparison. Since the 3B43 product is a monthly average, you could simply do the conversion by multiplying the hourly rain rate with the total hours in that month.

Is there any software to convert radiance to brightness temperature?

VIRS L1B Radiance Converter

The 1B01 Calibration software creates an alternative VIRS L1B product. It converts the 1B01 radiances to percent albedo for visible channels, and to brightness temperatures for thermal channels. The output has the same HDF format as the 1B01 product, and all 1B01 parameters except radiances are carried over.

The software is written in C. The PPS/TSDIS toolkit and a few HDF routines are used and included in this software package.

The VIRS L1B converter can be obtained using the PPS/TSDIS anonymous FTP site:



How come there are missing or empty orbital data files?

Please refer to our TRMM Satellite Data Outages Page.   This page has a table listing outages, and in many cases, an explanation of why the data for a particular period is missing.

Also refer to the Precipitation Processing System site,

PPS Anomalous Granule Table


For the TRMM 2A25 data product, Is the 80th level located at 250m height, 79th at 500m ...and so on ...?

The range bin numbers in the output of 2A25 are all relative to the Earth's ellipsoid with the ellipsoid range bin corresponding to 79. For example, if the range bin number is 75, its height from the ellipsoid is (79-75)*0.25 = 1.0 km. This number is NOT the height above the actual surface.

For other 2A25 related caveats, please read:

For TRMM 3B43, 3B42, it seems there are two datasets (HDF and binary) with different latitude, longitude arrangements. Is this true? Which one should I use?

Yes and both are arranged differently. The HDF is the standard TRMM archive format and data are written in the following order, (-49.875, -179.875), (-49.625, -179.875), (-49.375, -179.875)...... The binary are written for GrADS (a free popular software used in climate and weather communities) and in (-49.875,-179.875), (-49.875,-179.625), (-49.875,-179.375°W)...... Apparently if you are a GrADS user, you should use the binary. Otherwise, there is a list of software in

Why there is an extra "A" in 3B42 and 3B43 file names after May 2007?

Due to changes in the AMSU calibration, all 3B42 and 3B43 granules starting in May 2007 and continuing for the remainder of the Version 6 processing cycle will now have the designation "6A" to indicate this change.

Full announcement for TRMM Data Users - Due to changes in the AMSU calibration, all 3B42 and  3B43 granules starting in May 2007 and continuing for the remainder of  the Version 6 processing cycle will now have the designation "6A" to indicate this change. One of the inputs to 3B42 and 3B43 is AMSU-B data processed by NOAA. NOAA began processing with a new version of their algorithm May 31, 2007 around 1800 UTC.  3B42 and 3B43 had to change to use the new AMSU-B. Since both 3B42 and 3B43 use data from the entire  month, all 3B42 and 3B43 for May 2007 forward have the filename version 6A and the algorithm version 6.43.

Additional info can be found at the link below:

In the 2A25 TRMM data product, where within the HDF file is the time of the orbit information located?

The date information is in the file name, or in the HDF file,


For each scan, you need to locate a variable in Vdata, scan_time, which is the time associated with the scan, expressed as an 8-byte floating variable for the UTC second of the day.

Either 'HDFView' or 'ncdump' can be employed to view that variable.

How can I import TRMM data in ENVI?

It is easy to import TRMM data in ENVI. Simply follow the steps below.

Note: Projection: Geographic lat/lon. Datum: WGS-84

From the command line, type in, ENVI,


1) Click File|Open External File|Generic Format|HDF. Select a file and click OK

2) Select geolocation and channels (e.g., 1B01.20020311.24639.7.HDF) and click OK. Select BIP in HDF Data Set Storage Order

3) Create a GLT (geography location table) and store it in memory:

Click Map|Georeference from Input Geometry|Build GLT. Select geolocation:Band2 as X geometry band and geolocation:Band1 as Y geometry band.

4) Select Geographic Lat/Lon in both input/output Porjection of Geometry Bands. Click OK. Select 0 degree rotation in output and click Memory in Output Result to. Note: it can take a long time to process.

5) Click Map|Georeference from Input Geometry|Georeference from GLT.  Select Memory1. Select SDS as input data file.  Select Memory from Georeference from GLT. Select Memory from ENVI Output to Memory.

6) Select a band from the list in the newly generated memory and click Load Band. You will see the geolocated map. Right click the image and select Cursor location/values... to see data values for each pixel.

TRMM L-3 daily binary:

1) Select File|Open Image File. Select a daily binary file (3B42_daily.2010.02.26.7.bin).
2) Fill in the following info:

Samples: 1440
Lines: 400
Bands: 1
Offset: 0
xstart: 1
ystart: 1
File Type: ENVI Standard
Byte Order Network(IEEE)
Data Type: Floating Point
Interleave: BSQ


Click 'OK'

3) Select Basic Tools|Rotate/Flip Data. Select the daily file. Type in -90 degrees and select Yes for Transpose. Select Memory and click OK.

4) You will see Memory1 and Map Info. Right click Memory1 and select Edit Header. Click Edit Attributes|Map Info. Fill in the table with Image X = 1, Image Y = 1; 0.0 and 50.0 for Map Coordinate of the Tie Point. Put 0.25 degree for Pixel Size of both X and Y. Click OK.

5) Select the band in Memory1 and click Load Band.


1) From the command line, type in, ENVI,

2) Click File|Open External File|Generic Format|HDF. Select a file and click OK

3) Select both precipitation and relativeError (e.g., 3B43.20100201.7.HDF) and click OK. Select BSQ in HDF Data Set Storage Order

4) Select Basic Tools|Rotate/Flip Data. Select Data Set #1 (precipitation) and click OK. Type in -90 degrees and select Memory.

5) Right click Memory1 and select Edit Header. Click Edit Attributes|Map Info. Fill in the table with Image X = 1, Image Y = 1;
-180.0 and 50.0 for Map Coordinate of the Tie Point. Put 0.25 degree for Pixel Size of both X and Y. Click OK.

6) Pick the parameter you just added the map info to and click Load Band.

TRMM Orbital Gridded Subset (e.g. G1B01)

The gridded subset data files were written in a station format and need to be converted to an image file in binary. Note that it seems ENVI can only take Big Endian.

1) Convert the product into an image file using a sample program listed in the readme, e.g.,

2) Follow the steps listed in the 3B42 daily. In this example, (-180.0, 180.0), (-40.0, 40.0), (1440, 320), 0.25 deg. Big Endian.

If you see a lot of zeros in ENVI, you need to switch to Big Endian.


How can I import TRMM 3B42, 3B43 and 3B42 daily data to ArcGIS?

 From Mirador (, download their NetCDF files and use the instructions in this link:


Do you have software code that can read TRMM files in Matlab, IDL, NCL?


Here is a sample program in Matlab that will read a TRMM 3B42 daily binary file.

% This program is to read a TRMM 3B42 daily binary file

fid = fopen('3B42_daily.2009.05.31.7.bin', 'r');

precipitation = fread(fid, [1440, 400], 'float','b'); fclose(fid)

precipitation = rot90(precipitation);

for i_lat = 400:400
for j_lon = 1:4
    lat = 49.875 - 0.25*(i_lat - 1)
    if j_lon <= 720
         lon = 0.125 + 0.25*(j_lon - 1)
          lon = 0.125 + 0.25*(j_lon - 1) - 360.0
     daily_rain_total = precipitation(i_lat, j_lon)


Here is a sample program to read a TRMM Level 3 HDF4 data file in Matlab.

% This sample program is to read TRMM L3 HDF4 data

precipitation = hdfread('3B43.20090101.7.HDF',

% Rot 90 deg anticlockwise to make (-49.875, -179.875) at the lower left corner
% of the array and to make it match TOVAS

rain_90rot = rot90(precipitation);

for i_lat = 400:400
     for j_lon = 1:3
         lat = 49.875 - 0.25*(i_lat - 1)
         lon = -179.875 + 0.25*(j_lon - 1)
         rain = rain_90rot(i_lat,j_lon)


Sample program to read a TRMM Level 2 HDF4 file in Matlab


data = hdfread('2A25.20090520.65575.7.HDF', 'ZRParmA');

related links:


What is the global projection used for Level-3 data?

The projection used is, geographically, the Equirectangular projection, and the datum is WGS84.

When import the data into GIS software (e.g., ArcGIS, Erdas/Imagine, ENVI), select the global WGS84 "Geograhic" coordinate system as spatial reference/projection info.



For a given location, how can I obtain the nearest grid point from the 3B42 and 3B43 data sets?

 Here is an example for 3B42.

1. Scroll down to the "Rainfall Archives" list.
2. Select the "Non_Java Version" for "3B42 V7".
3. Type in the latitude/longitude of the location as both the West/East and North/South limits.
4. Choose "Accumulated Rainfall (mm)" or "Rain Rate (mm/hr)"
5. Choose the plot type "Time Series, Area-averaged".
6. Enter the year/month span for which you want data.
7. Click on "ASCII Output".

The output will look like this:

Selected parameter: 3-hourly TRMM 3B42(V7) Accumulated Rainfall
Selected point: lat=[0], lon=[120E]
Undefined/Missing Value: -9999
Unit: (mm)
Time(year:month:day:hour) AccRain
2010:08:01:00 0.0000
2010:08:01:03 0.0000
2010:08:01:06 0.0000
2010:08:01:09 0.0000
2010:08:01:12 0.0000
2010:08:01:15 0.0000
2010:08:01:18 0.0000
2010:08:01:21 2.6491


Do you have any spatial subsetting web services?
Yes, but only limited to few TRMM products, such as 3B43 and 3A12.

For details and data access, visit,

The subsetting service is available for editing after you add items to the shopping cart.


Are there any known caveats for the 2A12 and 3A12 data products?

The algorithm developer sent us the following warning:

The latent heating products of TRMM 2A12 and 3A12 over ocean surfaces should be regarded as experimental. Please confer first with the algorithm developers (by contacting the GES DISC) when using the latent heating product over the ocean. Over-land latent heating estimates from TRMM products 2A12 and 3A12 should not be used, as they have not been evaluated quantitatively or qualitatively. 


Are there any known deficiencies for the 3B42 data set?

The IR data prior to February 2000 covers the span 40° North to 40° South. After and including February 2000, the data cover 50° North to 50° South. This results in a minor discontinuity in the data record. Also, HQ data sources are introduced at different points in the data record. Therefore, variations in HQ coverage will occur throughout the record, increasing as time progresses. Most critically, the introduction of AMSU-B data causes a low bias of almost 10% globally.


Do you have any information and/or examples of using other languages or software to read TRMM HDF-EOS data?

Yes, the HDF developers have developed comprehensive examples:[GESDISC%20Examples]

Support is also available.

What is "relative error" in TRMM 3B42 and 3B43?

The "relative error" is the random error discussed below.

The accuracy of the precipitation products can be broken into systematic departures from the true answer (bias) and random
fluctuations about the true answer (sampling), as discussed in Huffman (1997). The former are the biggest problem for climatological averages, since they will not average out. However, for short averaging  periods the low number of samples and/or algorithmic inaccuracies tend to present a more serious problem for individual microwave data sets. That is, the sampling is spotty enough that the collection of values over (for example) one day may not be representative of the true distribution of precipitation over the day. For VAR, the sampling is good, but the algorithm likely has  substantial RMS error due to the weak physical connection between IR Tb's and precipitation.

Accordingly, the "random error" is assumed to be dominant, and estimates could be computed as discussed in Huffman (1997). Random error cannot be  corrected.

The "bias error" is likely small, or at least contained. This is less true over land, where the lower-frequency microwave channels are not  useful for precipitation estimation with our current state of knowledge. The state-of-the-art at the monthly scale is reflected in the study by Smith et al. (2006).  Studies of the sub-monthly bias have not yet been performed.

References:  Huffman, G.J., 1997: Estimates of root-mean-square random error contained in finite sets of estimated
precipitation. Journal of Applied Meteorology, 36, 1191-1201.  (Link to full text of paper, PDF version)

Smith, T.M., P.A. Arkin, J.J. Bates, and G.J. Huffman, 2006:  Estimating bias of satellite-based precipitation estimates. Journal of Hydrometeorology, 7(5), 841-856.  (Link to abstract;  full text requires subscription or payment)


How can I view and read the merged IR data in the Hurricane Data Analysis Tool (HDAT)? Is there any reference for this tool?

1) If you just need some images/animations and don’t need the raw data:

2) If you are an IDV or Panoply user, use the GDS link,

Note: For IDV,
(1) Increase memory to 2048 MB allocated to IDV using instructions from the IDV FAQ:
(2) In Data Chooser, select General->URLs and type/paste in the URL:
(3) In Field Selector, lower right, check "Times" and then uncheck "Use Default". Check to display only one time.
(4) Still in Field Selector, lower right, check "Stride", and then select "Every third point"
(5) Click "Color-Shaded Plan View" in upper right of Field Selector.
(6) Click "Create Display"

3) If you are a GrADS user, the ctl file is ready,

You can use the GDS,

4) For IDL users, here is a sample read code:


pro merg_regrid

openu, 3, 'merg_2004090100_4km-pixel'

ir1=Bytarr(9896, 3298)
ir2=Bytarr(9896, 3298)

readu, 3, ir1
readu, 3, ir2


Note: there are two data arrays for 00 min and 30 min in each file. You  also need to add 75 to each pixel to get the correct brightness temperatures.


The original README:

Liu, Z. D. Ostrenga and G, Leptoukh, 2011, Online Visualization and Analysis of Global Half-hourly Pixel-Resolution Infrared Dataset, Bulletin of the American Meteorological Society, Vol. 92, No. 4, 429-432.


I am trying to read TRMM gridded orbital subsets in binary, but am getting some negative numbers for begin date and end date. Also the record length shows negative numbers. Could you help me?

Very likely your machine is Little Endian. The binary data are in Big Endian and the sample read code in the PDF is for Big Endian machines. You need to add extra code for conversion if your machine is Little Endian, such as,

Where are TRMM field campaign data located now?

The following links are to ftp data directories which archive TRMM Field Campaign data at the GES DISC:

TRMM Field Campaign data is also archived in other locations:



 Do you have more information regarding the difference in geolocation (latitude, longitude) between TRMM Version 6 and 7?


The geolocation did change slightly between Version 6 and Version 7.  We incorporated some small corrections for orbit frequency roll errors as estimated from PR data over most of the mission.

For 2A12, V6 has 50 overlap scans before and after the orbit and V7 has none.  Therefore, one has to compare the geolocation of first scan in V7 against the 51th scan of V6.

For more details, please see,

 Do you keep a history of TRMM alert messages?


Yes, see,

 Do you have a land/sea mask for 3B42/43?


Yes, see,

 How is Storm Height in TRMM 2A23 computed?


The geolocation of each ifov is given only at the intersection of the
Earth ellipsoid and the ray vector. The rays are slant path.

In 2A23 the storm height is computed:
It is computed by
stormH[i] = (L1c21_swath_data->scRange[i] - range)* cos(zenith[i]);
range = (binStormHeight[i][1] - L1c21header->rayHdr[i].rayStart)*125
+ L1c21header->rayHdr[i].startBinDist;

Since the rays are slant path, the latitude and longitude of a given
bin that is above the Ellipsoid will move inwards towards the center of
the swath. At distances of 15km above the Ellipsoid bin this correction is
on the order of a ifov.

 Is there any IDL code to read TRMM products?

Yes, the HDF group has some sample IDL code for TRMM data,


How to interpret ASCII output from Simple Subset Wizard (SSW)?

The ASCII output from SSW ( can be interpreted with this example,

Dataset: bes_cache#ftp#data#opendap###TRMM_L3#TRMM_3B42#2010#180#3B42.20100630.00.7.HDF
precipitation_DATA_GRANULE_PlanetaryGrid[0][0], 1.44, 1.2, 1.72, 2.73, 2.6, 2.45, 2.11, 0.94
precipitation_DATA_GRANULE_PlanetaryGrid[0][1], 1.2, 1.15, 1.27, 3.47, 4.98, 4.36, 3.16, 0.98
precipitation_DATA_GRANULE_PlanetaryGrid[0][2], 0.74, 0.59, 0.86, 4.91, 7.45, 13.07, 4.4, 1.38
precipitation_DATA_GRANULE_PlanetaryGrid[0][3], 0.91, 0.74, 1.72, 8.87, 22.49, 26.03, 4.4, 1.36
precipitation_DATA_GRANULE_PlanetaryGrid[0][4], 1.38, 1.41, 3.14, 13.3, 26.58, 25.94, 3.69, 0.99
precipitation_DATA_GRANULE_PlanetaryGrid[0][5], 2.74, 4.35, 3.67, 27.81, 27.46, 25.94, 3.33, 0.96
precipitation_DATA_GRANULE_PlanetaryGrid[0][6], 3.86, 4.3, 4.95, 15.95, 11.03, 4.69, 0.97, 0.59
precipitation_DATA_GRANULE_PlanetaryGrid[0][7], 5.43, 5.66, 6.45, 14.94, 7.18, 4.44, 0.92, 0.53
latitude, 24.375, 24.625, 24.875, 25.125, 25.375, 25.625, 25.875, 26.125
longitude, -93.375, -93.125, -92.875, -92.625, -92.375, -92.125, -91.875, -91.625
scan, 0

For the 1st column of the data array, the latitude is fixed at 24.375. There are 8 data elements in this column and their corresponding longitudes are listed at the bottom of the output. Based on this info, the geolocation for the 1st element (1.44) is (24.375, -93.375), the 2nd (24.375, -93.125)......

The same can be applied to the output from OPeNDAP (


How to import Giovanni TOVAS ASCII output to Microsoft Excel spreadsheet?

It is easy to import Giovanni TOVAS ASCII output to Microsoft Excel spreadsheet. Simply follow this link for details,


How to read TRMM Level-3 binary data with Python?

The following sample script is provided by a TRMM user, Edward Guevara. If you have questions, please contact Edward.

# Author: Edward Guevara
# email:
# Date: 2012-06-05
# Purpose: Example python script for read .bin file  and write out .txt file
from struct import unpack
BinaryFile = '3B42_daily.2009.05.31.7.bin'
FileASC = '3B42_daily.2009.05.31.7.txt'
f = open(BinaryFile, "rb")
fOut = open(FileASC, 'w')
NumbytesFile = 576000
NumElementxRecord = -1440
for PositionByte in range(NumbytesFile, 0, NumElementxRecord):
        Record = ''
        for c in range (PositionByte - 720, PositionByte, 1):
       * 4)
                DataElement = unpack('>f',
                Record = Record  + str("%.2f" % DataElement + ' ')
        for c in range (PositionByte - 1440, PositionByte - 720, 1):
       * 4)
                DataElement = unpack('>f',
                Record = Record  + str("%.2f" % DataElement + ' ')
        fOut.write(Record[:-1] + '\n')

 How to subset and download TMPA products in ASCII via a URL call?

If you are interested in subsetting and converting to ASCII the TMPA data, we have developed a new service that allows you to accomplish this through a URL call. Below is a sample of a URL and the required inputs:,-54,21,-14&TIME=2012-03-31T21:00:00%2F2012-03-31T21:00:00&FLAGS=3B42_V7,Area&SHORTNAME=3B42_V7&VARIABLES=Rain

Here are the acceptable inputs:



TIME=STARTTIME%2FENDTIME     (please retain the same format of YYYY-MM-DDTHH:MM:SS)

FLAGS=Product_version,Plot type   (plot type is ‘Area’ or ‘Time’, see next line for acceptable Product_version)

SHORTNAME=Product_version (acceptable values are the following: 3B42RT_Daily, 3B42_V6_Daily, 3B42_V6, 3B43_V6, 3B42_V7, 3B42_V7_daily, 3B43_V7)

VARIABLES=variable (acceptable values is ‘Rain’ or ‘AccRain’)

Why there is an extra "A" in V7 3B42 and 3B43 file names between January 2000 and September 2010?

It was recently discovered that AMSU data were neglected in the first retrospective processing of both the Version 7 TMPA (3B42/43) and TMPA-RT (3B40/41/42RT) data series, which creates an important shortcoming in the inventory of microwave precipitation estimates used during 2000-2010. In addition, a coding error in the TMPA-RT replaced the occasional missings in product 3B42RT with zeros. Accordingly, both product series are being retrospectively processed again. The main impact in both series should be to improve the fine-scale patterns of precipitation during 2000-2010 (and for 3B4xRT into late 2012). Averages over progressively larger time/space scales should be progressively less affected. [This is the reason the lack of AMSU went undiscovered; the merger system copes very reasonably with missing data.] Nonetheless, users are urged to switch to the newest Version 7 data sets as soon as they are computed and posted (in the next few weeks). The newest runs may be identified by the file names: V.7 3B42/43 suffix of "7A.HDF" for January 2000 - September 2010 V.7 3B4xRT suffix of "7R2.bin" for 1 March 2000 - 6 November 2012 It continues to be the case that the Version 7 3B42/43 is some 5-8% higher than the calibrating data set (2B31) over oceans, which is believed to be erroneous. However, the first several attempts at diagnosing this issue have not been fruitful. At the large scales this offset seems to be nearly a proportional constant.

Please note that if you plan to download the GrADS ready V7 3B42/43 from, the "A" has been removed from the file name because our applications can't support different file name templates.

How can I extract rainfall data from an irregular area?

1) If you have commercial GIS software, follow this link,

2) If you are a GrADS user, convert your irregular area into a mask and apply this mask to rainfall data.
If you have a shapefile, you can use software such as gdal ( to make the mask, for example,

$ gdal_rasterize -burn 1 \
> -where STUSPS=\'CA\' \
> -te -180 -90 180 90 \
> -ts 360 180 \
> -of netCDF tl_2012_us_state.shp
0...10...20...30...40...50...60...70...80...90...100 - done.

A recipe has been written for this,


Is there any mailing list to receive announcements on the latest data information, tools and services that become available?

Yes, contact the GES DISC User Services to be added to the list.

For TRMM product alerts, subscribe this RSS feed:

Is it possible to download a times series of TRMM L-3 data (such as TMPA 3B42, 3B43)?

1) If you only have few points to extract, the easiest way is to use Giovanni TOVAS,

First type in the geolocation information (latitude, longitude) of the point in the "Area of Interest" and update the map; select
a time period and "Time Series" to generate a plot. The output time series files in HDF, NetCDF and ASCII are available
in "Download Data".

2) If you have many points, you could use the following options,

a) Go to,,

and use the script in "TMPA Subset ASCII Service."

b) Use OPeNDAP:

c) Use GrADS GDS: See,

d) Download original files in HDF and write your own software (i.e., IDL, Matlab, GrADS, etc.) to extract time series.
You can use SSW ( or Mirador to download the data.

Can I download TRMM (3B42, 3B43) data with just one NetCDF?

Using ncks, TRMM data can be downloaded with one NetCDF file, for example,

ncks -O --mk_rec_dmn time -v r -d time,0,5 -d lon,236.,294. -d lat,23.0,49.0


The chunking *along time* would be done, i.e.:

ncks -O --mk_rec_dmn time -v r -d time,0,5 -d lon,236.,294. -d lat,23.0,49.0
ncks -O --mk_rec_dmn time -v r -d time,6,10 -d lon,236.,294. -d lat,23.0,49.0

ncks can be downloaded from,


Users can use the following services to reduce file size,

1) Simple Subset Wizard,

2) Use TOVAS to generate time series ASCII output if not many grid points involved.

3) Use TMPA subset ASCII service to generate time series, (near the bottom of the page)

4) GrADS Data Server (GDS):

Are there any data recipes for GES DISC data services?

Yes, see,

Is there any README and software for the TRMM Composite Climatology (TCC) products?

          The TRMM Composite Climatology (TCC) of Tropical Rainfall
                                 September 2010

There are 78 data files in this directory: 13 each (annual and month-of-year)
for 2A12, 2A25, 2B31, 3B43, TCC, and standard deviation of TCC. The file name
<type>.<month>.<TRMM version>.bin
Each file is one grid, and the grid is 0.5 degree. The data are from west to
east starting from 0.25E (720 grids), and north to south starting from 35.75N
(144 grids).

Following is the Fortran program to read the data:

      real rain(720,144)
      read(22) rain

It is hoped that this new climatology will be useful as a summary of surface
rain estimates from TRMM (not replacing the individual products) and will be
useful to the user community as a ready comparison with other non-TRMM analyses
and for comparison with numerical models, including those used for retrospective
"re-analysis" and for climate simulations.

If having questions, you may contact:
Dr. Jian-Jian Wang
Mesoscale Atmospheric Processes Branch
Code 613.1, NASA/GSFC
Greenbelt, MD 20771
Phone: (301)614-6355

Note: The V7 TCC products are currently not available.


How do the IR calibrations for 3B42 and 3B42RT differ?  What is planned in this regard for GPM?

 A whole calendar month is used for IR calibration in 3B42, while it's the trailing approximate 30 days for 3B42 RT.  The calendar-month approach works for 3B42 because it's processed about 2 months after observation time, so the entire month of data has been observed by the time computation occurs.  More precisely, the RT calibrations are accumulated on pentad (5-day) periods.  So, the calibration period is the previous 5 whole pentad periods and whatever of the current pentad period has occurred.  This is done for computational simplicity.

 If we take 5 May 2010 as an example, 3B42 uses calibrations based on 1-31 May 2010, while 3B42RT uses calibrations based on 6 April 2010 (The beginning of the 5th-earlier pentad) to the observation time on 5 May 2010 (which happens to be the last day of the current pentad).

 Looking to the GPM era, we're shifting the timing for IR calibration in the GPM multi-satellite products, which are collectively called IMERG; see

.  All RT and "final" versions will have calibration windows that slide along as time progresses, but the "Final Run" will have a window that extends about 2 weeks into the future (again, because processing happens 2 months later, so all the "future" data are recorded).

 1. The 3B42 calendar-month IR calibration is sort of a historical artifact, due to the fact that 3B42/43 is processed a calendar month at a time.  For GPM, in the new IMERG Final Run the IR calibration will be a centered 30-day period, recomputed once a pentad.

2. The new IMERG Final Run will continue to use calendar-month calibration to the gauges because the monthly gauges are accumulated on calendar months.

3. The new IMERG RT will continue to use a trailing approximate 30-day calibration, since you can't reach into the future.


What is the repeat cycle of TRMM?

46 days and it changes 24 hours of local time in 46-day procession cycle.


Is there any information about the TRMM temporal sampling of tropical regions?

Negri, Andrew J., Thomas L. Bell, Liming Xu, 2002: Sampling of the Diurnal Cycle of Precipitation Using TRMM. J. Atmos. Oceanic Technol., 19, 1333–1344.


How can I read the original 3B42RT binary data correctly with a GrADS ctl file?

Use this,

dset ^3B42RT.%y4%m2%d2%h2.7.bin

options template big_endian yrev

title Real-Time Three Hourly TRMM and Other Satellite Rainfall (3B42RT)

headerbytes 2880

undef -31999

xdef 1440 linear 0.125 0.25

ydef 480  linear -59.875 0.25

zdef 1 levels 1

tdef 99999 linear 21Z23sep2006 3hr

vars 3

p       0 -1,40,2,-1 Precipitation (mm/hr)

perror  0 -1,40,2,-1 Precipitation Error (mm/hr)

source  0 -1,40,1    Source Number



Don’t forget to scale p by 100.


 How to download TRMM 3B43 data with a python script in ArcGIS?

From Wenli Yang:

# A short python script to download TRMM_3B43 monthly precipitation
# data from GES DISC's OPeNDAP service.

# The example is tested in ArcMap 10.2.1. It can be copied and
# pasted into the ArcGIS python window to test run.

# The example get a entire data array without performing spatial subsetting
# To get spatial subset. Users can change the array indices in the
# example's "var" part using the following correspondence between row/column
# indices and the latitude/longitude:
# There are 400 rows (from 0 to 399), representing
# latitudes from -49.875 to +49.875 at 0.25 increment. NOTICE that the
# centre coordinate of the first row, row 0, is at the south (-49.875).
# There are 1440 columns (from 0 to 1439), representing longitude from
# -179.875 to +179.875, at 0.25 increment.

# The script starts here
import urllib2
from datetime import datetime
from dateutil.relativedelta import relativedelta

# A complete TRMM_3B43 OPeNDAP url example (for July 2013):
# The fixed parts in TRMM_3B43 OPeNDAP URL

# example start and end months: Nov 2013 and Feb 2014

# loop through the start,end months
while iDate<=endDate:
  # output file saved to "c:\temp" dir, with name convention ""
  # print url # print to see actual URL for the month
  # print outfile # print output file name

Any information about TRMM lifetime prediction?

Yes, the TRMM official website has such information,





Return to FAQ Contents

Document Actions
NASA Logo -
NASA Privacy Policy and Important Notices
Last updated: Feb 18, 2015 03:35 PM ET