@Test public void TestCoverageSize() throws IOException { String endpoint = TestDir.cdmUnitTestDir + "ncss/GFS/CONUS_80km/GFS_CONUS_80km_20120227_0000.grib1"; logger.info("open {}", endpoint); try (FeatureDatasetCoverage cc = CoverageDatasetFactory.open(endpoint)) { assert cc != null; Assert.assertEquals(1, cc.getCoverageCollections().size()); CoverageCollection gds = cc.getCoverageCollections().get(0); Assert.assertNotNull(endpoint, gds); Assert.assertEquals(FeatureType.GRID, gds.getCoverageType()); String covName = "Temperature_isobaric"; Coverage cover = gds.findCoverage(covName); Assert.assertNotNull(covName, cover); long size = cover.getSizeInBytes(); Assert.assertEquals(25243920, size); covName = "Relative_humidity_layer_between_two_sigmas_layer"; cover = gds.findCoverage(covName); Assert.assertNotNull(covName, cover); size = cover.getSizeInBytes(); Assert.assertEquals(870480, size); } }
@Test public void TestCFWriterCoverageRead() throws IOException, InvalidRangeException { String endpoint = TestDir.cdmUnitTestDir + "ncss/test/GFS_CONUS_80km_20120227_0000.grib1.nc4"; logger.info("open {}", endpoint); try (FeatureDatasetCoverage cc = CoverageDatasetFactory.open(endpoint)) { assert cc != null; Assert.assertEquals(1, cc.getCoverageCollections().size()); CoverageCollection gds = cc.getCoverageCollections().get(0); Assert.assertNotNull(endpoint, gds); Assert.assertEquals(FeatureType.FMRC, gds.getCoverageType()); String covName = "Temperature_isobaric"; Coverage cover = gds.findCoverage(covName); Assert.assertNotNull(covName, cover); long size = cover.getSizeInBytes(); Assert.assertEquals(25243920, size); SubsetParams subset = new SubsetParams().setVertCoord(300.0).setTimeOffset(42.0); GeoReferencedArray geo = cover.readData(subset); Array data = geo.getData(); logger.info("{}", Misc.showInts(data.getShape())); } } }
@Test public void TestMRUTPRead() throws IOException, InvalidRangeException { String endpoint = TestDir.cdmUnitTestDir + "gribCollections/tp/GFSonedega.ncx4"; logger.debug("open {}", endpoint); try (FeatureDatasetCoverage cc = CoverageDatasetFactory.open(endpoint)) { assert cc != null; Assert.assertEquals(1, cc.getCoverageCollections().size()); CoverageCollection gds = cc.getCoverageCollections().get(0); Assert.assertEquals(FeatureType.GRID, gds.getCoverageType()); String covName = "Relative_humidity_sigma"; Coverage cover = gds.findCoverage(covName); Assert.assertNotNull(covName, cover); long size = cover.getSizeInBytes(); Assert.assertEquals(2*181*360*4, size); SubsetParams subset = new SubsetParams().setTimeOffset(6); GeoReferencedArray geo = cover.readData(subset); Array data = geo.getData(); logger.debug("{}", Misc.showInts(data.getShape())); Assert.assertArrayEquals(new int[]{1, 1, 181, 360}, data.getShape()); float val = data.getFloat(3179); logger.debug("data val at {} = {}", 3179, val); Assert2.assertNearlyEquals(98.0, val); val = data.getFloat(5020); logger.debug("data val at {} = {}", 5020, val); Assert2.assertNearlyEquals(60.0, val); } }
@Test public void TestMRUTCRead() throws IOException, InvalidRangeException { String endpoint = TestDir.cdmUnitTestDir + "gribCollections/anal/HRRRanalysis.ncx4"; logger.debug("open {}", endpoint); try (FeatureDatasetCoverage cc = CoverageDatasetFactory.open(endpoint)) { assert cc != null; Assert.assertEquals(1, cc.getCoverageCollections().size()); CoverageCollection gds = cc.getCoverageCollections().get(0); Assert.assertEquals(FeatureType.GRID, gds.getCoverageType()); String covName = "Temperature_isobaric"; Coverage cover = gds.findCoverage(covName); Assert.assertNotNull(covName, cover); long size = cover.getSizeInBytes(); Assert.assertEquals(4*5*1377*2145*4, size); SubsetParams subset = new SubsetParams().setVertCoord(70000).setTimeOffset(2); GeoReferencedArray geo = cover.readData(subset); Array data = geo.getData(); logger.debug("{}", Misc.showInts(data.getShape())); Assert.assertArrayEquals(new int[]{1, 1, 1377, 2145}, data.getShape()); float val = data.getFloat(40600); logger.debug("data val at {} = {}", 40600, val); Assert2.assertNearlyEquals(281.627563, val); val = data.getFloat(55583); logger.debug("data val at {} = {}", 55583, val); Assert2.assertNearlyEquals(281.690063, val); } }
@Test public void TestBestRead() throws IOException, InvalidRangeException { String endpoint = TestDir.cdmUnitTestDir + "gribCollections/gfs_conus80/gfsConus80_file.ncx4"; logger.debug("open {}", endpoint); try (FeatureDatasetCoverage cc = CoverageDatasetFactory.open(endpoint)) { assert cc != null; Assert.assertEquals(2, cc.getCoverageCollections().size()); CoverageCollection gds = cc.getCoverageCollections().get(1); Assert.assertEquals(FeatureType.GRID, gds.getCoverageType()); String covName = "Temperature_isobaric"; Coverage cover = gds.findCoverage(covName); Assert.assertNotNull(covName, cover); long size = cover.getSizeInBytes(); Assert.assertEquals(41*29*65*93*4, size); SubsetParams subset = new SubsetParams().setVertCoord(300.0).setTime(useDate); GeoReferencedArray geo = cover.readData(subset); Array data = geo.getData(); logger.debug("{}", Misc.showInts(data.getShape())); Assert.assertArrayEquals(new int[] {1,1,65,93}, data.getShape()); float first = data.getFloat(0); float last = data.getFloat((int)data.getSize()-1); logger.debug("data first = {} last = {}", first, last); Assert2.assertNearlyEquals(241.699997, first); Assert2.assertNearlyEquals(225.099991, last); } }
Coverage cover = gds.findCoverage(covName); Assert.assertNotNull(covName, cover); long size = cover.getSizeInBytes(); Assert.assertEquals(6*35*9*65*93*4, size);
@Test public void TestSRCRead() throws IOException, InvalidRangeException { String endpoint = TestDir.cdmUnitTestDir + "gribCollections/gfs_conus80/20141025/GFS_CONUS_80km_20141025_0000.grib1.ncx4"; logger.debug("open {}", endpoint); try (FeatureDatasetCoverage cc = CoverageDatasetFactory.open(endpoint)) { assert cc != null; Assert.assertEquals(1, cc.getCoverageCollections().size()); CoverageCollection gds = cc.getCoverageCollections().get(0); Assert.assertEquals(FeatureType.GRID, gds.getCoverageType()); String covName = "Temperature_isobaric"; Coverage cover = gds.findCoverage(covName); Assert.assertNotNull(covName, cover); long size = cover.getSizeInBytes(); Assert.assertEquals(25243920, size); SubsetParams subset = new SubsetParams().setVertCoord(200.0).setTimeOffset(42.0); GeoReferencedArray geo = cover.readData(subset); Array data = geo.getData(); logger.debug("{}", Misc.showInts(data.getShape())); Assert.assertArrayEquals(new int[] {1,1,65,93}, data.getShape()); float first = data.getFloat(0); float last = data.getFloat((int)data.getSize()-1); logger.debug("data first = {} last = {}", first, last); Assert2.assertNearlyEquals(219.5f, first); Assert2.assertNearlyEquals(218.6f, last); } }
@Test public void TestTwoDRead() throws IOException, InvalidRangeException { String endpoint = TestDir.cdmUnitTestDir + "gribCollections/gfs_conus80/gfsConus80_file.ncx4"; logger.debug("open {}", endpoint); try (FeatureDatasetCoverage cc = CoverageDatasetFactory.open(endpoint)) { assert cc != null; Assert.assertEquals(2, cc.getCoverageCollections().size()); CoverageCollection gds = cc.getCoverageCollections().get(0); Assert.assertEquals(FeatureType.FMRC, gds.getCoverageType()); String covName = "Temperature_isobaric"; Coverage cover = gds.findCoverage(covName); Assert.assertNotNull(covName, cover); long size = cover.getSizeInBytes(); Assert.assertEquals(6*36*29*65*93*4, size); // LOOK if we dont set the runtime, assume latest. driven by Cdmrf spec. could be different. SubsetParams subset = new SubsetParams().setVertCoord(300.0).setTime(useDate); GeoReferencedArray geo = cover.readData(subset); Array data = geo.getData(); logger.debug("{}", Misc.showInts(data.getShape())); Assert.assertArrayEquals(new int[] {1,1,1,65,93}, data.getShape()); float first = data.getFloat(0); float last = data.getFloat((int)data.getSize()-1); logger.debug("data first = {} last = {}", first, last); Assert2.assertNearlyEquals(241.699997, first); Assert2.assertNearlyEquals(225.099991, last); } }
Coverage cover = gds.findCoverage(covName); Assert.assertNotNull(covName, cover); long size = cover.getSizeInBytes(); Assert.assertEquals(25243920, size);
Coverage cover = gds.findCoverage(covName); Assert.assertNotNull(covName, cover); long size = cover.getSizeInBytes(); Assert.assertEquals(6433128, size);
Assert.assertArrayEquals(new int[]{1631, 1465}, shape); long size = cover.getSizeInBytes(); Assert.assertEquals(1631 * 1465 * DataType.USHORT.getSize(), size);