package ucar.nc2.iosp.grib; import org.junit.Test; import org.junit.experimental.categories.Category; import ucar.ma2.Array; import ucar.ma2.Index; import ucar.nc2.NCdumpW; import ucar.nc2.dt.GridCoordSystem; import ucar.nc2.dt.grid.GeoGrid; import ucar.nc2.dt.grid.GridDataset; import ucar.nc2.util.Misc; import ucar.unidata.util.test.category.NeedsCdmUnitTest; import ucar.unidata.util.test.TestDir; import java.io.IOException; /** * Describe * * @author caron * @since 1/7/14 */ @Category(NeedsCdmUnitTest.class) public class TestScanMode { @Test // scanMode = 0 public void testScanMode0() throws IOException { String filename = TestDir.cdmUnitTestDir + "formats/grib2/S-HSAF-h03_20131214_1312_rom.grb"; System.out.println("\n\nReading File " + filename); GridDataset gds = GridDataset.open(filename); GeoGrid grid = gds.findGridByName("Instantaneous_rain_rate"); assert grid != null; assert (grid.getDimensions().size() == 3); GridCoordSystem gcs = grid.getCoordinateSystem(); int[] result = gcs.findXYindexFromCoord(-7, 60.0, null); System.out.printf("x,y=%d,%d%n", result[0], result[1]); // should be non NAN Array data = grid.readDataSlice(0, 0, 714, 1779); NCdumpW.printArray(data); Index ima = data.getIndex(); float val = data.getFloat(ima); assert Misc.closeEnough(val, 5.0192626E-5); gds.close(); } @Test public void testEcmwf() throws IOException { // scanMode 192 String filename = TestDir.cdmUnitTestDir + "formats/grib2/MSG1-SEVI-MSGCLMK-0100-0100-20060102111500.000000000Z-12774.grb.grb"; System.out.println("\n\nReading File " + filename); GridDataset gds = GridDataset.open(filename); GeoGrid grid = gds.findGridByName("Cloud_mask"); assert grid != null; assert (grid.getDimensions().size() == 3); GridCoordSystem gcs = grid.getCoordinateSystem(); int[] result = gcs.findXYindexFromCoord(0, 0, null); System.out.printf("x,y=%d,%d%n", result[0], result[1]); // should be non NAN Array data = grid.readDataSlice(0, 0, result[1], result[0]); NCdumpW.printArray(data); Index ima = data.getIndex(); float val = data.getFloat(ima); assert Misc.closeEnough(val, 0.0); gds.close(); } }