2017-04-06 16 views
0

私は自分のncファイルを読み込もうとしていました。その中の3つの変数がありますが、それらは:C++ vtknetCDFCFReader異なる次元の問題を持つ変数を読み込む

zonalWind(高さ、経度、緯度)

meridionalWind(高さ、経度、緯度)

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

しかし、私は、理由の次元の問題のverticalVelocity列をスキップtermianlに、次のエラーを得ました:

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"変数の2番目のリーダーを作成しましたが、同じ問題のためにデータをスキップしていました。プログラムがディメンションを(height lat lon)にデフォルト設定したようです。私はSetDimensionを使ってそれを変更すると思いますか? @ Drone2537 –

+0

更新:私はリーダーの更新機能の前にSetDimension関数を配置しなければならないことが分かりました。それは今働く。 –

+0

それはあなたのためにうれしいです。 – Drone2537

関連する問題