public boolean hasTime( GridDatatype grid, CalendarDate date) { GridCoordSystem gcs = grid.getCoordinateSystem(); CoordinateAxis1DTime timeAxis = gcs.getTimeAxis1D(); return (timeAxis != null) && timeAxis.hasCalendarDate( date); }
public boolean hasVert( GridDatatype grid, double zCoord) { GridCoordSystem gcs = grid.getCoordinateSystem(); CoordinateAxis1D zAxis = gcs.getVerticalAxis(); if (zAxis == null) return false; return (zAxis.findCoordElement( zCoord) >= 0); }
public boolean hasVert( GridDatatype grid, double zCoord) { GridCoordSystem gcs = grid.getCoordinateSystem(); CoordinateAxis1D zAxis = gcs.getVerticalAxis(); if (zAxis == null) return false; return (zAxis.findCoordElement( zCoord) >= 0); }
public boolean hasTime( GridDatatype grid, CalendarDate date) { GridCoordSystem gcs = grid.getCoordinateSystem(); CoordinateAxis1DTime timeAxis = gcs.getTimeAxis1D(); return (timeAxis != null) && timeAxis.hasCalendarDate( date); }
public boolean hasVert( GridDatatype grid, double zCoord) { GridCoordSystem gcs = grid.getCoordinateSystem(); CoordinateAxis1D zAxis = gcs.getVerticalAxis(); if (zAxis == null) return false; return (zAxis.findCoordElement( zCoord) >= 0); }
public boolean hasTime( GridDatatype grid, CalendarDate date) { GridCoordSystem gcs = grid.getCoordinateSystem(); CoordinateAxis1DTime timeAxis = gcs.getTimeAxis1D(); return (timeAxis != null) && timeAxis.hasCalendarDate( date); }
public int compare(GridDatatype grid1, GridDatatype grid2) { GridCoordSystem gcs1 = grid1.getCoordinateSystem(); GridCoordSystem gcs2 = grid2.getCoordinateSystem(); CoordinateAxis time1 = gcs1.getTimeAxis(); CoordinateAxis time2 = gcs2.getTimeAxis(); int ret = compareAxis(time1, time2); if (ret != 0) return ret; CoordinateAxis vert1 = gcs1.getVerticalAxis(); CoordinateAxis vert2 = gcs2.getVerticalAxis(); ret = compareAxis(vert1, vert2); if (ret != 0) return ret; return grid1.getFullName().compareTo(grid2.getFullName()); }
public int compare(GridDatatype grid1, GridDatatype grid2) { GridCoordSystem gcs1 = grid1.getCoordinateSystem(); GridCoordSystem gcs2 = grid2.getCoordinateSystem(); CoordinateAxis time1 = gcs1.getTimeAxis(); CoordinateAxis time2 = gcs2.getTimeAxis(); int ret = compareAxis(time1, time2); if (ret != 0) return ret; CoordinateAxis vert1 = gcs1.getVerticalAxis(); CoordinateAxis vert2 = gcs2.getVerticalAxis(); ret = compareAxis(vert1, vert2); if (ret != 0) return ret; return grid1.getFullName().compareTo(grid2.getFullName()); }
public int compare(GridDatatype grid1, GridDatatype grid2) { GridCoordSystem gcs1 = grid1.getCoordinateSystem(); GridCoordSystem gcs2 = grid2.getCoordinateSystem(); CoordinateAxis time1 = gcs1.getTimeAxis(); CoordinateAxis time2 = gcs2.getTimeAxis(); int ret = compareAxis(time1, time2); if (ret != 0) return ret; CoordinateAxis vert1 = gcs1.getVerticalAxis(); CoordinateAxis vert2 = gcs2.getVerticalAxis(); ret = compareAxis(vert1, vert2); if (ret != 0) return ret; return grid1.getFullName().compareTo(grid2.getFullName()); }
public static void main(String[] args) throws IOException { GridDataset gds = ucar.nc2.dt.grid.GridDataset.open("Q:/cdmUnitTest/transforms/Eumetsat.VerticalPerspective.grb"); GridDatatype grid = gds.findGridDatatype( "Pixel_scene_type"); GridCoordSystem gcs = grid.getCoordinateSystem(); double lat = 8.0; double lon = 21.0; // find the x,y point for a specific lat/lon position int[] xy = gcs.findXYindexFromLatLon(lat, lon, null); // xy[0] = x, xy[1] = y // read the data at that lat, lon a specific t and z value Array data = grid.readDataSlice(0, 0, xy[1], xy[0]); // note t, z, y, x double val = data.getDouble(0); System.out.printf("Value at %f %f == %f%n", lat, lon, val); }
public static void main(String[] args) throws IOException { GridDataset gds = ucar.nc2.dt.grid.GridDataset.open("Q:/cdmUnitTest/transforms/Eumetsat.VerticalPerspective.grb"); GridDatatype grid = gds.findGridDatatype( "Pixel_scene_type"); GridCoordSystem gcs = grid.getCoordinateSystem(); double lat = 8.0; double lon = 21.0; // find the x,y point for a specific lat/lon position int[] xy = gcs.findXYindexFromLatLon(lat, lon, null); // xy[0] = x, xy[1] = y // read the data at that lat, lon a specific t and z value Array data = grid.readDataSlice(0, 0, xy[1], xy[0]); // note t, z, y, x double val = data.getDouble(0); System.out.printf("Value at %f %f == %f%n", lat, lon, val); }
public static void main(String[] args) throws IOException { GridDataset gds = ucar.nc2.dt.grid.GridDataset.open("Q:/cdmUnitTest/transforms/Eumetsat.VerticalPerspective.grb"); GridDatatype grid = gds.findGridDatatype( "Pixel_scene_type"); GridCoordSystem gcs = grid.getCoordinateSystem(); double lat = 8.0; double lon = 21.0; // find the x,y point for a specific lat/lon position int[] xy = gcs.findXYindexFromLatLon(lat, lon, null); // xy[0] = x, xy[1] = y // read the data at that lat, lon a specific t and z value Array data = grid.readDataSlice(0, 0, xy[1], xy[0]); // note t, z, y, x double val = data.getDouble(0); System.out.printf("Value at %f %f == %f%n", lat, lon, val); }
public BufferedImage openDataset( GridDatatype grid) throws java.io.IOException { this.grid = grid; this.time = 0; GridCoordSystem gcsys = grid.getCoordinateSystem(); if (gcsys.getTimeAxis() != null) ntimes = (int) gcsys.getTimeAxis().getSize(); Array data = grid.readDataSlice( this.time, 0, -1, -1); return ImageArrayAdapter.makeGrayscaleImage( data, grid); }
public BufferedImage openDataset( GridDatatype grid) throws java.io.IOException { this.grid = grid; this.time = 0; GridCoordSystem gcsys = grid.getCoordinateSystem(); if (gcsys.getTimeAxis() != null) ntimes = (int) gcsys.getTimeAxis().getSize(); Array data = grid.readDataSlice( this.time, 0, -1, -1); return ImageArrayAdapter.makeGrayscaleImage( data); }
@Test public void testTimeAxisEval() throws IOException { /** * The following tests BugFixes.evalTimeAxes, called by ucar.nc2.dt.grid.GridCoordSys.isGridCoordSys */ String testFileFullPath = TestDir.cdmUnitTestDir + "ft/grid/echoTops_runtime.nc"; GridDataset runtimeDataset = new GridDataset(new NetcdfDataset(NetcdfFile.open(testFileFullPath))); if (runtimeDataset.getGrids().isEmpty()) { throw new RuntimeException("Runtime data file did not generate a dataset with grids"); } if (runtimeDataset.getGrids().get(0).getCoordinateSystem().getRunTimeAxis() == null) { throw new RuntimeException("Runtime data file did not generate a dataset with a RunTime axis"); } System.out.println("BugFixesTest - completed."); }
public static void main(String[] args) throws IOException { GridDataset gds = ucar.nc2.dt.grid.GridDataset.open(args[0]); ucar.nc2.dt.GridDatatype grid = gds.findGridDatatype( args[1]); ucar.nc2.dt.GridCoordSystem gcs = grid.getCoordinateSystem(); CoordinateAxis xAxis = gcs.getXHorizAxis(); CoordinateAxis yAxis = gcs.getXHorizAxis(); CoordinateAxis1D zAxis = gcs.getVerticalAxis(); // may be null if (gcs.hasTimeAxis1D()) { CoordinateAxis1D tAxis = gcs.getTimeAxis1D(); } else if (gcs.hasTimeAxis()) { CoordinateAxis tAxis = gcs.getTimeAxis(); } } }
public Point readData(GridDatatype grid, CalendarDate date, double lat, double lon) throws java.io.IOException { GridCoordSystem gcs = grid.getCoordinateSystem(); //CoordinateAxis1DTime timeAxis = gcs.getTimeAxis1D(); //int tidx = timeAxis.findTimeIndexFromCalendarDate(date); int tidx =-1; //Date may be null if the grid does not have time axis if(date != null) tidx = findTimeIndexForCalendarDate(gcs, date); //int[] xy = gcs.findXYindexFromLatLonBounded(lat, lon, null); int[] xy = gcs.findXYindexFromLatLon(lat, lon, null); Array data = grid.readDataSlice(tidx, -1, xy[1], xy[0]); // use actual grid midpoint LatLonPoint latlon = gcs.getLatLon(xy[0], xy[1]); Point p = new Point(); p.lat = latlon.getLatitude(); p.lon = latlon.getLongitude(); p.dataValue = data.getDouble( data.getIndex()); return p; }
@Test public void testGridDomain() throws Exception { System.err.printf("%nOpen %s grid='%s'%n", filename, gridName); Grib.setDebugFlags(new DebugFlagsImpl("Grib/indexOnly")); try (GridDataset dataset = GridDataset.open(filename)) { GeoGrid grid = dataset.findGridByName(gridName); GridCoordSystem gcs = grid.getCoordinateSystem(); System.err.printf("%s%n", gcs); testDomain("original grid", grid.getDimensions(), gcs.getCoordinateAxes()); GridDatatype gridSubset = grid.makeSubset(null, null, new Range(0, 0), null, null, null); GridCoordSystem gcsSubset = gridSubset.getCoordinateSystem(); System.err.printf("%s%n", gcsSubset); testDomain("subset grid", gridSubset.getDimensions(), gcsSubset.getCoordinateAxes()); } finally { Grib.setDebugFlags(new DebugFlagsImpl("")); } }
public void testOceanS() throws java.io.IOException, InvalidRangeException { GridDataset gds = ucar.nc2.dt.grid.GridDataset.open(TestDir.cdmUnitTestDir + "transforms/roms_ocean_s_coordinate.nc"); GridDatatype grid = gds.findGridDatatype("temp"); assert grid != null; GridCoordSystem gcs = grid.getCoordinateSystem(); assert gcs != null; VerticalCT vct = gcs.getVerticalCT(); assert vct != null; assert vct.getVerticalTransformType() == VerticalCT.Type.OceanS; VerticalTransform vt = gcs.getVerticalTransform(); assert vt != null; ArrayDouble.D3 ca = vt.getCoordinateArray(0); assert ca != null; assert ca.getRank() == 3 : ca.getRank(); int[] shape = ca.getShape(); for (int i = 0; i < 3; i++) System.out.println(" shape " + i + " = " + shape[i]); gds.close(); }
public void testWrfEta() throws java.io.IOException, InvalidRangeException { GridDataset gds = ucar.nc2.dt.grid.GridDataset.open( TestDir.cdmUnitTestDir + "conventions/wrf/wrfout_v2_Lambert.nc"); GridDatatype grid = gds.findGridDatatype("T"); assert grid != null; GridCoordSystem gcs = grid.getCoordinateSystem(); assert gcs != null; VerticalCT vct = gcs.getVerticalCT(); assert vct != null; assert vct.getVerticalTransformType() == VerticalCT.Type.WRFEta : vct.getVerticalTransformType(); VerticalTransform vt = gcs.getVerticalTransform(); assert vt != null; ArrayDouble.D3 ca = vt.getCoordinateArray(0); assert ca != null; assert ca.getRank() == 3 : ca.getRank(); int[] shape = ca.getShape(); for (int i = 0; i < 3; i++) System.out.println(" shape " + i + " = " + shape[i]); gds.close(); }