3

I have a large number - more than 60 thousand - of relatively small Geotiffs, usually from 2 to 12 Mb. I am currently serving them using Geoserver, but things are quite slow even inside our own network. I have a hunch that both Geoserver and these Geotiffs are not configured in the best way possible.

Here is the output from gdalinfo for a typical one:

Driver: GTiff/GeoTIFF
Files: se502c_R9_C1_3_T_2531_sec.rsl.tif
Size is 3396, 2271
Coordinate System is:
PROJCS["ETRS89 / LAEA Europe",
    GEOGCS["ETRS89",
        DATUM["European_Terrestrial_Reference_System_1989",
            SPHEROID["GRS 1980",6378137,298.2572221010002,
                AUTHORITY["EPSG","7019"]],
        TOWGS84[0,0,0,0,0,0,0],
        AUTHORITY["EPSG","6258"]],
    PRIMEM["Greenwich",0],
    UNIT["degree",0.0174532925199433],
    AUTHORITY["EPSG","4258"]],
    PROJECTION["Lambert_Azimuthal_Equal_Area"],
    PARAMETER["latitude_of_center",52],
    PARAMETER["longitude_of_center",10],
    PARAMETER["false_easting",4321000],
    PARAMETER["false_northing",3210000],
    UNIT["metre",1,
        AUTHORITY["EPSG","9001"]],
    AUTHORITY["EPSG","3035"]]
Origin = (4645325.000000000000000,3992425.000000000000000)
Pixel Size = (25.000000000000000,-25.000000000000000)
Metadata:
  AREA_OR_POINT=Area
Image Structure Metadata:
  COMPRESSION=DEFLATE
  INTERLEAVE=BAND
Corner Coordinates:
Upper Left  ( 4645325.000, 3992425.000) ( 15d37'30.88"E, 58d55' 2.56"N)
Lower Left  ( 4645325.000, 3935650.000) ( 15d32'42.77"E, 58d24'30.92"N)
Upper Right ( 4730225.000, 3992425.000) ( 17d 5'21.12"E, 58d50'57.39"N)
Lower Right ( 4730225.000, 3935650.000) ( 16d59'19.12"E, 58d20'29.67"N)
Center      ( 4687775.000, 3964037.500) ( 16d18'44.44"E, 58d37'52.11"N)
Band 1 Block=512x512 Type=Float32, ColorInterp=Gray
  NoData Value=-9999

As you can see they are EPSG:3035. They should be internally tiled. In the Coordinate Reference Systems for Geoserver, it says that both Native SRSand Declared SRS are EPSG:3035, and that the handling should be to reproject native to declared.

My web client overlays these Geotiffs on a standard OpenStreetMap layer in Web Mercator. All the geotiffs we have tried appear correctly, so I guess reprojection is still happening at some stage.

Would I gain any speed changing the declared SRS to Web Mercator? Or reprojecting the original Geotiffs to Web Mercator? What other properties of the Geotiff could I tinker with?

Bonus question - if a Geotiff is changed, reprojecting or retiling or what have you, does the Geoserver layer associated with it also change automatically?

  • I guess that your service is rather fast at zoom level 13 and above, am I right? – user30184 Mar 16 '16 at 13:43
  • I ran a few experiments, and I can't really see a lot of difference, to be honest. Zooming close in will need to load a smaller part of the image before filling up the screen, certainly. – Btz Mar 16 '16 at 16:38
  • I know absolutely nothing about GEOSERVER but I would say 12Mb is not a small file size! You don't say what these tiffs represent, so can you change the pixel type from float to integer, that should at least significantly reduce the file size? – Hornbydd Mar 16 '16 at 17:39
  • 12 MB is not a small file size for a geospatial image, it is tiny. – user30184 Mar 16 '16 at 22:19
  • @Hornbydd Unfortunately the pixel type needs to remain a float. The Geotiffs represent depth in meters. Also Geoserver is very capable of handling Geotiffs that are Gigabytes in size, so measly 12 Mb should not cause it so much trouble. – Btz Mar 17 '16 at 9:36
1

I have read somewhere that Geoserver puts a lot of overheads in dealing with too many files open when it comes to handle cached tiles. We had to build very big GB tiffs from a bunch of smaller ones and then create internal overviews of the monstruous one, and this, surprisingly, made things much faster... I guess if you do a search on that direction you might find new clues... good luck

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.