DMSP RTD Processing Example

Suggested Processing Sequence:

Note:  The links in the steps below are links to the processing example.

Step [1]: Use master to create a file that defines an area of interest and map projection.
[Alternative methods for creating a master: TeraMaster (tmaster), master2, master4.]
Step [2]: Create TeraScan OLS and special sensor datasets from raw, decrypted RTD data using the function rtdin.
Note:  If you are planning to display both OLS and special sensor data together in the same TeraVision window, process the whole pass; do not specify the use of a master.  However, if you are interested only in the OLS data, or plan to view the special sensor data separately from the OLS data, limit the size of the dataset by specifying the master file created in Step 1 to cut out an area of interest.
OLS Processing:
Step [3]: Navigate the OLS data:
a. Use navbox2 to create the boxes to be used to navigate the image.
b. Use nav2 to navigate the image using the boxes created.
c. If you are unable to navigate automatically, use xvu to navigate the image manually.
Step [4]: Run fastreg on the OLS dataset to register the data to the master created in Step 1.
Note:  Because the OLS has a variable scan, which means that the distance between adjacent pixels on a scan line is the same near the nadir as it is at the ends of the scan line, the resolution of the pixels is the same across the full sensor swath. Thus, registration of OLS data is not absolutely necessary.  However, if you plan to display OLS data with special sensor data, you'll need to register all to the same master.
SSM/I Processing:
Step [5]: Run miedr to create geophysical parameters from SSM/I data output by rtdin.
Step [6]: Run fastreg on the SSM/I dataset to register the data to the master created in Step 1.
Note:  Data from SSM/I, a conical scanning sensor, must be registered.
SSM/T1 Processing:
Step [7]: Run t1edr to create geophysical parameters from SSM/T1 data output by rtdin.
Note:  SSM/T1 data does not requre remapping.  However, because the pixels are coarser at the limbs of the scan line, the data looks better if remapped.
SSM/T2 Processing:
Step [8]: Run t2edr to create geophysical parameters from SSM/T2 data output by rtdin.
Note:  SSM/T1 data does not requre remapping.  However, because the pixels are coarser at the limbs of the scan line, the data looks better if remapped.

 

Step [1]:

To limit the size of the final output dataset, you may want to cut out an area of interest from the data.  To do this, first create a master that you will use to limit the data processed to a specific area of interest.  pixel_width and pixel_height are set to .55, which is the resolution of the high-resolution channel.

Here, we are using the function master to create an area of interest of the Hudson Bay area.  In the example, the final number of lines and samples cut out by the master will be approximately 1000 by 1000.

trainer% master
output file    : char(255) ? [Master] MHudson.55
projection     : char( 13) ? stereo
center_lat     : char( 15) ? 55n
center_lon     : char( 15) ? 80w
num_lines      : int       ? 1000
num_samples    : int       ? 1000
pixel_width    : real      ? [1.1132] .55
pixel_height   : real      ? [1.1132] .55
rotate_angle   : real      ? [0] 
move_center    : char(  3) ? [no] 
 

Step [2]:

Use the function rtdin to ingest RTD telemetry.  (For this example, we are using this f-11 pass because it contains OLS data as well as data from all the special sensors.)  The output data is calibrated and earth-located.

Notes: 

  • Specifying dmsp_types=all will output individual OLS, SSM/I, SSM/T1, SSM/T2, and other special sensor files (see filenames listed at the end of the output from rtdin).
  • Accept default ols_res=hi.  (See Note 1.)
  • If you are interested in displaying OLS and special sensor data together in the same TeraVision window, do not use the master you created in Step 1.  (See Note 2.)
  • Remember to specify the number of fine_lines.   The default of 2000 is the same as the number of smooth lines.
trainer% rtdin
output file(s) : char(255) ? [.] 
dmsp_types     : char( 19) ? [all] 
on_pass_disk   : char(  3) ? [yes] 
pass_number    : int ( 15) ? [13] 14
ols_res        : char(  3) ? [hi] (see Note 1)
temp_units     : char( 10) ? [celsius] 
use_master     : char(  3) ? [yes] n (see Note 2)
start_time     : char( 15) ? [00:00:00] 
fine_lines     : int       ? [2000] 10000
start_sample   : int       ? [1] 
fine_samples   : int       ? [7340] 
ss_calib       : char( 12) ? [bright_temp] 
Processing pass 14 on pass disk.
 File 1, pass 14, satellite f-11, date 1994/01/11, time 21:37:48
 9582 fine OLS lines; about 427 SSMI, 25 SSMT1, 101 SSMT2, and 811 SSJ4 lines.
Good data starts at OLS line 528
Operator   given pass start time 21:37:48 
Satellite  given pass start time 21:38:35.914 
   Difference in pass start time 00:00:47.914 
OLS thermal data is high resolution, visible data is low resolution.
.
.
.
Time count indicated    1.00 second gap.
   Missing SSMT2 data at or near lines  86 through  86.
End of file encountered.
Available data is being processed.
TDF dataset ./f11.94011.2138.mi_s created with  368 lines.
TDF dataset ./f11.94011.2138.t1_s created with   20 lines.
TDF dataset ./f11.94011.2138.t2_s created with   87 lines.
TDF dataset ./f11.94011.2138.j4_s created with  711 lines.
TDF dataset ./f11.94011.2138.dmdm created with 2048 DMDM characters.
TDF dataset ./f11.94011.2138.ols  created with 9054 fine and 2000 smooth lines.

Note 1:   The OLS sensor data is composed of two channels: a visible and a thermal channel.  The image data from each of these channels has approximately the same spatial resolution.  However, in the RTD telemetry, the data from one of these channels (the low-resolution channel) is averaged in the scan direction (every five pixels) and output with a sampling resolution that is lower in the scan direction by a factor of five.

Note 2:   To be able to display OLS and special sensor data in the same TeraVision window, ingest the whole pass.  Do not specify a master or a new start time;  if you do, the time of the data in the OLS file will be different than the time of the data in the special sensor files.  When you specify a start time, the OLS data ingestion starts with the first line having a time greater than the time specified.  However, the special sensor data start at the first valid start time for the pass (thus, the entire pass is processed).

 

Now, look at the contents of the dataset using the contents function.  Note that the data is calibrated.  Also note the fine_data and telemetry attributes.  Output from rtdin indicates that for this dataset, "OLS thermal data is high resolution, visible data is low resolution."

trainer% contents f11.94011.2138.ols
printout       : char(  3) ? [no] 
Contents of File: f11.94011.2138.ols    Page 1
Dimension         Size    Coord         Scale      Offset    Variable
 smooth_line       2000    y                5           2    
 smooth_sample     1468    x                5           2    
 fine_line         9054    y                1           0    
 fine_sample       7340    x                1           0    
Attribute       Type            Units           Value
 fine_data       string8                         thermal
 telemetry       string3                         rtd
 projection      long                            0
 et_affine       double                          1 0 0 1 0 -45
 projection_name string16                        sensor_scan
 satellite       string12                        f-11
 sensor          long                            3
 sensor_name     string12                        ols
 pass_date       long            std_date        1994/01/11
 start_time      double          std_time        21:38:36.914
 .
 .
 .
Variable        Type            Units
 ols_visible     byte                           
 ols_infrared    byte            temp_deg_c     
Variable        Dimension       Size
 ols_visible     smooth_line     2000
 ols_visible     smooth_sample   1468
 ols_infrared    fine_line       9054
 ols_infrared    fine_sample     7340 
 

Step [3]:

Now let's navigate the OLS data to correlate the image data with land/water boundaries.  For this example data, we will need to navigate manually using xvuClick here for the steps to follow for manually navigating your data if you are unable to navigate automatically.

Click here for an example of navigating automatically with navbox2 and nav2.

   

Step [4]:

Use fastreg to remap the OLS data to the master you created in Step 1.  The image will be oriented exactly as the master, and will have exactly the same size as the master [see "Using a Master at Registration"]

