【问题标题】:How to add global attribute to the netCDF file如何将全局属性添加到 netCDF 文件
【发布时间】:2015-12-01 01:37:00
【问题描述】:

我使用“makeFile.java”创建了“testFile.nc”。 我正在尝试将全局属性添加到 testFile.nc 文件中。

所以我已经尝试过两种这样的方法:

方式 1, 使用 UpdateFile.java(NetcdfFile 类)

方式 2, 使用 UpdateFile2.java(NetcdfFileWriter 类)

我得到了同样的日志:

aa>>>yo = "face"
aa>>>versionD = 1.2
aa>>>versionF = 1.2f
aa>>>versionI = 1
aa>>>versionS = 2S
aa>>>versionB = 3B
aa>>>creator = "testValue"

看起来像是添加了全局属性。但实际上我没有。

提前致谢

源代码 - makeFile.java

// TODO Auto-generated method stub
String location = "C:/data/my/testFile.nc";
NetcdfFileWriter writer = netcdfFileWriter.createNew(NetcdfFileWriter.Version.netcdf3, location, null);

// add global attributes
writer.addGroupAttribute(null, new Attribute("yo", "face"));
writer.addGroupAttribute(null, new Attribute("versionD", 1.2));
writer.addGroupAttribute(null, new Attribute("versionF", (float) 1.2));
writer.addGroupAttribute(null, new Attribute("versionI", 1));
writer.addGroupAttribute(null, new Attribute("versionS", (short) 2));
writer.addGroupAttribute(null, new Attribute("versionB", (byte) 3));
writer.create();
writer.close(); 

源代码 - updateFile.java

String location = "C:/data/my/testFile.nc";
NetcdfFileWriter dataFile = NetcdfFileWriter.openExisting(location);
Attribute att = new Attribute("creator","testValue");
dataFile.setRedefineMode(true);
Group gr = dataFile.addGroup(null, "");
gr.addAttribute(att);
List<Attribute> al = gr.getAttributes();
for(int i=0 ; i < al.size(); i++){
    debug("aa",al.get(i).toString());
}
dataFile.close();

源代码 - updateFile2.java

String location = "C:/data/my/testFile.nc";
NetcdfFileWriter dataFile = NetcdfFileWriter.openExisting(location);
dataFile.setRedefineMode(true);

Group gr = dataFile.addGroup(null,"");
Attribute att = new Attribute("creator","testValue");
dataFile.addGroupAttribute(gr, att);
Attribute aa = dataFile.findGlobalAttribute("creator");
Attribute bb = dataFile.findGlobalAttribute("versionD");
dataFile.deleteGroupAttribute(null, "versionD");
dataFile.setRedefineMode(true);
dataFile.renameVariable("versionD", "versionKK");
dataFile.flush();

【问题讨论】:

    标签: netcdf


    【解决方案1】:

    您需要使文件退出重新定义模式以强制将新属性写入磁盘。尝试添加这一行:

    dataFile.setRedefineMode(false);
    

    在关闭文件之前。

    【讨论】:

      猜你喜欢
      • 2020-04-30
      • 1970-01-01
      • 2019-11-22
      • 2017-06-09
      • 1970-01-01
      • 2021-08-03
      • 1970-01-01
      • 1970-01-01
      • 2011-04-04
      相关资源
      最近更新 更多