Thanks Jody,
I’ve carried out the experiments – I’ll explain what I did in case I’ve
misunderstood:
1. I added the bgcolor parameter to the GetMap request
* I tried bgcolor=0xFFFFFF (which I think is the WMS spec default anyway)
* I tried bgcolor=0x000000
* The problem still occurred
2. I think I know where you’re going with this one, because I thought I had
seen something in my earlier testing but I was unable to confirm it. I’ve now
tested with different datasets that are geographically further apart. In short,
when I make a request to draw in the centre, approximately, of the raster
(specifically the group layer extent) the problem occurs. When I make a request
to draw towards the edge of the raster the request is successful and the
problem does not occur.
3. I added -Dorg.geotools.coverage.jaiext.enabled=false to the JVM options
* The problem still occurred
* I enabled it again and then changed the configuration in the UI (on
the Image Processing page, I moved all the operations from JAIEXT to JAI) and
the problem still occurred.
4. I looked at gdalinfo for each source TIFF. Nothing stands out to me but
I’ve copied the output below in case it’s of any interest.
5. I tried looking into setting up an alpha mask (1 bit) vs band (8 bit). I
couldn’t work out how to do it. If you think it’s a useful test to do still,
can you please provide some guidance and I’ll happily do it? You’ll see in the
gdalinfo below that the alpha band is 8 bit now.
All the tests were carried out in GeoServer 2.15.2 (Oracle Corporation:
1.8.0_162 (Java HotSpot(TM) 64-Bit Server VM) and Windows 10).
Kind regards,
James
=======================================================
Driver: GTiff/GeoTIFF
Files: 4000-1-0.tif
Size is 3464, 1344
Coordinate System is:
PROJCS["WGS 84 / Pseudo-Mercator",
GEOGCS["WGS 84",
DATUM["WGS_1984",
SPHEROID["WGS 84",6378137,298.257223563,
AUTHORITY["EPSG","7030"]],
AUTHORITY["EPSG","6326"]],
PRIMEM["Greenwich",0,
AUTHORITY["EPSG","8901"]],
UNIT["degree",0.0174532925199433,
AUTHORITY["EPSG","9122"]],
AUTHORITY["EPSG","4326"]],
PROJECTION["Mercator_1SP"],
PARAMETER["central_meridian",0],
PARAMETER["scale_factor",1],
PARAMETER["false_easting",0],
PARAMETER["false_northing",0],
UNIT["metre",1,
AUTHORITY["EPSG","9001"]],
AXIS["X",EAST],
AXIS["Y",NORTH],
EXTENSION["PROJ4","+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0
+x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs"],
AUTHORITY["EPSG","3857"]]
Origin = (-11140949.022222205996513,18543042.967076625674963)
Pixel Size = (9000.705069007237398,-9000.705069007237398)
Metadata:
AREA_OR_POINT=Area
Image Structure Metadata:
COMPRESSION=LZW
INTERLEAVE=PIXEL
Corner Coordinates:
Upper Left (-11140949.022,18543042.967) (100d 4'51.05"W, 83d44'48.36"N)
Lower Left (-11140949.022, 6446095.354) (100d 4'51.05"W, 49d59'56.25"N)
Upper Right (20037493.337,18543042.967) (179d59'59.51"E, 83d44'48.36"N)
Lower Right (20037493.337, 6446095.354) (179d59'59.51"E, 49d59'56.25"N)
Center ( 4448272.157,12494569.161) ( 39d57'34.23"E, 73d56'52.73"N)
Band 1 Block=3464x1 Type=Byte, ColorInterp=Red
NoData Value=254
Band 2 Block=3464x1 Type=Byte, ColorInterp=Green
NoData Value=254
Band 3 Block=3464x1 Type=Byte, ColorInterp=Blue
NoData Value=254
Band 4 Block=3464x1 Type=Byte, ColorInterp=Alpha
NoData Value=254
Driver: GTiff/GeoTIFF
Files: 4000-1-1.tif
Size is 3461, 1431
Coordinate System is:
PROJCS["WGS 84 / Pseudo-Mercator",
GEOGCS["WGS 84",
DATUM["WGS_1984",
SPHEROID["WGS 84",6378137,298.257223563,
AUTHORITY["EPSG","7030"]],
AUTHORITY["EPSG","6326"]],
PRIMEM["Greenwich",0,
AUTHORITY["EPSG","8901"]],
UNIT["degree",0.0174532925199433,
AUTHORITY["EPSG","9122"]],
AUTHORITY["EPSG","4326"]],
PROJECTION["Mercator_1SP"],
PARAMETER["central_meridian",0],
PARAMETER["scale_factor",1],
PARAMETER["false_easting",0],
PARAMETER["false_northing",0],
UNIT["metre",1,
AUTHORITY["EPSG","9001"]],
AXIS["X",EAST],
AXIS["Y",NORTH],
EXTENSION["PROJ4","+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0
+x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs"],
AUTHORITY["EPSG","3857"]]
Origin = (-11140949.022210156545043,6453257.157739197835326)
Pixel Size = (9006.638862780311683,-9006.638862780311683)
Metadata:
AREA_OR_POINT=Area
Image Structure Metadata:
COMPRESSION=LZW
INTERLEAVE=PIXEL
Corner Coordinates:
Upper Left (-11140949.022, 6453257.158) (100d 4'51.05"W, 50d 2'25.06"N)
Lower Left (-11140949.022,-6435243.055) (100d 4'51.05"W, 49d56'10.51"S)
Upper Right (20031028.082, 6453257.158) (179d56'30.43"E, 50d 2'25.06"N)
Lower Right (20031028.082,-6435243.055) (179d56'30.43"E, 49d56'10.51"S)
Center ( 4445039.530, 9007.051) ( 39d55'49.69"E, 0d 4'51.28"N)
Band 1 Block=3461x1 Type=Byte, ColorInterp=Red
NoData Value=254
Band 2 Block=3461x1 Type=Byte, ColorInterp=Green
NoData Value=254
Band 3 Block=3461x1 Type=Byte, ColorInterp=Blue
NoData Value=254
Band 4 Block=3461x1 Type=Byte, ColorInterp=Alpha
NoData Value=254
From: Jody Garnett <[email protected]>
Sent: August 8, 2019 19:02
To: James Rapaport <[email protected]>
Cc: [email protected]
Subject: Re: [Geoserver-users] WMS requests fail in some instances
Interesting, can you experiment with:
a) supplying a background color to see if it has an effect
b) drawing a subset of the raster both in the centre and on the edge
c) turning JAI-EXT operations on or off
<https://docs.geoserver.org/stable/en/user/configuration/image_processing/index.html#jai-ext>
...
There is a "fast path" when rendering a single raster layer where it is not
drawn but read directly from disk - so the case that works may be this case.
The message sounds like rendering is trying to lookup a pixel using a negative
row/col pixel. Perhaps have a look at gdalinfo? You can also experiment with
using an alpha mask (1 bit) vs band (8 bit)...
I think we need to dig a bit more before even known what project to report this
issue to...
--
Jody Garnett
On Thu, 8 Aug 2019 at 08:01, James Rapaport
<[email protected]<mailto:[email protected]>> wrote:
I have found a curious problem concerning WMS, group layers and images with
transparency. I start by creating a group layer containing two layers. Each
layer sources its data from a TIFF image and the images have RGBA bands. I load
the group layer in a client via WMS. I find that there is a range of requests
which fail to draw. I have included some example requests below. The logged
error is included below too.
If I replace the source TIFFs with RGB (no transparency) the problem does not
occur.
If I add the individual layers (ie the layers that are included in the group
layer) separately to the client, the problem does not occur. But if I add the
individual layers to the client in a single request (ie layers=layer-1,layer-2)
the problem does occur.
I found this problem when using GeoServer 2.15.2 (Oracle Corporation: 1.8.0_162
(Java HotSpot(TM) 64-Bit Server VM) and Windows 10). I found it did not occur
when using GeoServer 2.14.0 but it did occur in 2.14.1 and higher.
I wonder if it is either a bug (that I’ll happily report with some sample data)
or whether perhaps I have missed a configuration step or something. I’d be
grateful for any advice.
Kind regards,
James
===================================
Here's some more detail on the problem:
When an error occurs the following is logged:
07 Aug 10:51:23 WARN [renderer.lite] - The specified dimensional parameter is
non-positive.
java.lang.IllegalArgumentException: The specified dimensional parameter is
non-positive.
at javax.media.jai.ImageLayout.setTileHeight(ImageLayout.java:585)
07 Aug 10:51:23 ERROR [renderer.lite] - The specified dimensional parameter is
non-positive.
java.lang.IllegalArgumentException: The specified dimensional parameter is
non-positive.
at javax.media.jai.ImageLayout.setTileHeight(ImageLayout.java:585)
07 Aug 10:51:23 ERROR [geoserver.ows] -
org.geoserver.platform.ServiceException: Rendering process failed
at
org.geoserver.wms.map.RenderedImageMapOutputFormat.produceMap(RenderedImageMapOutputFormat.java:628)
The following request results in an error:-
http://localhost:8081/geoserver/ows?WIDTH=636&HEIGHT=636&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&BBOX=-20037508.34278924391,-20048966.10401460156,20037508.34278924391,20048966.10401459411&CRS=EPSG:3857&LAYERS=oceanwise:pm-ps&STYLES=&FORMAT=image/png&TRANSPARENT=TRUE
The following request results in an image:-
http://localhost:8081/geoserver/ows?WIDTH=637&HEIGHT=637&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&BBOX=-20037508.34278924391,-20048966.10401460156,20037508.34278924391,20048966.10401459411&CRS=EPSG:3857&LAYERS=oceanwise:pm-ps&STYLES=&FORMAT=image/png&TRANSPARENT=TRUE
The requests are for a box 636 x 636 and 637 x 637 respectively.
The following request results in an error:-
http://localhost:8081/geoserver/ows?WIDTH=318&HEIGHT=318&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&BBOX=-20037508.34278924391,-20048966.10401460156,20037508.34278924391,20048966.10401459411&CRS=EPSG:3857&LAYERS=oceanwise:pm-ps&STYLES=&FORMAT=image/png&TRANSPARENT=TRUE
The following request results in an image:-
http://localhost:8081/geoserver/ows?WIDTH=317&HEIGHT=317&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&BBOX=-20037508.34278924391,-20048966.10401460156,20037508.34278924391,20048966.10401459411&CRS=EPSG:3857&LAYERS=oceanwise:pm-ps&STYLES=&FORMAT=image/png&TRANSPARENT=TRUE
The requests are for a box 318 x 318 and 317 x 317 respectively. Boxes between
318 x 318 and 636 x 636 also fail. But requests for boxes smaller than 318 x
318 and larger than 636 x 636 succeed. I don't want to attach too much
significance to the formulation of the request. Save to say that there's a set
of requests that fail and a set of requests that do not fail.
Affected version: 2.15.2 - checking previous versions shows that the problem
does not occur in 2.14.0 but it does occur in 2.14.1 onward.
Environment:
Client: QGIS 8.3.1-Zanzibar
Container: Tomcat 8.5.43
JVM: Oracle Corporation: 1.8.0_162 (Java HotSpot(TM) 64-Bit Server VM)
Native JAI: false
Native JAI ImageIO: false
OS: Windows 10
______________________________________________________________________
This email has been scanned by the Symantec Email Security.cloud service.
For more information please visit http://www.symanteccloud.com
______________________________________________________________________
_______________________________________________
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
[email protected]<mailto:[email protected]>
https://lists.sourceforge.net/lists/listinfo/geoserver-users
______________________________________________________________________
This email has been scanned by the Symantec Email Security.cloud service.
For more information please visit http://www.symanteccloud.com
______________________________________________________________________
______________________________________________________________________
This email has been scanned by the Symantec Email Security.cloud service.
For more information please visit http://www.symanteccloud.com
______________________________________________________________________
_______________________________________________
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-users