trainer% fastreg f11.94011.2138.ols f11.94011.2138.ols.r
master_file    : char(255) ? [Master] MHudson.55
include_vars   : char(255) ? [] 
poly_size      : real      ? [100] 
f11.94011.2138.ols.r: ols_infrared:  [   1, 1000] X [   1, 1000]
f11.94011.2138.ols.r: ols_visible:  [   1, 1000] X [   1, 1000]
 

Then look at the contents of the dataset, noting the dimensions.  Note also that the data is no longer in sensor scan.  View the image in TeraVision and apply a lat/lon grid to help you see the difference from unregistered data. 

trainer% contents f11.94011.2138.ols.r
printout       : char(  3) ? [no] 
Contents of File: f11.94011.2138.ols.r    Page 1
Dimension         Size    Coord         Scale      Offset    Variable
 line              1000    y                1           0    
 sample            1000    x                1           0    
Attribute       Type            Units           Value
 fine_data       string8                         thermal
 telemetry       string3                         rtd
 projection      long                            1
 et_affine       double                          -1.81818181818 0 0 1.81818181818
                                                  500.5 500.5
 projection_name string16                        stereographic
 .
 .
 .
Variable        Dimension       Size
 ols_infrared    line            1000
 ols_infrared    sample          1000
 ols_visible     line            1000
 ols_visible     sample          1000

  

Step [5]:

Now, let's process the SSM/I data.  First, look at the contents of the .mi_s dataset output by rtdin

trainer% contents f11.94011.2138.mi_s
printout       : char(  3) ? [no] 
Contents of File: f11.94011.2138.mi_s    Page 1
Dimension         Size    Coord         Scale      Offset    Variable
 miline_hi          368    y                1           0    
 misamp_hi          128    x                1           0    
 miline_lo          184    y                2           0    
 misamp_lo           64    x                2           0    
Variable        Type            Units
 mi_85v          short           kelvin         
 mi_85h          short           kelvin         
 mi_19v          short           kelvin         
 mi_19h          short           kelvin         
 mi_37v          short           kelvin         
 mi_37h          short           kelvin         
 mi_22v          short           kelvin         
Variable        Dimension       Size
 mi_85v          miline_hi        368
 mi_85v          misamp_hi        128
 mi_85h          miline_hi        368
 mi_85h          misamp_hi        128
 mi_19v          miline_lo        184
 mi_19v          misamp_lo         64
 mi_19h          miline_lo        184
 mi_19h          misamp_lo         64
 mi_37v          miline_lo        184
 mi_37v          misamp_lo         64
 mi_37h          miline_lo        184
 mi_37h          misamp_lo         64
 mi_22v          miline_lo        184
 mi_22v          misamp_lo         64
 

Then, run the miedr function to create geophysical parameters such as sea ice concentration, total columnar liquid water, rain rate, etc. from the SSM/I data.  The miedr function implements the Air Force Global Weather Center D-matrix algorithm.

(An additional function, geoph, derives similar parameters based on published papers.)

trainer% miedr
input file(s)  : char(255) ? f11.94011.2138.mi_s
Processing f11.94011.2138.mi_s
SSM/I data starts at 21:38:40.73 GMT on 1994/01/11.
TDF data set f11.94011.2138.mi_e created.


Now, look at the contents of the .mi_e SSM/I dataset output by miedr and compare with the contents of the .mi_s dataset. 

trainer% contents f11.94011.2138.mi_e
printout       : char(  3) ? [no] 
Contents of File: f11.94011.2138.mi_e    Page 1
Dimension         Size    Coord         Scale      Offset    Variable
 miline_lo          184    y                1           0    
 misamp_lo           64    x                1           0    
Variable        Type            Units
 surface_type    byte                           
 wind_speed      short           m/s            
 cloud_water     short           kg/m2          
 water_vapor     short           kg/m2          
 rain_rate       short           mm/hr          
 rain_flag       byte                           
 soil_moisture   short           millimeters    
 surf_temp       short           kelvin         
 snow_depth      short           millimeters    
 ice_concen      short           percent        
 ice_age         byte                           
 edge            byte                           
 

