Package noaa.coastwatch.io
Class NCReader
java.lang.Object
noaa.coastwatch.io.EarthDataReader
noaa.coastwatch.io.NCReader
- All Implemented Interfaces:
GridSubsetReader,NCSD
- Direct Known Subclasses:
ACSPONCCFReader,ACSPONCReader,CommonDataModelNCReader,CWCFNCReader,CWNCReader
The
NCReader class is the base class for readers that
use the Java NetCDF API to read and parse metadata. Supported file
formats include NetCDF 3/4, HDF5, and OPeNDAP network connections.- Since:
- 3.2.0
- Author:
- Peter Hollemans
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected ucar.nc2.dataset.NetcdfDatasetThe NetCDF dataset for accessing data.Fields inherited from class noaa.coastwatch.io.EarthDataReader
dataProjection, info, rawMetadataMap, variables -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()Closes the reader.protected static ObjectconvertAttributeValue(ucar.nc2.Attribute att, boolean asArray) Converts an attribute into a Java string, primitive array, or wrapped primitive.protected abstract DataVariablegetActualVariable(int index) Gets the actual variable with data.getAttribute(String name) Gets a NetCDF global file attribute from this reader and converts it to a Java string, primitive array, or wrapped primitive.static ObjectgetAttribute(ucar.nc2.NetcdfFile file, String name) Gets a NetCDF global file attribute and converts it to a Java string, primitive array, or wrapped primitive.static ObjectgetAttribute(ucar.nc2.Variable var, String name) Gets a NetCDF variable attribute and converts it to a Java string, primitive array, or wrapped primitive.getAttributeAsArray(String name) Gets a NetCDF global file attribute from this reader and converts it to a primitive array.static ObjectgetAttributeAsArray(ucar.nc2.NetcdfFile file, String name) Gets a NetCDF global file attribute and converts it to a primitive array.static ObjectgetAttributeAsArray(ucar.nc2.Variable var, String name) Gets a NetCDF variable attribute and converts it to a primitive array.List<ucar.nc2.dataset.CoordinateSystem>Gets the NetCDF CDM style coordinate systems accessed by this reader.ucar.nc2.dataset.NetcdfDatasetGets the NetCDF scientific dataset.Gets the NetCDF scientific dataset file name.getGridSubset(String varName, int[] start, int[] stride, int[] length) Reads a subset of a data grid.getRawMetadata(int index) Gets the detailed raw metadata for a variable.protected ucar.nc2.NetcdfFileGets the NetCDF file referenced in this reader.getVariable(int index) Creates a data variable object.getVariablesForSystem(ucar.nc2.dataset.CoordinateSystem system) Gets the variable names for the specified NetCDF CDM style coordinate systems accessed by this reader.protected voidPerforms reader initialization after the dataset has been opened.booleanReturns true if this reader is network-connected.Methods inherited from class noaa.coastwatch.io.EarthDataReader
canUpdateNavigation, containsVariable, finalize, findVariable, getAllGrids, getAllVariables, getChunkProducer, getDataFormat, getIndex, getInfo, getName, getPreview, getPreview, getPreviewImpl, getRawMetadata, getSceneTime, getSource, getStatistics, getStatisticsVariables, getVariable, getVariables, putStatistics, setDataProjection, setUnitsMap, updateNavigation
-
Field Details
-
dataset
protected ucar.nc2.dataset.NetcdfDataset datasetThe NetCDF dataset for accessing data.
-
-
Constructor Details
-
NCReader
Creates a new reader using the dataset at the specified location.- Parameters:
name- the file or network location.- Throws:
IOException- if an error occurred accessing the dataset.
-
-
Method Details
-
getDataset
public ucar.nc2.dataset.NetcdfDataset getDataset()Description copied from interface:NCSDGets the NetCDF scientific dataset.- Specified by:
getDatasetin interfaceNCSD
-
getFilename
Description copied from interface:NCSDGets the NetCDF scientific dataset file name.- Specified by:
getFilenamein interfaceNCSD
-
initializeReader
Performs reader initialization after the dataset has been opened.- Throws:
IOException- if an error occurred on initialization.
-
convertAttributeValue
Converts an attribute into a Java string, primitive array, or wrapped primitive.- Parameters:
att- the attribute to convert.asArray- the array flag, true to return single values as an array, false to return as a wrapped primitive.
-
getAttribute
Gets a NetCDF global file attribute from this reader and converts it to a Java string, primitive array, or wrapped primitive.- Parameters:
name- the name of the attribute.- Returns:
- the attribute value or null if none exists.
-
getAttributeAsArray
Gets a NetCDF global file attribute from this reader and converts it to a primitive array. Strings are returned as an array of bytes, and arrays of length 1 are returned as-is (and not converted to a wrapped primitive).- Parameters:
name- the name of the attribute.- Returns:
- the attribute value or null if none exists.
-
getAttribute
Gets a NetCDF global file attribute and converts it to a Java string, primitive array, or wrapped primitive.- Parameters:
file- the NetCDF file to access.name- the name of the attribute.- Returns:
- the attribute value or null if none exists.
-
getAttributeAsArray
Gets a NetCDF global file attribute and converts it to a primitive array. Strings are returned as an array of bytes, and arrays of length 1 are returned as-is (and not converted to a wrapped primitive).- Parameters:
file- the NetCDF file to access.name- the name of the attribute.- Returns:
- the attribute value or null if none exists.
-
getAttribute
Gets a NetCDF variable attribute and converts it to a Java string, primitive array, or wrapped primitive.- Parameters:
var- the variable to access.name- the name of the attribute.- Returns:
- the attribute value or null if none exists.
-
getAttributeAsArray
Gets a NetCDF variable attribute and converts it to a primitive array. Strings are returned as an array of bytes, and arrays of length 1 are returned as-is (and not converted to a wrapped primitive).- Parameters:
var- the variable to access.name- the name of the attribute.- Returns:
- the attribute value or null if none exists.
-
isNetwork
public boolean isNetwork()Returns true if this reader is network-connected. -
getActualVariable
Gets the actual variable with data. This method should be implemented in the child class and is only called if the variable is not already in the cache. SeegetVariable(int)for the required behaviour.- Throws:
IOException
-
getVariable
Description copied from class:EarthDataReaderCreates a data variable object. The full data is read into the object.- Specified by:
getVariablein classEarthDataReader- Parameters:
index- the index of the variable to get. Indexing starts at 0.- Returns:
- a data variable object with full data value array.
- Throws:
IOException- if the data source had I/O errors.- See Also:
-
close
Closes the reader.- Specified by:
closein classEarthDataReader- Throws:
IOException- if the data source had I/O errors.
-
getReferencedFile
protected ucar.nc2.NetcdfFile getReferencedFile()Gets the NetCDF file referenced in this reader.- Returns:
- the NetCDF file.
- Since:
- 3.6.1
-
getGridSubset
public Grid getGridSubset(String varName, int[] start, int[] stride, int[] length) throws IOException Description copied from interface:GridSubsetReaderReads a subset of a data grid. This is similar to theEarthDataReader.getVariable(String)method except that it reads only grid variables and is capable of returning just a subset of the data values. In some cases, such as across a network connection, it may be more efficient to access only a subset or subsampling of data in a variable.- Specified by:
getGridSubsetin interfaceGridSubsetReader- Parameters:
varName- the variable name to access.start- the 2D starting data coordinates.stride- the 2D data stride.length- the total number of values to read in each dimension.- Returns:
- the subset and/or subsampled grid variable.
- Throws:
IOException- if the data source had I/O errors.
-
getCoordinateSystems
Description copied from class:EarthDataReaderGets the NetCDF CDM style coordinate systems accessed by this reader.- Overrides:
getCoordinateSystemsin classEarthDataReader- Returns:
- the list of coordinate systems, possibly empty.
-
getVariablesForSystem
Description copied from class:EarthDataReaderGets the variable names for the specified NetCDF CDM style coordinate systems accessed by this reader.- Overrides:
getVariablesForSystemin classEarthDataReader- Returns:
- the list of variable names, possibly empty.
-
getRawMetadata
Description copied from class:EarthDataReaderGets the detailed raw metadata for a variable.- Overrides:
getRawMetadatain classEarthDataReader- Parameters:
index- the index of the variable for raw metadata.- Returns:
- the map of attribute name to attribute value.
- Throws:
IOException- if the data source had I/O errors.- See Also:
-