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 TypeMethodDescriptionvoid
addGranule
(String typeName, SimpleFeature granule, Transaction transaction) void
addGranules
(String typeName, Collection<SimpleFeature> granules, Transaction transaction) void
computeAggregateFunction
(Query q, FeatureCalc function) void
createType
(String identification, String typeSpec) void
createType
(String namespace, String typeName, String typeSpec) void
createType
(SimpleFeatureType featureType) void
dispose()
void
drop()
Drop the underlying catalog, all the individual granule indexes.getBounds
(String typeName, Transaction t) protected CatalogConfigurationBeans
Returns the list of footprint files for the given granuleprotected GranuleDescriptor
getGranuleDescriptor
(CatalogConfigurationBean configuration, SimpleFeature sf) void
getGranuleDescriptors
(Query q, GranuleCatalogVisitor visitor) protected MultiLevelROI
Returns the footprint for the given granule.getGranules
(Query q) getGranules
(Query q, Transaction t) int
getHints()
protected String
getQueryCapabilities
(String typeName) String[]
protected Query
mergeHints
(Query q) Merges the wrapper hints with the query ones, making sure not to overwrite the query onesprotected boolean
polygonOverlap
(Geometry g1, Geometry g2) int
removeGranules
(Query query) int
removeGranules
(Query query, Transaction transaction) void
removeType
(String typeName) void
setMultiScaleROIProvider
(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:
addGranules
in classGranuleCatalog
- Throws:
IOException
-
computeAggregateFunction
- Specified by:
computeAggregateFunction
in classGranuleCatalog
- Throws:
IOException
-
createType
public void createType(String namespace, String typeName, String typeSpec) throws IOException, SchemaException - Specified by:
createType
in classGranuleCatalog
- Throws:
IOException
SchemaException
-
createType
- Specified by:
createType
in classGranuleCatalog
- Throws:
IOException
-
createType
- Specified by:
createType
in classGranuleCatalog
- Throws:
SchemaException
IOException
-
dispose
public void dispose()- Specified by:
dispose
in classGranuleCatalog
-
getBounds
- Specified by:
getBounds
in classGranuleCatalog
-
getGranulesCount
- Specified by:
getGranulesCount
in classGranuleCatalog
- Throws:
IOException
-
getQueryCapabilities
- Specified by:
getQueryCapabilities
in classGranuleCatalog
-
getType
- Specified by:
getType
in classGranuleCatalog
- Throws:
IOException
-
removeType
- Specified by:
removeType
in classGranuleCatalog
- Throws:
IOException
-
getTypeNames
- Specified by:
getTypeNames
in classGranuleCatalog
-
drop
Description copied from class:GranuleCatalog
Drop the underlying catalog, all the individual granule indexes.This is usuallu done when deleting an ImageMosaic storre.
- Specified by:
drop
in classGranuleCatalog
- Throws:
IOException
- in case something bad happens
-
getParentLocation
- Specified by:
getParentLocation
in classGranuleCatalog
-
addGranule
public void addGranule(String typeName, SimpleFeature granule, Transaction transaction) throws IOException - Overrides:
addGranule
in classGranuleCatalog
- Throws:
IOException
-
getBounds
- Overrides:
getBounds
in classGranuleCatalog
-
mergeHints
Description copied from class:GranuleCatalog
Merges the wrapper hints with the query ones, making sure not to overwrite the query ones- Overrides:
mergeHints
in classGranuleCatalog
-
setMultiScaleROIProvider
- Overrides:
setMultiScaleROIProvider
in classGranuleCatalog
-
getGranuleFootprint
Description copied from class:GranuleCatalog
Returns 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:
getGranuleFootprint
in classGranuleCatalog
-
getFootprintFiles
Description copied from class:GranuleCatalog
Returns the list of footprint files for the given granule- Overrides:
getFootprintFiles
in classGranuleCatalog
- Throws:
IOException
-
getConfigurations
- Overrides:
getConfigurations
in classGranuleCatalog
-
getHints
- Overrides:
getHints
in classGranuleCatalog
-
getAdaptee
-