Step [6]:

Remap the SSM/I data with fastreg.

Note:  Because of the coarseness of the special sensor data, it is not usual to navigate the data.  However, because of the conical scan of the SSM/I sensor, the SSM/I data does need to be remapped. 

trainer% fastreg 
in/out files   : char(255) ? f11.94011.2138.mi_e f11.94011.2138.mi_e.r
master_file    : char(255) ? [Master] MHudson.55
include_vars   : char(255) ? [] 
poly_size      : real      ? [100] 
f11.94011.2138.mi_e.r: cloud_water:  [   1, 1000] X [   1, 1000]
f11.94011.2138.mi_e.r: edge:  [   1, 1000] X [   1, 1000]
f11.94011.2138.mi_e.r: ice_age:  [   1, 1000] X [   1, 1000]
f11.94011.2138.mi_e.r: ice_concen:  [   1, 1000] X [   1, 1000]
f11.94011.2138.mi_e.r: rain_flag:  [   1, 1000] X [   1, 1000]
f11.94011.2138.mi_e.r: rain_rate:  [   1, 1000] X [   1, 1000]
f11.94011.2138.mi_e.r: snow_depth:  [   1, 1000] X [   1, 1000]
f11.94011.2138.mi_e.r: soil_moisture:  [   1, 1000] X [   1, 1000]
f11.94011.2138.mi_e.r: surf_temp:  [   1, 1000] X [   1, 1000]
f11.94011.2138.mi_e.r: surface_type:  [   1, 1000] X [   1, 1000]
f11.94011.2138.mi_e.r: water_vapor:  [   1, 1000] X [   1, 1000]
f11.94011.2138.mi_e.r: wind_speed:  [   1, 1000] X [   1, 1000]

 

Step [7]:

Now, let's process the SSM/T1 data.  First, look at the contents of the .t1_s dataset output by rtdin

trainer% contents f11.94011.2138.t1_s
printout       : char(  3) ? [no] 
Contents of File: f11.94011.2138.t1_s    Page 1
Dimension         Size    Coord         Scale      Offset    Variable
 mt1line             20    y                1           0    
 mt1samp              7    x                1           0    
 mt1chans             7    ?                1           0    
Variable        Type            Units
 mt1_1           short           kelvin         
 mt1_2           short           kelvin         
 mt1_3           short           kelvin         
 mt1_4           short           kelvin         
 mt1_5           short           kelvin         
 mt1_6           short           kelvin         
 mt1_7           short           kelvin         


Then, run the t1edr function to estimate the temperature, pressure height, and wind vector profiles of the atmosphere from the SSM/T1 data.  The t1edr function implements the Air Force Global Weather Center D-matrix algorithm.

trainer% t1edr
input file(s)  : char(255) ? f11.94011.2138.t1_s
af_elevation   : char(  3) ? [yes] 
1000mb_height  : char(  8) ? [constant] 
constant_height: real      ? [110] 
wind           : char(  3) ? [no] 
Processing f11.94011.2138.t1_s
SSM/T1 data starts at 21:39:34.914 GMT on 1994/01/11.
TDF data set f11.94011.2138.t1_e created.


Now, look at the contents of the .t1_e SSM/T1 dataset output by t1edr.  Note that both 2-dimensional and 3-dimensional variables (at standard levels and standard layers) are created.

trainer% contents f11.94011.2138.t1_e
printout       : char(  3) ? [no] 
Contents of File: f11.94011.2138.t1_e    Page 1
Dimension         Size    Coord         Scale      Offset    Variable
 mt1line             20    y                1           0    
 mt1samp              7    x                1           0    
 standard_levels     15    z                1           0    press_levels
 standard_layers     14    z                1           0    press_midlevels
 mt1line_1           19    y                1         0.5    
 mt1samp_1            6    x                1         0.5    
