/** * Add single unlimited dimension (classic model) * @param dimName name of dimension * @return Dimension object that was added */ public Dimension addUnlimitedDimension(String dimName) { return addDimension(null, dimName, 0, true, true, false); }
/** * Add a shared Dimension to the file. Must be in define mode. * * @param dimName name of dimension * @param length size of dimension. * @return the created dimension */ public Dimension addDimension(Group g, String dimName, int length) { return addDimension(g, dimName, length, false, false); }
/** * Add a shared Dimension to the file. Must be in define mode. * * @param dimName name of dimension * @param length size of dimension. * @return the created dimension */ public Dimension addDimension(Group g, String dimName, int length) { return addDimension(g, dimName, length, true, false, false); }
/** * Add a shared Dimension to the file. Must be in define mode. * * @param dimName name of dimension * @param length size of dimension. * @return the created dimension */ public Dimension addDimension(Group g, String dimName, int length) { return addDimension(g, dimName, length, true, false, false); }
/** * Add single unlimited, shared dimension (classic model) * @param dimName name of dimension * @return Dimension object that was added */ public Dimension addUnlimitedDimension(String dimName) { return addDimension(null, dimName, 0, true, false); }
public Dimension addDimension(String dimName, int length) { return addDimension(null, dimName, length, false, false); }
public Dimension addUnlimitedDimension(String dimName) { return addDimension(null, dimName, 0, true, true, false); }
public Dimension addDimension(String dimName, int length, boolean isUnlimited, boolean isVariableLength) { return addDimension(null, dimName, length, isUnlimited, isVariableLength); }
/** * * @return scanIndexDims a {@link java.util.List List} containing all dimension definitions for * the Scan Index Variable */ private List<Dimension> getScanIndexDims() { // Write the scan indices // Create a variable and set the dimension scan_number=totalScans to it Dimension scanNumberDim = writer.addDimension(null, "scan_number", totalScans); List<Dimension> scanIndexDims = new ArrayList<>(); scanIndexDims.add(scanNumberDim); return scanIndexDims; }
/** * * @return pointValDims a {@link java.util.List List} containing all dimension definitions for the * mass and intensity value variables */ private List<Dimension> getPointValDims() { // data values storage dimension // Dimension to store the data arrays of various scans Dimension pointNumDim = writer.addDimension(null, "point_number", scanStartPositions[totalScans]); List<Dimension> pointNumValDims = new ArrayList<>(); pointNumValDims.add(pointNumDim); return pointNumValDims; }
private void addDimensions(CoverageCollection subsetDataset, NetcdfFileWriter writer) { // each independent coordinate is a dimension Map<String, Dimension> dimHash = new HashMap<>(); for (CoverageCoordAxis axis : subsetDataset.getCoordAxes()) { if (axis.getDependenceType() == CoverageCoordAxis.DependenceType.independent) { Dimension d = writer.addDimension(null, axis.getName(), axis.getNcoords()); dimHash.put(axis.getName(), d); } if (axis.isInterval()) { if (null == dimHash.get(BOUNDS_DIM)) { Dimension d = writer.addDimension(null, BOUNDS_DIM, 2); dimHash.put(BOUNDS_DIM, d); } } } }
public <T> Var<T> addVariable(String shortName, Optional<String> longName, Optional<String> units, Optional<String> encoding, Class<T> cls, int numRecords) { Preconditions.checkNotNull(shortName); Preconditions.checkNotNull(longName); Preconditions.checkNotNull(units); Preconditions.checkNotNull(encoding); Preconditions.checkNotNull(cls); Dimension dimension = f.addDimension(null, shortName, numRecords); Variable variable = f.addVariable(null, shortName, toDataType(cls), Arrays.asList(dimension)); if (longName.isPresent()) variable.addAttribute(new Attribute("long_name", longName.get())); if (units.isPresent()) variable.addAttribute(new Attribute("units", units.get())); if (encoding.isPresent()) variable.addAttribute(new Attribute("encoding", encoding.get())); return new Var<T>(this, variable, cls); }
protected void addDimensionsClassic(List<? extends VariableSimpleIF> vars, Map<String, Dimension> dimMap) throws IOException { Set<Dimension> oldDims = new HashSet<>(20); // find all dimensions needed by these variables for (VariableSimpleIF var : vars) { List<Dimension> dims = var.getDimensions(); oldDims.addAll(dims); } // add them for (Dimension d : oldDims) { // The dimension we're creating below will be shared, so we need an appropriate name for it. String dimName = getSharedDimName(d); if (!writer.hasDimension(null, dimName)) { Dimension newDim = writer.addDimension(null, dimName, d.getLength(), false, d.isVariableLength()); dimMap.put(dimName, newDim); } } }
@Before public void setUp() throws IOException { filePath = tempFolder.newFile().getAbsolutePath(); try (NetcdfFileWriter file = NetcdfFileWriter.createNew(NetcdfFileWriter.Version.netcdf3, filePath)) { file.addDimension(null, "t", DIM_T); file.addDimension(null, "alt", DIM_ALT); file.addDimension(null, "lat", DIM_LAT); file.addDimension(null, "lon", DIM_LON); file.addVariable(DATA_VARIABLE, DataType.FLOAT, "t alt lat lon"); file.create(); } }
private List<Dimension> getNewDimensions(Variable oldVar) { List<Dimension> result = new ArrayList<>(oldVar.getRank()); // dimensions for (Dimension oldD : oldVar.getDimensions()) { Dimension newD = gdimHash.get(oldD.getShortName()); if (newD == null) { newD = writer.addDimension(null, oldD.getShortName(), oldD.isUnlimited() ? 0 : oldD.getLength(), oldD.isUnlimited(), oldD.isVariableLength()); gdimHash.put(oldD.getShortName(), newD); if (debug) System.out.println("add dim= " + newD); } result.add(newD); } return result; }
private List<Dimension> getNewDimensions(Variable oldVar) { List<Dimension> result = new ArrayList<Dimension>(oldVar.getRank()); // dimensions for (Dimension oldD : oldVar.getDimensions()) { Dimension newD = gdimHash.get(oldD.getShortName()); if (newD == null) { newD = writer.addDimension(null, oldD.getShortName(), oldD.isUnlimited() ? 0 : oldD.getLength(), oldD.isShared(), oldD.isUnlimited(), oldD.isVariableLength()); gdimHash.put(oldD.getShortName(), newD); if (debug) System.out.println("add dim= " + newD); } result.add(newD); } return result; }
private List<Dimension> getNewDimensions(Variable oldVar) { List<Dimension> result = new ArrayList<>(oldVar.getRank()); // dimensions for (Dimension oldD : oldVar.getDimensions()) { Dimension newD = gdimHash.get(oldD.getShortName()); if (newD == null) { newD = writer.addDimension(null, oldD.getShortName(), oldD.isUnlimited() ? 0 : oldD.getLength(), oldD.isShared(), oldD.isUnlimited(), oldD.isVariableLength()); gdimHash.put(oldD.getShortName(), newD); if (debug) System.out.println("add dim= " + newD); } result.add(newD); } return result; }
protected void makeFeatureVariables(StructureData trajData, boolean isExtended) throws IOException { // add the dimensions : extended model can use an unlimited dimension Dimension trajDim = writer.addDimension(null, trajDimName, ntraj); List<VariableSimpleIF> trajVars = new ArrayList<>(); trajVars.add(VariableSimpleImpl.makeString(trajIdName, "trajectory identifier", null, traj_strlen) .add(new Attribute(CF.CF_ROLE, CF.TRAJECTORY_ID))); for (StructureMembers.Member m : trajData.getMembers()) { if (getDataVar(m.getName()) != null) trajVars.add(new VariableSimpleAdapter(m)); } if (isExtended) { trajStructure = (Structure) writer.addVariable(null, trajStructName, DataType.STRUCTURE, trajDimName); addCoordinatesExtended(trajStructure, trajVars); } else { addCoordinatesClassic(trajDim, trajVars, trajVarMap); } }
private NetcdfFileWriter createTimeLatLonDataCube(String filename, double[] latitudes, double[] longitudes) throws IOException { NetcdfFileWriter writeableFile = NetcdfFileWriter.createNew(filename, true); // define dimensions, including unlimited Dimension latDim = writeableFile.addDimension(latVar, latitudes.length); Dimension lonDim = writeableFile.addDimension(lonVar, longitudes.length); Dimension timeDim = writeableFile.addUnlimitedDimension(timeVar); // define Variables defineHeader(writeableFile, timeVar, latVar, lonVar, timeVar+" "+latVar+" "+lonVar); // create the file writeableFile.create(); writeableFile.close(); return writeableFile; }
private static Dimension setDimension(NetcdfFileWriter ncFile, String name, String units, int length) { Dimension dimension = ncFile.addDimension(null, name, length); Variable v = ncFile.addVariable(null, name, DataType.FLOAT, name); ncFile.addVariableAttribute(v, new Attribute("units", units)); return dimension; }