Opened 8 years ago

Closed 6 years ago

#1304 closed enhancement (fixed)

3D coverages in WMS

Reported by: Dimitar Misev Owned by: Bang Pham Huu
Priority: major Milestone: 9.7
Component: petascope Version: development
Keywords: Cc: Bang Pham Huu, Vlad Merticariu
Complexity: Medium

Description (last modified by Dimitar Misev)

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 (11)

comment:1 by Dimitar Misev, 8 years ago

Description: modified (diff)

comment:2 by Alex Dumitru, 8 years ago

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 by Dimitar Misev, 8 years ago

That would be great.

comment:4 by Bang Pham Huu, 8 years ago

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 by Dimitar Misev, 7 years ago

Cc: Vlad Merticariu added
Owner: changed from Alex Dumitru to dmisev,
Status: newassigned

comment:6 by Dimitar Misev, 7 years ago

Owner: changed from dmisev, to Dimitar Misev

comment:7 by Bang Pham Huu, 7 years ago

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 by Bang Pham Huu, 7 years ago

@pbaumann: WMS 1.3 specified about nD+ for WMS http://portal.opengeospatial.org/files/?artifact_id=14416

So this enhancement for WMS in petascope was standardized and it could be implemented.

7.3.3.12 TIME
The use of Time values is specified in 6.7.6 and in Annexes C and D.
7.3.3.13 ELEVATION
The use of Elevation values is specified in 6.7.5 and in Annex C.
7.3.3.14 Other sample dimensions
The use of sample dimension values is specified in 6.7.7 and in Annex C

comment:9 by Bang Pham Huu, 6 years ago

Milestone: 10.09.6
Owner: changed from Dimitar Misev to Bang Pham Huu

As Peter agreed to process, I'll check this ticket next week.

comment:10 by Dimitar Misev, 6 years ago

Milestone: 9.69.7

comment:11 by Bang Pham Huu, 6 years ago

Resolution: fixed
Status: assignedclosed
Type: questionenhancement
Note: See TracTickets for help on using tickets.