C++ vtknetCDFCFReader 读取具有不同维度问题的变量

C++ vtknetCDFCFReader reading variables with different dimensions issues

本文关键字:问题 变量 vtknetCDFCFReader 读取 C++      更新时间:2023-10-16

我试图读取我的nc文件。其中有 3 个变量,它们是:

带状风(高度,纬度,纬度(

经向风(高度,纬度,纬度(

垂直速度(height_2、经度、纬度(

下面是我读取数组的代码:

vtkNetCDFCFReader *reader = vtkNetCDFCFReader::New();
reader->SetFileName(fileName);
reader->SetOutputTypeToStructured();
reader->UpdateMetaData();
reader->Update();
reader->Print(std::cout);
reader->SetVariableArrayStatus("verticalVelocity", 1);
reader->SetVariableArrayStatus("zonalWind", 1);
reader->SetVariableArrayStatus("meridionalWind", 1);

但是由于维度问题,我在termianl跳过垂直速度数组时遇到了以下错误:

vtkNetCDFCFReader (0x7fb1f1517350): Variable verticalVelocity dimensions (height_2 lat lon) are different than the other variable dimensions (height lat lon).  Skipping

有什么方法可以读取所有 3 个变量数据而不是"跳过",然后进行一些处理?

蒂亚

No.您应该创建 2 个 vtkNetCDFCFReader 实例,并为每个实例读取具有相同维度的变量。

如果只想提取较大网格的一部分并在较小的网格上使用这些值,请将 vtkExtractGrid 筛选器附加到一个或两个读取器输出以获取相同大小的数据集。最后,对结果运行 vtkMergeArrays 筛选器,以生成包含所有数组值的单个数据集。