Appendix B: New Satellite Updates

Every two to four years NOAA launches a new AVHRR satellite to maintain continuous AVHRR coverage of the world. When a new satellite is launched software and tables within ADAPS must be modified. The following are the steps needed for a new satellite:

Satellite IDs

Add the new satellite ID information to the "satellite.ids" file located in $ADAPSTABLES directory. The following is an example of a record from the file:

12 NOAA-12 N12 21263 H

The file contains the various references to the satellite. Use "vi" or any text editor to add the new satellite ID information to the file.

Satellite Attitude Corrections

Add a new entry to the "satellite.att" file located in $ADAPSTABLES directory. The file contains attitude (roll, pitch, yaw, and time) corrections for each satellite. The following is an example of a record from the file:

Sat #   Roll (rad)      Pitch (rad)     YAW (rad)       Time
12      0.006457718     0.0             0.0             0.0

The attitude values should initially be set to zero for the new satellite. After the satellite has been in orbit for a period of time statistics can be kept on the navigation of each image. If a constant correction to one of the attributes can be determined from the statistics it can be added to this file to create a better systematic product. The adjustments in this table are applied in the INGEST function.

Ephemeris

A new table must be created in the $ADAPSTABLES for the new ephemeris information. The ephemeris table is named based on the international satellite ID with an extension of ".dat". For example NOAA-12 has an international satellite id of 21263 and the ephemeris table is named "21263.dat". The table is a 69 character fixed length ASCII file. The first record is a header that contains the number of ephemeris records, number of header records, and the satellite name. The following is an example of an ephemeris table:

  1146   1 NOAA-12
212630000340134780833974130000000120614767802888124144827427604910515
212630001764092211833974760058400124046734030978124146927427242910516
212630003186596849833971470029700128569714772118124137127425813910517
212630004507237003833969320008900128091714127888124247927426316910518

The header indicates that there are 1146 ephemeris records, one header record, and that it contains ephemeris for NOAA-12. Refer to the Ephemeris section of the Programmers Guide for more information on the ephemeris record.

To prepare for the new satellite create a new ephemeris table file with the new satellite ID and extension of ".dat" in the $ADAPSTABLES directory. This can be done with "vi" or any text editor. Then add the 69 character header record information for the new satellite:

     0   1 NOAA-XX
Where:
     0 indicates no ephemeris records
     1 indicates one header record
    XX is the new satellite number ie) 14
    (add spaces to fill the record to 69 characters)

NOTE: Due to a bug in SATRACK the ephemeris file must contain one valid entry.

After the file is created with the initial header information make sure that the file has world read and write permission (chmod 666 in UNIX).

Calibration

The National Environmental Satellite and Information Service (NESDIS) provides calibration information from pre-launch tests required to calibrate the AVHRR image data. This calibration information for previous satellites are provided in Appendix B of the NOAA Technical Memorandum NESS 107. For more information on calibration of AVHRR data refer to the NESS 107 document, AVHRRCAL User's Guide". The NESS 107 document is obsolete, refer to the NOAA Polar Orbiter Data Guide and the NOAA KLM User's Guide for calibration information.

The calibration files in the $ADAPSTABLES directory are named based on the satellite name with an extension of ".cal". The calibration file for NOAA-12 satellite is "noaa12.cal". Copy a calibration file from a previous satellite to the new calibration file. Use "vi" or any text editor to update the file with the new calibration information. After the file is created make sure that the file has world read and write permission (chmod 666 in UNIX).

  1. Create a new satellite calibration file noaaXX.cal, where XX is the new satellite number. Use the noaa16.cal file as an example for the layout. The values can be obtained from the NOAA KLM User's Guide.

  2. Create a new noaaXX.caltype file using noaa16.caltype as an example.

AVHRRCAL

  1. Increment the the valid list of satellite numbers in avhrrcal.pdf.
    PARM SATNUM   TYPE=INTEGER     VALID=(6:12)
    

    Also update the valid list of satellite numbers in the LEVEL1 and LEVEL2 help.

SATRACK

The following modifications must be made to SATRACK, TBUS, NAVSPASUR, and NORAD located in the SATRACK source directory:

  1. Add the new satellite ID to the valid list of satellite IDs in tbus.pdf, navspasur.pdf, and norad.pdf.
  2. PARM   SATID       TYPE=(STRING,5)      VALID=("15427","16969","19531","21263")
    

    Also add the new satellite ID to the LEVEL1 and LEVEL2 help in these PDFs.

  3. Increment TOTSAT defined in satrack.c, tbus.c, navspasur.c, and gen_rpt.c and add the new satellite number to the list of satellite numbers.
  4. #define   TOTSAT      4
    static long numsat[TOTSAT] = {9,10,11,12};
    
  5. Add checks in satrack.c, gen_rpt.c, and put_norad.c for the new satellite id. Search for satellite id 21263 (NOAA-12) to determine all locations to be modified.

INGEST

The HRPT minor frame contains a spacecraft address located in word 7; bits 4-7. This spacecraft address must be translated to a satellite number. Determine what the spacecraft address is and add the check in first_rec.c to translate the address to a satellite number.

INGEST1B

All Level 1b data sets contain the Data Set Header record describing the data set. Refer to NOAA Polar Orbiter Data User's Guide for more information on the Level 1b data sets. The first byte of the Data Set Header contains a spacecraft id that identifies the spacecraft that acquired the data. Determine what the spacecraft id is and add the translation from the this id to the new satellite number and name in the satellite.l1b file located in the $ADAPSTABLES directory.

XPLOT

Increment NSATS define in readrecorder.c.

#define NSATS 5                         /* 5 satellites (9,10,11,12,13) */

DBSETUP

Update get_flags.c for the new satellite to select a copy of the AVHRR data from the new satellite to be copied to the European Space Agency (ESA).
   /* Check if a station code is in the selective copy file
   --------------------------------------------------------*/
   if ((strcmp(ahdr_model->station,station) == 0) &&
       ((ahdr_model->satnum == 11) || (ahdr_model->satnum == 14)))
      {
      strcpy(select, "esa");
      break;
      }

PRODGEN

???

ATMOCOR

  1. Add k_values to correct.c that convert radiance to reflectance (albedo), same as in radiance.c in AVHRRCAL. Also increment the valid satellite numbers
    /* Ensure the satellite number is valid
    ---------------------------------------*/
    if ((satnum < 6) || (satnum > 11))
        {
        c_errmsg("Atmospheric corrections for NOAA 6-11 only",
            "atmocor-sat", &nonfatal);
        return(E_FAIL);
        }
    
  2. Add A Coefficients,B Coefficients,S Coefficients, and ozone Transmittance tables for the new satellite in the $ADAPSTABLES directory.