Class Utils


  • public class Utils
    extends Object
    Sparse utilities for the various mosaic classes. I use them to extract complex code from other places.
    Author:
    Simone Giannecchini, GeoSolutions S.A.S.
    • Field Detail

      • EXCLUDE_MOSAIC

        public static final Hints.Key EXCLUDE_MOSAIC
      • EXCLUDE_MOSAIC_HINTS

        public static final Hints EXCLUDE_MOSAIC_HINTS
        Hints to use for avoiding to search for the imagemosaic format
      • CHECK_AUXILIARY_METADATA

        public static final Hints.Key CHECK_AUXILIARY_METADATA
      • COG_SETTINGS

        public static final Hints.Key COG_SETTINGS
      • AUXILIARY_FILES_PATH

        public static final Hints.Key AUXILIARY_FILES_PATH
      • AUXILIARY_DATASTORE_PATH

        public static final Hints.Key AUXILIARY_DATASTORE_PATH
      • PARENT_DIR

        public static final Hints.Key PARENT_DIR
      • MOSAIC_READER

        public static final Hints.Key MOSAIC_READER
      • PAM_DATASET

        @Deprecated
        public static final String PAM_DATASET
        Deprecated.
        See Also:
        Constant Field Values
      • LOG_EXCLUDES

        public static final Set<String> LOG_EXCLUDES
      • RGB_TO_GRAY_MATRIX

        public static final double[][] RGB_TO_GRAY_MATRIX
        RGB to GRAY coefficients (for Luminance computation)
      • DEFAULT_WILCARD

        public static final String DEFAULT_WILCARD
        Default wildcard for creating mosaics.
        See Also:
        Constant Field Values
      • DEFAULT_PATH_BEHAVIOR

        public static final boolean DEFAULT_PATH_BEHAVIOR
        Default path behavior with respect to absolute paths.
        See Also:
        Constant Field Values
      • DEFAULT_PRIORITY

        public static final int DEFAULT_PRIORITY
        Default priority for the underlying Thread.
        See Also:
        Constant Field Values
      • DEFAULT_LOCATION_ATTRIBUTE

        public static final String DEFAULT_LOCATION_ATTRIBUTE
        Default location attribute name.
        See Also:
        Constant Field Values
      • DEFAULT_RECURSION_BEHAVIOR

        public static final boolean DEFAULT_RECURSION_BEHAVIOR
        See Also:
        Constant Field Values
      • DEFAULT_FOOTPRINT_MANAGEMENT

        public static final boolean DEFAULT_FOOTPRINT_MANAGEMENT
        See Also:
        Constant Field Values
      • DEFAULT_CONFIGURATION_CACHING

        public static final boolean DEFAULT_CONFIGURATION_CACHING
        See Also:
        Constant Field Values
      • DEFAULT_COLOR_EXPANSION_BEHAVIOR

        public static final boolean DEFAULT_COLOR_EXPANSION_BEHAVIOR
        See Also:
        Constant Field Values
      • UTC_TIME_ZONE

        public static final TimeZone UTC_TIME_ZONE
      • SAMPLE_IMAGE_NAME_LEGACY

        public static final String SAMPLE_IMAGE_NAME_LEGACY
        See Also:
        Constant Field Values
    • Constructor Detail

      • Utils

        public Utils()
    • Method Detail

      • getAttribute

        public static Object getAttribute​(SimpleFeature feature,
                                          String attribute)
      • getMessageFromException

        public static String getMessageFromException​(Exception exception)
      • parseEnvelope

        public static ReferencedEnvelope parseEnvelope​(String bboxString)
        Parses a bbox in the form of MIX,MINY MAXX,MAXY
        Parameters:
        bboxString - the string to parse the bbox from
        Returns:
        a ReferencedEnvelope with the parse bbox or null
      • excludeFilters

        public static IOFileFilter excludeFilters​(IOFileFilter inputFilter,
                                                  IOFileFilter... filters)
      • checkFileReadable

        public static boolean checkFileReadable​(File file)
        Checks that a File is a real file, exists and is readable.
        Parameters:
        file - the File instance to check. Must not be null.
        Returns:
        true in case the file is a real file, exists and is readable; false otherwise.
      • getFileInfo

        public static String getFileInfo​(File file)
        Creates a human readable message that describe the provided File object in terms of its properties.

        Useful for creating meaningful log messages.

        Parameters:
        file - the File object to create a descriptive message for
        Returns:
        a String containing a descriptive message about the provided File.
      • checkDirectory

        public static String checkDirectory​(String testingDirectory,
                                            boolean writable)
                                     throws IllegalArgumentException
        Throws:
        IllegalArgumentException
      • createDataStoreParamsFromPropertiesFile

        public static Map<String,​Serializable> createDataStoreParamsFromPropertiesFile​(URL datastoreProperties)
                                                                                      throws IOException
        Throws:
        IOException
      • storeSampleImage

        public static void storeSampleImage​(File sampleImageFile,
                                            SampleModel defaultSM,
                                            ColorModel defaultCM)
                                     throws IOException
        Store a sample image from which we can derive the default SM and CM
        Parameters:
        sampleImageFile - where we should store the image
        defaultSM - the SampleModel for the sample image.
        defaultCM - the ColorModel for the sample image.
        Throws:
        IOException - in case something bad occurs during writing.
      • loadSampleImage

        public static RenderedImage loadSampleImage​(File sampleImageFile)
        Load a sample image from which we can take the sample model and color model to be used to fill holes in responses.
        Parameters:
        sampleImageFile - the path to sample image.
        Returns:
        a sample image from which we can take the sample model and color model to be used to fill holes in responses.
      • createDataStoreParamsFromPropertiesFile

        public static Map<String,​Serializable> createDataStoreParamsFromPropertiesFile​(Properties properties,
                                                                                             DataStoreFactorySpi spi)
                                                                                      throws IOException
        Throws:
        IOException
      • filterDataStoreParams

        public static Map<String,​Serializable> filterDataStoreParams​(Properties properties,
                                                                           DataStoreFactorySpi spi)
                                                                    throws IOException
        Throws:
        IOException
      • getIndexerProperty

        public static String getIndexerProperty​(String locationPath,
                                                String propertyName)
      • getHistogram

        public static Histogram getHistogram​(String file)
        Setup a Histogram object by deserializing a file representing a serialized Histogram.
        Returns:
        the deserialized histogram.
      • getImageLayoutHint

        public static ImageLayout getImageLayoutHint​(RenderingHints renderHints)
      • getTileCacheHint

        public static TileCache getTileCacheHint​(RenderingHints renderHints)
      • getBorderExtenderHint

        public static BorderExtender getBorderExtenderHint​(RenderingHints renderHints)
      • getTileSchedulerHint

        public static TileScheduler getTileSchedulerHint​(RenderingHints renderHints)
      • getHintIfAvailable

        public static Object getHintIfAvailable​(RenderingHints hints,
                                                RenderingHints.Key key)
      • setupJAIHints

        public static Hints setupJAIHints​(RenderingHints inputHints)
      • createRange

        public static Range<? extends Number> createRange​(Object firstValue,
                                                          Object secondValue)
        Create a Range of numbers from a couple of values.
      • minimalIndexCheck

        public static boolean minimalIndexCheck​(Object source)
        Simple minimal check which checks whether and indexer file exists
      • homogeneousCheck

        public static boolean homogeneousCheck​(int numberOfLevels,
                                               double[][] resolutionLevels,
                                               double[][] compareLevels)
        Check whether 2 resolution levels sets are homogeneous (within a tolerance)
      • unmarshal

        public static Indexer unmarshal​(File indexerFile)
                                 throws JAXBException
        Unmarshal the file and return and Indexer object.
        Throws:
        JAXBException
      • marshal

        public static void marshal​(Indexer indexer,
                                   File indexerFile)
                            throws JAXBException
        Marshals the Indexer object to the specified file
        Throws:
        JAXBException
      • checkColorModels

        public static boolean checkColorModels​(ColorModel defaultCM,
                                               byte[][] defaultPalette,
                                               ColorModel actualCM)
        This method checks the ColorModel of the current image with the one of the first image in order to check if they are compatible or not in order to perform a mosaic operation.

        It is worth to point out that we also check if, in case we have two index color model image, we also try to suggest whether or not we should do a color expansion.

        Returns:
        a boolean asking to skip this feature.
      • fixH2DatabaseLocation

        public static void fixH2DatabaseLocation​(Map<String,​Serializable> params,
                                                 String parentLocation)
                                          throws MalformedURLException
        Throws:
        MalformedURLException
      • isOracleStore

        public static boolean isOracleStore​(DataStoreFactorySpi spi)
        Checks if the provided factory spi builds a Oracle store
      • isPostgisStore

        public static boolean isPostgisStore​(DataStoreFactorySpi spi)
        Checks if the provided factory spi builds a Postgis store
      • isSQLServerStore

        public static boolean isSQLServerStore​(DataStoreFactorySpi spi)
        Checks if the provided factory spi builds a SQLServer store
      • mergePamDatasets

        public static PAMDataset mergePamDatasets​(PAMDataset[] pamDatasets)
        Merge statistics across datasets.
      • getCleanupFilter

        public static IOFileFilter getCleanupFilter()
      • fixH2MVCCParam

        public static void fixH2MVCCParam​(Map<String,​Serializable> params)
      • fixPostgisDBCreationParams

        public static void fixPostgisDBCreationParams​(Map<String,​Serializable> datastoreParams)
      • getReaderSpiFromStream

        public static ImageReaderSpi getReaderSpiFromStream​(ImageReaderSpi suggestedSPI,
                                                            ImageInputStream inStream)
                                                     throws IOException
        Throws:
        IOException
      • getInputStreamSPIFromURL

        public static ImageInputStreamSpi getInputStreamSPIFromURL​(URL granuleUrl)
                                                            throws IOException
        Throws:
        IOException
      • extractPalette

        public static byte[][] extractPalette​(IndexColorModel indexColorModel)
        Extract the palette from an IndexColorModel.
      • isValidMosaicSchema

        public static boolean isValidMosaicSchema​(SimpleFeatureType schema,
                                                  String locationAttributeName)
        Returns true if the type is usable as a mosaic index
      • getFile

        public static File getFile​(String strValue,
                                   File rootFolder)
                            throws IOException
        Returns the File associated to the rootFolder if not absolute
        Throws:
        IOException
      • decimate

        public static Geometry decimate​(Geometry geometry)
        Decimate a geometry (reducing the number of vertices) for incoming buffering
      • roiIntersect

        public static ROI roiIntersect​(ROI roi,
                                       ROIGeometry roiGeometry,
                                       RenderingHints hints)
        Intersects a ROI with a ROI geometry, with fallback on GeometrySnapper if a TopologyException occurs