Opened 4 years ago

Closed 3 years ago

#2381 closed enhancement (fixed)

Petascope - supports WCPS's decode() operator

Reported by: Bang Pham Huu Owned by: Bang Pham Huu
Priority: major Milestone: 10.0
Component: petascope Version: 9.8
Keywords: Cc:
Complexity: Medium

Description

rasql knows positional parameters which can actually refer to arrays passed as an argument to a query, together with a decode() function.
This should be made available in WCPS as well, for example in a POST request providing a NetCDF file for direct input:

for $s in (storedCoverage),
    $p in ( decode($1, "netcdf" ) )
return
  max( $s - $p )

The WCS-Processing standard defines a pure GET/KVP and a pure POST alternative, with POST however bound to XML structures (which we do not want any longer these days). So we need to deviate from the standard, it is not really practical.

So let us define WCPS query parameter support as is reasonable today:

  • ProcessCoverages request receives a mandatory query parameter and optionally number parameters
  • A query parameter has key query or q and can be sent via GET or POST; however, any request may contain only one query.
  • Position parameters have natural numbers as keys; no number may appear twice, and only those numbers mentioned in a query $ parameter may occur.
  • Semantics of such a request is: key i replaces formal query parameter $i
  • in the implementation, coverage-valued parameters are passed to rasql as $ parameters

Example:

curl  -F "query=for $c in () return ... decode($1, \"$2\")"
      -F "1=fileContents"
      -F "2=image/jpeg"
      "http://localhost:8080/rasdaman/ows?service=WCS&version=2.1.0&request=ProcessCoverages"

roadmap:

  • stage 1: single coverage-valued parameter, supporting only 2D GeoTIFF
  • later stage: multiple parameters, more coverage types (as far as can be recognized)

Change History (2)

comment:1 by Bang Pham Huu, 4 years ago

Summary: Petascope - supports WCPS's encode() operatorPetascope - supports WCPS's decode() operator

comment:2 by Bang Pham Huu, 3 years ago

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