VTK:グリッドセルの長さ、幅、高さを読み取る方法は?

ヘビ使い

私は*.pvdフォーマットに巨大なグリッドを持っています。上記のグリッドを構築する際に、いくつかのセルサイズの仕様が尊重されていることを確認したいと思います。そのためには、(dx、dy、dz)を使用してセルデータ配列を取得する必要があります。

私は最初にParaviewでこれをチェックしようとしましたが、ほとんど成功しませんでした。次にvtk、以下のコードのように、メッシュをさまざまな形式(vtk、vtu、ex2)でエクスポートし、モジュールを使用してPythonにインポートすることを解決しました。残念ながら、メッシュのサイズはそれを禁止しており、「サイズxのn個のセルを割り当てることができません」というさまざまなエラーメッセージが表示されます。

import vtk
reader = vtk.vtkXMLUnstructuredGridReader()
reader.SetFileName("my_mesh.vtu")
reader.Update()

最後に、Paraviewには、グリッドファイルを次のいずれpvdかのvtk形式で開くことができるpython-shellがあります。

>>> from paraview.simple import *
>>> my_vtk = OpenDataFile("my_mesh.vtk")
>>> print dir(my_vtk)

このリーダーオブジェクトのメソッドと属性を参照しているにもかかわらず、グリッド上のジオメトリ情報をどこで取得するかについてはわかりません。また、simpleモジュールのドキュメント閲覧しましたが、頭を悩ませることはできません。

では、paraview.servermanager.LegacyVTKReaderオブジェクトからセルのジオメトリに関する情報を取得するにはどうすればよいでしょうか。

パラビューGUIを介してこれを実現する方法についての手がかり、またはメモリの問題にもかかわらずvtkオブジェクトをpythonvtkにロードするための応急修理も大歓迎です。ぼんやりとした質問で申し訳ありませんが、どこから始めればいいのかよくわかりません...

user6764549

GetClientSideObject()ここを参照)を使用して、ParaviewPythonシェルでVTKオブジェクトを取得できます。その後、すべての通常のVTKPython関数を使用できます。たとえば、ParaviewPythonシェルで次のように記述できます。

>>> from paraview.simple import *
>>> currentSelection = GetActiveSource()
>>> readerObj = currentSelection.GetClientSideObject()
>>> unstructgrid = readerObj.GetOutput()
>>> firstCell = unstructgrid.GetCell(0)
>>> cellPoints = firstCell.GetPoints()

または、ParaViewでプログラマブルフィルタ使用することもできますこれにより、完全なVTK pythonモジュール、さらにはNumPyやその他のモジュールにアクセスできます。プログラム可能なフィルターのスクリプトウィンドウに次のスクリプトを入力できます。

import vtk as v
import numpy as np

inp = self.GetUnstructuredGridInput()
cells = inp.GetCells()
cells.InitTraversal()
cellPtIds = v.vtkIdList()
lenArr = v.vtkDoubleArray()
lenArr.SetNumberOfComponents(3)
lenArr.SetName('CellSize')
while cells.GetNextCell( cellPtIds ):
    pts = []
    for i in range( cellPtIds.GetNumberOfIds() ):
        ptCoords = inp.GetPoint( cellPtIds.GetId(i) )
        pts.append( ptCoords )    
    pts = np.array( pts )
    dx = np.max(pts[:,0]) - np.min(pts[:,0])
    dy = np.max(pts[:,1]) - np.min(pts[:,1])
    dz = np.max(pts[:,2]) - np.min(pts[:,2])
    lenArr.InsertNextTuple3(dx, dy, dz)
out = self.GetUnstructuredGridOutput()
out.ShallowCopy( inp )
out.GetCellData().AddArray( lenArr )

Paraviewで、パイプラインで「ProgrammableFilter1」アイコンを選択すると、下のスクリーンショットに示すように、ドロップダウンから新しいセルデータ配列を利用できるようになります。上記のスクリプトを変更して、データをファイルに保存し、外部で分析することができます。

Paraviewスクリーンショット

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

デコードせずにjpegの高さ幅とファイルサイズを読み取る高速な方法

分類Dev

javascriptで複数の値の長さを読み取る方法は?

分類Dev

グリッドビューで同じ高さのセルを残す方法は?

分類Dev

WindowsPhoneはグリッドの高さと幅を取得します

分類Dev

C#シリアルポート読み取り-異なる長さのCOBSコード化メッセージを取得します

分類Dev

Cssグリッド:セルの幅を調整する方法は?

分類Dev

バイト配列内の異なる長さのビットフィールドを読み取る最も簡単な方法は何ですか?

分類Dev

