ucar.unidata.data.point
Class PointDataSource

java.lang.Object
  extended by ucar.unidata.collab.SharableImpl
      extended by ucar.unidata.data.DataSourceImpl
          extended by ucar.unidata.data.FilesDataSource
              extended by ucar.unidata.data.point.PointDataSource
All Implemented Interfaces:
Sharable, DataSource, DataSourceFactory, XmlPersistable
Direct Known Subclasses:
AddePointDataSource, CDMProfileDataSource, DbPointDataSource, DbTrajectoryDataSource, NetcdfPointDataSource, TextPointDataSource, WaterMLDataSource

public abstract class PointDataSource
extends FilesDataSource

A data source for point data

Version:
$Revision: 1.33 $ $Date: 2007/06/21 14:44:59 $
Author:
Don Murray

Nested Class Summary
static class PointDataSource.PlotModelSelectionComponent
          Class PlotModelSelectionComponent holds plot (layout) model.
 
Field Summary
protected  String fieldsDescription
          A cached version of the html description of the fields.
static String POINT_DATA
          Identifier for point data
static String PROP_FIRSTGUESS
          property id for the first guess field
static String PROP_GRID_GAIN
          dataselection property for grid gain
static String PROP_GRID_NUMPASSES
          dataselection property for grid passes
static String PROP_GRID_PARAM
          This gets set on the data choice when we are creating a point ob field intended to be used for making a grid
static String PROP_GRID_SEARCH_RADIUS
          dataselection property for grid search radius
static String PROP_GRID_UNIT
          dataselection property for grid y spacing
static String PROP_GRID_X
          dataselection property for grid x spacing
static String PROP_GRID_Y
          dataselection property for grid x spacing
static String PROP_STATIONMODELNAME
          station model name property
static String STATION_DATA
          Identifier for station data
static String STATION_PLOT
          Identifier for a station plot
 
Fields inherited from class ucar.unidata.data.FilesDataSource
adapters, oldSourceFromBundles, sources
 
Fields inherited from class ucar.unidata.data.DataSourceImpl
changeDataPathsCbx, dataCacheKey, dataChoices, geoSelectionPanel, haveBeenUnPersisted, okToContinue, PARAM_SHOW_HIDE, PARAM_SHOW_NO, PARAM_SHOW_YES
 
Fields inherited from interface ucar.unidata.data.DataSource
DATAPATH_DATE_FORMAT, DATAPATH_DATE_PATTERN, MOST_RECENT, ordinalNames, PROP_AUTOCREATEDISPLAY, PROP_BASEDIRECTORY, PROP_CACHEABLE, PROP_DATACHOICENAME, PROP_DISPLAYPROPERTIES, PROP_DOCUMENTLINKS, PROP_FILEPATTERN, PROP_GEOLOCATION, PROP_ICON, PROP_NAME, PROP_POLLINFO, PROP_RESOLVERURL, PROP_SERVICE_HTTP, PROP_SUBPROPERTIES, PROP_TIMELABELS, PROP_TITLE
 
Constructor Summary
PointDataSource()
          Default constructor
PointDataSource(DataSourceDescriptor descriptor, List sources, String name, Hashtable properties)
          Create a new PointDataSource
PointDataSource(DataSourceDescriptor descriptor, String source, String description, Hashtable properties)
          Create a PointDataSource
 
Method Summary
 void addPropertiesTabs(JTabbedPane tabbedPane)
          Add the Grid Fields component to the properties tab
 boolean applyProperties()
          apply the properties
 boolean canAddCurrentName(DataChoice dataChoice)
          not sure what this does
protected  boolean canCreateGrid(RealType type)
          Is it ok to create a grid field for the parameter with the given real type
 void doMakeDataChoices()
          Make the DataChoices for this DataSource.
 void doRemove()
          Gets called by the DataManager when this DataSource has been removed.
 double getBinRoundTo()
          Get the BinRoundTo property.
 double getBinWidth()
          Get the BinWidth property.
protected  Data getDataInner(DataChoice dataChoice, DataCategory category, DataSelection dataSelection, Hashtable requestProperties)
          Get the data represented by this class.
 String getDataName()
          Get the name of this data.
protected  List getDefaultLevels()
          Get a list of selected levels.
