modisin/Quicklook Processing Example

Step [1]:

Use the function modisin to create a "quicklook" TeraScan TDF dataset from a pass on the pass disk.   Process only channels 1, 3, and 4, which you will use to view as a true-color image.

Accept the default response of bowtie_filter=yes to correct for the bowtie effect of the MODIS sensor.  MODIS pixels become taller and wider as they approach the edge of the scan line, causing oversampling into pixels on adjacent scan lines. The bowtie correction subsamples the data so that there is only one measurement for each spot on the earth.  (Compare this with data that has not been corrected.)

Accept the defaults for all other prompts.  We will adjust some of the other responses later in the exercise.  (num_scans is the number of 1000m lines x 10, 500m lines x 20, and 250m lines x 40 to be processed.)

The output data is uncalibrated and earth-located.

scrum% modisin
output file    : char(255) ? t1.070202.1930.tdf
on_pass_disk   : char(  3) ? [yes] 
pass_number    : int       ? [2] 
channels       : int ( 36) ? [3 7 10 14 18 21 25 28 32 36] 1 3 4
delta_500m     : char(  1) ? [1] 
delta_250m     : char(  1) ? [1] 
bowtie_filter  : char(  3) ? [yes] 
use_master     : char(  3) ? [no] 
start_time     : char( 15) ? [00:00:00] 
num_scans      : int       ? [580] 
start_sample   : int       ? [1] 
num_samples    : int       ? [1354] 

Pass Start: 16253 70229.052 - 664 - Day
*** wcnt   0 - dt 1.477 *** seqflag 01 - samples 1354
Packet count 1530 packet 39
>*>   4 Scan error first: seq 1 -   2.954 seconds missing
<*<   5 Scan error  last: seq 1 -       2 lines written
>*>   6 Scan error first: seq 1 -   4.431 seconds missing
<*<   8 Scan error  last: seq 1 -       3 lines written
*** wcnt  10 - dt 1.477 *** seqflag 01 - samples 1354
*** wcnt  20 - dt 1.477 *** seqflag 01 - samples 1354
*** wcnt  30 - dt 1.477 *** seqflag 01 - samples 1354
.
.
.
*** wcnt 370 - dt 1.477 *** seqflag 01 - samples 1354
*** wcnt 380 - dt 1.477 *** seqflag 01 - samples 1354
*** wcnt 390 - dt 1.477 *** seqflag 02 - samples  723
pass-2: 1000M_line final length 3910
pass-2: 500M_line final length 7820
pass-2: 250M_line final length 15640
Attitude( 382): R/P/Y 0.0000/0.0000/0.1290

CADU -to- MODIS packet processing summary

Total input CADU frames processed: 908600
Number of CADU containing MODIS data: 844885
Number of usable MODIS packets: 1155997
Packets excluded with bad lengths: 1704
Packets excluded with bad checksums: 5412
Packets retained with repaired times: 21
Packets excluded with bad types: 0
Packets excluded with bad times: 0
Packets excluded by bad time sequence: 0
 

Now, look at the contents of the dataset.  Note the dimensions for the 250m, 500m, and 1000m channels.  Note also their scale and offset.  This allows these channels, with different dimensions, to be stored in the same dataset using the same earth location.

Because the data was corrected for the bowtie effect of the sensor, a 'b' was appended to the variable name.

scrum% contents t1.070202.1930.tdf
printout       : char(  3) ? [no] 
Contents of File: t1.070202.1930.tdf    Page 1

Dimension         Size    Coord         Scale      Offset    Variable
 1000M_line        3910    y                1           0    
 1000M_sample      1354    x                1           0    
 500M_line         7820    y              0.5       -0.25    
 500M_sample       2708    x              0.5       -0.25    
 250M_line        15640    y             0.25      -0.375    
 250M_sample       5416    x             0.25      -0.375    

Attribute       Type            Units           Value
 projection_name string16                        sensor_scan
 satellite       string12                        terra-1
 sensor_name     string12                        modis
 pass_date       long            std_date        2002/07/02
 start_time      double          std_time        19:30:29.052
 orb_elem_date   long            std_date        2002/07/03

Variable        Type            Units
 modis_ch01b     short                          
 modis_ch03b     short                          
 modis_ch04b     short                          

Variable        Dimension       Size
 modis_ch01b     250M_line       15640
 modis_ch01b     250M_sample     5416
 modis_ch03b     500M_line       7820
 modis_ch03b     500M_sample     2708
 modis_ch04b     500M_line       7820
 modis_ch04b     500M_sample     2708
Run TeraVision in true color (tvis -true).  Load all 3 channels.  In the Image Combine panel, select RGB and select R=channel 1, G=channel 4, and B=channel 3, and press Render Imagery.  Then, enhance the combined image.  (Suggestion: use a logarithmic enhancement.)

 