react-bootstrapグリッドの等しい幅と高さのセル

分類Dev

指定されたピクセルの長さを幅と高さに変換するプログラム

分類Dev

Seabornのファセットグリッドに読み取り可能なxticksを設定する方法は?

分類Dev

Matter-js-長方形の幅と高さを取得する方法は?

分類Dev

24 /ビットBMPの幅/高さの読み取り

分類Dev

コマンドまたはLUAスクリプトを使用してRedisに保存されている複数のセットを読み取る方法

分類Dev

protobuf複合ストリームを逆シリアル化せずにメッセージの長さを読み取る

分類Dev

幅と高さのみをスケーリングするCGAffineTransform

分類Dev

Excel - 数式ではなく、スプレッドシートに表示されるセルの値を正確に読み取る方法

分類Dev

アップロードされたファイルのコンテンツをAngularで読み取る方法は?

分類Dev

テキストファイルで文字を読み取り、文字の長さを取得する方法は?

分類Dev

データセットAPIを使用して、バリアント長のリストのTFRecordsファイルを読み取る方法は?

分類Dev

THREE.jsでメッシュの幅/高さ/長さを取得する方法

分類Dev

Cで任意の長さのファイルを読み取る

分類Dev

MYSQLで長さの整数のみをフィルタリングする方法は?

分類Dev

セル幅と非同期で読み込まれた画像に依存するUITableViewCellの高さを計算する

分類Dev

CSSグリッドセルの高さが異なる

分類Dev

2つのTCPセグメントにセグメント化されたHTTPPostメッセージを正しく読み取る方法は?

分類Dev

C ++とVTKによってFortranで生成されたバイナリstructured_pointsデータファイルを読み取る方法は?

分類Dev

cssグリッドのセル内の要素を整列させる方法は?

分類Dev

画像の読み込みは、幅/高さのピクセル数が維持されますか

分類Dev

スリックカルーセルのスライドの幅と高さを変更するにはどうすればよいですか?

Related 関連記事

  1. 1

    デコードせずにjpegの高さ幅とファイルサイズを読み取る高速な方法

  2. 2

    javascriptで複数の値の長さを読み取る方法は?

  3. 3

    グリッドビューで同じ高さのセルを残す方法は?

  4. 4

    WindowsPhoneはグリッドの高さと幅を取得します

  5. 5

    C#シリアルポート読み取り-異なる長さのCOBSコード化メッセージを取得します

  6. 6

    Cssグリッド:セルの幅を調整する方法は?

  7. 7

    バイト配列内の異なる長さのビットフィールドを読み取る最も簡単な方法は何ですか?

  8. 8

    react-bootstrapグリッドの等しい幅と高さのセル

  9. 9

    指定されたピクセルの長さを幅と高さに変換するプログラム

  10. 10

    Seabornのファセットグリッドに読み取り可能なxticksを設定する方法は?

  11. 11

    Matter-js-長方形の幅と高さを取得する方法は?

  12. 12

    24 /ビットBMPの幅/高さの読み取り

  13. 13

    コマンドまたはLUAスクリプトを使用してRedisに保存されている複数のセットを読み取る方法

  14. 14

    protobuf複合ストリームを逆シリアル化せずにメッセージの長さを読み取る

  15. 15

    幅と高さのみをスケーリングするCGAffineTransform

  16. 16

    Excel - 数式ではなく、スプレッドシートに表示されるセルの値を正確に読み取る方法

  17. 17

    アップロードされたファイルのコンテンツをAngularで読み取る方法は?

  18. 18

    テキストファイルで文字を読み取り、文字の長さを取得する方法は?

  19. 19

    データセットAPIを使用して、バリアント長のリストのTFRecordsファイルを読み取る方法は?

  20. 20

    THREE.jsでメッシュの幅/高さ/長さを取得する方法

  21. 21

    Cで任意の長さのファイルを読み取る

  22. 22

    MYSQLで長さの整数のみをフィルタリングする方法は?

  23. 23

    セル幅と非同期で読み込まれた画像に依存するUITableViewCellの高さを計算する

  24. 24

    CSSグリッドセルの高さが異なる

  25. 25

    2つのTCPセグメントにセグメント化されたHTTPPostメッセージを正しく読み取る方法は?

  26. 26

    C ++とVTKによってFortranで生成されたバイナリstructured_pointsデータファイルを読み取る方法は?

  27. 27

    cssグリッドのセル内の要素を整列させる方法は?

  28. 28

    画像の読み込みは、幅/高さのピクセル数が維持されますか

  29. 29

    スリックカルーセルのスライドの幅と高さを変更するにはどうすればよいですか?

ホットタグ

アーカイブ