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过滤器以生成包含所有数组值的单个数据集。
我为“verticalVelocity”变量创建了第二个阅读器,但仍然由于同样的问题而跳过了数据。程序似乎默认了维度(高度纬度)。我想用SetDimension来改变它吗? @ Drone2537 –
更新:只是意识到我必须在读取器更新函数之前放置SetDimension函数。它现在有效。 –
很高兴它适合你。 – Drone2537