Variable        Type            Units
 press_levels    float           millibars      
 press_midlevels float           millibars      
 temp_profile    short           kelvin         
 press_heights   float           meters         
 layer_thick     float           meters         
 trop_temp       short           kelvin         
 trop_press      float           millibars      
 rain_flag       byte                           
 zone            byte                           
 season          byte                           
 geography_type  byte                           
 elevation       short           meters         
Variable        Dimension       Size
 press_levels    standard_levels   15
 press_midlevels standard_layers   14
 temp_profile    mt1line           20
 temp_profile    mt1samp            7
 temp_profile    standard_levels   15
 press_heights   mt1line           20
 press_heights   mt1samp            7
 press_heights   standard_levels   15
 layer_thick     mt1line           20
 layer_thick     mt1samp            7
 layer_thick     standard_layers   14
 trop_temp       mt1line           20
 trop_temp       mt1samp            7
 trop_press      mt1line           20
 trop_press      mt1samp            7
 rain_flag       mt1line           20
 rain_flag       mt1samp            7
 zone            mt1line           20
 zone            mt1samp            7
 season          mt1line           20
 season          mt1samp            7
 geography_type  mt1line           20
 geography_type  mt1samp            7
 elevation       mt1line           20
 elevation       mt1samp            7
 

Step [7]:

Now, let's process the SSM/T2 data.  First, look at the contents of the .t2_s dataset output by rtdin

trainer% contents f11.94011.2138.t2_s
printout       : char(  3) ? [no] 
Contents of File: f11.94011.2138.t2_s    Page 1
Variable        Type            Units
 mt2_1           short           kelvin         
 mt2_2           short           kelvin         
 mt2_3           short           kelvin         
 mt2_4           short           kelvin         
 mt2_5           short           kelvin         
 

Then, run the t2edr function to derive relative humidity, specific humidity, and dew-point temperature from the SSM/T2 data.  The t2edr function implements the Air Force Global Weather Center D-matrix algorithm.  [Note that the 150 GHz channel (channel 5) of SSM/T2 on f-11 is bad.]

trainer% t2edr
input file(s)  : char(255) ? f11.94011.2138.t2_s
af_elevation   : char(  3) ? [yes] 
dew_point      : char(  3) ? [no] 
Processing f11.94011.2138.t2_s
SSM/T2 data starts at 21:38:41.463 GMT on 1994/01/11.
150 GHz Channel is bad, will be computed using regression on other channels.
TDF data set f11.94011.2138.t2_e created. 


Now, look at the contents of the .t2_e SSM/T2 dataset output by t2edr.  Note that both 2-dimensional and 3-dimensional variables (at standard levels and standard layers) are created.

trainer% contents f11.94011.2138.t2_e
printout       : char(  3) ? [no] 
Contents of File: f11.94011.2138.t2_e    Page 1
Dimension         Size    Coord         Scale      Offset    Variable
 mt2line             87    y                1           0    
 mt2samp             28    x                1           0    
 standard_levels      6    ?                1           0    press_levels
 standard_layers      7    ?                1           0    press_midlevels
Variable        Type            Units
 press_levels    float           millibars      
 press_midlevels float           millibars      
 rel_humidity    short           percent        
 spec_humidity   short           gm/kg          
 water_vapor     short           kg/m2          
 geography_type  byte                           
 quality_flag    byte                           
 atmos_type      byte                           
 elevation       short           meters         
Variable        Dimension       Size
 press_levels    standard_levels    6
 press_midlevels standard_layers    7
 rel_humidity    mt2line           87
 rel_humidity    mt2samp           28
 rel_humidity    standard_levels    6
 spec_humidity   mt2line           87
 spec_humidity   mt2samp           28
 spec_humidity   standard_levels    6
 water_vapor     mt2line           87
 water_vapor     mt2samp           28
 water_vapor     standard_layers    7
 geography_type  mt2line           87
 geography_type  mt2samp           28
 quality_flag    mt2line           87
 quality_flag    mt2samp           28
 atmos_type      mt2line           87
 atmos_type      mt2samp           28
 elevation       mt2line           87
 elevation       mt2samp           28

 

Last Update: $Date: 2001/10/05 00:32:58 $