1

I have a GeoServer (2.10.0) instance into which I have loaded some GeoTiff files, one per timestep, using the ImageMosaic plugin. I can query them with standard WMS requests with the parameter TIME=yyyy-mm-dd. The relevant data is quite sparse and I have created an SLD style which renders the background data as transparent.

What I would like is to pass a string such as TIME=2013-01-01/2015-01-01 and have all of the images which fall within that time range returned and layered on top of one another. What happens is that I get the latest image in that time range returned. Is what I want to do possible with GeoServer, and if so how can I enable it?

EDIT: After further investigation it appears the GeoServer is layering the data, but:

  • The background data value in the GeoTIFF is zero and NullValues in the Coverage Band details is set to zero, as is BackgroundValues
  • Despite this, large regions of background data from the latest time are obscuring all the data from the earlier times
  • The regions of no data, once layered and obscuring older data are then correctly rendered as transparent (as defined in the SLD style)
  • I can't set the InputTransparentColor (or OutputTransparentColor), I think because the GeoTIFF is not RGB. If I try, I get:

    org.geotools.data.DataSourceException: Unable to create this mosaic java.lang.IllegalStateException: Unsupported data type.

So I think the problem is now that when using the ImageMosaic plugin, I cannot configure the value 0 to correspond to missing data properly.

I have tested all 16 combinations of:

  • MergeBehaviour: FLAT or STACK
  • BackgroundValues: 0 or empty
  • Coverage Band Null Values: 0 or empty
  • Coverage Band minRange: 0 or 1 (the values in the GeoTiff range from 0-4, with 0 representing no data)

None of these 16 combinations work. Any ideas?

  • I'm not entirely sure I understand the structure of your raster data, so this might not be appropriate, but have you considered using a WCS instead of a WMS? That would certainly allow you to query according to a time axis, see gis.stackexchange.com/questions/177305/… for an example of such a query. – nmtoken Nov 25 '16 at 19:30
1

It might be a configuration issue. Here is a sample that does apparently what you asked for, first link, only latest images (last month, configured to have "P1M/PRESENT" as the default time value):

http://cloudsdi.geo-solutions.it/geoserver/landsat8/wms?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&FORMAT=image%2Fjpeg&TRANSPARENT=true&STYLES&LAYERS=landsat8%3AB3&SRS=EPSG%3A4326&WIDTH=708&HEIGHT=768&BBOX=-125.52978515625%2C27.75146484375%2C-109.97314453125%2C44.62646484375

second link with range, all images in specified range:

http://cloudsdi.geo-solutions.it/geoserver/landsat8/wms?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&FORMAT=image%2Fjpeg&TRANSPARENT=true&STYLES&LAYERS=landsat8%3AB3&SRS=EPSG%3A4326&WIDTH=708&HEIGHT=768&BBOX=-125.52978515625%2C27.75146484375%2C-109.97314453125%2C44.62646484375&time=2016-09-01/2016-12-01

The layer in question is a image mosaic with time dimension enabled:

enter image description here

  • Thanks - I tried this which led me to investigate further. GeoServer is now layering the images, but the problem is that missing data is obscuring valid data - see the recent edit. – Guy G Nov 28 '16 at 10: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.