本文主要为您介绍如何在Grid模型的客户端写入多维网格数据。
写入流程

如上图所示,网格数据录入流程可以分为三部分:
- 通过putDataSetMeta接口写入数据集的元数据信息。
- 通过GridDataWriter录入整个数据集的数据。
- 通过updateDataSetMeta接口更新数据集的元数据信息,标记数据已经录入完成。
示例
读取一个NetCDF(气象格点数据常用的格式)文件,然后将其中的数据通过GridDataWriter录入到表格存储中。通过GridDataWriter每次写入时,只能写入一个二维平面,所以我们需要在外层进行3层循环,分别枚举变量维、时间维、高度维的值,然后读取对应的二维平面的数据进行录入。
示例代码:
public void importFromNcFile(TableStoreGrid grid, GridDataSetMeta meta, String ncFileName) throws Exception {
GridDataWriter writer = grid.getDataWriter(meta);
NetcdfFile ncFile = NetcdfFile.open(ncFileName);
List<Variable> variables = ncFile.getVariables();
for (Variable variable : variables) {
if (meta.getVariables().contains(variable.getShortName())) {
for (int t = 0; t < meta.gettSize(); t++) {
for (int z = 0; z < meta.getzSize(); z++) {
Array array = variable.read(new int[]{t, z, 0, 0}, new int[]{1, 1, meta.getxSize(), meta.getySize()});
Grid2D grid2D = new Grid2D(array.getDataAsByteBuffer(), variable.getDataType(),
new int[] {0, 0}, new int[] {meta.getxSize(), meta.getySize()});
writer.writeGrid2D(variable.getShortName(), t, z, grid2D);
}
}
}
}
}