我有一个netcdf文件,该文件正在内存中打开并尝试获取该文件的二进制表示形式。不幸的是,似乎没有允许这种情况的方法。

我试过使用ObjectOutputStream和DataOutputStream,但似乎都不起作用:

// Nothing gets writen into baos
NetcdfFile file = NetcdfFile.openInMemory("C:\\testVIL.nc");
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream out = new DataOutputStream(baos);
N3outputStreamWriter w = new N3outputStreamWriter(file);
w.writeDataAll(out);
out.close();
byte[] byteArray = baos.toByteArray();
for ( byte b : byteArray ) {
 System.out.print( (char) b );
}

// netcdfFile is not seralizable
NetcdfFile file = NetcdfFile.openInMemory("C:\\testVIL.nc");
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream( baos );
oos.writeObject( file );
byte[] byteArray = baos.toByteArray();
for ( byte b : byteArray ) {
  System.out.print( (char) b );
}


有人可以为我提出一种获取netcdf文件二进制表示形式的方法吗,我很困惑!

最佳答案

netCDF运算符(NCO)的ncks将输出二进制

ncks -O -b binary.dat in.nc out.nc


有关更多详细信息,请参见

http://nco.sf.net/nco.html#bnr

关于java - 如何从netcdf文件获取二进制数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23946085/

10-10 17:22