private void defineMode(boolean b) throws KlabException { try { _ncfile.setRedefineMode(b); } catch (IOException e) { throw new KlabIOException(e); } }
/** * close the file. * * @throws IOException if I/O error */ public synchronized void close() throws java.io.IOException { if (spiw != null) { setRedefineMode(false); flush(); spiw.close(); spiw = null; } }
public void alterExistingFile(String url) throws IOException { NetcdfFileWriter file = null; try { file = NetcdfFileWriter.openExisting(url); file.setRedefineMode(true); //Group rootGroup = file.getRootGroup(); //Group headerDataGroup = new Group(file, rootGroup, "header_data"); //file.addGroup(rootGroup, headerDataGroup); file.addVariable(null, newVarName, DataType.FLOAT, "z y x"); } finally { if (file != null) { file.setRedefineMode(false); file.flush(); file.close(); } } }
@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); } } }
@Test public void testRewriteHeader3() throws IOException, InvalidRangeException { String filename = tempFolder.newFile().getAbsolutePath(); try (NetcdfFileWriter file = NetcdfFileWriter.createNew(NetcdfFileWriter.Version.netcdf3, filename)) { file.addGlobalAttribute("att8", "1234567890"); file.setExtraHeaderBytes(10); file.create(); file.setRedefineMode(true); file.addGlobalAttribute("att8", "123456789012345"); boolean rewriteAll = file.setRedefineMode(false); assert !rewriteAll; Attribute att = file.findGlobalAttribute("att8"); assert att != null; assert att.getStringValue().equals("123456789012345") : att.getStringValue(); } }
writer.addVariableAttribute(v, new Attribute(CDM.VALID_RANGE, a)); writer.create(); boolean rewrite = writer.setRedefineMode(true); assert !rewrite;
ncWriter.setRedefineMode(true); ncWriter.setRedefineMode(false);
@Test public void testRedefineClose() throws IOException { String filename = tempFolder.newFile().getAbsolutePath(); // Create a new file try (NetcdfFileWriter file = NetcdfFileWriter.createNew(NetcdfFileWriter.Version.netcdf3, filename)) { Attribute attr = new Attribute("att", 5); file.addGroupAttribute(null, attr); file.create(); } // Re-open file in redefine mode try (NetcdfFileWriter file = NetcdfFileWriter.openExisting(filename)) { file.setRedefineMode(true); Attribute attr = new Attribute("att2", "foobar"); file.addGroupAttribute(null, attr); } // Check that attribute is present try (NetcdfFileWriter file = NetcdfFileWriter.openExisting(filename)) { Assert.assertNotNull(file.findGlobalAttribute("att")); Assert.assertNotNull(file.findGlobalAttribute("att2")); } } }
ncWriter.setRedefineMode(true); ncWriter.setRedefineMode(false); ncWriter.setRedefineMode(true); boolean rewriteAll = ncWriter.setRedefineMode(false); assert !rewriteAll; ncWriter.setRedefineMode(true); boolean rewriteAll = ncWriter.setRedefineMode(false); assert rewriteAll;
ncFile.write ("jack", start, Array.factory (DataType.DOUBLE, count, jackData)); ncFile.setRedefineMode (true); ncFile.addVariable ("jill", DataType.DOUBLE, "time"); ncFile.addVariableAttribute ("jill", "where", "up the hill"); ncFile.setRedefineMode (false);
boolean rewrite2 = writer.setRedefineMode(true); assert !rewrite2; boolean rewrite3 = writer.setRedefineMode(false); assert rewrite3;