Class CachingDataStoreGranuleCatalog
Object
GranuleCatalog
CachingDataStoreGranuleCatalog
This class simply builds an SRTREE spatial index in memory for fast indexed geometric queries.
Since the ImageMosaicReader heavily uses spatial queries to find out which are the involved tiles during
mosaic creation, it is better to do some caching and keep the index in memory as much as possible, hence we came up
with this index.
- Since:
- 2.5
- Author:
- Simone Giannecchini, S.A.S., Stefan Alfons Krueger (alfonx), Wikisquare.de : Support for jar:file:foo.jar/bar.properties URLs
-
Field Summary
Fields inherited from class GranuleCatalog
configurations, hints, multiScaleROIProvider -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddGranule(String typeName, SimpleFeature granule, Transaction transaction) voidaddGranules(String typeName, Collection<SimpleFeature> granules, Transaction transaction) voidcomputeAggregateFunction(Query q, FeatureCalc function) voidcreateType(String identification, String typeSpec) voidcreateType(String namespace, String typeName, String typeSpec) voidcreateType(SimpleFeatureType featureType) voiddispose()voiddrop()Drop the underlying catalog, all the individual granule indexes.getBounds(String typeName, Transaction t) protected CatalogConfigurationBeansReturns the list of footprint files for the given granuleprotected GranuleDescriptorgetGranuleDescriptor(CatalogConfigurationBean configuration, SimpleFeature sf) voidgetGranuleDescriptors(Query q, GranuleCatalogVisitor visitor) protected MultiLevelROIReturns the footprint for the given granule.getGranules(Query q) getGranules(Query q, Transaction t) intgetHints()protected StringgetQueryCapabilities(String typeName) String[]protected QuerymergeHints(Query q) Merges the wrapper hints with the query ones, making sure not to overwrite the query onesprotected booleanpolygonOverlap(Geometry g1, Geometry g2) intremoveGranules(Query query) intremoveGranules(Query query, Transaction transaction) voidremoveType(String typeName) voidsetMultiScaleROIProvider(MultiLevelROIProvider footprintProvider)
-
Constructor Details
-
CachingDataStoreGranuleCatalog
-
-
Method Details
-
getGranules
- Throws:
IOException
-
getGranules
- Throws:
IOException
-
getGranuleDescriptors
- Throws:
IOException
-
getGranuleDescriptor
protected GranuleDescriptor getGranuleDescriptor(CatalogConfigurationBean configuration, SimpleFeature sf) -
polygonOverlap
-
removeGranules
-
removeGranules
-
addGranules
public void addGranules(String typeName, Collection<SimpleFeature> granules, Transaction transaction) throws IOException - Specified by:
addGranulesin classGranuleCatalog- Throws:
IOException
-
computeAggregateFunction
- Specified by:
computeAggregateFunctionin classGranuleCatalog- Throws:
IOException
-
createType
public void createType(String namespace, String typeName, String typeSpec) throws IOException, SchemaException - Specified by:
createTypein classGranuleCatalog- Throws:
IOExceptionSchemaException
-
createType
- Specified by:
createTypein classGranuleCatalog- Throws:
IOException
-
createType
- Specified by:
createTypein classGranuleCatalog- Throws:
SchemaExceptionIOException
-
dispose
public void dispose()- Specified by:
disposein classGranuleCatalog
-
getBounds
- Specified by:
getBoundsin classGranuleCatalog
-
getGranulesCount
- Specified by:
getGranulesCountin classGranuleCatalog- Throws:
IOException
-
getQueryCapabilities
- Specified by:
getQueryCapabilitiesin classGranuleCatalog
-
getType
- Specified by:
getTypein classGranuleCatalog- Throws:
IOException
-
removeType
- Specified by:
removeTypein classGranuleCatalog- Throws:
IOException
-
getTypeNames
- Specified by:
getTypeNamesin classGranuleCatalog
-
drop
Description copied from class:GranuleCatalogDrop the underlying catalog, all the individual granule indexes.This is usuallu done when deleting an ImageMosaic storre.
- Specified by:
dropin classGranuleCatalog- Throws:
IOException- in case something bad happens
-
getParentLocation
- Specified by:
getParentLocationin classGranuleCatalog
-
addGranule
public void addGranule(String typeName, SimpleFeature granule, Transaction transaction) throws IOException - Overrides:
addGranulein classGranuleCatalog- Throws:
IOException
-
getBounds
- Overrides:
getBoundsin classGranuleCatalog
-
mergeHints
Description copied from class:GranuleCatalogMerges the wrapper hints with the query ones, making sure not to overwrite the query ones- Overrides:
mergeHintsin classGranuleCatalog
-
setMultiScaleROIProvider
- Overrides:
setMultiScaleROIProviderin classGranuleCatalog
-
getGranuleFootprint
Description copied from class:GranuleCatalogReturns the footprint for the given granule. Mind, when applying insets we might have the case of the geometry being empty (negative buffer eroded it fully), in that case the granule must not be loaded- Overrides:
getGranuleFootprintin classGranuleCatalog
-
getFootprintFiles
Description copied from class:GranuleCatalogReturns the list of footprint files for the given granule- Overrides:
getFootprintFilesin classGranuleCatalog- Throws:
IOException
-
getConfigurations
- Overrides:
getConfigurationsin classGranuleCatalog
-
getHints
- Overrides:
getHintsin classGranuleCatalog
-
getAdaptee
-