public Optional<CoverageCoordSys> subset(SubsetParams params) { return subset(params, false, true); }
Map<String, CoverageCoordSys> subsetCFCoordSys = new HashMap<>(); for (CoverageCoordSys orgCs : orgCoordSys.values()) { ucar.nc2.util.Optional<CoverageCoordSys> opt = orgCs.subset(params, true, false); // subsetCF make do some CF tweaks, not needed in regular subset if (!opt.isPresent()) return ucar.nc2.util.Optional.empty(opt.getErrorMessage());
GribCollectionImmutable.VariableIndex vindex = (GribCollectionImmutable.VariableIndex) coverage.getUserObject(); CoverageCoordSys orgCoordSys = coverage.getCoordSys(); ucar.nc2.util.Optional<CoverageCoordSys> opt = orgCoordSys.subset(params, false, true); if (!opt.isPresent()) throw new InvalidRangeException(opt.getErrorMessage());
DtCoverage grid = (DtCoverage) coverage.getUserObject(); CoverageCoordSys orgCoordSys = coverage.getCoordSys(); ucar.nc2.util.Optional<CoverageCoordSys> opt = orgCoordSys.subset(params); if (!opt.isPresent()) throw new InvalidRangeException(opt.getErrorMessage());
@Test public void testFmrcStride() throws IOException, InvalidRangeException { try (FeatureDatasetCoverage cc = CoverageDatasetFactory.open(endpoint)) { Assert.assertNotNull(endpoint, cc); CoverageCollection gcs = cc.findCoverageDataset(FeatureType.FMRC); if (gcs == null) return; // not all datasets have an Fmrc logger.debug("testFmrcStride {}", endpoint); Coverage cover = gcs.findCoverage(covName); Assert.assertNotNull(covName, cover); CoverageCoordSys csys = cover.getCoordSys(); int[] csysShape = csys.getShape(); logger.debug("csys shape = {}", Misc.showInts(csysShape)); SubsetParams params = new SubsetParams().setHorizStride(2).set(SubsetParams.runtimeAll, true); Optional<CoverageCoordSys> opt = csys.subset(params); if (!opt.isPresent()) { logger.debug("err={}", opt.getErrorMessage()); assert false; } CoverageCoordSys subsetCoordSys = opt.get(); int[] subsetShape = subsetCoordSys.getShape(); logger.debug("csysSubset shape = {}", Misc.showInts(subsetShape)); int n = csysShape.length; csysShape[n-1] = (csysShape[n-1]+1)/2; csysShape[n-2] = (csysShape[n-2]+1)/2; Assert.assertArrayEquals(csysShape, subsetShape); } }
@Test public void testBestStride() throws IOException, InvalidRangeException { logger.debug("testBestStride {}", endpoint); try (FeatureDatasetCoverage cc = CoverageDatasetFactory.open(endpoint)) { Assert.assertNotNull(endpoint, cc); CoverageCollection gcs = cc.findCoverageDataset(FeatureType.GRID); Assert.assertNotNull("gcs", gcs); Coverage cover = gcs.findCoverage(covName); Assert.assertNotNull(covName, cover); CoverageCoordSys csys = cover.getCoordSys(); int[] csysShape = csys.getShape(); logger.debug("csys shape = {}", Misc.showInts(csysShape)); SubsetParams params = new SubsetParams().setHorizStride(2); Optional<CoverageCoordSys> opt = csys.subset(params); if (!opt.isPresent()) { logger.debug("err={}", opt.getErrorMessage()); assert false; } CoverageCoordSys subsetCoordSys = opt.get(); int[] subsetShape = subsetCoordSys.getShape(); logger.debug("csysSubset shape = {}", Misc.showInts(subsetShape)); int n = csysShape.length; csysShape[n-1] = (csysShape[n-1]+1)/2; csysShape[n-2] = (csysShape[n-2]+1)/2; Assert.assertArrayEquals(csysShape, subsetShape); } }
@Test public void testBestStride() throws IOException, InvalidRangeException { String endpoint = TestDir.cdmUnitTestDir + "gribCollections/gfs_2p5deg/gfs_2p5deg.ncx4"; String covName = "Ozone_Mixing_Ratio_isobaric"; System.out.printf("Test Dataset %s%n", endpoint); try (FeatureDatasetCoverage cc = CoverageDatasetFactory.open(endpoint)) { Assert.assertNotNull(endpoint, cc); CoverageCollection gcs = cc.findCoverageDataset(FeatureType.GRID); Assert.assertNotNull("gcs", gcs); Coverage cover = gcs.findCoverage(covName); Assert.assertNotNull(covName, cover); CoverageCoordSys csys = cover.getCoordSys(); int[] csysShape = csys.getShape(); System.out.printf("csys shape = %s%n", Misc.showInts(csysShape)); SubsetParams params = new SubsetParams().setHorizStride(2); Optional<CoverageCoordSys> opt = csys.subset(params); if (!opt.isPresent()) { System.out.printf("err=%s%n", opt.getErrorMessage()); assert false; } CoverageCoordSys subsetCoordSys = opt.get(); int[] subsetShape = subsetCoordSys.getShape(); System.out.printf("csysSubset shape = %s%n", Misc.showInts(subsetShape)); int n = csysShape.length; csysShape[n-1] = (csysShape[n-1]+1)/2; csysShape[n-2] = (csysShape[n-2]+1)/2; Assert.assertArrayEquals(csysShape, subsetShape); } }
Optional<CoverageCoordSys> opt = csys.subset(subset); Assert.assertTrue(opt.isPresent());
Optional<CoverageCoordSys> opt = csys.subset(subset); Assert.assertTrue(opt.isPresent());
Optional<CoverageCoordSys> opt = csys.subset(params); if (!opt.isPresent()) { System.out.printf("err=%s%n", opt.getErrorMessage());
Optional<CoverageCoordSys> opt = csys.subset(subset); Assert.assertTrue(opt.isPresent());