protected  DataChoice getDescriptionDataChoice()
          Get the data choice to use for the description
 String getFullDescription()
          Override the base class method to add on the listing of the param names in the point tuple.
 float getGridGain()
          Get the grid gain property.
 float getGridSearchRadius()
          Get the search radius property
 String getGridUnit()
          Get the GridUnit property.
 float getGridX()
          Get the GridX property.
 float getGridY()
          Get the GridY property.
 boolean getMakeGridFields()
          Get the MakeGridFields property.
 int getNumGridPasses()
          Get the NumGridPasses property.
protected  List getPointCategories()
          Get the default categories for data from PointDataSource-s
 void getPropertiesComponents(List comps)
          add to properties
protected  FieldImpl getSample(DataChoice dataChoice)
          Read a sample of the data.
protected  String getSource(DataChoice dataChoice)
          Get the file or url source path from the given data choice.
protected  void init()
          Initialize this object
protected  void initDataSelectionComponents(List<DataSelectionComponent> components, DataChoice dataChoice)
          Add the GridParameters for the field selector
protected  ucar.unidata.data.point.PointDataSource.GridParameters initGridParameters()
          Allow subclasses to initialize a GridParameters
protected  void makeDerivedDataChoices(List dataChoices)
          Override this method so we don't make any derived data choices from the grid fields
protected  void makeFieldDescription(FieldImpl fi)
          Create e field description from the field
protected abstract  FieldImpl makeObs(DataChoice dataChoice, DataSelection subset, ucar.unidata.geoloc.LatLonRect bbox)
          Make the observation data
 void reloadData()
          Reload the data
 void setBinRoundTo(double value)
          Set the BinRoundTo property.
 void setBinWidth(double value)
          Set the BinWidth property.
 void setGridGain(float value)
          Set the grid gain property.
 void setGridSearchRadius(float value)
          Set the grid search radius
 void setGridUnit(String value)
          Set the GridY property.
 void setGridX(float value)
          Set the GridX property.
 void setGridY(float value)
          Set the GridY property.
 void setMakeGridFields(boolean value)
          Set the MakeGridFields property.
 void setNumGridPasses(int value)
          Set the NumGridPasses property.
 void setRoundToFromComboBox(TwoFacedObject tfo)
          Set the property
 void setSource(String value)
          Set the source property (filename or URL).
 void setWidthFromComboBox(TwoFacedObject tfo)
          set the property
protected  boolean shouldCache(DataChoice dataChoice, Data data)
          See if this DataSource should cache or not
 
Methods inherited from class ucar.unidata.data.FilesDataSource
equals, getDataFileExtension, getDataPaths, getFilePath, getInputStreams, getLocationsForPolling, getPartialDescription, getSource, getSources, haveSources, initAfterCreation, initAfterUnpersistence, initWithPollingInfo, isFileBased, newFilesFromPolling, processDataFilename, propertiesChanged, reloadData, saveDataToLocalDisk, setNewFiles, setSources, sourcesChanged, updateState
 
