Summary Information about 3G68Land ----------------------------------- 3G68Land is an hourly gridded text product containing TRMM instrument rain estimates. The 3G68Land product includes 24 hour of hourly grids into a single daily file. It is produced in two separate products one for Africa and another for South America. 3G68 contains the following rain information on each data line total pixels from 2A12 (TMI) in cell rainy pixels from 2A12 (TMI) in cell mean rain rate from 2A12 (TMI) in mm/hr percentage of rain from 2A12 (TMI) calculated to be convective total pixels from 2A25 (PR) in cell rainy pixels from 2A25 (PR) in cell mean rain rate from 2A25 (PR) in mm/hr percentage of rain from 2A25 (PR) calculated to be convective total pixels from 2B31 (Combined) in cell rainy pixels from 2B31 (Combined) in cell mean rain rate from 2B31 (Combined) in mm/hr percentage of rain from 2B31 (Combined) calculated to be convective All TRMM 3G products report their data on a universal grid where 90S, 180W is grid matrix ID (0,0) and 90N, 180E is grid matrix ID (1800,3600). While TRMM data is only collected from approximately 38S to 38N, reporting grid IDs based on the universal grid should permit easier combination with data from other satellites. The first 5 lines in the file contains header information. Some of these are intended only for visual scanning while other lines can be used by software to assist in setting up memory automatically. Header Lines ------------ Line 1: Product_ID (3G68Land), Algorithm Version, Adjustment Algorithm ID (if any applied else NONE) Adjustment Algorithm Version (if any else NONE) TRMM Data Credit (NASA/NASDA/CRL) Date/Time Product Produced Line 2: Maximum Grid rows (Latitude) Maximum Grid columns (Longitude) Minimum Latitude represented in Grid Minimum Longitude represented in Grid Grid cell resolution Date of data in Product Line 3: (TRMM specific information -- all numeric) Minimun Latitude for TRMM data contained in product Maximum Latitude for TRMM data contained in product Minimum Longitude for TRMM data contained in product Maximum Longitude for TRMM data contained in product Line 4: keyword identified grid information Grid_First_Row Grid_Center_Latitude Grid_First_Column Grid_Center_Longitude Grid_Cell_Resolution Line 5: Data line column identifications hour minute row column tmi_total_pixels tmi_rain_pixels tmi_mean_rain tmi_conv_% pr_total_pixels pr_rain_pixels pr_mean_rain pr_conv_% comb_total_pixels comb_rain_pixels comb_mean_rain comb_conv_% Data Lines ---------- Each data line has a value for each item listed in line 5 of the header. Hour start at 0 as do minutes. Times in the product are recorded in UTC. Cell row identification for the hourly grid matrix start at 0 as does the column identification. In the event that a cell has a value for TMI but no PR pixel covered that cell, a 0 will included for pr_total_pixels field but no other values appear for PR or Combined. This situation in essence says that no PR pixel covered that grid box. This approach is taken to keep the file small because it does not print out missing values for the remainder of the PR or Combined fields. In the event that a cell has no TMI value but does have PR values, the TMI total-pixels field will be set to 0 and rain-pixels set to 0. The mean rain and the convective percentage will be set to -9 to indicate that these are missing. If neither the TMI nor the PR swath covered an hourly grid box then no information is written to the file. This means that values in the file represent grid boxes that had data from at least 1 of the TRMM instruments. Users may safely assume that grid boxes with no values listed in the file did not contain data. Sample Data Line ---------------- A. (Case when there is no PR pixel in cell) 1 26 676 2287 5 0 0 0 0 This is the 2nd hour grid (zero base) [UTC]. The first pixel in the box was at 26 min after the hour. The cell is identified by row 676 (zero base) and column 2287. This represents the .1 x .1 degree cell starting at latitude 22.4S up to but not including 22.3S. This represents the .1 x .1 degree cell starting at longitude 48.7E up to but not including 48.8E. This cell has 5 total pixels. 0 of these pixels were rainy pixels. The mean rain rate is 0 mm/hr. In the current product all convective % values for TMI are 0. Please not that This cell has no PR pixels so that no other numbers appear on the line after the 0 for PR total pixels. B. (Case when a line has both TMI and PR data) 23 53 1184 1687 1 0 0 0 2 1 0.23 0 2 1 0.25 0 1) This represents data from the 24th hour (zero base) [UTC]. The first pixel in the box was at 53 min after the hour. The cell is identified by row 1184, column 1687 (zero based). This represents the .1 x .1 degree cell starting at latitude 28.4N up to but not including 28.5N and longitude starting at 11.3W up to but not including 11.2W. 2) TMI had 1 total pixel, 0 rainy pixels, 0 mm/hr mean rain rate and 0 % convective rain. 3) PR 2A25 had 2 total pixels in the cell, 1 of which was rainy. The mean PR rain rate was .23 mm/hr. PR estimated that 0% of the rain-rate was convective. 4) The combined algorithm had 2 total pixels in the cell, 1 of which was rainy. The mean combined rain rate was .25 mm/hr. The combined algorithm estimated that 0% of the rain-rate was convective. C. (Case when a line has no TMI but has PR) 23 53 1186 1677 0 0 -9 -9 5 1 0.08 0 5 1 0.06 0 1) This represents data from the 24th hour (zero base) [UTC]. The first pixel in the box was at 53 min after the hour. The cell is identified by row 1186 and column 1677 (both zero based). This represents the .1 x .1 degree cell starting at latitude 28.6N up to but not including 28.7N and longitude starting at 12.3W up to but not including 12.2W. 2) TMI has no pixels in the box. As a result both rain rate and % convective are given the missing value so that user can assume when 0 appears it means 0 mm/hr and is not also used as a missing value indicator. 3) PR 2A25 had 5 total pixels in the cell, 1 of which were rainy. The mean PR rain rate was .08 mm/hr. PR estimated that 0% of the rain-rate was convective. 4) The combined algorithm had 5 total pixels in the cell, 1 of which were rainy. The mean combined rain rate was .06 mm/hr. The combined algorithm estimated that 0% of the rain-rate was convective. Rain Mean ---------- The means is calculated by summing the rain-rate in the specific product over a cell and then dividing by the total number of pixels in that cell. mean_rain = sum(R)/totalpixels The percent convective rain element is calculated by convective rain rates and dividing by the total rain rate and then multiplying by 100. convective_percent = sum(Rconv)/sum(R) * 100 SOFTWARE HINTS -------------- 1) The row and column values can be used directly as subscripts into a 1800 x 3600 cell universal matrix. In C row and col can be used as is because it is a zero based language. FORTRAN programmers must add 1 if their matrix is one based. 2) C statements for reading a single data line of 3G68Land: This example doesn't read directly into a matrix but into individual variables. The programmer would then have to assign to the appropriate row and col of the matrix. (e.g. &tmiTotal[row][col] rather than the scalar &tmiTotal. FILE *tFile; int hr,min, row, col, tmiTotal,tmiRain; int prTotal,prRain; int combTotal,combRain; float tmiMean,tmiPercent; float prMean,prPercent; float combMean,combPercent; /*********************************************************/ /* Need to first open the file and then read the 5 lines */ /* of headers. */ /*********************************************************/ while(fscanf(tFile,"%d %d %d %d %d %d %f %f %d", &hr,&min,&row,&col,&tmiTotal,&tmiRain, &tmiMean,&tmiPercent,&prTotal) != EOF){ if(prTotal > 0){ fscanf(tFile,"%d %f %f %d %d %f %f", &prRain,&prMean,&prPercent, &combTotal,&combRain,&combMean,&combPercent); } } 3) F77 statements for reading a single data line of 3G68Land This F77 example, based on IRIX F77, reads the values for the file into scalar values. However, the user may set up appropriate matrices based on the universal grid and read the values directly into the correct matrix cell using the value of latbox,lonbox. c Implement while loop as if/goto (IRIX f77 does not have while loop c or EOF function) 5 if (1) then read (50,*,end=100) hour, minute, latbox, lonbox, tmi_totalpix, + tmi_rainpix, tmi_rainrate, tmi_cs, pr_totalpix if(pr_totalpix .gt. 0) then c Line continues with more data so backup backspace(50) read (50,*,end=100) hour, minute, latbox, lonbox, tmi_totalpix, + tmi_rainpix, tmi_rainrate, tmi_cs, pr_totalpix, + pr_rainpix, pr_rainrate, pr_cs, comb_totalpix, + comb_rainpix, comb_rainrate, comb_cs + tmi_rainpix, tmi_rainrate, tmi_cs, pr_totalpix endif goto 5 100 print *, 'end of file' 4) Matrix Size As previously mentioned the universal matrix (90S - 90N and 180W to 180E) is used for determining the row and the column values. These row and column values can, therefore, be used directly as subscripts (zero based) into a matrix dimensioned 1800, 3600 (given the .1 x .1 degree grid box). TRMM data, however, only uses a small portion of this grid. If memory size is a problem the user can dimension a matrix that is only 800, 3600 for a .1 x .1 degree grid. The row subscript can still be used for accessing the row of this smaller matrix, if 500 is subtracted from the row number provided by the file. For example, suppose the row were listed as 501 and the column were listed as 2 based on the universal grid row and column identifiers. If one wanted to use this on a smaller TRMM grid, the row subscript would be 1 and the column subscript 2 (zero based). This would describe the box representing data for 39.9S upto by not including 39.8S latitude and 179.8W upto by not including 179.7W longitude. 5) Sample Read Programs: All sample read routines are located in the software directory of /pub sampleread3G68.c A sample program written in C read3g68.f A very straight forward sample read program in F77 (takes 22 secs to read the file) read3g68_2.f A slightly more elegant sample read program in F77 (takes 11 secs to read the file) readme.F77samples File containing explanations of the F77 samples These actually pertain to reading the standard 3G68 product (.5 x .5 deg grid). However, they can be used as samples for 3G68Land also. 5) IDL routine IDL routine that can read 3G68 files and display the hourly grid. readme.idl file explaining how to use the IDL read routines boxpos.pro color_key.pro prank.pro read_3g68.pro read_3g68_header.pro read_3g68_hour.pro step_ct.pro tvim.pro