Opened 8 years ago
Closed 8 years ago
#1322 closed defect (invalid)
WCS_ScaleExtent with wrong bounding box
Reported by: | Bang Pham Huu | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | 9.3 |
Component: | petascope | Version: | development |
Keywords: | scaleextent, wcs | Cc: | Peter Baumann, Dimitar Misev, Vlad Merticariu |
Complexity: | Medium |
Description
WCS query with scaleextent in 1 axis (E) and irr_cube_2 coverage has 3 axes (E, N, t)
service=WCS&request=GetCoverage&version=2.0.1&coverageId=irr_cube_2 &subset=E(80000,100000)&subset=N(5100000,5124000)&subset=ansi(148654) &scaleextent=E(0:1000)&format=image/png
which is translated in WCPS 1.0
for c in (irr_cube_2) return encode(scale(slice(trim(trim(c, {N:"http://localhost:8080/def/crs/EPSG/0/32633" (5100000:5124000)}), {E:"http://localhost:8080/def/crs/EPSG/0/32633" (80000:100000)}), {ansi:"http://localhost:8080/def/crs/OGC/0/AnsiDate" (148654)}), {E:"CRS:1"(0:1000),N:"CRS:1"(33:35)}), "png")
It is not correct (when automatically set extent of E axis in "CRS:1") and N extent is (33:35).
From the WCS Scaling Extension
https://portal.opengeospatial.org/files/12-039 (page 9) Grid domain X’ of dimension d where the domain extent is the same as in c for all those axes '''not mentioned''' in s, and set to [sli,…,shi] for all axes ai occurring in s.
I've a question with regard to the definition in the document, with this behavior, in example (irr_cube_2 with axes: E, N, t) and I only set E(0:1000), then it will use the original extents for N and t.
WCPS query expected should be:
for c in (irr_cube_2) return encode(scale(slice(trim(trim(c, {N:"http://localhost:8080/def/crs/EPSG/0/32633" (5100000:5124000)}), {E:"http://localhost:8080/def/crs/EPSG/0/32633" (80000:100000)}), {ansi:"http://localhost:8080/def/crs/OGC/0/AnsiDate" (148654)}), {E:"http://localhost:8080/def/crs/EPSG/0/32633"(EXTENT_OF_E), N:"http://localhost:8080/def/crs/EPSG/0/32633"(EXTENT_OF_N), t:"http://localhost:8080/def/crs/OGC/0/AnsiDate" (EXTENT_OF_T)}), "png")
the output is 3D by any cases (as you can see it will create a new coverage which get all the default extent if axis is not mentioned in scaleextent() operation).
Is that correct behavior? Because with this I cannot scale to only 2D extent (e.g: E and N) or 1D (E, N, t).
scaleextent will set the grid domains from the requesting axis (e.g: scaleextent=E(0:100)) and add other unmentioned axes with their grid domains respectively.