= Grid Topology Issues List = [[TOC]] == Issue: slicing between axis coordinates == '''Description:''' What is the WCS subsetting result if a slicing coordinate is between two point coordinates on that axis? See also: [PetascopeSubsets petascope subsetting discussion] '''Alternatives:''' * Alt 1: empty result * Alt 2: take nearest value * Alt 3: interpolate between values '''Discussion:''' * Pro 1: * Con 1: '''Decision:''' Alt x. == Issue: trimming/slicing on axes not aligned with CRS axes == '''Description:''' The result of a WCS Core subsetting may not be a grid (ie, array) any more. However, the result of a subsetting, as per Core, of a gridded coverage should result in a gridded coverage again. This situation can occur if the coverage's domain grid establish axes irregular or warped or rotated wrt. the Native CRS axes. '''Definition:''' * '''Domain Grid''' = the grid established by the points of the domain set as expressed in the coverage's Native CRS. For Grid Coverages, this is a grid by construction. * '''Index Grid''' = the grid established by the (integer) position of the coordinate positions in relation to each other. Index Grid and Domain Grid are topologically isomorphic. '''Observations:''' * we believe that the origin of a coverage does not need to be inside array (as per GML 3.3) * trimming (and slicing?) generate grids where some points need to be existent for reasons of toppology, but do not have any meaning (nor in value, nor do they have a a valid geo position) * !GetCoverage establishes an intersection of domain D and bounding Box B. Intersection must maintain grid property, which is not naturally fulfilled. * offset vectors do not pose a problem for any coverage type (regular: offsets are the same everywhere, so position independent; irregular axes and GCPs: offsets are absolute, ie, depending on origin only and not on neighbor offset) * this is funcitonality of the WCS Core, so it needs to be expressed in terms of Native CRS, without resorting to resampling etc. '''Alternatives:''' * Alt 1: reconstruct grid by omitting elements of the intersection * Alt 2: reconstruct grid by introducing dummy nodes (like black pixels in reprojected images) * Alt 3: reconstruct grid by including adjacent nodes outside B, including their range values * Alt 4: reconstruct grid by including the minimal set of adjacent, but outside nodes necessary to copmlete the grid; set their range values to 0 or nil '''Discussion:''' * Con 1: loses data * Con 2: dummy nodes also have no valid coordinates (offset vectors or GCPs!), not only invalid data * Con 3: includes data "not wanted" '''Decision:''' Alt x.