#1322 closed defect (invalid)

WCS_ScaleExtent with wrong bounding box

Reported by: bphamhuu Owned by:
Priority: major Milestone: 9.3
Component: petascope Version: development
Keywords: scaleextent, wcs Cc: pbaumann, dmisev, vmerticariu
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).

Change History (1)

comment:1 Changed 10 months ago by bphamhuu

  • Resolution set to invalid
  • Status changed from new to closed

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.

http://localhost:8080/rasdaman/ows?service=WCS&request=GetCoverage&version=2.0.1
&coverageId=test_irr_cube_2&subset=E(80000,100000)&subset=N(5100000,5124000)
&subset=ansi(148655,148657)&scaleextent=E(0:100)

for c in (test_irr_cube_2) return encode(scale(trim(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" (148655:148657)}), 
    {E:"CRS:1"(0:100),N:"CRS:1"(33:35),ansi:"CRS:1"(1:1)}), "csv")
Note: See TracTickets for help on using tickets.