Package ucar.unidata.data.gis
Class JsonDataSource
java.lang.Object
ucar.unidata.collab.SharableImpl
ucar.unidata.data.DataSourceImpl
ucar.unidata.data.FilesDataSource
ucar.unidata.data.gis.JsonDataSource
- All Implemented Interfaces:
Sharable,DataSource,DataSourceFactory,XmlPersistable
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final Stringxml attributestatic final Stringxml attributeprotected ListA local cacheprotected ListThe urlsprotected ListThe colorMapstatic final StringFor ximg filesstatic final PatternFileFilterFor ximg filesprotected HashMapThe jsonInfostatic final StringFor ximg filesstatic final Stringkml tag idstatic final Stringkml tag idstatic final Stringkml tag idstatic final Stringxml tagstatic final Stringxml tagstatic final Stringxml tagstatic final Stringxml tagstatic final Stringkml tag idstatic final Stringkml tag idstatic final Stringkml tag idstatic final Stringkml tagstatic final Stringkml tag idstatic final Stringxml tagstatic final Stringkml tag idstatic final Stringxml tagprotected ListThe timeListprotected Listboolean_more_Fields inherited from class ucar.unidata.data.FilesDataSource
adapters, oldSourceFromBundles, sourcesFields inherited from class ucar.unidata.data.DataSourceImpl
changeDataPathsCbx, dataCacheKey, dataChoices, geoSelectionPanel, haveBeenUnPersisted, okToContinue, PARAM_SHOW_HIDE, PARAM_SHOW_NO, PARAM_SHOW_YESFields 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_TIMESTRIDE, PROP_TITLE -
Constructor Summary
ConstructorsConstructorDescriptionDummy constructor so this object can get unpersisted.JsonDataSource(DataSourceDescriptor descriptor, String probSevereUrl, Hashtable properties) Create a KmlDataSource from the specification given.JsonDataSource(DataSourceDescriptor descriptor, List newSources, Hashtable properties) Create a KmlDataSource from the specification given. -
Method Summary
Modifier and TypeMethodDescriptionstatic StringcreateKml(GeoLocationInfo bounds, String imageFileName) Create some kml from the given bounds and image filestatic voidcreateLatLonBox(GeoLocationInfo bounds, StringBuffer sb) Utility to create a latlonbox kmlprotected voidCreate the data choices associated with this source.protected ListCreate a list of times for this data source.voidexpandIfNeeded(CompositeDataChoice parent) Expand the data choice if its a networklinkTry to merge children up into parents of only one childgetAllDateTimes(DataChoice dataChoice) Get all the times for the given DataChoicegetAllTimesForTimeDriver(DataChoice dataChoice, DataSelection selection, List<DateTime> timeDriverTimes) Get the list of times to compare to the time driver timesprotected DatagetDataInner(DataChoice dataChoice, DataCategory category, DataSelection dataSelection, Hashtable requestProperties) Actually get the data identified by the given DataChoce.protected InputStreamgetInputStream(String path) Create the input stream.intgetTimeIndexWithBounds(DateTime dateTime, List<DateTime> allTimes, ucar.nc2.ft2.coverage.CoverageCoordAxis1D cca) voidinit KmlDataSource from the specification given.voidInitialize after we have been unpersistedprotected voidload probsevere color mapjsonObjToString(org.json.simple.JSONObject jsonObj) build the json object stringstatic voidtest mainprotected voidGet the kml root elementprotected voidparseJSONHead(String jsonUrl) Get the time list informationparseJSONModel(org.json.simple.JSONArray coords, org.json.simple.JSONObject probJSON) parsing the json object coordinate and propertiesprocessXml(Element root) Get color map from xml fileprotected byte[]Utility to read the bytes from the file or urlprotected DocumentreadColorMapXml(String href) Get color map from xml fileprotected ImageRead the imagevoidreloadprotected booleanshouldCache(Data data) See if this DataSource should cache or notstatic voidwriteToFile(String kmlFilename, GeoLocationInfo bounds, String imageFileName) write image as a kml to fileMethods inherited from class ucar.unidata.data.FilesDataSource
doRemove, equals, getDataFileExtension, getDataPaths, getFilePath, getFullDescription, getInputStreams, getLocationsForPolling, getPartialDescription, getSource, getSources, haveSources, initAfterCreation, initWithPollingInfo, isFileBased, newFilesFromPolling, processDataFilename, propertiesChanged, reloadData, saveDataToLocalDisk, setNewFiles, setSource, setSources, sourcesChanged, updateStateMethods inherited from class ucar.unidata.data.DataSourceImpl
addActions, addDataChangeListener, addDataChoice, addPropertiesTabs, addReloadTab, applyFieldMask, applyProperties, beginWritingDataToLocalDisk, canAddCurrentName, canCacheDataToDisk, canChangeData, canDoAllLevels, canDoFieldMask, canDoGeoSelection, canDoGeoSelectionMap, canDoGeoSelectionStride, canPoll, canSaveDataToLocalDisk, canShowParameter, checkForInitAfterUnPersistence, clearCachedData, clearFileCache, clearTimes, convertSourceFile, convertToFilesIfDirectory, createAutoDisplay, createCacheKey, createElement, decrOutstandingGetDataCalls, doDirectory, doMakeGeoSelectionPanel, doMakeGeoSelectionPanel, doMakeGeoSelectionPanel, doMakeGeoSubsetPropertiesComponent, endWritingDataToLocalDisk, findDataChoice, findDataChoices, flushCache, getAbsoluteDateTimes, getActions, getAlias, getAllLevels, getAllLevels, getCache, getCache, getCacheClearDelay, getCacheDataToDisk, getCompositeDataChoices, getData, getData, getDataCachePath, getDataChangeListeners, getDataChoices, getDataContext, getDataInner, getDataIsEditable, getDataPrefix, getDataSelection, getDataSelectionComponents, getDataSource, getDateTimes, getDateTimeSelection, getDefaultSave, getDescription, getDescriptor, getErrorMessage, getEverChangedName, getExtraGeoSelectionComponent, getExtraTimesComponent, getFileFilterForPolling, getid, getIdv, getInError, getLocalDirectory, getLocationForPolling, getMostRecentFiles, getName, getNameForDataSource, getNeedToShowErrorToUser, getNextId, getOutstandingGetDataCalls, getPassword, getPathsThatCanBeRelative, getPollingInfo, getProperties, getPropertiesComponents, 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, initDataSelectionComponents, initFromXml, isPolling, loadFieldMask, loadFieldMask, loadLatestFile, logException, logException, makeDerivedDataChoices, 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, setDefaultSave, 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, writeFieldMaskFileMethods inherited from class ucar.unidata.collab.SharableImpl
applySharableProperties, doShare, doShare, doShareExternal, doShareInternal, getReceiveShareTime, getSharablePropertiesComponent, getShareGroup, getSharing, getUniqueId, initSharable, receiveShareData, removeSharable, setReceiveShareTime, setShareGroup, setSharing, setUniqueId, showSharableDialogMethods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface ucar.unidata.data.DataSource
getUniqueId
-
Field Details
-
FILTER_KML
For ximg files -
EXT_KML
For ximg files- See Also:
-
SUFFIX_KML
For ximg files- See Also:
-
ATTR_PARENT
xml attribute- See Also:
-
ATTR_NAME
xml attribute- See Also:
-
TAG_GROUNDOVERLAY
kml tag id- See Also:
-
TAG_PHOTOOVERLAY
kml tag- See Also:
-
TAG_URL
xml tag- See Also:
-
TAG_HREF
xml tag- See Also:
-
TAG_LINK
xml tag- See Also:
-
TAG_LINESTRING
xml tag- See Also:
-
TAG_SCHEMA
xml tag- See Also:
-
TAG_NETWORKLINK
kml tag id- See Also:
-
TAG_MULTIGEOMETRY
kml tag id- See Also:
-
TAG_DOCUMENT
kml tag id- See Also:
-
TAG_FOLDER
kml tag id- See Also:
-
TAG_KML
xml tag- See Also:
-
TAG_PLACEMARK
kml tag id- See Also:
-
TAG_NAME
kml tag id- See Also:
-
TAG_STYLEURL
kml tag id- See Also:
-
cachedData
A local cache -
cachedUrls
The urls -
jsonInfo
The jsonInfo -
colorMap
The colorMap -
timeList
The timeList -
times
-
useDriverTime
public boolean useDriverTime_more_
-
-
Constructor Details
-
JsonDataSource
public JsonDataSource()Dummy constructor so this object can get unpersisted. -
JsonDataSource
public JsonDataSource(DataSourceDescriptor descriptor, List newSources, Hashtable properties) throws VisADException, Exception Create a KmlDataSource from the specification given.- Parameters:
descriptor- descriptor for the data sourcenewSources- Where the json came fromproperties- extra properties- Throws:
VisADException- some problem occurred creating dataException
-
JsonDataSource
public JsonDataSource(DataSourceDescriptor descriptor, String probSevereUrl, Hashtable properties) throws VisADException, Exception Create a KmlDataSource from the specification given.- Parameters:
descriptor- descriptor for the data sourceprobSevereUrl- Where the kml came fromproperties- extra properties- Throws:
VisADException- some problem occurred creating dataException
-
-
Method Details
-
init
init KmlDataSource from the specification given.- Parameters:
probSevereUrl- Where the json came from- Throws:
VisADException- some problem occurred creating dataException
-
getAllTimesForTimeDriver
public List<DateTime> getAllTimesForTimeDriver(DataChoice dataChoice, DataSelection selection, List<DateTime> timeDriverTimes) Get the list of times to compare to the time driver times- Overrides:
getAllTimesForTimeDriverin classDataSourceImpl- Parameters:
dataChoice- the data choiceselection- the selection (for things like level)timeDriverTimes- the time driver times (use range for server query)- Returns:
- the list of times for comparison
-
writeToFile
public static void writeToFile(String kmlFilename, GeoLocationInfo bounds, String imageFileName) throws FileNotFoundException, IOException write image as a kml to file- Parameters:
kmlFilename- kml filenamebounds- _image boundsimageFileName- image filename- Throws:
FileNotFoundException- On badnessIOException- On badness
-
createKml
public static String createKml(GeoLocationInfo bounds, String imageFileName) throws FileNotFoundException, IOException Create some kml from the given bounds and image file- Parameters:
bounds- boundsimageFileName- image- Returns:
- kml
- Throws:
FileNotFoundException- On badnessIOException- On badness
-
createLatLonBox
Utility to create a latlonbox kml- Parameters:
bounds- boundssb- buffer to add to
-
main
test main- Parameters:
args- cmd line args
-
initPolygonColorMap
protected void initPolygonColorMap()load probsevere color map -
processXml
Get color map from xml file -
readColorMapXml
Get color map from xml file- Throws:
Exception
-
reloadData
public void reloadData()reload- Specified by:
reloadDatain interfaceDataSource- Overrides:
reloadDatain classFilesDataSource
-
initAfterUnpersistence
public void initAfterUnpersistence()Initialize after we have been unpersisted- Specified by:
initAfterUnpersistencein interfaceDataSource- Overrides:
initAfterUnpersistencein classFilesDataSource
-
readImage
Read the image- Parameters:
url- image urlbaseUrl- Where the kml came from_- Returns:
- The image
-
readBytes
Utility to read the bytes from the file or url- Parameters:
path- file or url- Returns:
- bytes
- Throws:
Exception- On badness
-
getInputStream
Create the input stream. Handle the case when it is a zip file- Parameters:
path- file or url- Returns:
- input stream to kml file
- Throws:
Exception- On badness
-
parseJSON
Get the kml root element- Parameters:
jsonUrl- json url- Throws:
Exception- On badness
-
parseJSONHead
Get the time list information- Parameters:
jsonUrl- json url- Throws:
Exception- On badness
-
parseJSONModel
public HashMap parseJSONModel(org.json.simple.JSONArray coords, org.json.simple.JSONObject probJSON) parsing the json object coordinate and properties -
jsonObjToString
build the json object string -
getAllDateTimes
Get all the times for the given DataChoice- Specified by:
getAllDateTimesin interfaceDataSource- Overrides:
getAllDateTimesin classDataSourceImpl- Parameters:
dataChoice- DataChoice in question- Returns:
- List of all times for that choice
-
getAllDateTimes
Try to merge children up into parents of only one child- Specified by:
getAllDateTimesin interfaceDataSource- Overrides:
getAllDateTimesin classDataSourceImpl- Returns:
- array of DateTimes (may be null)
-
doMakeDataChoices
protected void doMakeDataChoices()Create the data choices associated with this source.- Overrides:
doMakeDataChoicesin classDataSourceImpl
-
expandIfNeeded
Expand the data choice if its a networklink- Specified by:
expandIfNeededin interfaceDataSource- Overrides:
expandIfNeededin classDataSourceImpl- Parameters:
parent- data choice
-
getDataInner
protected Data getDataInner(DataChoice dataChoice, DataCategory category, DataSelection dataSelection, Hashtable requestProperties) throws VisADException, RemoteException Actually get the data identified by the given DataChoce. The default is to call the getDataInner that does not take the requestProperties. This allows other, non unidata.data DataSource-s (that follow the old API) to work.- Overrides:
getDataInnerin classDataSourceImpl- Parameters:
dataChoice- The data choice that identifies the requested data.category- The data category of the request.dataSelection- Identifies any subsetting of the data.requestProperties- Hashtable that holds any detailed request properties.- Returns:
- The visad.Data object
- Throws:
RemoteException- Java RMI problemVisADException- VisAD problem
-
getTimeIndexWithBounds
-
shouldCache
See if this DataSource should cache or not- Overrides:
shouldCachein classDataSourceImpl- Parameters:
data- Data to cache- Returns:
- false
-
doMakeDateTimes
Create a list of times for this data source. Since shapefiles don't have any times, return an empty List.- Overrides:
doMakeDateTimesin classDataSourceImpl- Returns:
- an empty List
-