Methods inherited from class ucar.unidata.data.DataSourceImpl
addActions, addDataChangeListener, addDataChoice, addReloadTab, applyFieldMask, beginWritingDataToLocalDisk, canCacheDataToDisk, canChangeData, canDoFieldMask, canDoGeoSelection, canDoGeoSelectionMap, canDoGeoSelectionStride, canPoll, canSaveDataToLocalDisk, canShowParameter, checkForInitAfterUnPersistence, clearCachedData, clearFileCache, clearTimes, convertSourceFile, convertToFilesIfDirectory, createAutoDisplay, createCacheKey, createElement, decrOutstandingGetDataCalls, doDirectory, doMakeDateTimes, doMakeGeoSelectionPanel, doMakeGeoSelectionPanel, doMakeGeoSelectionPanel, doMakeGeoSubsetPropertiesComponent, endWritingDataToLocalDisk, expandIfNeeded, findDataChoice, findDataChoices, flushCache, getAbsoluteDateTimes, getActions, getAlias, getAllDateTimes, getAllDateTimes, getAllLevels, getAllLevels, getAllTimesForTimeDriver, getCache, getCache, getCacheClearDelay, getCacheDataToDisk, getCompositeDataChoices, getData, getData, getDataCachePath, getDataChangeListeners, getDataChoices, getDataContext, getDataInner, getDataIsEditable, getDataPrefix, getDataSelection, getDataSelectionComponents, getDataSource, getDateTimes, getDateTimeSelection, getDescription, getDescriptor, getErrorMessage, getEverChangedName, getExtraGeoSelectionComponent, getExtraTimesComponent, getFileFilterForPolling, getid, getIdv, getInError, getLocalDirectory, getLocationForPolling, getMostRecentFiles, getName, getNameForDataSource, getNeedToShowErrorToUser, getNextId, getOutstandingGetDataCalls, getPassword, getPathsThatCanBeRelative, getPollingInfo, getProperties, getPropertiesHeader, getProperty, getProperty, getProperty, getProperty, getProperty, getProperty, getProperty, getRelativePaths, getSampleDataProjection, getSaveDataFileLabel, getSelectedDateTimes, getSelectedDateTimes, getTimesFromDataSelection, getTmpPaths, getTypeName, getUserName, handlePropertiesAction, hasPollingInfo, holdsDateTimes, holdsIndices, identifiedBy, identifiedByName, incrOutstandingGetDataCalls, initAfter, initDataChoice, initFromXml, isPolling, loadFieldMask, loadFieldMask, loadLatestFile, logException, logException, makeSaveLocalActions, newFileFromPolling, notifyDataChange, putCache, putCache, reloadProperties, removeCache, removeDataChangeListener, removeDataChoice, removeProperty, replaceDataChoice, resetTmpState, saveDataToLocalDisk, saveDataToLocalDisk, selectTimesFromList, setAlias, setAskToUpdate, setCacheClearDelay, setCacheDataToDisk, setDataEditableStrings, setDataIsEditable, setDataIsRelative, setDataRelativeStrings, setDataSelection, setDateTimeSelection, setDescription, setDescriptor, setDirectory, setEverChangedName, setInError, setInError, setInError, setName, setObjectProperties, setObjectProperty, setPassword, setPollingInfo, setPollLocation, setProperties, setProperty, setProperty, setRelativePaths, setTemplateName, setTmpPaths, setUserName, shouldCache, showPasswordDialog, showPropertiesDialog, showPropertiesDialog, showPropertiesDialog, showWaitDialog, tick, toString, toStringTruncated, updateDetailsText, writeFieldMaskFile, writeFieldMaskFile
 
Methods inherited from class ucar.unidata.collab.SharableImpl
applySharableProperties, doShare, doShare, doShareExternal, doShareInternal, getReceiveShareTime, getSharablePropertiesComponent, getShareGroup, getSharing, getUniqueId, initSharable, receiveShareData, removeSharable, setReceiveShareTime, setShareGroup, setSharing, setUniqueId, showSharableDialog
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface ucar.unidata.data.DataSource
getUniqueId
 

Field Detail

PROP_FIRSTGUESS

public static final String PROP_FIRSTGUESS
property id for the first guess field

See Also:
Constant Field Values

PROP_GRID_X

public static final String PROP_GRID_X
dataselection property for grid x spacing

See Also:
Constant Field Values

PROP_GRID_Y

public static final String PROP_GRID_Y
dataselection property for grid x spacing

See Also:
Constant Field Values

PROP_GRID_UNIT

public static final String PROP_GRID_UNIT
dataselection property for grid y spacing

See Also:
Constant Field Values

PROP_GRID_NUMPASSES

public static final String PROP_GRID_NUMPASSES
dataselection property for grid passes

See Also:
Constant Field Values

PROP_GRID_GAIN

public static final String PROP_GRID_GAIN
dataselection property for grid gain

See Also:
Constant Field Values

PROP_GRID_SEARCH_RADIUS

public static final String PROP_GRID_SEARCH_RADIUS
dataselection property for grid search radius

See Also:
Constant Field Values

PROP_GRID_PARAM

public static final String PROP_GRID_PARAM
This gets set on the data choice when we are creating a point ob field intended to be used for making a grid

See Also:
Constant Field Values

PROP_STATIONMODELNAME

public static final String PROP_STATIONMODELNAME
station model name property

See Also:
Constant Field Values

STATION_DATA

public static final String STATION_DATA
Identifier for station data

See Also:
Constant Field Values

POINT_DATA

public static final String POINT_DATA
Identifier for point data