Now, process the pass again, this time responding no to the bowtie_filter prompt.

Then look at the contents of this dataset and compare the variable names to those in the first dataset.

scrum% modisin
output file    : char(255) ? t1.070202.1930.tdf_nobt
on_pass_disk   : char(  3) ? [yes] 
pass_number    : int       ? [2] 2
channels       : int ( 36) ? [3 7 10 14 18 21 25 28 32 36] 1 3 4
delta_500m     : char(  1) ? [1] 
delta_250m     : char(  1) ? [1] 
bowtie_filter  : char(  3) ? [yes] n
use_master     : char(  3) ? [no] 
start_time     : char( 15) ? [00:00:00] 
num_scans      : int       ? [580] 
start_sample   : int       ? [1] 
num_samples    : int       ? [1354] 
scrum% contents t1.070202.1930.tdf_nobt
printout       : char(  3) ? [no] 
Contents of File: t1.070202.1930.tdf_nobt    Page 1
.
.
.
Variable        Dimension       Size
 modis_ch01      250M_line       15640
 modis_ch01      250M_sample     5416
 modis_ch03      500M_line       7820
 modis_ch03      500M_sample     2708
 modis_ch04      500M_line       7820
 modis_ch04      500M_sample     2708
 

In TeraVision, compare the results with the data that was bowtie corrected.  Display the same channel from each dataset in the same window, zoom in closely on an area near the edge of the image, and note the difference.  Click here for an example of an image before and after bowtie correction.

 

To limit the size of the output dataset, cut out an area of interest from the data.  [Alternative methods for limiting the size of the dataset processed by modisin are subsampling (delta_250 and delta_500), specifying a start time later than the start of the pass, or specifying the number of scan lines/samples to be processed.  Reminder: If you specify a new start_time, a time of 18:52:00 is hh:mm:ss; a time of 18:52 is mm:ss and will cause an error in earth-location. (See formats for more on acceptable time formats.)]

To do this, first create a master that you will use to limit the data processed to a specific area of interest.

scrum% master
output file    : char(255) ? [Master] 
projection     : char( 14) ? rect
center_lat     : char( 15) ? 47N
center_lon     : char( 15) ? 128W
num_lines      : int       ? 1000
num_samples    : int       ? 1000
pixel_width    : real      ? [1.1132] 
pixel_height   : real      ? [1.1132] 
rotate_angle   : real      ? [0] 
move_center    : char(  3) ? [no] 

 

Now, rerun modisin with the master you created.  If you answer yes to the full_width prompt, the data will be the full scan width.  If you answer no, the data will be just large enough to cover the master.

scrum% modisin
output file    : char(255) ? t1.070202.1930.tdf_master
on_pass_disk   : char(  3) ? [yes] 
pass_number    : int       ? [2] 
channels       : int ( 36) ? [3 7 10 14 18 21 25 28 32 36] 1 3 4
delta_500m     : char(  1) ? [1] 
delta_250m     : char(  1) ? [1] 
bowtie_filter  : char(  3) ? [yes] 
use_master     : char(  3) ? [no] y
master_file    : char(255) ? [Master] 
full_width     : char(  3) ? [no] 

pass-2: Master subset 543 +1308 lines, 134 +1043 samples
pass-2: New start time 19:31:49.105


  

Now, look at the contents and see how the dimensions of the data have changed.  Because the data is still in sensor scan projection, the number of lines and samples will not match the number of lines and samples of the master.

scrum% contents t1.070202.1930.tdf_master
printout       : char(  3) ? [no]
Contents of File: t1.070202.1930.tdf_master    Page 1

Dimension         Size    Coord         Scale      Offset    Variable
 1000M_line        1308    y                1           0    
 1000M_sample      1043    x                1         133    
 500M_line         2616    y              0.5       -0.25    
 500M_sample       2086    x              0.5      132.75    
 250M_line         5232    y             0.25      -0.375    
 250M_sample       4172    x             0.25      132.62    

Attribute       Type            Units           Value
 projection_name string16                        sensor_scan
 satellite       string12                        terra-1
 sensor_name     string12                        modis
 pass_date       long            std_date        2002/07/02
 start_time      double          std_time        19:31:50.295

Variable        Dimension       Size
 modis_ch01b     250M_line       5232
 modis_ch01b     250M_sample     4172
 modis_ch03b     500M_line       2616
 modis_ch03b     500M_sample     2086
 modis_ch04b     500M_line       2616
 modis_ch04b     500M_sample     2086

 

Step [2]:

Use fastreg to remap the data to the master you created earlier.  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"]. Then look at the contents of the dataset, noting the dimensions as well as some of the dataset attributes. 

