C++ vtknetCDFCFReader读取具有不同尺寸问题的变量

问题描述:

我正在尝试读取我的nc文件。湖中有3个变量,它们分别是:C++ vtknetCDFCFReader读取具有不同尺寸问题的变量

zonalWind(高度,经度,纬度)

meridionalWind(高度,经度,纬度)

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); 

但后来我得到了吡嗪酰胺跳过,因为尺寸问题的verticalVelocity阵列以下错误:

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

是否有任何方法可以读取所有3个变量数据而不是“跳过”,然后做一些处理?

TIA

号你应该创建2个vtkNetCDFCFReader实例,并为每个相同的尺寸读取变量。

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

+0

我为“verticalVelocity”变量创建了第二个阅读器,但仍然由于同样的问题而跳过了数据。程序似乎默认了维度(高度纬度)。我想用SetDimension来改变它吗? @ Drone2537 –

+0

更新:只是意识到我必须在读取器更新函数之前放置SetDimension函数。它现在有效。 –

+0

很高兴它适合你。 – Drone2537