Class GradsBinaryGridServiceProvider

  • All Implemented Interfaces:
    ucar.nc2.iosp.IOServiceProvider

    public class GradsBinaryGridServiceProvider
    extends ucar.nc2.iosp.AbstractIOServiceProvider
    IOSP for GrADS Binary data files. This IOSP only handles the binary formatted grids, most other GrADS data types can be read directly through other IOSPs. Notes jcaron Apparently we need the control file (.ctl), which then references the data file (.dat) Dont see any test data - added to cdmUnitTest/formats/grads Possible File leaks - remove from standard IOSP's until we can resolve this. Also need to override release, reacquire
    See Also:
    "http://www.iges.org/grads/gadoc/descriptorfile.html", "http://www.iges.org/grads/gadoc/aboutgriddeddata.html"
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected GradsDataDescriptorFile gradsDDF
      GrADS file reader
      • Fields inherited from class ucar.nc2.iosp.AbstractIOServiceProvider

        location, ncfile, raf, rafOrder
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void buildNCFile()
      Build the netCDF file
      void close()
      Close this IOSP and associated files
      String getFileTypeDescription()
      Get the file type description
      String getFileTypeId()
      Get the file type id
      boolean isValidFile​(ucar.unidata.io.RandomAccessFile raf)
      Is this a valid file? For this GrADS IOSP, the valid file must be: raw binary grid (not GRIB, netCDF, HDF, etc) not a cross section (x and y > 1) not an ensemble definded by EDEF/ENDEDEF (need examples)
      void open​(ucar.unidata.io.RandomAccessFile raf, ucar.nc2.NetcdfFile ncfile, ucar.nc2.util.CancelTask cancelTask)
      Open the service provider for reading.
      ucar.ma2.Array readData​(ucar.nc2.Variable v2, ucar.ma2.Section section)
      Read the data for the variable
      • Methods inherited from class ucar.nc2.iosp.AbstractIOServiceProvider

        build, buildFinish, getDetailInfo, getFileTypeVersion, getLastModified, getStructureIterator, isBuilder, reacquire, readSection, readToByteChannel, readToOutputStream, release, sendIospMessage, setNetcdfFile, streamToByteChannel, syncExtend, toStringDebug
    • Constructor Detail

      • GradsBinaryGridServiceProvider

        public GradsBinaryGridServiceProvider()
    • Method Detail

      • isValidFile

        public boolean isValidFile​(ucar.unidata.io.RandomAccessFile raf)
                            throws IOException
        Is this a valid file? For this GrADS IOSP, the valid file must be:
        • raw binary grid (not GRIB, netCDF, HDF, etc)
        • not a cross section (x and y > 1)
        • not an ensemble definded by EDEF/ENDEDEF (need examples)
        Parameters:
        raf - RandomAccessFile to check
        Returns:
        true if a valid GrADS grid file of the type listed above
        Throws:
        IOException - problem reading file
      • getFileTypeId

        public String getFileTypeId()
        Get the file type id
        Returns:
        the file type id
      • getFileTypeDescription

        public String getFileTypeDescription()
        Get the file type description
        Returns:
        the file type description
      • open

        public void open​(ucar.unidata.io.RandomAccessFile raf,
                         ucar.nc2.NetcdfFile ncfile,
                         ucar.nc2.util.CancelTask cancelTask)
                  throws IOException
        Open the service provider for reading.
        Specified by:
        open in interface ucar.nc2.iosp.IOServiceProvider
        Overrides:
        open in class ucar.nc2.iosp.AbstractIOServiceProvider
        Parameters:
        raf - file to read from
        ncfile - netCDF file we are writing to (memory)
        cancelTask - task for cancelling
        Throws:
        IOException - problem reading file
      • buildNCFile

        protected void buildNCFile()
        Build the netCDF file
      • close

        public void close()
                   throws IOException
        Close this IOSP and associated files
        Specified by:
        close in interface ucar.nc2.iosp.IOServiceProvider
        Overrides:
        close in class ucar.nc2.iosp.AbstractIOServiceProvider
        Throws:
        IOException - problem closing files
      • readData

        public ucar.ma2.Array readData​(ucar.nc2.Variable v2,
                                       ucar.ma2.Section section)
                                throws IOException,
                                       ucar.ma2.InvalidRangeException
        Read the data for the variable
        Parameters:
        v2 - Variable to read
        section - section infomation
        Returns:
        Array of data
        Throws:
        IOException - problem reading from file
        ucar.ma2.InvalidRangeException - invalid Range