Class NOAA1bV1Reader


public class NOAA1bV1Reader extends NOAA1bReader

A NOAA 1b version 1 reader is a NOAA 1b reader that reads NOAA 1b format NOAA-A through -J GAC/LAC/HRPT data files available from the NOAA/NESDIS Satellite Active Archive. These files are characterized by an optional 122 byte Terabit Memory (TBM) header followed by data header and records of 10688/14800/20928 bytes for 8/10/16-bit LAC or 2496/3220/4540 bytes for 8/10/16-bit GAC.

Note that currently, channel 3, 4, and 5 non-linear corrections are applied to NOAA-14 data only. Also, conversion from radiance to brightness temperatures uses a single central wavenumber for the range 270-310 K for all satellites. The calibration in this implementation may be updated at a later date as required. For more accurate calibration results, use NOAA-KLM data stored in NOAA 1b version 2 format datasets.

Since:
3.1.3
Author:
Peter Hollemans
See Also:
  • Constructor Details

    • NOAA1bV1Reader

      public NOAA1bV1Reader(String file) throws IOException
      Constructs a NOAA 1b version 1 reader from the specified file.
      Parameters:
      file - the file name to read.
      Throws:
      IOException - if an error occurred reading the file data.
  • Method Details

    • getDataFormat

      public String getDataFormat()
      Gets the data format description.
      Specified by:
      getDataFormat in class EarthDataReader
    • getVariableNames

      protected String[] getVariableNames()
      Description copied from class: NOAA1bReader
      Gets the variable names in this dataset.
      Specified by:
      getVariableNames in class NOAA1bReader
    • getArchiveFlag

      protected boolean getArchiveFlag() throws IOException
      Checks for an archive header and returns true if so. This method reads the TBM header which contains mostly printable ASCII characters, except in a few locations.
      Specified by:
      getArchiveFlag in class NOAA1bReader
      Throws:
      IOException
    • checkFormat

      protected void checkFormat() throws IOException
      Description copied from class: NOAA1bReader
      Checks the dataset format and throws an error if it is incompatible with this reader.
      Specified by:
      checkFormat in class NOAA1bReader
      Throws:
      IOException
    • getArchiveHeader

      public NOAA1bReader.ArchiveHeader getArchiveHeader() throws IOException
      Description copied from class: NOAA1bReader
      Gets the archive header if it exists.
      Specified by:
      getArchiveHeader in class NOAA1bReader
      Returns:
      the archive header.
      Throws:
      IOException - if an error occurred reading the file data.
    • getDataHeader

      public NOAA1bReader.DataHeader getDataHeader() throws IOException
      Description copied from class: NOAA1bReader
      Gets the data header.
      Specified by:
      getDataHeader in class NOAA1bReader
      Returns:
      the data header.
      Throws:
      IOException - if an error occurred reading the file data.
    • isNavigationUsable

      protected boolean isNavigationUsable(int record, ByteBuffer buffer) throws IOException
      Description copied from class: NOAA1bReader
      Gets the navigation data usability flag. This method is used to determine if navigation data is usable for a certain scan line without reading all the scan line data.
      Specified by:
      isNavigationUsable in class NOAA1bReader
      Parameters:
      record - the record to check for navigation (note this is not the same as the line number used in the scan line constructor).
      buffer - the buffer to use for reading data.
      Returns:
      true if the line has usable navigation data, or false if not.
      Throws:
      IOException
    • getScanLine

      public NOAA1bReader.ScanLine getScanLine(int line, int start, int count) throws IOException
      Description copied from class: NOAA1bReader
      Gets the scan line at the specified index.
      Specified by:
      getScanLine in class NOAA1bReader
      Parameters:
      line - the scan line index in the range [0..lines-1].
      start - the starting sensor data sample.
      count - the total number of sensor data samples. If the count is 0, no sensor data is read.
      Returns:
      the requested scan line.
      Throws:
      IOException - if an error occurred reading the file data or the scan line is marked as missing.
      See Also: