Package ucar.nc2.iosp.grads
Class GradsBinaryGridServiceProvider
- java.lang.Object
-
- ucar.nc2.iosp.AbstractIOServiceProvider
-
- ucar.nc2.iosp.grads.GradsBinaryGridServiceProvider
-
- All Implemented Interfaces:
ucar.nc2.iosp.IOServiceProvider
public class GradsBinaryGridServiceProvider extends ucar.nc2.iosp.AbstractIOServiceProviderIOSP 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 GradsDataDescriptorFilegradsDDFGrADS file reader
-
Constructor Summary
Constructors Constructor Description GradsBinaryGridServiceProvider()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidbuildNCFile()Build the netCDF filevoidclose()Close this IOSP and associated filesStringgetFileTypeDescription()Get the file type descriptionStringgetFileTypeId()Get the file type idbooleanisValidFile(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)voidopen(ucar.unidata.io.RandomAccessFile raf, ucar.nc2.NetcdfFile ncfile, ucar.nc2.util.CancelTask cancelTask)Open the service provider for reading.ucar.ma2.ArrayreadData(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
-
-
-
-
Field Detail
-
gradsDDF
protected GradsDataDescriptorFile gradsDDF
GrADS file reader
-
-
Method Detail
-
isValidFile
public boolean isValidFile(ucar.unidata.io.RandomAccessFile raf) throws IOExceptionIs 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 IOExceptionOpen the service provider for reading.- Specified by:
openin interfaceucar.nc2.iosp.IOServiceProvider- Overrides:
openin classucar.nc2.iosp.AbstractIOServiceProvider- Parameters:
raf- file to read fromncfile- 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 IOExceptionClose this IOSP and associated files- Specified by:
closein interfaceucar.nc2.iosp.IOServiceProvider- Overrides:
closein classucar.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.InvalidRangeExceptionRead the data for the variable- Parameters:
v2- Variable to readsection- section infomation- Returns:
- Array of data
- Throws:
IOException- problem reading from fileucar.ma2.InvalidRangeException- invalid Range
-
-