Opened 11 years ago
Closed 9 years ago
#595 closed defect (fixed)
WCPS1.5_WCPS domain metadata expression inside interval
Reported by: | Piero Campalani | Owned by: | Bang Pham Huu |
---|---|---|---|
Priority: | major | Milestone: | 10.0 |
Component: | petascope | Version: | development |
Keywords: | domain interval | Cc: | Peter Baumann, Vlad Merticariu, Alex Dumitru |
Complexity: | Medium |
Description (last modified by )
domain
expressions are not correctly mapped to RasQL queries.
WCPS grammar says:
dimensionIntervalExpr: scalarExpr : scalarExpr | _domain_ ( coverageName , axisName , crsName )
But then the output of the domain
metadata expression is not translated to a proper subset in RasQL: it is pasted onto the query instead, causing error.
for c in (eobstest) return encode( c[Lat( domain(c, Lat, "http://localhost:8090/def/crs/EPSG/0/4326") )] , "csv") WCPS Error: Could not evaluate rasdaman query: 'select csv((c) [*:*,*:*,(-40.5,75.5)]) from eobstest AS c'
…is translated to:
--- select csv((c) [*:*,*:*,(-40.5,75.5)]) from eobstest AS c +++ select csv((c) [*:*,*:*,0:231)]) from eobstest AS c
@Peter: regarding the WCPS standard: I believe imageCrsDomain( coverageExpr , axisName )
should be allowed as well, for WCPS 2.0 ?
So that:
dimensionIntervalExpr: scalarExpr : scalarExpr | _domain_ ( coverageName , axisName , crsName ) | _imageCrsDomain_ ( coverageName , axisName )
Change History (14)
comment:1 by , 11 years ago
Description: | modified (diff) |
---|
comment:2 by , 11 years ago
Cc: | added |
---|
comment:3 by , 11 years ago
comment:4 by , 11 years ago
Priority: | major → critical |
---|
comment:5 by , 11 years ago
An other use case is, this time for the imageCrsDomain
, is when we need to scale dimensions of a coverage by the domain of different coverages, like in the following case I want to scale d
on spatial-only dimensions of c
:
for c in (eobstest_1), d in (eobstest_2) return encode( scale(d[Long(43:44), Lat(24:24.5)], { t:"CRS:1"( imageCrsDomain(d[Long(43:44), Lat(24:24.5)], t )), Long:"CRS:1"( imageCrsDomain(c[Long(43:44), Lat(24:24.5)], Long)), Lat:"CRS:1"( imageCrsDomain(c[Long(43:44), Lat(24:24.5)], Lat )) }), "csv")
This is not possible yet, the parser does not expect a metadata expression in the interval expression, and complains about not finding a COLON indeed.
comment:6 by , 11 years ago
this will be possible with WCPS 2 (a lesson learnt): via XQuery, domain info can be extracted from a describeCoverage($c) and used for subsetting another coverage.
comment:7 by , 11 years ago
Yes, I know (comment:3).
I wonder if the fix could be relatively quick & easy for the current implementation too, since in the end coverage constructors accept single-dimension imageCrsDomain
expression:
for c in (eobstest) return encode( coverage scatterplot over $x x( imageCrsDomain(c[t("1950-01-01T12"), Long(43:44), Lat(24:24.5)], Long)), $y y( imageCrsDomain(c[t("1950-01-01T12"), Long(43:44), Lat(24:24.5)], Lat) ), values ...
(raising to critical
for upcoming WW Europa Challenge)
comment:8 by , 10 years ago
Priority: | critical → major |
---|
For scaling it should be possible, see comment:14:ticket:387
I don't think this should be critical, especially with a Future milestone.
comment:9 by , 9 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
comment:10 by , 9 years ago
Cc: | removed |
---|---|
Milestone: | Future → 10.0 |
Summary: | WCPS domain metadata expression inside interval → WCPS1.5_WCPS domain metadata expression inside interval |
comment:11 by , 9 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
the patch was accepted, close here, thanks.
comment:12 by , 9 years ago
Resolution: | fixed |
---|---|
Status: | closed → reopened |
comment:13 by , 9 years ago
Owner: | changed from | to
---|---|
Status: | reopened → assigned |
comment:14 by , 9 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
the patch was accepted, close here, thanks.
indeed! in WCPS 2 we will have the euqivalent to a DescribeCoverage request, so the full slate of WCS metadata will be delivered.