@Test public void testSizeEstimate() throws Exception { String fileIn = TestDir.cdmUnitTestDir + "ft/grid/testCFwriter.nc"; System.out.printf("Open %s%n", fileIn); try (ucar.nc2.dt.grid.GridDataset gds = GridDataset.open(fileIn)) { LatLonRect llbb = new LatLonRect(new LatLonPointImpl(30, -109), 10, 50); long totalSize = CFGridWriter2.makeSizeEstimate(gds, null, null, null, 1, null, null, 1, true); long subsetSize = CFGridWriter2.makeSizeEstimate(gds, null, llbb, null, 1, null, null, 1, true); System.out.printf("total size = %d%n", totalSize); System.out.printf("subset size = %d%n", subsetSize); assertTrue(subsetSize < totalSize); String varName = "Temperature"; List<String> gridList = new ArrayList<>(); gridList.add(varName); totalSize = CFGridWriter2.makeSizeEstimate(gds, gridList, null, null, 1, null, null, 1, true); subsetSize = CFGridWriter2.makeSizeEstimate(gds, gridList, llbb, null, 1, null, null, 1, true); System.out.printf("total size Temp only = %d%n", totalSize); System.out.printf("subset size Temp only = %d%n", subsetSize); assertTrue(subsetSize < totalSize); } }
@Test public void testSizeEstimateTimeSubset() throws Exception { String fileIn = TestDir.cdmUnitTestDir + "ft/grid/cg/cg.ncml"; System.out.printf("Open %s%n", fileIn); try (ucar.nc2.dt.grid.GridDataset gds = GridDataset.open(fileIn)) { CalendarDateRange dateRange = CalendarDateRange.of(CalendarDate.parseISOformat(null, "2006-06-07T12:00:00Z"), CalendarDate.parseISOformat(null, "2006-06-07T13:00:00Z")); long totalSize = CFGridWriter2.makeSizeEstimate(gds, null, null, null, 1, null, null, 1, true); long subsetSize = CFGridWriter2.makeSizeEstimate(gds, null, null, null, 1, null, dateRange, 1, true); System.out.printf("total size = %d%n", totalSize); System.out.printf("subset size with date range = %d%n", subsetSize); assertTrue(subsetSize < totalSize); String varName = "CGusfc"; List<String> gridList = new ArrayList<>(); gridList.add(varName); totalSize = CFGridWriter2.makeSizeEstimate(gds, gridList, null, null, 1, null, null, 1, true); subsetSize = CFGridWriter2.makeSizeEstimate(gds, gridList, null, null, 1, null, dateRange, 1, true); System.out.printf("total size CGusfc only = %d%n", totalSize); System.out.printf("subset size CGusfc with date range = %d%n", subsetSize); assertTrue(subsetSize < totalSize); } }
@Test public void testSizeEstimateOnTP() throws Exception { String fileIn = TestDir.cdmUnitTestDir + "gribCollections/tp/GFSonedega.ncx4"; System.out.printf("Open %s%n", fileIn); try (GridDataset dataset = GridDataset.open(fileIn)) { List<String> gridList = new ArrayList<>(); gridList.add("Cloud_mixing_ratio_isobaric"); // static public long makeSizeEstimate(ucar.nc2.dt.GridDataset gds, List<String> gridList, // LatLonRect llbb, ProjectionRect projRect, int horizStride, Range zRange, // CalendarDateRange dateRange, int stride_time, boolean addLatLon) throws IOException, InvalidRangeException { CalendarDate date = CalendarDate.parseISOformat(null, "2015-03-26T06:00:00Z"); CalendarDateRange dateRange = CalendarDateRange.of( date, date); long totalSize = CFGridWriter2.makeSizeEstimate(dataset, gridList, null, null, 1, null, null, 1, true); long subsetSize = CFGridWriter2.makeSizeEstimate(dataset, gridList, null, null, 1, null, dateRange, 1, true); System.out.printf("total size Temp only = %d%n", totalSize); System.out.printf("subset size Temp only = %d%n", subsetSize); assertTrue(subsetSize == totalSize/2); } }