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 `_