What Are The Drone Anti-jamming Systems Technology?
Creating a Pyramid with GDAL reltile for serving with GeoServer
1. Creating a pyramid for serving via the
GeoServer ImagePyramid plugin
Ing. Simone Gianneccchini
Ing. Daniele Romagnoli
2. Outline
Concept of pyramid
GDAL retile
How to build a piramid
How to configure it in GeoServer
3. Raster Data Pyramid
Multi-resolution hierarchy of tiles for
a raster dataset
Lower level == higher resolution
Higher Level == reduced resolution
Lower Level == more tiles
Higher Level == less tiles
Can efficiently serve really large dataset at
all resolution levels
• Use as few files as possible
4. Raster Data Pyramid
Creating a pyramid with gdal_retile
http://www.gdal.org/gdal_retile.html
gdal_retile.py
[-v] [-co NAME=VALUE]* [-of out_format]
[-ps pixelWidth pixelHeight]
[-ot {Byte/Int16/UInt16/UInt32/Int32/Float32/Float64/
CInt16/CInt32/CFloat32/CFloat64}]
[ -tileIndex tileIndexName [-tileIndexField fieldName]]
[ -csv fileName [-csvDelim delimiter]]
[-s_srs srs_def] [-pyramidOnly] -levels numberoflevels
[-r {near/bilinear/cubic/cubicspline}]
-targetDir TileDirectory input_files
Serve with ImagePyramid GeoServer extension
Not part of standard GeoServer
Download from GeoServer site
Install as explained here
Check that the Raster Data Source list the ImagePyramid format
5. Raster Data Pyramid
Prepare the list of tiles to be retiled
ls *.tif > tiles.txt
mkdir tiles
Create the pyramid with GDAL retile (grab a coffee!)
gdal_retile -levels 3 -ps 2048 2048 -co "TILED=YES" -co "BLOCKXSIZE=256"
-co "TILED=YES" -co "BLOCKXSIZE=256"
-co "BLOCKYSIZE=256" -targetDir tiles --optfile tiles.txt
-s_srs EPSG:3003 -targetDir tiles --optfile tiles.txt
Move the full resolution raster tiles to a folder called “0”
cd tiles
gdal_retile -levels 3 -ps 2048 2048 -co "TILED=YES" -co "BLOCKXSIZE=256"
mkdir 0
-co "BLOCKYSIZE=256" -targetDir tiles --optfile tiles.txt
mv *.tif 0
Create a mosaic for each level (its own directory)
create an ImageMosaic store in GeoServer by pointing the store to
the level directory (automagic index creation)
remove the store when done
Rename each mosaic's auxiliary file to match the name of
the pyramid
0.prj, 0.properties, 0.shp, 0.shx, 0.dbf
6. Raster Data Pyramid
Define the pyramid.properties file:
Place it at the root of the pyramid directory hierarchy
Define the Envelope2D as per the 0 level properties file
Set the Levels resolution as defined in each property file starting
from the base level (0) to the last
ResX0,ResY0 ResX1,ResY1 …. ResXN-1,ResY1N-1
LevelDirs contains the names for the reduced resolution directories
LevelsNum indicates the number of reduced resolutions levels
Name=pyramid
Levels=1.0,1.0 2.0,2.0 4.0,4.0
LevelsDirs=0 1 2
LevelsNum=3
Envelope2D=1653000.0,4686200.0 1660200.0,4695240.0
Create a file pyramid.prj at the pyramid root
7. Raster Data Pyramid
Add a new coverage using ImagePyramid plugin
Available as a GeoServer's CoverageStore extension
Download JAR from Extension and add to WEB-INF lib
Specify the pyramid.properties location as URL for the
store