public class DapperDataset extends PointObsDatasetImpl implements TypedDatasetFactoryIF
Modifier and Type | Class and Description |
---|---|
class |
DapperDataset.SeqPointObs |
class |
DapperDataset.SeqStationObs |
Modifier and Type | Field and Description |
---|---|
protected Variable |
altVar |
protected DODSNetcdfFile |
dodsFile |
protected boolean |
fatal |
protected StructureDS |
innerSequence |
protected boolean |
isProfile |
protected Variable |
latVar |
protected Variable |
lonVar |
protected StructureDS |
outerSequence |
protected Variable |
timeVar |
formatter, timeUnit
boundingBox, dataVariables, desc, endDate, location, netcdfDataset, parseInfo, startDate, title
Constructor and Description |
---|
DapperDataset() |
DapperDataset(NetcdfDataset ds) |
Modifier and Type | Method and Description |
---|---|
static PointObsDataset |
factory(NetcdfDataset ds) |
java.util.List |
getData(CancelTask cancel)
Get all data, allow user to cancel.
|
java.util.List |
getData(LatLonRect boundingBox,
CancelTask cancel)
Get all data within the specified bounding box, allow user to cancel.
|
java.util.List |
getData(LatLonRect boundingBox,
java.util.Date start,
java.util.Date end,
CancelTask cancel)
Get all data within the specified bounding box and date range, allow user to cancel.
|
int |
getDataCount()
Get estimate of number of data records (may not be exact).
|
DataIterator |
getDataIterator(int bufferSize)
Get an efficient iterator over all the data in the Collection.
|
boolean |
isMine(NetcdfDataset ds)
Determine if this dataset belongs to you
|
static boolean |
isValidFile(NetcdfFile ds) |
static void |
main(java.lang.String[] args) |
TypedDataset |
open(NetcdfDataset ncd,
CancelTask task,
java.lang.StringBuilder errlog)
Open a NetcdfDataset as a TypedDataset.
|
java.util.List |
readStationData(Station s,
CancelTask cancel) |
void |
readStations(java.util.List stations) |
protected void |
setBoundingBox() |
protected void |
setEndDate() |
protected void |
setStartDate() |
protected void |
setTimeUnits() |
getData, getData, getData, getDataClass, getDetailInfo, getMetersConversionFactor, getScientificDataType, getTime, getTimeUnits
close, findGlobalAttributeIgnoreCase, getBoundingBox, getDataVariable, getDataVariables, getDescription, getEndDate, getGlobalAttributes, getLocation, getLocationURI, getNetcdfFile, getStartDate, getTitle, removeDataVariable, setDescription, setLocationURI, setTitle
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getScientificDataType
close, findGlobalAttributeIgnoreCase, getBoundingBox, getDataVariable, getDataVariables, getDescription, getEndDate, getGlobalAttributes, getLocationURI, getNetcdfFile, getStartDate, getTitle
protected DODSNetcdfFile dodsFile
protected Variable latVar
protected Variable lonVar
protected Variable altVar
protected Variable timeVar
protected StructureDS innerSequence
protected StructureDS outerSequence
protected boolean isProfile
protected boolean fatal
public DapperDataset()
public DapperDataset(NetcdfDataset ds) throws java.io.IOException
java.io.IOException
public static boolean isValidFile(NetcdfFile ds)
public static PointObsDataset factory(NetcdfDataset ds) throws java.io.IOException
java.io.IOException
public boolean isMine(NetcdfDataset ds)
TypedDatasetFactoryIF
isMine
in interface TypedDatasetFactoryIF
ds
- examine this NetcdfDataset to see if it belongs to this class.public TypedDataset open(NetcdfDataset ncd, CancelTask task, java.lang.StringBuilder errlog) throws java.io.IOException
TypedDatasetFactoryIF
open
in interface TypedDatasetFactoryIF
ncd
- already opened NetcdfDataset.task
- use may cancelerrlog
- place errors herejava.io.IOException
- on errorprotected void setTimeUnits()
setTimeUnits
in class PointObsDatasetImpl
protected void setStartDate()
setStartDate
in class TypedDatasetImpl
protected void setEndDate()
setEndDate
in class TypedDatasetImpl
protected void setBoundingBox()
setBoundingBox
in class TypedDatasetImpl
public int getDataCount()
PointCollection
getDataCount
in interface PointCollection
public java.util.List getData(CancelTask cancel) throws java.io.IOException
PointCollection
getData
in interface PointCollection
cancel
- allow user to cancel. Implementors should return ASAP.java.io.IOException
- on io erroras a (possibly) more efficient alternative
public java.util.List getData(LatLonRect boundingBox, CancelTask cancel) throws java.io.IOException
PointCollection
getData
in interface PointCollection
boundingBox
- restrict data to this bounding noxcancel
- allow user to cancel. Implementors should return ASAP.java.io.IOException
- on io erroras a (possibly) more efficient alternative
public java.util.List getData(LatLonRect boundingBox, java.util.Date start, java.util.Date end, CancelTask cancel) throws java.io.IOException
PointCollection
getData
in interface PointCollection
boundingBox
- restrict data to this bounding noxstart
- restrict data to after this timeend
- restrict data to before this timecancel
- allow user to cancel. Implementors should return ASAP.java.io.IOException
- on io erroras a (possibly) more efficient alternative
public void readStations(java.util.List stations) throws java.io.IOException
java.io.IOException
public java.util.List readStationData(Station s, CancelTask cancel) throws java.io.IOException
java.io.IOException
public DataIterator getDataIterator(int bufferSize) throws java.io.IOException
PointCollection
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 }
getDataIterator
in interface PointCollection
bufferSize
- if > 0, the internal buffer size, else use the default. Typically 100k - 1M for best results.java.io.IOException
- on io errorpublic static void main(java.lang.String[] args) throws java.io.IOException
java.io.IOException