[ https://issues.apache.org/jira/browse/SIS-610?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17980041#comment-17980041 ]
Martin Desruisseaux commented on SIS-610: ----------------------------------------- May be seen as a generalization of SIS-514. > GridDerivation.subgrid(…) should accept AOI with less dimensions than the grid > ------------------------------------------------------------------------------ > > Key: SIS-610 > URL: https://issues.apache.org/jira/browse/SIS-610 > Project: Spatial Information Systems > Issue Type: Improvement > Components: Coverage > Affects Versions: 1.0, 1.1, 1.2, 1.3, 1.4 > Reporter: Martin Desruisseaux > Assignee: Martin Desruisseaux > Priority: Major > > When an Area Of Interest (AOI) is specified by a call to > {{GridGeometry.derive().subgrid(…)}}, the current implementation requires > that the AOI has at least as many dimensions as the original grid, because > the result of this operation is a grid having the number of dimensions of the > original grid. The problem is that we sometime have a two-dimensional only > AOI and nevertheless want to apply it to a three- or four-dimensional grid. > Apache SIS should be able to modify the {{GridGeometry}} only in the > dimensions specified by the AOI, and leave the other dimensions unchanged. > As a special case, SIS 1.5 accepts an AOI with less dimensions if all extra > dimensions have a number of cells equals to 1 (i.e., the grid is a slice). > This issue is about removing that restriction. > To reproduce (expected behavior is success, current behavior is > {{OperationNotFoundException}} between “WGS 84” and “WGS 84 + Ellipsoidal > height +…”): > {code:java} > private static void testMultidimensionalSlicing() throws Exception { > var sourceEnv = new GeneralEnvelope(CRS.compound( > CommonCRS.defaultGeographic(), > CommonCRS.Vertical.ELLIPSOIDAL.crs(), > CommonCRS.Temporal.JAVA.crs() > )); > sourceEnv.setRange(0, 10, 20); > sourceEnv.setRange(1, 30, 40); > sourceEnv.setRange(2, 0, 2); > sourceEnv.setRange(3, 0, 2); > var sourceGrid = new GridGeometry( > new GridExtent(null, new long[4], new long[] { 2, 2, 2, 2 }, > false), > sourceEnv, > GridOrientation.DISPLAY > ); > var targetGrid = new GridGeometry( > new GridExtent(2, 2), > new Envelope2D(CommonCRS.defaultGeographic(), 10, 30, 10, 10), > GridOrientation.DISPLAY > ); > var slice = sourceGrid.derive() > .subgrid(targetGrid) > .build(); > } > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)