### Question:
RegriddingLUT1 implements LUT { static Grid readGrid(File file) throws IOException { logger.info(String.format("Opening file for regridding LUT1 '%s'", file.getPath())); final NetcdfFile gridFile = NetcdfFile.open("file:" + file.getPath()); try { logger.fine("Reading 'analysed_sst_anomaly'..."); final StopWatch stopWatch = new StopWatch(); stopWatch.start(); final Grid grid = NcTools.readGrid(gridFile, "analysed_sst_anomaly", SOURCE_GRID_DEF, 0); stopWatch.stop(); logger.fine(String.format("Reading 'analysed_sst_anomaly' took %d ms", stopWatch.getElapsedMillis())); return grid; } finally { try { logger.fine("Closing file for regridding LUT1"); gridFile.close(); } catch (IOException e) { } } } private  RegriddingLUT1(Grid grid); static LUT create(File file, GridDef gridDef); @Override Grid getGrid();  }### Answer:
@Test public void testReadGrid() throws Exception { final File file = getResourceAsFile("20070321-UKMO-L4HRfnd-GLOB-v01-fv02-OSTIARANanom_stdev.nc"); final Grid grid = RegriddingLUT1.readGrid(file); assertNotNull(grid); assertEquals(3600, grid.getGridDef().getHeight()); assertEquals(7200, grid.getGridDef().getWidth()); assertEquals(39, grid.getSampleInt(OCEAN_X, OCEAN_Y)); assertEquals(39.0 * 0.01, grid.getSampleDouble(OCEAN_X, OCEAN_Y), 1.0e-7); assertEquals(0, grid.getSampleInt(LAND_X, LAND_Y)); assertTrue(Double.isNaN(grid.getSampleDouble(LAND_X, LAND_Y))); }