NetCDF バージョン 3 のファイルがあります。Windows 用の最新の ncks (2014 年 10 月 1 日リリース) を使用して
ncks -4 --cnk_dmn lat,4 --cnk_dmn lon,4 --cnk_dmn time,512 2014.nc 2014_chunked.nc
、NetCDF バージョン 4 の 2014_chunked.nc ファイルを生成したファイルを再チャンクしました。
たとえば、新しいファイル 2014_chunked.nc は WCT で読み取ることができます。ただし、Javaコードは生成されます
[ucar.nc2.NetcdfFile] DEBUG Using IOSP ucar.nc2.iosp.hdf5.H5iosp
[ucar.nc2.iosp.hdf5.H5header] ERROR bad version 72 at filePos 22386
そして例外をスローします
コードは
import ucar.nc2.NetcdfFile;
NetcdfFile nativeNetCDFFile = NetcdfFile.open(fullPath);
JRE 7 http://www.unidata.ucar.edu/downloads/netcdf/netcdf-java-4/index.jspには最新の NetCDF4.5 を使用し ます。
netcdf jar ファイルを調べたところ、Nc4.class の長さが数バイトしかないことがわかりました。したがって、jar には NetCDF4 iosp がなく、NetCDF 4 ファイルに H5iosp を使用しています。
netcdf 4.2 の HDF5 および HDF4 ファイルを開くための同じ Java コードは正常に動作しますが、4.5 では動作しないため、NetCDF 4.5 Java の新しいバージョンは、私が常に使用していたバージョン 4.2 とは少し異なる方法で使用する必要があると思います。
private NetcdfFile file;
....
String path = groupInFile + GROUP_DELIMITER + nameInGroup;
Variable findVariable = file.findVariable(path);
なにが問題ですか?