Description
Provides methods for reducing the number of dimensions of a grid coverage. For example it should be possible to see a slice of a three-dimensional GridCoverage as two-dimensional GridCoverage.
We introduce a new public class, DimensionalityReduction, which contains information about which grid axes to keep (select(…) method) or remove (remove(…) method). Other methods allow to specify which coordinates to use in the removed axes for making a slice. That DimensionalityReduction class contains apply(…) methods for applying dimensionality reduction on a GridExtent, GridGeometry, GridCoverage, DirectPosition among others, and also a few reverse(…) methods for "inflating" a GridExtent or GridGeometry to the original number of dimensions. The latter are necessary for delegating read operations of a slice to the original DataStore.
This is part of the pull request #32, refactored with the introduction of above-cited DimensionalityReduction class.