See Also:
Constant Field Values

STATION_PLOT

public static final String STATION_PLOT
Identifier for a station plot

See Also:
Constant Field Values

fieldsDescription

protected String fieldsDescription
A cached version of the html description of the fields.

Constructor Detail

PointDataSource

public PointDataSource()
                throws VisADException
Default constructor

Throws:
VisADException - problem creating VisAD data object

PointDataSource

public PointDataSource(DataSourceDescriptor descriptor,
                       String source,
                       String description,
                       Hashtable properties)
                throws VisADException
Create a PointDataSource

Parameters:
descriptor - descriptor for the DataSource
source - file location or URL
description - description of data
properties - extra properties
Throws:
VisADException

PointDataSource

public PointDataSource(DataSourceDescriptor descriptor,
                       List sources,
                       String name,
                       Hashtable properties)
                throws VisADException
Create a new PointDataSource

Parameters:
descriptor - data source descriptor
sources - List of sources of data (filename/URL)
name - The name to use
properties - extra properties for initialization
Throws:
VisADException - problem creating the data
Method Detail

init

protected void init()
             throws VisADException
Initialize this object

Throws:
VisADException - problem during initialization

initDataSelectionComponents

protected void initDataSelectionComponents(List<DataSelectionComponent> components,
                                           DataChoice dataChoice)
Add the GridParameters for the field selector

Overrides:
initDataSelectionComponents in class DataSourceImpl
Parameters:
components - comps
dataChoice - for this data

initGridParameters

protected ucar.unidata.data.point.PointDataSource.GridParameters initGridParameters()
Allow subclasses to initialize a GridParameters

Returns:
a GridParameters instance

canAddCurrentName

public boolean canAddCurrentName(DataChoice dataChoice)
not sure what this does

Specified by:
canAddCurrentName in interface DataSource
Overrides:
canAddCurrentName in class DataSourceImpl
Parameters:
dataChoice - datachoice
Returns:
false

getPropertiesComponents

public void getPropertiesComponents(List comps)
add to properties

Overrides:
getPropertiesComponents in class DataSourceImpl
Parameters:
comps - comps

addPropertiesTabs

public void addPropertiesTabs(JTabbedPane tabbedPane)
Add the Grid Fields component to the properties tab

Overrides:
addPropertiesTabs in class DataSourceImpl
Parameters:
tabbedPane - properties tab

setRoundToFromComboBox

public void setRoundToFromComboBox(TwoFacedObject tfo)
Set the property

Parameters:
tfo - value from combo box_

setWidthFromComboBox

public void setWidthFromComboBox(TwoFacedObject tfo)
set the property

Parameters:
tfo - value_

applyProperties

public boolean applyProperties()
apply the properties

Overrides:
applyProperties in class DataSourceImpl
Returns:
success

canCreateGrid

protected boolean canCreateGrid(RealType type)
Is it ok to create a grid field for the parameter with the given real type

Parameters:
type - the type
Returns:
ok to create grid

getSample

protected FieldImpl getSample(DataChoice dataChoice)
                       throws Exception
Read a sample of the data. e.g., just the first ob

Parameters:
dataChoice - The data choice
Returns:
The first ob
Throws:
Exception - On badness

reloadData

public void reloadData()
Reload the data

Specified by:
reloadData in interface DataSource
Overrides:
reloadData in class FilesDataSource

doMakeDataChoices

public void doMakeDataChoices()
Make the DataChoices for this DataSource.

Overrides:
doMakeDataChoices in class DataSourceImpl

getSource

protected String getSource(DataChoice dataChoice)
Get the file or url source path from the given data choice. The new version uses an Integer index into the sources list as the id of the data choice. However, this method does handle

Parameters:
dataChoice - The data choice
Returns:
The file or url the data choice refers to

getPointCategories

protected List getPointCategories()
Get the default categories for data from PointDataSource-s

Returns:
list of categories

getDataName

public String getDataName()
Get the name of this data.

Returns:
name of data

shouldCache

protected boolean shouldCache(DataChoice dataChoice,
                              Data data)
See if this DataSource should cache or not

Overrides:
shouldCache in class DataSourceImpl
Parameters:
dataChoice - The data choice we got this data from
data - Data to cache
Returns:
true

getDataInner

