Developer’s Corner: dynamic raster palettes and other spatiotemporal extensions for GeoServer

Dear Reader,

today we would like to introduce a new community module that we have been working on: ncWMS like extensions to perform easy dynamic mapping over raster data.

The first change introduced by the extension is the ability to easily add dynamic color palettes that will be applied on single banded raster data based on their statistics, but with the ability to control range and palette application from request parameters too. For example, let’s say we want to create a simple red to blue progression, with the ncWMS extension installed we can simply create a new style, choose the “dynamic palette” format, and enumerate the two colors:

redblue-editor

Then, let’s make sure the layer band configuration has a range consistent with the data, in this case, a very narrow one:

Selezione_006

Finally, we can make a simple request that will use the dynamic palette against the configured range:

countries_flexpart1

You can also try dynamically on this link: http://cloudsdi.geo-solutions.it/geoserver/wms?STYLES=,redblue&LAYERS=countries,flexpart&FORMAT=image%2Fpng8&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&SRS=EPSG%3A4326&BBOX=-137,15,-110,42&WIDTH=600&HEIGHT=600

The dynamics of the data appears to favor the low values, it’s possible to enhance the high portion by using a logarithmic palette instead, by adding “&logscale=true” to the request, this way: http://cloudsdi.geo-solutions.it/geoserver/wms?STYLES=,redblue&LAYERS=countries,flexpart&FORMAT=image%2Fpng8&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&SRS=EPSG%3A4326&BBOX=-137,15,-110,42&WIDTH=600&HEIGHT=600&logscale=true

countries_flexpart2

It’s also possible to concentrate on a specific range using the “&colorscalerange=0.00001,0.0002”, as follows: http://cloudsdi.geo-solutions.it/geoserver/wms?STYLES=,redblue&LAYERS=countries,flexpart&FORMAT=image%2Fpng8&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&SRS=EPSG%3A4326&BBOX=-137,20,-110,42&WIDTH=600&HEIGHT=500&colorscalerange=0.00001,0.0002

countries_flexpart3

Finally, one can generated an animation providing a time or elevation range, asking for the GIF format, and adding the “&animation=true” (here, with a different, more complex palette): http://cloudsdi.geo-solutions.it/geoserver/wms?STYLES=,x-Sst&LAYERS=countries,flexpart&FORMAT=image%2Fgif&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&SRS=EPSG%3A4326&BBOX=-137,20,-110,42&WIDTH=600&HEIGHT=500&time=2016-02-01/2016-03-01&animation=true&format_options=gif_loop_continuosly:true;gif_frames_delay:200

countries_flexpart

The official documentation provides more insight into these new features, while the module can be already downloaded as part of the GeoServer 2.10.x nightly builds (it’s a development series):

If you want to know more about how we can help your organization, don’t hesitate and get in touch with us! Make sure to check our Enterprise Services Offer which has been used to complete the work described in this post.

The GeoSolutions Team,

Geosolutions