Class GranuleDescriptor


  • public class GranuleDescriptor
    extends Object
    A granuleDescriptor is a single piece of the mosaic, with its own overviews and everything.

    This class is responsible for caching the various size of the different levels of each single granuleDescriptor since computing them each time is expensive (opening a file, looking for a reader, parsing metadata,etc...).

    Right now we are making the assumption that a single granuleDescriptor is made a by a single file with embedded overviews, either explicit or intrinsic through wavelets like MrSID, ECW or JPEG2000.

    Since:
    2.5.5
    Author:
    Simone Giannecchini, GeoSolutions S.A.S., Stefan Alfons Krueger (alfonx), Wikisquare.de : Support for jar:file:foo.jar/bar.properties URLs
    • Field Detail

      • EXCLUDE_MOSAIC

        public static final Hints EXCLUDE_MOSAIC
        Hints to use for avoiding to search for the ImageMosaic format
      • READ_THRESHOLD

        public static final double READ_THRESHOLD
        Minimum portion of a single pixel the code is going to read before giving up on the read, this is used to avoid reading granules that touch the reading area without actually contributing anything to the output
    • Constructor Detail

      • GranuleDescriptor

        public GranuleDescriptor​(String granuleLocation,
                                 BoundingBox granuleBBox,
                                 AbstractGridFormat suggestedFormat,
                                 ImageReaderSpi suggestedSPI,
                                 ImageInputStreamSpi suggestedIsSPI,
                                 MultiLevelROI roiProvider)
      • GranuleDescriptor

        public GranuleDescriptor​(String granuleLocation,
                                 BoundingBox granuleBBox,
                                 AbstractGridFormat suggestedFormat,
                                 ImageReaderSpi suggestedSPI,
                                 ImageInputStreamSpi suggestedIsSPI,
                                 MultiLevelROI roiProvider,
                                 boolean heterogeneousGranules)
      • GranuleDescriptor

        public GranuleDescriptor​(String granuleLocation,
                                 BoundingBox granuleBBox,
                                 AbstractGridFormat suggestedFormat,
                                 ImageReaderSpi suggestedSPI,
                                 ImageInputStreamSpi suggestedIsSPI,
                                 MultiLevelROI roiProvider,
                                 int maxDecimationFactor)
      • GranuleDescriptor

        public GranuleDescriptor​(String granuleLocation,
                                 BoundingBox granuleBBox,
                                 AbstractGridFormat suggestedFormat,
                                 ImageReaderSpi suggestedSPI,
                                 ImageInputStreamSpi suggestedIsSPI,
                                 MultiLevelROI roiProvider,
                                 int maxDecimationFactor,
                                 boolean heterogeneousGranules)
      • GranuleDescriptor

        public GranuleDescriptor​(String granuleLocation,
                                 BoundingBox granuleBBox,
                                 AbstractGridFormat suggestedFormat,
                                 ImageReaderSpi suggestedSPI,
                                 ImageInputStreamSpi suggestedIsSPI,
                                 MultiLevelROI roiProvider,
                                 int maxDecimationFactor,
                                 boolean heterogeneousGranules,
                                 boolean handleArtifactsFiltering)
      • GranuleDescriptor

        public GranuleDescriptor​(String granuleLocation,
                                 BoundingBox granuleBBox,
                                 AbstractGridFormat suggestedFormat,
                                 ImageReaderSpi suggestedSPI,
                                 ImageInputStreamSpi suggestedIsSPI,
                                 MultiLevelROI roiProvider,
                                 int maxDecimationFactor,
                                 boolean heterogeneousGranules,
                                 boolean handleArtifactsFiltering,
                                 Hints hints)
      • GranuleDescriptor

        public GranuleDescriptor​(SimpleFeature feature,
                                 ImageReaderSpi suggestedSPI,
                                 AbstractGridFormat suggestedFormat,
                                 ImageInputStreamSpi suggestedIsSPI,
                                 PathType pathType,
                                 String locationAttribute,
                                 String parentLocation)
      • GranuleDescriptor

        public GranuleDescriptor​(SimpleFeature feature,
                                 AbstractGridFormat suggestedFormat,
                                 ImageReaderSpi suggestedSPI,
                                 ImageInputStreamSpi suggestedIsSPI,
                                 PathType pathType,
                                 String locationAttribute,
                                 String parentLocation,
                                 boolean heterogeneousGranules,
                                 Hints hints)
      • GranuleDescriptor

        public GranuleDescriptor​(SimpleFeature feature,
                                 AbstractGridFormat suggestedFormat,
                                 ImageReaderSpi suggestedSPI,
                                 ImageInputStreamSpi suggestedIsSPI,
                                 PathType pathType,
                                 String locationAttribute,
                                 String parentLocation,
                                 boolean heterogeneousGranules)
      • GranuleDescriptor

        public GranuleDescriptor​(SimpleFeature feature,
                                 ImageReaderSpi suggestedSPI,
                                 PathType pathType,
                                 AbstractGridFormat suggestedFormat,
                                 ImageInputStreamSpi suggestedIsSPI,
                                 String locationAttribute,
                                 String parentLocation,
                                 MultiLevelROI roiProvider)
        Constructor for the GranuleDescriptor assuming it doesn't belong to an heterogeneous granules set.
        Parameters:
        feature - a SimpleFeature referring to that granule
        suggestedSPI - the suggested ImageReaderSpi to be used to get a reader to handle this granule.
        pathType - A PathType identifying if the granule location should be resolved as a relative or an absolute path.
        locationAttribute - the attribute containing the granule location.
        parentLocation - the location of the parent of that granule.
      • GranuleDescriptor

        public GranuleDescriptor​(SimpleFeature feature,
                                 AbstractGridFormat suggestedFormat,
                                 ImageReaderSpi suggestedSPI,
                                 ImageInputStreamSpi suggestedIsSPI,
                                 PathType pathType,
                                 String locationAttribute,
                                 String parentLocation,
                                 MultiLevelROI roiProvider,
                                 boolean heterogeneousGranules,
                                 Hints hints)
        Constructor for the GranuleDescriptor
        Parameters:
        feature - a SimpleFeature referring to that granule
        suggestedSPI - the suggested ImageReaderSpi to be used to get a reader to handle this granule.
        pathType - A PathType identifying if the granule location should be resolved as a relative or an absolute path.
        locationAttribute - the attribute containing the granule location.
        parentLocation - the location of the parent of that granule.
        heterogeneousGranules - if true, this granule belongs to a set of heterogeneous granules
    • Method Detail

      • setGranuleEnvelope

        public void setGranuleEnvelope​(GeneralBounds granuleEnvelope)
      • init

        protected void init​(BoundingBox granuleBBOX,
                            URL granuleUrl,
                            AbstractGridFormat suggestedFormat,
                            ImageReaderSpi suggestedSPI,
                            ImageInputStreamSpi suggestedIsSPI,
                            MultiLevelROI roiProvider,
                            boolean heterogeneousGranules,
                            boolean handleArtifactsFiltering,
                            Hints hints)
      • getOverviewsController

        public OverviewsController getOverviewsController()
      • loadRaster

        public GranuleDescriptor.GranuleLoadingResult loadRaster​(ImageReadParam imageReadParameters,
                                                                 int index,
                                                                 ReferencedEnvelope cropBBox,
                                                                 MathTransform2D mosaicWorldToGrid,
                                                                 RasterLayerRequest request,
                                                                 Hints hints)
                                                          throws IOException
        Load a specified a raster as a portion of the granule describe by this GranuleDescriptor.
        Parameters:
        imageReadParameters - the ImageReadParam to use for reading.
        index - the index to use for the ImageReader.
        cropBBox - the bbox to use for cropping.
        mosaicWorldToGrid - the cropping grid to world transform.
        request - the incoming request to satisfy.
        hints - Hints to be used for creating this raster.
        Returns:
        a specified a raster as a portion of the granule describe by this GranuleDescriptor.
        Throws:
        IOException - in case an error occurs.
      • toString

        public String toString()
        Overrides:
        toString in class Object
      • getGranuleUrl

        public URL getGranuleUrl()
      • getFootprint

        public Geometry getFootprint()
      • getReader

        public AbstractGridCoverage2DReader getReader()
        Returns a new instance of the AbstractGridCoverage2DReader associated with this descriptor. It's the responsibility of the caller to dispose of it.
      • getRoiProvider

        public MultiLevelROI getRoiProvider()
        Returns: