Opened 2 years ago

Closed 2 years ago

#2655 closed defect (fixed)

NEW - WCPS CrsTransform supports geo XY axes' resolutions

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

Description

T combine two coverages with different geo XY axes' resolutions, for example:

  • WorldDEMNeo_DSM: geo X/Y axis's resolution: 0.000041666666667
  • WorldDEM_DSM or WorldDEM_LIT: geo X/Y axis's resolution: 0.000111111111111.

And the 12m (0.000111111111111 degre) resolution coverages have to be rescaled to 5m (0.000041666666667) in the query by bicubic interpolation

New syntax for CrsTransform

  • Long syntax:
  crsTransform(coverageExpression,
      {AxisX:"www.opengis.net/def/area/EPSG/0/4326", 
       AxisY:"www.opengis.net/def/area/EPSG/0/4326"},
      {Interpolation},
      {AxisX:GeoXResolution, 
       AxisY:GeoYResolution}  
     )
  • Or shorthand syntax:
  crsTransform(coverageExpression,
        "EPSG:CRS",
      {Interpolation},
      {AxisX:GeoXResolution, 
       AxisY:GeoYResolution}  
  )

NOTE: GeoXResolution / GeoYResolution can be one of:

  1. constant resolution:
    { Lon:0.000041666666667, ... }
    
  2. resolution from another coverage:
    { Lon:domain($cov, Lon).resolution, ... }
    
  3. (bonus) scalar expressions:
    { Lon:0.2*3, ... }
    

Example:

A demo query, it will look like (NOTE: both 2 operands must have the same grid extents to perform binary operator):

for $c in WorldDEMNeo_DSM,
    $d in WorldDEM_DSM
let $cutOut := [Long(-62.633:-62.586), Lat(-8.145:-8.112)]

    return 
       encode(
               $c[ $cutOut]  - 
               crsTransform($d[ $cutOut ], "EPSG:4326", 
               { Lon:0.000041666666667, Lat:0.000041666666667 })

       , "image/png")
     
          

Change History (1)

comment:1 by Bang Pham Huu, 2 years ago

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