0

作成したデータの簡単な等高線図を作成する方法を見つけるために、VTK の例を詰め込んでいます。構造化された長方形グリッド上の 71x71 ドメインで単純な偏微分方程式を解いたとします。このグリッドでは、ノードがそれらの間で等距離に配置されています。

*.vtp ファイルからのデータを視覚化する方法を示す、 filledContoursの例を調べました。.vtp ファイルを書き込める限り、これで問題ありません。問題は、等高線図に適した .vtp データ ファイルの作成方法がわからないことです。球体やコーンなどの埋め込みアクタから .vtp ファイルを作成できましたが、2D データ配列でそれを行う方法がわかりません。

4

2 に答える 2

1

等間隔のメッシュが必要なので、vtk xml ベースの ImageData 形式 (*.vti) を使用します。

http://www.cacr.caltech.edu/~slombey/asci/vtk/vtk_formats.simple.htmlから:

"� ImageData — 各 ImageData ピースは、データセットの全範囲内でその範囲を指定します。ポイントとセル ... 範囲、原点、および間隔によって暗黙的に記述されます。原点と間隔はすべての部分で一定であるため、 ImageData XML 要素の属性として次のように指定します。

<VTKFile type=" ImageData" ...> 
    <ImageData WholeExtent=" x1 x2 y1 y2 z1 z2" 
        Origin=" x0 y0 z0" Spacing=" dx dy dz"> 
        <Piece Extent=" x1 x2 y1 y2 z1 z2"> 
            <PointData>...</ PointData> 
            <CellData>...</ CellData> 
        </ Piece> 
    </ ImageData> 
</ VTKFile> 

-End of link info" x0 y0 z0 と dx dy dz のみが実数であることに注意してください。WholeExtent と PieceExtent はピクセル インデックスを参照します。

Paraview で視覚化された 10x10 ピクセルの 2D マップこの例では、温度が左下隅から右上隅に移動する 10x10 ピクセルのマップを示します。値は各セルに関連付けられています。この形式を 2D データに合わせて調整できます。ファイルの内容 (CellData のみを使用していることに注意してください):

example.vti :

<VTKFile type="ImageData" version="0.1" byte_order="LittleEndian">
    <ImageData WholeExtent=" 0 10 0 10 0 1" Origin=" 0 0 0" Spacing=" 1 1 0">

        <Piece Extent=" 0 10 0 10 0 1">

          <CellData Scalars="scalars">
              <DataArray type="Float32" Name="Temperature[C]" format="ascii">
                  1       2       3       4       5       6       7       8       9       10
                  11      12      13      14      15      16      17      18      19      20
                  21      22      23      24      25      26      27      28      29      30
                  31      32      33      34      35      36      37      38      39      40
                  41      42      43      44      45      46      47      48      49      50
                  51      52      53      54      55      56      57      58      59      60
                  61      62      63      64      65      66      67      68      69      70
                  71      72      73      74      75      76      77      78      79      80
                  81      82      83      84      85      86      87      88      89      90
                  91      92      93      94      95      96      97      98      99      100
              </DataArray>
          </CellData>

        </Piece>

    </ImageData>
</VTKFile>
于 2014-09-03T16:03:36.443 に答える
0

簡単な方法は、データを CSV 形式で出力し、各グリッド スクエアに新しい行を追加することです。つまり、

....
grid_idx_i, grid_idx_j, grid_idx_k, val_ijk
....

これをparaviewにロードすると、フィルタTableToPointsを適用して、paraviewが処理できる形式で取得できます。次に、フィルターDelaunay2Dを適用してポイントからセルに変換します。これを行うと、Contourフィルターは正常に機能するはずです。

また、CSV に直線グリッドとして格納されている場合、データをロードすることも可能かもしれませんが、よくわかりません。

編集:申し訳ありませんが、パラビューでデータを視覚化しようとしていると暗黙のうちに想定していました。これは事実ですか?

于 2011-07-27T09:23:11.910 に答える