private void open() throws KlabIOException { try { if (_file.exists()) { _ncfile = NetcdfFileWriter.openExisting(_file.toString()); } else { _ncfile = NetcdfFileWriter.createNew(Version.netcdf3, _file.toString()); _ncfile.create(); } } catch (IOException e) { throw new KlabIOException(e); } _open = true; }
@Test public void testFill() throws IOException, InvalidRangeException { try (NetcdfFileWriter file = NetcdfFileWriter.openExisting(filePath)) { file.write(DATA_VARIABLE, createData()); } }
@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 testUnlimitedDimension() throws IOException, InvalidRangeException { String location = tempFolder.newFile().getAbsolutePath(); File f = new File(location); assert f.delete(); Variable time; try (NetcdfFileWriter writer = NetcdfFileWriter.createNew(NetcdfFileWriter.Version.netcdf4, location)) { logger.debug("write to file = {}", new File(location).getAbsolutePath()); Dimension timeDim = writer.addUnlimitedDimension("time"); List<Dimension> dims = new ArrayList<>(); dims.add(timeDim); time = writer.addVariable(null, "time", DataType.DOUBLE, dims); writer.create(); Array data = Array.makeFromJavaArray(new double[]{0, 1, 2, 3}); writer.write(time, data); writer.close(); try (NetcdfFileWriter writer2 = NetcdfFileWriter.openExisting(location)) { time = writer2.findVariable("time"); int[] origin = new int[1]; origin[0] = (int) time.getSize(); writer2.write(time, origin, data); } try (NetcdfFile file = NetcdfFile.open(location)) { time = file.findVariable("time"); assert time.getSize() == 8 : "failed to append to unlimited dimension"; } } }
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 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")); } } }
try (NetcdfFileWriter writer = NetcdfFileWriter.openExisting(filename)) { boolean rewrite2 = writer.setRedefineMode(true); assert !rewrite2; try (NetcdfFileWriter writer = NetcdfFileWriter.openExisting(filename)) { Variable time = writer.findVariable("time"); Array data = Array.makeFromJavaArray(new double[] { 8, 9 });
Array orgData; try (NetcdfFileWriter ncWriter = NetcdfFileWriter.openExisting(filename)) { ncWriter.setRedefineMode(true);
@Test public void testNC3WriteExisting() throws IOException { NetcdfFileWriter writer = NetcdfFileWriter.openExisting(writerLocation);
try (NetcdfFileWriter ncWriter = NetcdfFileWriter.openExisting(filename)) { ncWriter.setRedefineMode(true); try (NetcdfFileWriter ncWriter = NetcdfFileWriter.openExisting(filename)) { ncWriter.setRedefineMode(true);