Mosaic Plugin ------------- This format make use of a shapefile to act as a kind of index, the features in this shapefile list the filename of the "images" to display and the location in which they should be displayed. **Maven**:: org.geotools gt-imagemosaic ${geotools.version} To create the shapefile you simply provide the location of a folder with "images" to the constructor of ImageMosaicReader. Those image files must conatin it's own world-file to be a part of the image mosaic. To display the mosaic within a map, you will use a GridReaderLayer. .. literalinclude:: /../src/main/java/org/geotools/imagemosaic/MosaicViewer.java :language: java :start-after: // start Create ImageMosaicReader example :end-before: // end Create ImageMosaicReader example The simplest style to provide would be like this: .. literalinclude:: /../src/main/java/org/geotools/imagemosaic/MosaicViewer.java :language: java :start-after: // start Create Raster Style :end-before: // end Create Raster Style To use mulitthreading you must provide a threading pool to the mosaic reader, and also tell the grid reader layer to allow multithreading. .. literalinclude:: /../src/main/java/org/geotools/imagemosaic/MosaicViewer.java :language: java :start-after: // start Create Multithreaded ImageMosaicReader example :end-before: // end Create Multithreaded ImageMosaicReader example Example Image Mosaic files ^^^^^^^^^^^^^^^^^^^^^^^^^^ An example data set looks something like:: bluemarble.shp bluemarble.prj bluemarble.properties ... a bunch of raster files ... * Shapefile file The schema of your shapefile is important: You MUST have a attribute called "location", this will be used to look up the raster files * PRJ file The usual projection file associated with a shapefile, using the WKT format for a CoordinateReferenceSystem. * Properties File The property file is REQUIRED and use to provide a bunch of settings: Example ``bluemarble.properties``:: # #Thu Jan 11 14:53:30 CET 2007 Name=modis ExpandToRGB=true Levels=10000.0,10000.0 LevelsNum=1 GeneralBounds=-3637013.0,-1158091.0 1019969.0,4092819.0 NumFiles=3 Where the following are required: * Name * ``ExpandToRGB``: true if we need to expand the color model from indexed to ``rgba`` * If all your images use the same indexed palette you can set this to false and get a large performance gain * ``Levels``: list of resolutions * ``Format``: level_0_x_resolution, level_0_y_resolution, level_1_x_resolution, level_1_y_resolution * This measure of resolution describes how big each pixel is in real world units * Sample calculation: ``envelope.getLength(0) / image.getWidth()`` * You can define several levels in order to capture overview files if you have them * ``LevelsNum``: the number of levels mentioned above * ``GeneralBounds``: bounds in the CRS specified in the ``.prj`` file * ``Format``: ``minX,minY maxX,maxY`` * ``NumFiles``: should be the same as the number of features in your shapefile **Reference** * `ImageMosaicFormat `_ (javadoc) * `ImageMosaicJDBCReader `_ (javadoc) * :doc:`pyramid` * `ImageMosaic plugin `_ * `Using the ImageMosaic plugin for raster time-series data `_ * `Using the ImageMosaic plugin for raster with time and elevation data `_ * `Using the ImageMosaic plugin with footprint management `_