public class NetcdfDataset extends NetcdfFile
NetcdfDataset
extends the netCDF API, adding standard attribute parsing such as
scale and offset, and explicit support for Coordinate Systems.
A NetcdfDataset
wraps a NetcdfFile
, or is defined by an NcML document.
Be sure to close the dataset when done.
Using statics in NetcdfDatets
, best practice is to use try-with-resource:
try (NetcdfDataset ncd = NetcdfDatasets.openDataset(fileName)) { ... }
By default @code NetcdfDataset} is opened with all enhancements turned on. The default "enhance mode" can be set through setDefaultEnhanceMode(). One can also explicitly set the enhancements you want in the dataset factory methods. The enhancements are:
Automatic scale/offset processing has some overhead that you may not want to incur up-front. If so, open the
NetcdfDataset without ApplyScaleOffset
. The VariableDS data type is not promoted and the data is not
converted on a read, but you can call the convertScaleOffset() routines to do the conversion later.
NetcdfFile
Modifier and Type | Class and Description |
---|---|
static class |
NetcdfDataset.Builder<T extends NetcdfDataset.Builder<T>> |
static class |
NetcdfDataset.Enhance
Possible enhancements for a NetcdfDataset
|
IOSP_MESSAGE_ADD_RECORD_STRUCTURE, IOSP_MESSAGE_CONVERT_RECORD_STRUCTURE, IOSP_MESSAGE_RANDOM_ACCESS_FILE, IOSP_MESSAGE_REMOVE_RECORD_STRUCTURE
Constructor and Description |
---|
NetcdfDataset()
Deprecated.
Use NetcdfDataset.builder()
|
NetcdfDataset(NetcdfFile.Builder<?> builder) |
NetcdfDataset(NetcdfFile ncfile)
Deprecated.
Use NetcdfDataset.builder()
|
NetcdfDataset(NetcdfFile ncfile,
boolean enhance)
Deprecated.
Use NetcdfDataset.builder()
|
NetcdfDataset(NetcdfFile ncfile,
Set<NetcdfDataset.Enhance> mode)
Deprecated.
Use NetcdfDataset.builder()
|
Modifier and Type | Method and Description |
---|---|
static NetcdfDataset |
acquireDataset(DatasetUrl location,
boolean enhanceMode,
CancelTask cancelTask)
Deprecated.
use NetcdfDatasets.acquireDataset
|
static NetcdfDataset |
acquireDataset(DatasetUrl location,
CancelTask cancelTask)
Deprecated.
use NetcdfDatasets.acquireDataset
|
static NetcdfDataset |
acquireDataset(DatasetUrl location,
Set<NetcdfDataset.Enhance> enhanceMode,
CancelTask cancelTask)
Deprecated.
use NetcdfDatasets.acquireDataset
|
static NetcdfDataset |
acquireDataset(ucar.nc2.util.cache.FileFactory fac,
DatasetUrl durl,
Set<NetcdfDataset.Enhance> enhanceMode,
int buffer_size,
CancelTask cancelTask,
Object iospMessage)
Deprecated.
use NetcdfDatasets.acquireDataset
|
static NetcdfFile |
acquireFile(DatasetUrl location,
CancelTask cancelTask)
Deprecated.
use NetcdfDatasets.acquireFile
|
static NetcdfFile |
acquireFile(ucar.nc2.util.cache.FileFactory factory,
Object hashKey,
DatasetUrl location,
int buffer_size,
CancelTask cancelTask,
Object spiObject)
Deprecated.
use NetcdfDatasets.acquireFile
|
CoordinateAxis |
addCoordinateAxis(VariableDS v)
Deprecated.
Use NetcdfDataset.builder()
|
void |
addCoordinateSystem(CoordinateSystem cs)
Deprecated.
Use NetcdfDataset.builder()
|
void |
addCoordinateTransform(CoordinateTransform ct)
Deprecated.
Use NetcdfDataset.builder()
|
Variable |
addVariable(Group g,
Variable v)
Deprecated.
Use NetcdfDataset.builder()
|
static NetcdfDataset.Builder<?> |
builder()
Get Builder for this class that allows subclassing.
|
static NetcdfDataset.Builder |
builder(NetcdfFile from) |
void |
check(Formatter f)
Deprecated.
do not use
|
void |
clearCoordinateSystems()
Deprecated.
Use NetcdfDataset.builder()
|
void |
close()
Close all resources (files, sockets, etc) associated with this dataset.
|
static void |
debugDump(PrintWriter out,
NetcdfDataset ncd)
Deprecated.
do not use
|
static void |
disableNetcdfFileCache()
Deprecated.
use NetcdfDatasets.disableNetcdfFileCache
|
void |
empty()
Deprecated.
Use NetcdfDataset.builder()
|
CoordSysBuilderIF |
enhance()
Deprecated.
Use NetcdfDataset.builder()
|
void |
enhance(Set<NetcdfDataset.Enhance> mode)
Deprecated.
Use NetcdfDataset.builder()
|
boolean |
enhanceNeeded(Set<NetcdfDataset.Enhance> want)
Deprecated.
Do not use.
|
CoordinateAxis |
findCoordinateAxis(AxisType type)
Retrieve the CoordinateAxis with the specified Axis Type.
|
CoordinateAxis |
findCoordinateAxis(String fullName)
Retrieve the CoordinateAxis with the specified type.
|
CoordinateSystem |
findCoordinateSystem(String name)
Retrieve the CoordinateSystem with the specified name.
|
CoordinateTransform |
findCoordinateTransform(String name)
Retrieve the CoordinateTransform with the specified name.
|
ucar.nc2.ncml.AggregationIF |
getAggregation()
Deprecated.
Do not use.
|
String |
getConventionUsed()
Get conventions used to analyse coordinate systems.
|
List<CoordinateAxis> |
getCoordinateAxes()
Get the list of all CoordinateAxis objects used by this dataset.
|
List<CoordinateSystem> |
getCoordinateSystems()
Get the list of all CoordinateSystem objects used by this dataset.
|
List<CoordinateTransform> |
getCoordinateTransforms()
Get the list of all CoordinateTransform objects used by this dataset.
|
static Set<NetcdfDataset.Enhance> |
getDefaultEnhanceMode() |
void |
getDetailInfo(Formatter f)
Show debug / underlying implementation details
|
static Set<NetcdfDataset.Enhance> |
getEnhanceAll() |
Set<NetcdfDataset.Enhance> |
getEnhanceMode()
Get the current state of dataset enhancement.
|
static Set<NetcdfDataset.Enhance> |
getEnhanceNone() |
String |
getFileTypeDescription()
Get a human-readable description for this file type.
|
String |
getFileTypeId()
Get the file type id for the underlying data source.
|
static boolean |
getFillValueIsMissing()
Deprecated.
do not use
|
static boolean |
getInvalidDataIsMissing()
Deprecated.
do not use
|
IOServiceProvider |
getIosp()
Deprecated.
do not use
|
long |
getLastModified() |
static boolean |
getMissingDataIsMissing()
Deprecated.
do not use
|
static ucar.nc2.util.cache.FileCacheIF |
getNetcdfFileCache()
Deprecated.
use NetcdfDatasets.getNetcdfFileCache
|
NetcdfFile |
getReferencedFile()
Deprecated.
Do not use
|
static void |
initNetcdfFileCache(int minElementsInMemory,
int maxElementsInMemory,
int period)
Deprecated.
use NetcdfDatasets.initNetcdfFileCache
|
static void |
initNetcdfFileCache(int minElementsInMemory,
int maxElementsInMemory,
int hardLimit,
int period)
Deprecated.
use NetcdfDatasets.initNetcdfFileCache
|
static void |
main(String[] arg)
Main program - cover to ucar.nc2.FileWriter, for all files that can be read by NetcdfDataset.openFile()
|
static Array |
makeArray(DataType dtype,
List<String> stringValues)
Deprecated.
use Array#makeArray directly
|
static NetcdfDataset |
openDataset(DatasetUrl location,
Set<NetcdfDataset.Enhance> enhanceMode,
int buffer_size,
CancelTask cancelTask,
Object spiObject)
Deprecated.
use NetcdfDatasets.openDataset
|
static NetcdfDataset |
openDataset(String location)
Deprecated.
use NetcdfDatasets.openDataset
|
static NetcdfDataset |
openDataset(String location,
boolean enhance,
CancelTask cancelTask)
Deprecated.
use NetcdfDatasets.openDataset
|
static NetcdfDataset |
openDataset(String location,
boolean enhance,
int buffer_size,
CancelTask cancelTask,
Object spiObject)
Deprecated.
use NetcdfDatasets.openDataset
|
static NetcdfFile |
openFile(DatasetUrl location,
int buffer_size,
CancelTask cancelTask,
Object spiObject)
Deprecated.
use NetcdfDatasets.openFile
|
static NetcdfFile |
openFile(String location,
CancelTask cancelTask)
Deprecated.
use NetcdfDatasets.openFile
|
static Set<NetcdfDataset.Enhance> |
parseEnhanceMode(String enhanceMode)
Deprecated.
this is moving to Ncml package
|
void |
reacquire() |
void |
release() |
void |
setAggregation(ucar.nc2.ncml.AggregationIF agg)
Deprecated.
Use NetcdfDataset.builder()
|
static void |
setDefaultEnhanceMode(Set<NetcdfDataset.Enhance> mode)
Set the default set of Enhancements to do for all subsequent dataset opens and acquires.
|
static void |
setFillValueIsMissing(boolean b)
Deprecated.
do not use
|
static void |
setInvalidDataIsMissing(boolean b)
Deprecated.
do not use
|
static void |
setMissingDataIsMissing(boolean b)
Deprecated.
do not use
|
void |
setReferencedFile(NetcdfFile ncfile)
Deprecated.
Use NetcdfDataset.builder()
|
void |
setValues(Variable v,
int npts,
double start,
double incr)
Deprecated.
use Variable.setValues()
|
void |
setValues(Variable v,
List<String> values)
Deprecated.
use Variable.setValues()
|
static void |
shutdown()
Deprecated.
use NetcdfDatasets.shutdown
|
void |
sort()
Deprecated.
Use NetcdfDataset.builder()
|
boolean |
syncExtend()
Deprecated.
do not use
|
NetcdfDataset.Builder<?> |
toBuilder()
Turn into a mutable Builder.
|
static NetcdfDataset |
wrap(NetcdfFile ncfile,
Set<NetcdfDataset.Enhance> mode)
Deprecated.
use NetcdfDatasets.wrap
|
void |
writeNcML(OutputStream os,
String uri)
Deprecated.
will move in ver 6
|
addAttribute, addAttribute, addDimension, addGroup, addStringVariable, addVariable, addVariableAttribute, canonicalizeUriString, canOpen, findAttribute, findAttValueIgnoreCase, findDimension, findGlobalAttribute, findGlobalAttributeIgnoreCase, findGroup, findVariable, findVariable, findVariableByAttribute, finish, getCacheName, getDetailInfo, getDimensions, getFileTypeVersion, getGlobalAttributes, getId, getLocation, getRootGroup, getTitle, getUnlimitedDimension, getVariables, hasUnlimitedDimension, iospDeRegister, iospRegistered, makeNameUnescaped, makeValidCDLName, makeValidCdmObjectName, makeValidPathName, makeValidSectionSpecName, open, open, open, open, open, open, openInMemory, openInMemory, openInMemory, openInMemory, read, readArrays, readAttributeDouble, readAttributeInteger, readSection, registerIOProvider, registerIOProvider, registerIOProvider, registerIOProviderPreferred, removeDimension, removeVariable, sendIospMessage, setDebugFlags, setFileCache, setId, setImmutable, setLocation, setProperty, setRootGroup, setTitle, toNcML, toString, writeCDL, writeCDL, writeNcML
@Deprecated public NetcdfDataset(NetcdfFile ncfile) throws IOException
ncfile
- NetcdfFile to transform.IOException
- on read error@Deprecated public NetcdfDataset(NetcdfFile ncfile, boolean enhance) throws IOException
ncfile
- NetcdfFile to transform, do not use independently after this.enhance
- if true, enhance with defaultEnhanceModeIOException
- on read error@Deprecated public NetcdfDataset(NetcdfFile ncfile, Set<NetcdfDataset.Enhance> mode) throws IOException
ncfile
- NetcdfFile to transform, do not use independently after this.mode
- set of enhance modes. If null, then noneIOException
- on read error@Deprecated public NetcdfDataset()
public NetcdfDataset(NetcdfFile.Builder<?> builder)
public static Set<NetcdfDataset.Enhance> getEnhanceAll()
public static Set<NetcdfDataset.Enhance> getEnhanceNone()
public static Set<NetcdfDataset.Enhance> getDefaultEnhanceMode()
public static void setDefaultEnhanceMode(Set<NetcdfDataset.Enhance> mode)
mode
- the default set of Enhancements for open and acquire factory methods@Deprecated public static Set<NetcdfDataset.Enhance> parseEnhanceMode(String enhanceMode)
String | Enhancements |
---|---|
All | ConvertEnums, ConvertUnsigned, ApplyScaleOffset, ConvertMissing, CoordSystems |
None | <empty> |
ConvertEnums | ConvertEnums |
ConvertUnsigned | ConvertUnsigned |
ApplyScaleOffset | ApplyScaleOffset |
ConvertMissing | ConvertMissing |
CoordSystems | CoordSystems |
IncompleteCoordSystems | CoordSystems |
true | Alias for "All" |
ScaleMissingDefer | Alias for "None" |
AllDefer | ConvertEnums, CoordSystems |
ScaleMissing | ConvertUnsigned, ApplyScaleOffset, ConvertMissing |
enhanceMode
- a string from the above table.enhanceMode
, or null
if there is no correspondence.@Deprecated public static void setFillValueIsMissing(boolean b)
b
- true if _FillValue are missing (default true)@Deprecated public static boolean getFillValueIsMissing()
@Deprecated public static void setInvalidDataIsMissing(boolean b)
b
- true if valid_range are missing (default true)@Deprecated public static boolean getInvalidDataIsMissing()
@Deprecated public static void setMissingDataIsMissing(boolean b)
b
- true if missing_data are missing (default true)@Deprecated public static boolean getMissingDataIsMissing()
@Deprecated public static void initNetcdfFileCache(int minElementsInMemory, int maxElementsInMemory, int period)
minElementsInMemory
- keep this number in the cachemaxElementsInMemory
- trigger a cleanup if it goes over this number.period
- (secs) do periodic cleanups every this number of seconds. set to < 0 to not cleanup@Deprecated public static void initNetcdfFileCache(int minElementsInMemory, int maxElementsInMemory, int hardLimit, int period)
minElementsInMemory
- keep this number in the cachemaxElementsInMemory
- trigger a cleanup if it goes over this number.hardLimit
- if > 0, never allow more than this many elements. This causes a cleanup to be done in
the calling thread.period
- (secs) do periodic cleanups every this number of seconds.@Deprecated public static void disableNetcdfFileCache()
@Deprecated public static void shutdown()
@Deprecated public static ucar.nc2.util.cache.FileCacheIF getNetcdfFileCache()
@Deprecated public static NetcdfDataset wrap(NetcdfFile ncfile, Set<NetcdfDataset.Enhance> mode) throws IOException
ncfile
- wrap thismode
- using this enhance mode (may be null, meaning no enhance)IOException
- on io error@Deprecated public static NetcdfDataset openDataset(String location) throws IOException
location
- location of fileIOException
- on read error@Deprecated public static NetcdfDataset openDataset(String location, boolean enhance, CancelTask cancelTask) throws IOException
location
- location of fileenhance
- if true, use defaultEnhanceMode, else no enhancementscancelTask
- allow task to be cancelled; may be null.IOException
- on read error@Deprecated public static NetcdfDataset openDataset(String location, boolean enhance, int buffer_size, CancelTask cancelTask, Object spiObject) throws IOException
location
- location of fileenhance
- if true, use defaultEnhanceMode, else no enhancementsbuffer_size
- RandomAccessFile buffer size, if <= 0, use default sizecancelTask
- allow task to be cancelled; may be null.spiObject
- sent to iosp.setSpecial() if not nullIOException
- on read error@Deprecated public static NetcdfDataset openDataset(DatasetUrl location, Set<NetcdfDataset.Enhance> enhanceMode, int buffer_size, CancelTask cancelTask, Object spiObject) throws IOException
location
- location of fileenhanceMode
- set of enhancements. If null, then nonebuffer_size
- RandomAccessFile buffer size, if <= 0, use default sizecancelTask
- allow task to be cancelled; may be null.spiObject
- sent to iosp.setSpecial() if not nullIOException
- on read error@Deprecated public static NetcdfDataset acquireDataset(DatasetUrl location, CancelTask cancelTask) throws IOException
location
- location of file, passed to FileFactorycancelTask
- allow task to be cancelled; may be null.IOException
- on read error@Deprecated public static NetcdfDataset acquireDataset(DatasetUrl location, boolean enhanceMode, CancelTask cancelTask) throws IOException
location
- location of file, passed to FileFactoryenhanceMode
- how to enhance. if null, then no enhancementcancelTask
- allow task to be cancelled; may be null.IOException
- on read error@Deprecated public static NetcdfDataset acquireDataset(DatasetUrl location, Set<NetcdfDataset.Enhance> enhanceMode, CancelTask cancelTask) throws IOException
location
- location of file, passed to FileFactoryenhanceMode
- how to enhance. if null, then no enhancementcancelTask
- allow task to be cancelled; may be null.IOException
- on read error@Deprecated public static NetcdfDataset acquireDataset(ucar.nc2.util.cache.FileFactory fac, DatasetUrl durl, Set<NetcdfDataset.Enhance> enhanceMode, int buffer_size, CancelTask cancelTask, Object iospMessage) throws IOException
fac
- if not null, use this factory if the file is not in the cache. If null, use the default factory.durl
- location of file, passed to FileFactoryenhanceMode
- how to enhance. if null, then no enhancementbuffer_size
- RandomAccessFile buffer size, if <= 0, use default sizecancelTask
- allow task to be cancelled; may be null.iospMessage
- sent to iosp.setSpecial() if not nullIOException
@Deprecated public static NetcdfFile openFile(String location, CancelTask cancelTask) throws IOException
location
- location of dataset.cancelTask
- use to allow task to be cancelled; may be null.IOException
- on read error@Deprecated public static NetcdfFile openFile(DatasetUrl location, int buffer_size, CancelTask cancelTask, Object spiObject) throws IOException
This does not necessarily return a NetcdfDataset, or enhance the dataset; use NetcdfDataset.openDataset() method for that.
location
- location of dataset. This may be a
buffer_size
- RandomAccessFile buffer size, if <= 0, use default sizecancelTask
- allow task to be cancelled; may be null.spiObject
- sent to iosp.setSpecial() if not nullIOException
- on read error@Deprecated public static NetcdfFile acquireFile(DatasetUrl location, CancelTask cancelTask) throws IOException
location
- location of file, passed to FileFactorycancelTask
- allow task to be cancelled; may be null.IOException
- on read error@Deprecated public static NetcdfFile acquireFile(ucar.nc2.util.cache.FileFactory factory, Object hashKey, DatasetUrl location, int buffer_size, CancelTask cancelTask, Object spiObject) throws IOException
factory
- if not null, use this factory to read the file. If null, use the default factory.hashKey
- if not null, use as the cache key, else use the locationlocation
- location of file, passed to FileFactorybuffer_size
- RandomAccessFile buffer size, if <= 0, use default sizecancelTask
- allow task to be cancelled; may be null.spiObject
- sent to iosp.setSpecial(); may be nullIOException
- on read error@Deprecated public ucar.nc2.ncml.AggregationIF getAggregation()
@Deprecated public void setAggregation(ucar.nc2.ncml.AggregationIF agg)
agg
- the Aggregation objectpublic List<CoordinateSystem> getCoordinateSystems()
public String getConventionUsed()
public Set<NetcdfDataset.Enhance> getEnhanceMode()
public List<CoordinateTransform> getCoordinateTransforms()
public List<CoordinateAxis> getCoordinateAxes()
@Deprecated public void clearCoordinateSystems()
public CoordinateAxis findCoordinateAxis(AxisType type)
type
- axis typepublic CoordinateAxis findCoordinateAxis(String fullName)
fullName
- full escaped name of the coordinate axispublic CoordinateSystem findCoordinateSystem(String name)
name
- String which identifies the desired CoordinateSystempublic CoordinateTransform findCoordinateTransform(String name)
name
- String which identifies the desired CoordinateSystempublic void close() throws IOException
close
in interface Closeable
close
in interface AutoCloseable
close
in interface ucar.nc2.util.cache.FileCacheable
close
in class NetcdfFile
IOException
- if error when closingpublic void release() throws IOException
release
in interface ucar.nc2.util.cache.FileCacheable
release
in class NetcdfFile
IOException
public void reacquire() throws IOException
reacquire
in interface ucar.nc2.util.cache.FileCacheable
reacquire
in class NetcdfFile
IOException
public long getLastModified()
getLastModified
in interface ucar.nc2.util.cache.FileCacheable
getLastModified
in class NetcdfFile
@Deprecated public void empty()
NetcdfFile
empty
in class NetcdfFile
@Deprecated public boolean syncExtend() throws IOException
NetcdfFile
syncExtend
in class NetcdfFile
IOException
- if error@Deprecated public void writeNcML(OutputStream os, String uri) throws IOException
writeNcML
in class NetcdfFile
os
- write to this Output Stream.uri
- use this for the url attribute; if null use getLocation().IOException
- if errorNcMLWriter.writeToStream(org.jdom2.Element, java.io.OutputStream)
@Deprecated public void sort()
@Deprecated public NetcdfFile getReferencedFile()
@Deprecated public IOServiceProvider getIosp()
getIosp
in class NetcdfFile
@Deprecated public void setReferencedFile(NetcdfFile ncfile)
ncfile
- underlying "referenced file"@Deprecated public void addCoordinateSystem(CoordinateSystem cs)
cs
- add this CoordinateSystem to the dataset@Deprecated public void addCoordinateTransform(CoordinateTransform ct)
ct
- add this CoordinateTransform to the dataset@Deprecated public CoordinateAxis addCoordinateAxis(VariableDS v)
v
- make this VariableDS into a CoordinateAxis@Deprecated public Variable addVariable(Group g, Variable v)
NetcdfFile
addVariable
in class NetcdfFile
g
- add to this group. If group is null, use root groupv
- add this Variable@Deprecated public CoordSysBuilderIF enhance() throws IOException
IOException
- on error@Deprecated public void enhance(Set<NetcdfDataset.Enhance> mode) throws IOException
mode
- how to enhanceIOException
- on error@Deprecated public boolean enhanceNeeded(Set<NetcdfDataset.Enhance> want)
want
- enhancements wanted@Deprecated public void setValues(Variable v, int npts, double start, double incr)
v
- for this variablenpts
- number of values, must = v.getSize()start
- starting valueincr
- increment@Deprecated public void setValues(Variable v, List<String> values) throws IllegalArgumentException
v
- for this variablevalues
- list of StringsIllegalArgumentException
- if values array not correct size, or values wont parse to the correct type@Deprecated public static Array makeArray(DataType dtype, List<String> stringValues) throws NumberFormatException
dtype
- data type of the array.stringValues
- list of strings.NumberFormatException
- if string values not parssable to specified data typepublic void getDetailInfo(Formatter f)
getDetailInfo
in class NetcdfFile
@Deprecated public static void debugDump(PrintWriter out, NetcdfDataset ncd)
out
- write herencd
- info about thispublic String getFileTypeId()
NetcdfFile
getFileTypeId
in class NetcdfFile
public String getFileTypeDescription()
NetcdfFile
getFileTypeDescription
in class NetcdfFile
@Deprecated public void check(Formatter f)
public NetcdfDataset.Builder<?> toBuilder()
NetcdfFile
toBuilder
in class NetcdfFile
public static NetcdfDataset.Builder<?> builder()
public static NetcdfDataset.Builder builder(NetcdfFile from)
public static void main(String[] arg) throws IOException
ucar.nc2.dataset.NetcdfDataset -in fileIn -out fileOut
where:
arg
- -in IOException
- on read or write error