GeoServer does not, indeed, support the LERC compression. If you'd like to see support for this compression implemented, see this guide: https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-fixes,-improvements-and-new-features-in-GeoServer
Cheers Andrea Cheers Andrea On Tue, Dec 20, 2022 at 12:58 PM Jeroen van Gent < jeroen.vang...@aeronomie.be> wrote: > Dear all, > > I am serving a set of Geotiff raster files as single-file stores in > GeoServer and so far everything went fine with GeoTiff files compressed > with the DEFLATE or ZSTD algorithms. > > This week I have been testing LERC compression (with different values > for the gdal MAX_Z_ERROR option) and when serving those in GeoServer any > WMS request results in a NullPointer Exception message instead of the > requested PNG tile. > > Does GeoServer not read LERC-compressed files? Or is the cause somewhere > else? > > I can open the LERC-compressed GeoTiff files just fine in QQIS. > > Details: > > GeoServer version: 2.20.2 > > WMS request: > > > https://my.geoserver.be/geoserver/SACS/wms?&service=WMS&request=GetMap&layers=SACS%3As5p_tropomi_psg4326_20221206_res0p02_compLERC&styles=&format=image%2Fpng&transparent=true&version=1.1.1&interpolations=nearest%20neighbor&width=256&height=256&srs=EPSG%3A3857&bbox=-15028131.257091936,5009377.085697314,-10018754.171394622,10018754.171394628 > > > GeoServer Log (VERBOSE_LOGGING level): > > Request: getMap > Angle = 0.0 > BaseUrl = https://geoserver-dev.aeronomie.be/geoserver/ > Bbox = SRSEnvelope[-1.5028131257091936E7 : -1.0018754171394622E7, > 5009377.085697314 : 1.0018754171394628E7] > BgColor = java.awt.Color[r=255,g=255,b=255] > Buffer = 0 > Clip = null > CQLFilter = null > Crs = PROJCS["WGS 84 / Pseudo-Mercator", > GEOGCS["WGS 84", > DATUM["World Geodetic System 1984", > SPHEROID["WGS 84", 6378137.0, 298.257223563, > AUTHORITY["EPSG","7030"]], > AUTHORITY["EPSG","6326"]], > PRIMEM["Greenwich", 0.0, AUTHORITY["EPSG","8901"]], > UNIT["degree", 0.017453292519943295], > AXIS["Geodetic longitude", EAST], > AXIS["Geodetic latitude", NORTH], > AUTHORITY["EPSG","4326"]], > PROJECTION["Popular Visualisation Pseudo Mercator", > AUTHORITY["EPSG","1024"]], > PARAMETER["semi_minor", 6378137.0], > PARAMETER["latitude_of_origin", 0.0], > PARAMETER["central_meridian", 0.0], > PARAMETER["scale_factor", 1.0], > PARAMETER["false_easting", 0.0], > PARAMETER["false_northing", 0.0], > UNIT["m", 1.0], > AXIS["Easting", EAST], > AXIS["Northing", NORTH], > AUTHORITY["EPSG","3857"]] > Elevation = [] > Env = {} > Exceptions = SE_XML > FeatureId = null > FeatureVersion = null > Filter = null > Format = image/png > FormatOptions = {} > Get = true > Height = 256 > Interpolations = [javax.media.jai.InterpolationNearest@4620bf84] > Layers = [org.geoserver.wms.MapLayerInfo@81053a8a] > MaxFeatures = null > Palette = null > RawKvp = {REQUEST=GetMap, FORMAT=image/png, SRS=EPSG:3857, > BBOX=-15028131.257091936,5009377.085697314,-10018754.171394622,10018754.171394628, > > VERSION=1.1.1, STYLES=, SERVICE=WMS, INTERPOLATIONS=nearest neighbor, > WIDTH=256, HEIGHT=256, TRANSPARENT=true, > LAYERS=SACS:s5p_tropomi_psg4326_20221206_res0p02_compLERC} > RemoteOwsType = null > RemoteOwsURL = null > Request = GetMap > RequestCharset = UTF-8 > ScaleMethod = null > Sld = null > SldBody = null > SldVersion = null > SortBy = null > SortByArrays = null > SRS = EPSG:3857 > StartIndex = null > StyleBody = null > StyleFormat = sld > Styles = [StyleImpl[ name=so2vcd]] > StyleUrl = null > StyleVersion = null > Tiled = false > TilesOrigin = null > Time = [] > Transparent = true > ValidateSchema = false > Version = 1.1.1 > ViewParams = null > Width = 256 > 2022-12-20 12:00:46,225 DEBUG [wms.map] - Writing png image ... > 2022-12-20 12:00:46,225 DEBUG [config.impl] - Could not locate service > of type interface org.geoserver.wms.WMSInfo in workspace > WorkspaceInfoImpl[SACS], available services were [WMSInfoImpl[WMS], > WFSInfoImpl[WFS], WCSInfoImpl[WCS], WMTSInfoImpl[WMTS]] > 2022-12-20 12:00:46,268 INFO [geoserver.servlets] - OutputStream was > successfully aborted. > 2022-12-20 12:00:46,268 ERROR [geoserver.ows] - > java.lang.NullPointerException > 2022-12-20 12:00:46,269 DEBUG [geoserver.filters] - Compressing output > for mimetype: application/vnd.ogc.se_xml;charset=UTF-8 > 2022-12-20 12:00:46,270 DEBUG > [filter.GeoServerSecurityContextPersistenceFilter$1] - > SecurityContextHolder now cleared, as request processing completed > 2022-12-20 12:01:07,257 DEBUG > [security.IncludeQueryStringAntPathRequestMatcher] - Checking match of > request : 'Path: > /web/wicket/bookmarkable/org.geoserver.web.admin.logpage, QueryString: > 34-1.IFormSubmitListener-form&lines=1000'; against '/web/**' > 2022-12-20 12:01:07,257 DEBUG > [security.IncludeQueryStringAntPathRequestMatcher] - Matched Path: > /web/wicket/bookmarkable/org.geoserver.web.admin.logpage, QueryString: > 34-1.IFormSubmitListener-form&lines=1000 with /web/** > 2022-12-20 12:01:07,260 DEBUG [org.geoserver] - Thread 80 locking in > mode READ > 2022-12-20 12:01:07,260 DEBUG [org.geoserver] - Thread 80 got the lock > in mode READ > 2022-12-20 12:01:07,261 DEBUG [org.geoserver] - Thread 80 locking in > mode READ > 2022-12-20 12:01:07,261 DEBUG [org.geoserver] - Thread 80 releasing the > lock in mode READ > 2022-12-20 12:01:07,264 DEBUG > [filter.GeoServerSecurityContextPersistenceFilter$1] - > SecurityContextHolder now cleared, as request processing completed > 2022-12-20 12:01:07,269 DEBUG > [security.IncludeQueryStringAntPathRequestMatcher] - Checking match of > request : 'Path: > /web/wicket/bookmarkable/org.geoserver.web.admin.logpage, QueryString: > lines=1000'; against '/web/**' > 2022-12-20 12:01:07,269 DEBUG > [security.IncludeQueryStringAntPathRequestMatcher] - Matched Path: > /web/wicket/bookmarkable/org.geoserver.web.admin.logpage, QueryString: > lines=1000 with /web/** > 2022-12-20 12:01:07,273 DEBUG [org.geoserver] - Thread 6554 locking in > mode READ > 2022-12-20 12:01:07,273 DEBUG [org.geoserver] - Thread 6554 got the lock > in mode READ > > > Output from gdalinfo on the LERC-compressed file: > > Driver: GTiff/GeoTIFF > Files: testfiles/s5p_tropomi_psg4326_20221206_res0p02_compLERC.tif > Size is 18000, 8616 > Coordinate System is: > GEOGCRS["WGS 84", > DATUM["World Geodetic System 1984", > ELLIPSOID["WGS 84",6378137,298.257223563, > LENGTHUNIT["metre",1]]], > PRIMEM["Greenwich",0, > ANGLEUNIT["degree",0.0174532925199433]], > CS[ellipsoidal,2], > AXIS["geodetic latitude (Lat)",north, > ORDER[1], > ANGLEUNIT["degree",0.0174532925199433]], > AXIS["geodetic longitude (Lon)",east, > ORDER[2], > ANGLEUNIT["degree",0.0174532925199433]], > ID["EPSG",4326]] > Data axis to CRS axis mapping: 2,1 > Origin = (-180.000000000000000,82.340000000000018) > Pixel Size = (0.020000000000000,-0.020000000000000) > Metadata: > AREA_OR_POINT=Area > Image Structure Metadata: > COMPRESSION=LERC > INTERLEAVE=BAND > LAYOUT=COG > LERC_VERSION=2.4 > Corner Coordinates: > Upper Left (-180.0000000, 82.3400000) (180d 0' 0.00"W, 82d20'24.00"N) > Lower Left (-180.0000000, -89.9800000) (180d 0' 0.00"W, 89d58'48.00"S) > Upper Right ( 180.0000000, 82.3400000) (180d 0' 0.00"E, 82d20'24.00"N) > Lower Right ( 180.0000000, -89.9800000) (180d 0' 0.00"E, 89d58'48.00"S) > Center ( 0.0000000, -3.8200000) ( 0d 0' 0.00"E, 3d49'12.00"S) > Band 1 Block=256x256 Type=Float32, ColorInterp=Gray > NoData Value=-9999 > Overviews: 9000x4308, 4500x2154, 2250x1077, 1125x539, 563x270, > 282x135, 141x68 > jeroenv@ada6: > /scratch/jeroenv/sacstest/geotiff_compression/geotiff-benchmark> > gdalinfo testfiles/s5p_tropomi_psg4326_20221206_res0p02_compLERC.tif > Driver: GTiff/GeoTIFF > Files: testfiles/s5p_tropomi_psg4326_20221206_res0p02_compLERC.tif > Size is 18000, 8616 > Coordinate System is: > GEOGCRS["WGS 84", > DATUM["World Geodetic System 1984", > ELLIPSOID["WGS 84",6378137,298.257223563, > LENGTHUNIT["metre",1]]], > PRIMEM["Greenwich",0, > ANGLEUNIT["degree",0.0174532925199433]], > CS[ellipsoidal,2], > AXIS["geodetic latitude (Lat)",north, > ORDER[1], > ANGLEUNIT["degree",0.0174532925199433]], > AXIS["geodetic longitude (Lon)",east, > ORDER[2], > ANGLEUNIT["degree",0.0174532925199433]], > ID["EPSG",4326]] > Data axis to CRS axis mapping: 2,1 > Origin = (-180.000000000000000,82.340000000000018) > Pixel Size = (0.020000000000000,-0.020000000000000) > Metadata: > AREA_OR_POINT=Area > Image Structure Metadata: > COMPRESSION=LERC > INTERLEAVE=BAND > LAYOUT=COG > LERC_VERSION=2.4 > Corner Coordinates: > Upper Left (-180.0000000, 82.3400000) (180d 0' 0.00"W, 82d20'24.00"N) > Lower Left (-180.0000000, -89.9800000) (180d 0' 0.00"W, 89d58'48.00"S) > Upper Right ( 180.0000000, 82.3400000) (180d 0' 0.00"E, 82d20'24.00"N) > Lower Right ( 180.0000000, -89.9800000) (180d 0' 0.00"E, 89d58'48.00"S) > Center ( 0.0000000, -3.8200000) ( 0d 0' 0.00"E, 3d49'12.00"S) > Band 1 Block=256x256 Type=Float32, ColorInterp=Gray > NoData Value=-9999 > Overviews: 9000x4308, 4500x2154, 2250x1077, 1125x539, 563x270, > 282x135, 141x68 > > > > > > > > > _______________________________________________ > Geoserver-users mailing list > > Please make sure you read the following two resources before posting to > this list: > - Earning your support instead of buying it, but Ian Turton: > http://www.ianturton.com/talks/foss4g.html#/ > - The GeoServer user list posting guidelines: > http://geoserver.org/comm/userlist-guidelines.html > > If you want to request a feature or an improvement, also see this: > https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer > > > Geoserver-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/geoserver-users > -- Regards, Andrea Aime == GeoServer Professional Services from the experts! Visit http://bit.ly/gs-services-us for more information. == Ing. Andrea Aime @geowolf Technical Lead GeoSolutions Group phone: +39 0584 962313 fax: +39 0584 1660272 mob: +39 339 8844549 https://www.geosolutionsgroup.com/ http://twitter.com/geosolutions_it ------------------------------------------------------- Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni circostanza inerente alla presente email (il suo contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le sarei comunque grato se potesse darmene notizia. This email is intended only for the person or entity to which it is addressed and may contain information that is privileged, confidential or otherwise protected from disclosure. We remind that - as provided by European Regulation 2016/679 “GDPR” - copying, dissemination or use of this e-mail or the information herein by anyone other than the intended recipient is prohibited. If you have received this email by mistake, please notify us immediately by telephone or e-mail
_______________________________________________ Geoserver-users mailing list Please make sure you read the following two resources before posting to this list: - Earning your support instead of buying it, but Ian Turton: http://www.ianturton.com/talks/foss4g.html#/ - The GeoServer user list posting guidelines: http://geoserver.org/comm/userlist-guidelines.html If you want to request a feature or an improvement, also see this: https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer Geoserver-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geoserver-users