Ed Yu wrote:
Hi all,
I'm trying to create a scalar variable say:
interval = 60
I have trouble using the java api to add a variable without a dimension. Did
I completely misunderstand the NetCDF concept? If I make the variable
interval a dimension with rank-1 (vector), I was able to create the netcdf
file.
Any comments and sample code is appreciated.
Thanks a bunch!
yeah, rank 0 is not obvious, you need to use 0 length array of
Dimension. heres an example:
public void testWrite() {
NetcdfFileWriteable ncfile = new NetcdfFileWriteable();
ncfile.setName("mydata.nc");
ncfile.addVariable("interval", int.class, new Dimension[0]);
// create the file
try {
ncfile.create();
} catch (IOException e) {
System.err.println("ERROR creating file");
assert(false);
}
// write scaler
try {
ArrayInt.D0 scalarA = new ArrayInt.D0();
scalarA.set( 60);
ncfile.write("interval", scalarA);
} catch (IOException e) {
System.err.println("ERROR writing Achar4");
assert(false);
}
// read it back
// read scalar variable
Variable scalar = ncfile.findVariable("interval"));
try {
A = scalar.read();
} catch (IOException e) {
assert(false);
}
ArrayInt.D0 scalarA = (ArrayInt.D0) A;
int vali = scalarA.get();
assert(vali == 60);
// all done
try {
ncfile.close();
} catch (IOException e) {
System.err.println("ERROR writing file");
assert(false);
}
System.out.println( "*****************Test Write done");
}