Class NOAA1bV2Reader

Direct Known Subclasses:
NOAA1bV3Reader

public class NOAA1bV2Reader extends NOAA1bReader
A NOAA 1b version 2 reader is a NOAA 1b reader that reads NOAA 1b format KLM GAC/LAC/HRPT data files available from the NOAA/NESDIS Satellite Active Archive. These files are characterized by an optional 512 byte Archive Retrieval System (ARS) header followed by data header and records of 12288/15872/22528 bytes for 8/10/16-bit LAC or 3584/4608/5632 bytes for 8/10/16-bit GAC. The NOAA 1b version 2 format provides more information than version 1 including more view angles, orbital model information, an extra channel 3, a more complete set of calibration parameters, and so on.
Since:
3.1.3
Author:
Peter Hollemans
See Also:
  • Field Details

    • DATA_FORMAT

      public static final String DATA_FORMAT
      The data format string supported by this class.
      See Also:
    • cloudDataOffset

      protected int cloudDataOffset
      The cloud data offset.
  • Constructor Details

    • NOAA1bV2Reader

      public NOAA1bV2Reader(String file) throws IOException
      Constructs a NOAA 1b version 2 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 ARS header which contains only printable ASCII characters.
      Specified by:
      getArchiveFlag in class NOAA1bReader
      Throws:
      IOException
    • getDataFormatVersion

      protected int getDataFormatVersion()
      Gets the data format version.
    • isValidFormatDescription

      protected boolean isValidFormatDescription(String format)
      Checks the data format description.
    • 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: