/** * Returns all grid geometries (related to coordinate systems) found in the netCDF file. * This method returns a direct reference to an internal array - do not modify. * * @return all grid geometries, or an empty array if none. * @throws IOException if an I/O operation was necessary but failed. */ @Override @SuppressWarnings({"ReturnOfCollectionOrArrayField", "null"}) public Grid[] getGridGeometries() throws IOException { if (geometries == null) { List<CoordinateSystem> systems = null; if (file instanceof NetcdfDataset) { final NetcdfDataset ds = (NetcdfDataset) file; final EnumSet<NetcdfDataset.Enhance> mode = EnumSet.copyOf(ds.getEnhanceMode()); if (mode.add(NetcdfDataset.Enhance.CoordSystems)) { ds.enhance(mode); } systems = ds.getCoordinateSystems(); } geometries = new Grid[(systems != null) ? systems.size() : 0]; for (int i=0; i<geometries.length; i++) { geometries[i] = new GridWrapper(this, systems.get(i)); } } return geometries; }
/** * Returns all grid geometries (related to coordinate systems) found in the netCDF file. * This method returns a direct reference to an internal array - do not modify. * * @return all grid geometries, or an empty array if none. * @throws IOException if an I/O operation was necessary but failed. */ @Override @SuppressWarnings({"ReturnOfCollectionOrArrayField", "null"}) public GridGeometry[] getGridGeometries() throws IOException { if (geometries == null) { List<CoordinateSystem> systems = null; if (file instanceof NetcdfDataset) { final NetcdfDataset ds = (NetcdfDataset) file; final EnumSet<NetcdfDataset.Enhance> mode = EnumSet.copyOf(ds.getEnhanceMode()); if (mode.add(NetcdfDataset.Enhance.CoordSystems)) { ds.enhance(mode); } systems = ds.getCoordinateSystems(); } geometries = new GridGeometry[(systems != null) ? systems.size() : 0]; for (int i=0; i<geometries.length; i++) { geometries[i] = new GridGeometryWrapper(systems.get(i)); } } return geometries; }
/** * Create a GridDataset from a NetcdfDataset. * * @param ncd underlying NetcdfDataset, will do Enhance.CoordSystems if not already done. * @param parseInfo put parse info here, may be null * @throws java.io.IOException on read error */ public GridDataset(NetcdfDataset ncd, Formatter parseInfo) throws IOException { this.ncd = ncd; // ds.enhance(EnumSet.of(NetcdfDataset.Enhance.CoordSystems)); Set<Enhance> enhance = ncd.getEnhanceMode(); if(enhance == null || enhance.isEmpty()) enhance = NetcdfDataset.getDefaultEnhanceMode(); ncd.enhance(enhance); // look for geoGrids if (parseInfo != null) parseInfo.format("GridDataset look for GeoGrids%n"); List<Variable> vars = ncd.getVariables(); for (Variable var : vars) { VariableEnhanced varDS = (VariableEnhanced) var; constructCoordinateSystems(ncd, varDS, parseInfo); } }
private boolean _sync() throws IOException { if (!datasetManager.scan(true)) return false; // nothing changed LOOK what about grib extention ?? cacheDirty = true; makeDatasets(null); // rebuild the metadata rebuildDataset(); ncDataset.finish(); if (ncDataset.getEnhanceMode().contains(NetcdfDataset.Enhance.CoordSystems)) { // force recreation of the coordinate systems ncDataset.clearCoordinateSystems(); ncDataset.enhance(ncDataset.getEnhanceMode()); ncDataset.finish(); } return true; }
/** * Create a GridDataset from a NetcdfDataset. * * @param ds underlying NetcdfDataset, will do Enhance.CoordSystems if not already done. * @param parseInfo put parse info here, may be null * @throws java.io.IOException on read error */ public GridDataset(NetcdfDataset ds, Formatter parseInfo) throws IOException { this.ds = ds; // ds.enhance(EnumSet.of(NetcdfDataset.Enhance.CoordSystems)); Set<Enhance> enhance = ds.getEnhanceMode(); if(enhance == null || enhance.isEmpty()) enhance = NetcdfDataset.getDefaultEnhanceMode(); ds.enhance(enhance); // look for geoGrids if (parseInfo != null) parseInfo.format("GridDataset look for GeoGrids\n"); List<Variable> vars = ds.getVariables(); for (Variable var : vars) { VariableEnhanced varDS = (VariableEnhanced) var; constructCoordinateSystems(ds, varDS, parseInfo); } }
/** * Create a GridDataset from a NetcdfDataset. * * @param ds underlying NetcdfDataset, will do Enhance.CoordSystems if not already done. * @param parseInfo put parse info here, may be null * @throws java.io.IOException on read error */ public GridDataset(NetcdfDataset ds, Formatter parseInfo) throws IOException { this.ds = ds; // ds.enhance(EnumSet.of(NetcdfDataset.Enhance.CoordSystems)); Set<Enhance> enhance = ds.getEnhanceMode(); if(enhance == null || enhance.isEmpty()) enhance = NetcdfDataset.getDefaultEnhanceMode(); ds.enhance(enhance); // look for geoGrids if (parseInfo != null) parseInfo.format("GridDataset look for GeoGrids%n"); List<Variable> vars = ds.getVariables(); for (Variable var : vars) { VariableEnhanced varDS = (VariableEnhanced) var; constructCoordinateSystems(ds, varDS, parseInfo); } }
private boolean _sync() throws IOException { if (!datasetManager.scan(true)) return false; // nothing changed LOOK what about grib extention ?? cacheDirty = true; closeDatasets(); makeDatasets(null); // rebuild the metadata rebuildDataset(); ncDataset.finish(); if (ncDataset.getEnhanceMode().contains(NetcdfDataset.Enhance.CoordSystems)) { // force recreation of the coordinate systems ncDataset.clearCoordinateSystems(); ncDataset.enhance(ncDataset.getEnhanceMode()); ncDataset.finish(); } return true; }
private boolean _sync() throws IOException { if (!datasetManager.scan(true)) return false; // nothing changed LOOK what about grib extention ?? cacheDirty = true; closeDatasets(); makeDatasets(null); // rebuild the metadata rebuildDataset(); ncDataset.finish(); if (ncDataset.getEnhanceMode().contains(NetcdfDataset.Enhance.CoordSystems)) { // force recreation of the coordinate systems ncDataset.clearCoordinateSystems(); ncDataset.enhance(ncDataset.getEnhanceMode()); ncDataset.finish(); } return true; }
Set<NetcdfDataset.Enhance> enhance = ncd.getEnhanceMode(); if (enhance == null || enhance.isEmpty()) enhance = NetcdfDataset.getDefaultEnhanceMode(); ncd.enhance(enhance);
boolean requireCompleteCoordSys = !ncDataset.getEnhanceMode().contains(NetcdfDataset.Enhance.IncompleteCoordSystems);
@Test public void openWithEnhance() throws Exception { try (NetcdfDataset ncDataset = NetcdfDataset.openDataset(filename, true, null)) { if (show) ncDataset.writeNcML(System.out, null); Assert.assertEquals(NetcdfDataset.getDefaultEnhanceMode(), ncDataset.getEnhanceMode()); Assert.assertTrue("size="+ncDataset.getCoordinateSystems().size(), ncDataset.getCoordinateSystems().size() > 0); } } }
System.out.printf("----------------%nfile=%s%n%s%n", filename, out); EnumSet<NetcdfDataset.Enhance> modes = ncd2.getEnhanceMode(); showModes(modes); ncd2.close();