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

时间:2017-04-06 18:05:27

标签: c++ vtk netcdf

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

zonalWind(height,lon,lat)

meridionalWind(height,lon,lat)

verticalVelocity(height_2,lon,lat)

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

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跳过verticalVelocity数组时遇到以下错误:

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

我可以在所有3个可变数据中读取任何方法而不是“跳过”,并在之后进行一些处理吗?

TIA

1 个答案:

答案 0 :(得分:0)

没有。您应该创建2个vtkNetCDFCFReader实例并读取每个实例具有相同尺寸的变量。

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