public boolean addVariableAttribute(String varName, Attribute att) { return addVariableAttribute(findVariable(varName), att); } /**
public void write(String varname, Array values) throws java.io.IOException, InvalidRangeException { write(findVariable(varname), values); } /**
public void write(String varName, int[] origin, Array values) throws java.io.IOException, InvalidRangeException { write(findVariable(varName), origin, values); }
public void initForWriting(NetcdfFileWriter writer, int[] spatialDimensionSize) { var = writer.findVariable(variableName); if (var == null) { throw new IllegalArgumentException( "The requested variable doesn't exists: " + variableName); } netCDFDataType = var.getDataType(); matrix = NetCDFUtilities.getArray(spatialDimensionSize, netCDFDataType); } }
public boolean addVariableAttribute(String varName, String name, String value) { return addVariableAttribute(findVariable(varName), new Attribute(name, value)); }
public boolean addVariableAttribute(String varName, String name, Number value) { return addVariableAttribute(findVariable(varName), new Attribute(name, value)); }
private void writeCoordinateData(CoverageCollection subsetDataset, NetcdfFileWriter writer) throws IOException, InvalidRangeException { for (CoverageCoordAxis axis : subsetDataset.getCoordAxes()) { Variable v = writer.findVariable(axis.getName()); if (v != null) { if (show) System.out.printf("CFGridCoverageWriter2 write axis %s%n", v.getNameAndDimensions()); writer.write(v, axis.getCoordsAsArray()); } else { logger.error("CFGridCoverageWriter2 No variable for %s%n", axis.getName()); } if (axis.isInterval()) { Variable vb = writer.findVariable(axis.getName() + BOUNDS); writer.write(vb, axis.getCoordBoundsAsArray()); } } }
void transferData(Group oldGroup) throws IOException, InvalidRangeException { for (Variable v : oldGroup.getVariables()) { if (!isRadial && v.getRank() >= 3) { invertOneVar(v); } else { System.out.printf("write %s%n",v.getNameAndDimensions()); Array data = v.read(); Variable nv = ncOut.findVariable(v.getFullName()); ncOut.write(nv, data); } } // recurse for (Group g : oldGroup.getGroups()) transferData( g); }
void transferData(Group oldGroup) throws IOException, InvalidRangeException { for (Variable v : oldGroup.getVariables()) { if (!isRadial && v.getRank() >= 3) { invertOneVar(v); } else { System.out.printf("write %s%n",v.getNameAndDimensions()); Array data = v.read(); Variable nv = ncOut.findVariable(v.getFullName()); ncOut.write(nv, data); } } // recurse for (Group g : oldGroup.getGroups()) transferData( g); }
void transferData(Group oldGroup) throws IOException, InvalidRangeException { for (Variable v : oldGroup.getVariables()) { if (!isRadial && v.getRank() >= 3) { invertOneVar(v); } else { System.out.printf("write %s%n",v.getNameAndDimensions()); Array data = v.read(); Variable nv = ncOut.findVariable(v.getFullName()); ncOut.write(nv, data); } } // recurse for (Group g : oldGroup.getGroups()) transferData( g); }
@Test public void testRedefine() throws IOException, InvalidRangeException { String org = TestDir.cdmLocalTestDataDir + "testWriteRecord.nc"; String path = tempFolder.newFile().getAbsolutePath(); File orgFile = new File(org); File newFile = new File(path); if (newFile.exists()) newFile.delete(); IO.copyFile(orgFile, newFile); try (NetcdfFileWriter ncfile = NetcdfFileWriter.openExisting(path)) { System.out.println(ncfile); ncfile.setRedefineMode(true); Variable tvar = ncfile.findVariable("T"); ncfile.setExtraHeaderBytes(1024); ncfile.addVariable("header_data", DataType.FLOAT, tvar.getDimensions()); System.out.println(ncfile); } } }
void invertOneVar(Variable oldVar) throws IOException, InvalidRangeException { System.out.printf("invertOneVar %s%n",oldVar.getNameAndDimensions()); int rank = oldVar.getRank(); int[] origin = new int[rank]; int[] shape = oldVar.getShape(); // old Shape Variable nv = ncOut.findVariable(oldVar.getFullName()); Cache cache = new Cache(shape, nv.getShape(), oldVar.getDataType()); int nt = shape[0]; for (int k=0; k<nt; k++) { // loop over outermost dimension shape[0] = 1; origin[0] = k; Array data = oldVar.read(origin, shape); // read inner cache.transfer(data.reduce(), k); } cache.write(nv); }
private void writeCoverageData(CoverageCollection gdsOrg, SubsetParams subsetParams, CoverageCollection subsetDataset, NetcdfFileWriter writer) throws IOException, InvalidRangeException { for (Coverage coverage : subsetDataset.getCoverages()) { // we need to call readData on the original Coverage coverageOrg = gdsOrg.findCoverage(coverage.getName()); GeoReferencedArray array = coverageOrg.readData(subsetParams); // test conform to whatever axis.getCoordsAsArray() returns checkConformance(coverage, array, gdsOrg.getName()); Variable v = writer.findVariable(coverage.getName()); if (show) System.out.printf("CFGridCoverageWriter2 write coverage %s%n", v.getNameAndDimensions()); writer.write(v, array.getData()); } }
private void doWrite2( NetcdfFileWriter ncfile, String varName) throws Exception { Variable v = ncfile.findVariable( varName); int[] w = getWeights( v); int[] shape = v.getShape(); Array aa = Array.factory(v.getDataType(), shape); Index ima = aa.getIndex(); for (int i=0; i<shape[0]; i++) { for (int j=0; j<shape[1]; j++) { aa.setDouble( ima.set(i,j), (double) (i*w[0] + j*w[1])); } } ncfile.write(varName, aa); }
private void doWrite3( NetcdfFileWriter ncfile, String varName) throws Exception { Variable v = ncfile.findVariable( varName); int[] w = getWeights( v); int[] shape = v.getShape(); Array aa = Array.factory(v.getDataType(), shape); Index ima = aa.getIndex(); for (int i=0; i<shape[0]; i++) { for (int j=0; j<shape[1]; j++) { for (int k=0; k<shape[2]; k++) { aa.setDouble( ima.set(i,j,k), (double) (i*w[0] + j*w[1] + k*w[2])); } } } ncfile.write(varName, aa); }
private void doWrite3( NetcdfFileWriter ncfile, String varName) throws Exception { Variable v = ncfile.findVariable( varName); int[] w = getWeights( v); int[] shape = v.getShape(); Array aa = Array.factory(v.getDataType(), shape); Index ima = aa.getIndex(); for (int i=0; i<shape[0]; i++) { for (int j=0; j<shape[1]; j++) { for (int k=0; k<shape[2]; k++) { aa.setDouble( ima.set(i,j,k), (double) (i*w[0] + j*w[1] + k*w[2])); } } } ncfile.write(varName, aa); }
private void doWrite3( NetcdfFileWriter ncfile, String varName) throws Exception { Variable v = ncfile.findVariable( varName); int[] w = getWeights( v); int[] shape = v.getShape(); Array aa = Array.factory(v.getDataType(), shape); Index ima = aa.getIndex(); for (int i=0; i<shape[0]; i++) { for (int j=0; j<shape[1]; j++) { for (int k=0; k<shape[2]; k++) { aa.setDouble( ima.set(i,j,k), (double) (i*w[0] + j*w[1] + k*w[2])); } } } ncfile.write(varName, aa); }
private void doWrite4( NetcdfFileWriter ncfile, String varName) throws Exception { Variable v = ncfile.findVariable( varName); int[] w = getWeights( v); int[] shape = v.getShape(); Array aa = Array.factory(v.getDataType(), shape); Index ima = aa.getIndex(); for (int i=0; i<shape[0]; i++) { for (int j=0; j<shape[1]; j++) { for (int k=0; k<shape[2]; k++) { for (int m=0; m<shape[3]; m++) { aa.setDouble( ima.set(i,j,k,m), (double) (i*w[0] + j*w[1] + k*w[2] + m*w[3])); } } } } ncfile.write(varName, aa); }
private void doWrite4( NetcdfFileWriter ncfile, String varName) throws Exception { Variable v = ncfile.findVariable( varName); int[] w = getWeights( v); int[] shape = v.getShape(); Array aa = Array.factory(v.getDataType(), shape); Index ima = aa.getIndex(); for (int i=0; i<shape[0]; i++) { for (int j=0; j<shape[1]; j++) { for (int k=0; k<shape[2]; k++) { for (int m=0; m<shape[3]; m++) { aa.setDouble( ima.set(i,j,k,m), (double) (i*w[0] + j*w[1] + k*w[2] + m*w[3])); } } } } ncfile.write(varName, aa); }
private void doWrite4( NetcdfFileWriter ncfile, String varName) throws Exception { Variable v = ncfile.findVariable( varName); int[] w = getWeights( v); int[] shape = v.getShape(); Array aa = Array.factory(v.getDataType(), shape); Index ima = aa.getIndex(); for (int i=0; i<shape[0]; i++) { for (int j=0; j<shape[1]; j++) { for (int k=0; k<shape[2]; k++) { for (int m=0; m<shape[3]; m++) { aa.setDouble( ima.set(i,j,k,m), (double) (i*w[0] + j*w[1] + k*w[2] + m*w[3])); } } } } ncfile.write(varName, aa); }