Ingesting NOAA HRPT Data

The following pages will provide you with a quick tutorial on how to ingest NOAA HRPT telemetry. Example output is provided throughout, along with links to help pages for the functions discussed. The tutorial covers just one method of processing HRPT, not all the available functions were used in this tutorial. For a list of HRPT functions, please see the NOAA HRPT pages. Also, our example output will not match yours exactly. However, the examples are close enough that you should garner some useful information out of the tutorial. In other words: Your mileage may vary.

The topics covered are:

 


Ingest

First, see what passes are currently on the pass disk and then ingest a NOAA pass.

To list the passes on the pass disk, type the following at the UNIX command prompt (%):

  % lspass

Example results from a site that is at UTC+1 hour:

  # satel     telem  date       day time     durat lines

  1 noaa-14   hrpt   1997/08/29 241 12:47:04 11:46 4241
  2 noaa-14   hrpt   1997/08/29 241 14:25:44 14:03 5061
  3 orbview-2 swhrpt 1998/01/22 22  20:31:25 10:47 3886
  4 f-12      rtd    1997/08/29 241 10:09:05 13:55 9872
  5 f-12      rtd    1997/08/29 241 11:51:04 10:21 7344
  6 meteo-6   pdus   1997/08/30 242 13:01:52 03:01 629
  7 f-11      rtd    1994/01/11 11  21:37:48 13:30 9582
  8 gms-5     svissr 1996/09/03 247 01:31:56 24:42 9904

 

The next step is to ingest the pass (we’ll use pass #1), converting it from raw format to TeraScan Data Format (TDF). This is always the first step in image processing. To do this, we run the TeraScan function hrptin.

We want to do a quick look, where we subsample 4 times along both the length and width of the pass. This makes the processing faster and the file size smaller. We’ll call the output quicklook.1.

Example:

  % hrptin
  output file(s) : char(255) ? [.] quicklook.1
  hrpt_types     : char( 17) ? [avhrr] 
  on_pass_disk   : char( 3)  ? [yes] 
  pass_number    : int ( 6)  ? [1] 1
  channels       : int ( 5)  ? [1 2 3 4 5] 2 4
  fix_missing    : char( 3)  ? [yes] n
  sharpen        : char( 7)  ? [no] [See note A]
  calibrate      : char( 3)  ? [yes]   
  temp_units     : char( 10) ? [celsius] 
  byte_output    : char( 3)  ? [no] 
  full_report    : char( 3)  ? [no] 
  solar_corr     : char( 3)  ? [no] 
  geo_correct    : char( 3)  ? [no] [See note B]
  delta_line     : int       ? [1] 4
  delta_sample   : int       ? [1] 4
  use_master     : char( 3)  ? [yes] n
  start_time     : char(15)  ? [00:00:00]
  num_lines      : int       ? [1500]
  start_sample   : int       ? [1]
  num_samples    : int       ? [512]

  pass partition 1: noaa-14 1997/08/29 12:47:11.14
  ./quicklook.1.avhrr: Creating ...
  avcal.coef: noaa-14 1997 217 0.131200 -5.378300 0.164700 -6.751000
  avcal.coef: noaa-14 1997 259 0.131800 -5.405000 0.165700 -6.793800
  avcal.coef: noaa-14 1997 241 0.131543 -5.393558 0.165271 -6.775457
  line  100  ch    slope    intcpt   space  target  prt average
              1   0.13154    -5.39    41.0          1    245.67
              2   0.16527    -6.78    41.0          2    255.19
              3  -0.00165     1.64   987.8   734.6  3    237.52
              4  -0.16425   158.94   992.3   390.4  4    240.31
              5  -0.18250   178.28   989.4   370.6
  ./quicklook.1.avhrr: Actual size is 1061 lines by 512 samples

Notes:

A.  Scan lines overlap more and more toward the edges of the lines because the pixels get taller at the edges. Setting sharpen=yes will subtract from each pixel any contamination caused by sensor oversampling into adjacent pixels.

B.  The pixel size and shape changes along the scan line. At the edges (limbs) of the scan swath, the pixels are about 2 km high and 6 km wide. This is because the scanner is looking at an angle and so sees more surface area. Setting geo_correct=yes redistributes pixels along the scan line to approximately equal 1.1 x 1.1 km; replicates pixels near end of scan line while discarding a few near the center.

 


 

Creating a Master (Area of Interest)

Next, you’ll identify an area of interest to use, create a master file using the TeraScan function master, and then process the data again using the master you created. [The Graphical User Interface (GUI) TeraMaster also creates masters.]

Display the ingested pass in TeraVision and pick out an area of interest. For this example, we’ll use a center of 42.6 N and 12.3 E.

Run the TeraScan function master to create an area of interest whose center pixel is 42.6 North and 12.3 East. The projection you choose will be rectangular.

Example:

  % master
  output file  : char(255) ? [Master] 
  projection   : char( 13) ? rect
  center_lat   : char( 15) ? 42.6n
  center_lon   : char( 15) ? 12.3 E 
  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]

Do a listing of the directory to see the files you have created:

  % ls
  Master quicklook.1.avhrr

Note that the filename of the master you created is called Master. This is the default filename, since you did not specify another name for the output file.

To see what the master you have created looks like, run TeraMaster and open the master file you just created. Type tmaster& at the command line. (Note: TeraMaster looks for master files in the default directory $PASSDIR/masters.)

 


 

Ingesting with a Master

Run hrptin again to ingest the same data (pass #1) using the master you created. hrptin picks the lines and samples that are in the master area, but does not apply the map projection [see "Using a Master at Ingest"].  This time, you will ingest all channels at full resolution.

Example:

  % hrptin
  output file(s) : char(255) ? [.] 
  hrpt_types     : char( 17) ? [avhrr] 
  on_pass_disk   : char( 3)  ? [yes] 
  pass_number    : int ( 6)  ? [1] 1
  channels       : int ( 5)  ? [1 2 3 4 5] 
  fix_missing    : char( 3)  ? [yes] 
  sharpen        : char( 19) ? [no] 
  calibrate      : char( 3)  ? [yes] 
  temp_units     : char( 10) ? [celsius] 
  byte_output    : char( 3)  ? [no] 
  full_report    : char( 3)  ? [no] 
  solar_corr     : char( 3)  ? [no] 
  geo_correct    : char( 3)  ? [no] 
  delta_line     : int       ? [1] 
  delta_sample   : int       ? [1] 
  use_master     : char( 3)  ? [yes] 
  master_file    : char(255) ? [Master]
 
  pass partition 1: noaa-14 1997/08/29 12:47:11.14
  ./n14.97241.1247.avhrr: Creating ...
  avcal.coef: noaa-14 1997 217 0.131200 -5.378300 0.164700 -6.751000
  avcal.coef: noaa-14 1997 259 0.131800 -5.405000 0.165700 -6.793800
  avcal.coef: noaa-14 1997 241 0.131543 -5.393558 0.165271 -6.775457
  line  100  ch    slope    intcpt   space  target  prt average
              1   0.13154    -5.39    41.0          1 245.67
              2   0.16527    -6.78    41.0          2 255.19
              3  -0.00165     1.64   987.8   734.6  3 237.52
              4  -0.16425   158.94   992.3   390.4  4 240.31
              5  -0.18250   178.28   989.4   370.6
  ./n14.97241.1247.avhrr: Actual size is 1219 lines by 1384 samples


On to navigation!

 


Last Update: $Date: 2001/10/04 20:24:33 $