I am publishing 100 Gb of aerial image til on GeoServer using pyramid technique. I have made GeoServer in a production environment according to GeoServer manual "Running in a production environment". I have prepared data using gdal_retile:

gdal_retile.py -s_srs EPSG:27700 -v -r bilinear -levels 4 -ps 500 500 -co 'TILED=YES' -co 'COMPRESS=JPEG' -targetDir OUTPUT *.jpg

Input jpg image details:

Driver: JPEG/JPEG JFIF Files: SS0096.jpg SS0096.jgw Size is 4000, 4000 Coordinate System is `' Origin = (200000.000000000000000,197000.000000000000000) Pixel Size = (0.250000000000000,-0.250000000000000) Metadata:
EXIF_BitsPerSample=8 8 8 EXIF_ColorSpace=65535 EXIF_Compression=1 EXIF_DateTime=2016:09:08 07:20:28 EXIF_Orientation=1
EXIF_PhotometricInterpretation=2 EXIF_PixelXDimension=4000
EXIF_PixelYDimension=4000 EXIF_PlanarConfiguration=1
EXIF_ResolutionUnit=2 EXIF_SamplesPerPixel=3 EXIF_Software=Adobe Photoshop CS2 Windows EXIF_XResolution=(72) EXIF_YResolution=(72) Image Structure Metadata: COMPRESSION=JPEG INTERLEAVE=PIXEL
SOURCE_COLOR_SPACE=YCbCr Corner Coordinates: Upper Left ( 200000.000, 197000.000) Lower Left ( 200000.000, 196000.000) Upper Right ( 201000.000, 197000.000) Lower Right ( 201000.000, 196000.000) Center ( 200500.000, 196500.000) Band 1 Block=4000x1 Type=Byte, ColorInterp=Red Overviews: 2000x2000, 1000x1000, 500x500, 160x160 Image Structure Metadata: COMPRESSION=JPEG Band 2 Block=4000x1 Type=Byte, ColorInterp=Green Overviews: 2000x2000, 1000x1000, 500x500, 160x160 Image Structure Metadata: COMPRESSION=JPEG Band 3 Block=4000x1 Type=Byte, ColorInterp=Blue Overviews: 2000x2000, 1000x1000, 500x500, 160x160 Image Structure Metadata: COMPRESSION=JPEG

Windows Server configuration is Intel Xeon E5, 2.20GHz (2 processor) and 32gb RAM. But when I am accessing this layer using WMTS service, it is taking a lot of time (around 20-30 minutes) to load completely.

Can anyone suggest me how to reduce rendering time?

  • 1
    Please clarify what you mean with "load completely". With what client, ar what resolution? – user30184 Apr 7 '18 at 12:36
  • load completely in QGIS and ArcGIS at resolution 1:2000000. – sumant singh Apr 7 '18 at 16:04
  • how did you prepare your data files? – Ian Turton Apr 7 '18 at 19:50
  • I have updated my question. please looks once. – sumant singh Apr 9 '18 at 10:48
  • For preparing the data, I followed following steps: 1. optimize data with gdal_translate gdal_translate -co "TILED=YES" -co "BLOCKXSIZE=512" -co "BLOCKYSIZE=512" input.tif output.tif 2. added overviews with gdal_addo gdaladdo -r average output.tif 2 4 8 16 32 3. Created the pyramid with GDAL retile gdal_retile.py -s_srs EPSG:27700 -v -r bilinear -levels 4 -ps 500 500 -co "TILED=YES" -co 'COMPRESS=JPEG' -co "BLOCKXSIZE=256" -co "BLOCKySIZE=256" -ot Byte -useDirForEachRow -targetDir Output output.tif – sumant singh May 4 '18 at 4:06

The best advice is to follow Paul Ramsey's advice:

So, to sum up, your best format for image serving is:

  • GeoTiff, so you can avoid proprietary image formats and nonsense, with
  • JPEG compression, for visually fine results with much space savings, and YCBCR color, for even smaller size, and
  • internal tiling, for fast access of random squares of data, and
  • overviews, for fast access of zoomed out views of the data.

For gdal_translate he recommends the following options:

gdal_translate \
  -co TILED=YES \
  5255C.tif 5255C_JPEG_YCBCR.tif

and for overviews:

gdaladdo \
  -r average \
  5255C_JPEG_YCBCR.tif \
  2 4 8 16
  • Thanks a lot for your valuable answer. I followed these steps and reprocess the data again. but when I am rendering it using WMTS in QGIS, still it is taking a lot of time. Please, can you let me know what I am doing wrong? and one more question is my server configuration sufficient for publishing 100-300 GB of raster data? – sumant singh Jun 12 '18 at 4:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.