Opened 17 months ago

Last modified 7 weeks ago

#1304 assigned question

3D coverages in WMS

Reported by: dmisev Owned by: dmisev
Priority: major Milestone: 10.0
Component: petascope Version: development
Keywords: Cc: bphamhuu, vmerticariu, pbaumann
Complexity: Medium

Description (last modified by dmisev)

WMS doesn't seem to support 3D coverages? It would be useful to allow them in some way, perhaps by a mandatory rasql style. E.g. consider this example:

Change detection by putting NDVI indexes of different dates in each band of the output; tyrol_6 is a landsat cube with 6 time slices:

	for c in (tyrol_6) return encode(
	{
		red:   (((c.nir - c.red) / (c.nir + c.red))[ansi("2015-08-20")] * 255);
		green: (((c.nir - c.red) / (c.nir + c.red))[ansi("2015-07-19")] * 255);
		blue:  (((c.nir - c.red) / (c.nir + c.red))[ansi("2015-06-17")] * 255)
	}, 
	"png")

rasql fragment:

    { (($Iterator[*:*,*:*,5].3 - $Iterator[*:*,*:*,5].2) / ($Iterator[*:*,*:*,5].3 - -$Iterator[*:*,*:*,5].2)) * 255, (($Iterator[*:*,*:*,3].3 - $Iterator[*:*,*:*,3].2) / ($Iterator[*:*,*:*,3].3 - -$Iterator[*:*,*:*,3].2)) * 255, (($Iterator[*:*,*:*,1].3 - $Iterator[*:*,*:*,1].2) / ($Iterator[*:*,*:*,1].3 - -$Iterator[*:*,*:*,1].2)) * 255 }

Change History (8)

comment:1 Changed 17 months ago by dmisev

  • Description modified (diff)

comment:2 Changed 17 months ago by mdumitru

Actually the model supports it already with both time and other dimensions in a standardized manner.
The missing part is in the import from WCS coverage to WMS layer. It would be a couple of days work at most and many users seem to like the idea so maybe we could add it in one of the next sprints?

comment:3 Changed 17 months ago by dmisev

That would be great.

comment:4 Changed 14 months ago by bphamhuu

beside the RasqlFragments? in Insert Style from Dimitar, there is also a official parameters which support multi-dimensional coverage (max to 4D) in WMS 1.3 is: time and elevation. So it need to be handled as well, here is an example from WMS 1.3 document.

VERSION=1.3.0 
&REQUEST=GetMap 
&LAYERS=ozone 
&CRS=CRS:84 
&BBOX=-180,-90,180,90
&WIDTH=600
&HEIGHT=300
&ELEVATION=1000
&TIME=2000-08-03
&FORMAT=image/gif

e.g: the time parameter can be interval (e.g: 1950-01-01:1950-01-06) or list of dates (2008-01-01,2008-01-05,2008-01-08), elevation parameter should be work the same.

comment:5 Changed 7 months ago by dmisev

  • Cc vmerticariu added
  • Owner changed from mdumitru to dmisev,
  • Status changed from new to assigned

comment:6 Changed 7 months ago by dmisev

  • Owner changed from dmisev, to dmisev

comment:7 Changed 5 months ago by bphamhuu

I'm investigating the code WMS 1.3 to migrate to Spring. Actually, it is easy to support 3D, 4D in WMS as it does not import any collections to Rasdaman. WMS stored the Dimension model about the different axes besides X, Y axes. Then when a request from WMS with Time axis or other kinds of axes, it will work as same as WCS subset.

There are 2 cases:

+ Slicing on other axes (e.g: Time="1950-01-01T02:03:05Z"&Heigh=500), return only 1 PNG image.

+ Trimming on time axes (e.g: Time="1950-01-01T02:03:05Z/1950-01-31T03:05Z"&Heigh=500), return only 1 PNG image from all the dates which are overlayed (for example: There are 10 dates from this time interval, so WMS needs to generate a rasql query which using overlay operation for 10 time value (0:9)).

Examples about WMS with slicing Time: http://bobtorgerson.github.io/Leaflet-WMS-Time-Slider/

Example about WMS with trimming Time: https://boundlessgeo.com/2015/03/using-wms-time-explore-data/

comment:8 Changed 7 weeks ago by bphamhuu

  • Cc pbaumann added

@pbaumann: can it be closed as your comment?http://rasdaman.org/ticket/1588#comment:2

Note: See TracTickets for help on using tickets.