protected Data getDataInner(DataChoice dataChoice,
                            DataCategory category,
                            DataSelection dataSelection,
                            Hashtable requestProperties)
                     throws VisADException,
                            RemoteException
Get the data represented by this class. Calls makeObs, real work needs to be implemented there.

Overrides:
getDataInner in class DataSourceImpl
Parameters:
dataChoice - choice for data
category - category of data
dataSelection - subselection properties
requestProperties - additional selection properties (not used here)
Returns:
Data object representative of the choice
Throws:
RemoteException - Java RMI error
VisADException - VisAD Error

makeDerivedDataChoices

protected void makeDerivedDataChoices(List dataChoices)
Override this method so we don't make any derived data choices from the grid fields

Overrides:
makeDerivedDataChoices in class DataSourceImpl
Parameters:
dataChoices - base list of choices

getFullDescription

public String getFullDescription()
Override the base class method to add on the listing of the param names in the point tuple.

Specified by:
getFullDescription in interface DataSource
Overrides:
getFullDescription in class FilesDataSource
Returns:
full description of this datasource for help

getDescriptionDataChoice

protected DataChoice getDescriptionDataChoice()
Get the data choice to use for the description

Returns:
the data choice

makeFieldDescription

protected void makeFieldDescription(FieldImpl fi)
Create e field description from the field

Parameters:
fi - field to use

doRemove

public void doRemove()
Gets called by the DataManager when this DataSource has been removed.

Specified by:
doRemove in interface DataSource
Overrides:
doRemove in class FilesDataSource

makeObs

protected abstract FieldImpl makeObs(DataChoice dataChoice,
                                     DataSelection subset,
                                     ucar.unidata.geoloc.LatLonRect bbox)
                              throws Exception
Make the observation data

Parameters:
dataChoice - choice describing the data
subset - subselection (not used)
bbox - The bounding box
Returns:
FieldImpl of PointObs
Throws:
Exception - problem (VisAD or IO)

getDefaultLevels

protected List getDefaultLevels()
Get a list of selected levels. Subclasses should override if they have levels.

Returns:
list of levels (may be empty)

setSource

public void setSource(String value)
Set the source property (filename or URL). Used by persistence

Overrides:
setSource in class FilesDataSource
Parameters:
value - data source

setBinWidth

public void setBinWidth(double value)
Set the BinWidth property.

Parameters:
value - The new value for BinWidth

getBinWidth

public double getBinWidth()
Get the BinWidth property.

Returns:
The BinWidth

setBinRoundTo

public void setBinRoundTo(double value)
Set the BinRoundTo property.

Parameters:
value - The new value for BinRoundTo

getBinRoundTo

public double getBinRoundTo()
Get the BinRoundTo property.

Returns:
The BinRoundTo

setGridX

public void setGridX(float value)
Set the GridX property.

Parameters:
value - The new value for GridX

getGridX

public float getGridX()
Get the GridX property.

Returns:
The GridX

setGridY

public void setGridY(float value)
Set the GridY property.

Parameters:
value - The new value for GridY

getGridY

public float getGridY()
Get the GridY property.

Returns:
The GridY

setGridUnit

public void setGridUnit(String value)
Set the GridY property.

Parameters:
value - The new value for GridY

getGridUnit

public String getGridUnit()
Get the GridUnit property.

Returns:
The GridUnit property

setNumGridPasses

public void setNumGridPasses(int value)
Set the NumGridPasses property.

Parameters:
value - The new value for NumGridPasses

getNumGridPasses

public int getNumGridPasses()
Get the NumGridPasses property.

Returns:
The NumGridPasses

setGridGain

public void setGridGain(float value)
Set the grid gain property.

Parameters:
value - The new value for gain

getGridGain

public float getGridGain()
Get the grid gain property.

Returns:
The gain

setGridSearchRadius

public void setGridSearchRadius(float value)
Set the grid search radius

Parameters:
value - The new value for search radius

getGridSearchRadius

public float getGridSearchRadius()
Get the search radius property

Returns:
The search radius

setMakeGridFields

public void setMakeGridFields(boolean value)
Set the MakeGridFields property.

Parameters:
value - The new value for MakeGridFields

getMakeGridFields

public boolean getMakeGridFields()
Get the MakeGridFields property.

Returns:
The MakeGridFields