scrum% fastreg t1.070202.1930.tdf_master t1.070202.1930.r
master_file    : char(255) ? [Master] 
include_vars   : char(255) ? []
poly_size      : real      ? [100]
t1.070202.1930.r: modis_ch01b:  [   1,  125] X [   1,  500]
t1.070202.1930.r: modis_ch01b:  [   1,   62] X [ 501, 1000]
t1.070202.1930.r: modis_ch01b:  [  63,  125] X [ 501, 1000]
t1.070202.1930.r: modis_ch01b:  [ 126,  250] X [   1,  500]
t1.070202.1930.r: modis_ch01b:  [ 126,  187] X [ 501, 1000]
t1.070202.1930.r: modis_ch01b:  [ 188,  250] X [ 501, 1000]
t1.070202.1930.r: modis_ch01b:  [ 251,  375] X [   1,  500]
t1.070202.1930.r: modis_ch01b:  [ 251,  312] X [ 501, 1000]
t1.070202.1930.r: modis_ch01b:  [ 313,  375] X [ 501, 1000]
t1.070202.1930.r: modis_ch01b:  [ 376,  500] X [   1,  500]
t1.070202.1930.r: modis_ch01b:  [ 376,  437] X [ 501, 1000]
t1.070202.1930.r: modis_ch01b:  [ 438,  500] X [ 501, 1000]
t1.070202.1930.r: modis_ch01b:  [ 501,  625] X [   1,  500]
t1.070202.1930.r: modis_ch01b:  [ 501,  562] X [ 501, 1000]
t1.070202.1930.r: modis_ch01b:  [ 563,  625] X [ 501, 1000]
t1.070202.1930.r: modis_ch01b:  [ 626,  750] X [   1,  500]
t1.070202.1930.r: modis_ch01b:  [ 626,  687] X [ 501, 1000]
t1.070202.1930.r: modis_ch01b:  [ 688,  750] X [ 501, 1000]
t1.070202.1930.r: modis_ch01b:  [ 751,  875] X [   1,  500]
t1.070202.1930.r: modis_ch01b:  [ 751,  812] X [ 501, 1000]
t1.070202.1930.r: modis_ch01b:  [ 813,  875] X [ 501, 1000]
t1.070202.1930.r: modis_ch01b:  [ 876, 1000] X [   1,  500]
t1.070202.1930.r: modis_ch01b:  [ 876,  937] X [ 501, 1000]
t1.070202.1930.r: modis_ch01b:  [ 938, 1000] X [ 501, 1000]
t1.070202.1930.r: modis_ch03b:  [   1,  250] X [   1, 1000]
t1.070202.1930.r: modis_ch03b:  [ 251,  500] X [   1, 1000]
t1.070202.1930.r: modis_ch03b:  [ 501,  625] X [   1, 1000]
t1.070202.1930.r: modis_ch03b:  [ 626,  750] X [   1, 1000]
t1.070202.1930.r: modis_ch03b:  [ 751,  875] X [   1, 1000]
t1.070202.1930.r: modis_ch03b:  [ 876, 1000] X [   1, 1000]
t1.070202.1930.r: modis_ch04b:  [   1,  250] X [   1, 1000]
t1.070202.1930.r: modis_ch04b:  [ 251,  500] X [   1, 1000]
t1.070202.1930.r: modis_ch04b:  [ 501,  625] X [   1, 1000]
t1.070202.1930.r: modis_ch04b:  [ 626,  750] X [   1, 1000]
t1.070202.1930.r: modis_ch04b:  [ 751,  875] X [   1, 1000]
t1.070202.1930.r: modis_ch04b:  [ 876, 1000] X [   1, 1000]
scrum% contents t1.070202.1930.r
printout       : char(  3) ? [no]
Contents of File: t1.070202.1930.r    Page 1

Dimension         Size    Coord         Scale      Offset    Variable
 line              1000    y                1           0    
 sample            1000    x                1           0    

Attribute       Type            Units           Value
 projection_name string16                        rectangular
 satellite       string12                        terra-1
 sensor_name     string12                        modis
 pass_date       long            std_date        2002/07/02
 start_time      double          std_time        19:31:50.295
 center_lat      double          std_latitude    47  0.00 N
 center_lon      double          std_longitude   128  0.00 W

Variable        Dimension       Size
 modis_ch01b     line            1000
 modis_ch01b     sample          1000
 modis_ch03b     line            1000
 modis_ch03b     sample          1000
 modis_ch04b     line            1000
 modis_ch04b     sample          1000
 

Note that the data is no longer in sensor scan projection.  View the image and apply a lat/lon grid to help you see the difference. 

 

SEE ALSO:

modisin, master, fastreg, MODIS_overview

 

Last Update: $Date: 2002/09/10 20:34:13 $