public WCSDimensionsSubsetHelper( GridCoverage2DReader reader, GetCoverageType request, CoverageInfo ci, CoordinateReferenceSystem subsettingCRS, EnvelopeAxesLabelsMapper envelopeDimensionsMapper) throws IOException { this.request = request; this.coverageInfo = ci; // Note that dimensions will be returned if existing and enabled too this.enabledDimensions = WCSDimensionsHelper.getDimensionsFromMetadata(ci.getMetadata()); this.subsettingCRS = subsettingCRS; this.reader = reader; this.envelopeDimensionsMapper = envelopeDimensionsMapper; timeDimension = enabledDimensions.get(ResourceInfo.TIME); elevationDimension = enabledDimensions.get(ResourceInfo.ELEVATION); if (timeDimension != null || elevationDimension != null || !enabledDimensions.isEmpty()) { accessor = new ReaderDimensionsAccessor(reader); } }
/** * Builds a dimension helper from the CoverageInfo * * @param encodedId The encoded coverage id * @param ci The CoverageInfo * @param reader * @return A WCSDimensionsHelper, or null if there are no extra dimensions to handle * @throws Exception */ public static WCSDimensionsHelper getWCSDimensionsHelper( String encodedId, CoverageInfo ci, GridCoverage2DReader reader) throws Exception { WCSDimensionsHelper dimensionsHelper = null; MetadataMap metadata = ci.getMetadata(); Map<String, DimensionInfo> dimensionsMap = WCSDimensionsHelper.getDimensionsFromMetadata(metadata); // Setup a dimension helper in case we found some dimensions for that coverage if (!dimensionsMap.isEmpty()) { dimensionsHelper = new WCSDimensionsHelper(dimensionsMap, reader, encodedId); } return dimensionsHelper; }