ucar.nc2.dt.point
Class NdbcDataset
java.lang.Object
ucar.nc2.dt.TypedDatasetImpl
ucar.nc2.dt.point.PointObsDatasetImpl
ucar.nc2.dt.point.StationObsDatasetImpl
ucar.nc2.dt.point.NdbcDataset
- All Implemented Interfaces:
- PointCollection, PointObsDataset, StationCollection, StationObsDataset, TypedDataset, TypedDatasetFactoryIF
public class NdbcDataset
- extends StationObsDatasetImpl
- implements TypedDatasetFactoryIF
National Data Buoy Center data. This is a time series at a single buoy.
This is a single station of data. Assumed to be time ordered.
We construct the list of StationObsDatatype records, but without the data cached.
- Author:
- caron
- See Also:
- http://www.ndbc.noaa.gov/index.shtml
Methods inherited from class ucar.nc2.dt.point.StationObsDatasetImpl |
getData, getData, getData, getData, getData, getData, getData, getData, getData, getDataClass, getDataIterator, getDataIterator, getDetailInfo, getScientificDataType, getStation, getStationDataCount, getStations, getStations, getStations, getStations, sortByTime |
Methods inherited from class ucar.nc2.dt.TypedDatasetImpl |
close, findGlobalAttributeIgnoreCase, getBoundingBox, getDataVariable, getDataVariables, getDescription, getEndDate, getGlobalAttributes, getLocation, getLocationURI, getNetcdfFile, getStartDate, getTitle, removeDataVariable, setDescription, setLocationURI, setTitle |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface ucar.nc2.dt.TypedDataset |
close, findGlobalAttributeIgnoreCase, getBoundingBox, getDataVariable, getDataVariables, getDescription, getEndDate, getGlobalAttributes, getLocationURI, getNetcdfFile, getStartDate, getTitle |
NdbcDataset
public NdbcDataset()
NdbcDataset
public NdbcDataset(NetcdfDataset ds)
throws IOException
- Throws:
IOException
isValidFile
public static boolean isValidFile(NetcdfFile ds)
isMine
public boolean isMine(NetcdfDataset ds)
- Description copied from interface:
TypedDatasetFactoryIF
- Determine if this dataset belongs to you
- Specified by:
isMine
in interface TypedDatasetFactoryIF
- Parameters:
ds
- examine this NetcdfDataset to see if it belongs to this class.
- Returns:
- true if this class knows how to create a TypedDataset out of this NetcdfDataset.
open
public TypedDataset open(NetcdfDataset ncd,
CancelTask task,
StringBuilder errlog)
throws IOException
- Description copied from interface:
TypedDatasetFactoryIF
- Open a NetcdfDataset as a TypedDataset.
- Specified by:
open
in interface TypedDatasetFactoryIF
- Parameters:
ncd
- already opened NetcdfDataset.task
- use may cancelerrlog
- place errors here
- Returns:
- a subclass of TypedDataset
- Throws:
IOException
- on error
setTimeUnits
protected void setTimeUnits()
- Specified by:
setTimeUnits
in class PointObsDatasetImpl
setStartDate
protected void setStartDate()
- Specified by:
setStartDate
in class TypedDatasetImpl
setEndDate
protected void setEndDate()
- Specified by:
setEndDate
in class TypedDatasetImpl
setBoundingBox
protected void setBoundingBox()
- Specified by:
setBoundingBox
in class TypedDatasetImpl
getData
public List getData(CancelTask cancel)
throws IOException
- Description copied from interface:
PointCollection
- Get all data, allow user to cancel. Return null if too expensive to implement.
Call getDataCount() to get estimate of size.
This will return a list of getDataClass(), but the actual data may or may not already be read in
to memory. In any case, you call dataType.getData() to get the data.
- Specified by:
getData
in interface PointCollection
- Parameters:
cancel
- allow user to cancel. Implementors should return ASAP.
- Returns:
- List of type getDataClass()
- Throws:
IOException
- on io error- See Also:
as a (possibly) more efficient alternative
getDataCount
public int getDataCount()
- Description copied from interface:
PointCollection
- Get estimate of number of data records (may not be exact).
Return -1 if not able to estimate.
- Specified by:
getDataCount
in interface PointCollection
- Returns:
- number of data records or -1
getData
public List getData(Station s,
CancelTask cancel)
throws IOException
- Description copied from interface:
StationCollection
- Get all data for this Station, allow user to cancel.
- Specified by:
getData
in interface StationCollection
- Parameters:
s
- for this Stationcancel
- allow user to cancel. Implementors should return ASAP.
- Returns:
- List of getDataClass()
- Throws:
IOException
- on io error
getDataIterator
public DataIterator getDataIterator(int bufferSize)
throws IOException
- Description copied from interface:
PointCollection
- Get an efficient iterator over all the data in the Collection. You must fully process the
data, or copy it out of the StructureData, as you iterate over it. DO NOT KEEP ANY REFERENCES to the
dataType object or the StructureData object.
This is the efficient way to get all the data, it can be 100 times faster than getData().
This will return an iterator over type getDataClass(), and the actual data has already been read
into memory, that is, dataType.getData() will not incur any I/O.
This is accomplished by buffering bufferSize amount of data at once.
We dont need a cancelTask, just stop the iteration if the user want to cancel.
Example for point observations:
Iterator iter = pointObsDataset.getDataIterator();
while (iter.hasNext()) {
PointObsDatatype pobs = (PointObsDatatype) iter.next();
StructureData sdata = pobs.getData();
// process fully
}
- Specified by:
getDataIterator
in interface PointCollection
- Parameters:
bufferSize
- if > 0, the internal buffer size, else use the default. Typically 100k - 1M for best results.
- Returns:
- iterator over type getDataClass(), no guarenteed order.
- Throws:
IOException
- on io error
Copyright © 1999-2011 UCAR/Unidata. All Rights Reserved.