【发布时间】:2019-11-01 22:38:21
【问题描述】:
我正在尝试使用 java(unidata 库)创建 NetCDF 文件。要求之一是在所有变量中包含 _FillValue 属性。我有一种 CHAR 类型,但我做不到。
属性构造函数只接受字符串或数字(或它们的数组),而不接受字符。反正我都试过了,但最终的 netcdf 没有显示属性。
其他语言可以让你做到这一点(我们已经在 matlab 中看到了这个),但我不知道如何使用 java 来做到这一点。
我在文档中看到 _FillValue 应该与变量本身的类型相同,但属性值不接受字符,只接受字符串或数字
例如:当我尝试时
Nc4Chunking chunker = Nc4ChunkingStrategy.factory(Nc4Chunking.Strategy.standard, 6, true);
NetcdfFileWriter dataFile = NetcdfFileWriter.createNew(NetcdfFileWriter.Version.netcdf4_classic, fileName, chunker);
....
Variable varid_scdr = dataFile.addVariable(null, "SCDR", DataType.CHAR, dimsTMS15);
varid_scdr.addAttribute(new Attribute("_FillValue", " "));
....
dataFile.write(varid_scdr, scodData);
dataFile.close();
生成的 netcdf 文件没有 _FillValue,它没有写入文件中。 但是,如果我更改属性名称并执行此操作
varid_scdr.addAttribute(new Attribute("FillValue", " "));
参数存在于输出文件中
我对其他数据类型或其他属性名称没有任何问题。我很确定问题出在 Char 类型变量的属性 _FillValue 上。我不知道怎么写,我需要 _FillValue 属性明确地出现在变量属性列表中。
********** 2019 年 7 月 5 日 ***********
我意识到问题仅与 netcdf4 和 netcdf4_classic 文件有关。所以也许是关于分块或类似的东西。如果我尝试创建 netcdf3 文件,它可以工作。
关于这个问题的任何帮助?我错过了什么?
【问题讨论】: