2017-04-06 48 views
0

我正在嘗試讀取我的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

回答

0

號你應該創建2個vtkNetCDFCFReader實例,併爲每個相同的尺寸讀取變量。

如果您只想提取較大網格的一部分並在較小網格上使用這些值,則將vtkExtractGrid過濾器附加到一個或兩個閱讀器輸出以獲取相同大小的數據集。最後,對結果運行vtkMergeArrays過濾器以生成包含所有數組值的單個數據集。

+0

我爲「verticalVelocity」變量創建了第二個閱讀器,但仍然由於同樣的問題而跳過了數據。程序似乎默認了維度(高度緯度)。我想用SetDimension來改變它嗎? @ Drone2537 –

+0

更新:只是意識到我必須在讀取器更新函數之前放置SetDimension函數。它現在有效。 –

+0

很高興它適合你。 – Drone2537