pyvista.PointSet.threshold#
- PointSet.threshold(value=None, scalars=None, invert=False, continuous=False, preference='cell', all_scalars=False, component_mode='all', component=0, method='upper', progress_bar=False)[ソース]#
入力データセットに
vtkThreshold
フィルタを適用します.このフィルタは
vtkThreshold
フィルタを入力データセットに適用し,結果のオブジェクトを返します.各セルのスカラー値が閾値の基準を満たすセルを抽出します.scalars
がNone
の場合,アクティブスカラー配列が使用されます.警告
閾値処理は,セルを維持するかどうかを決定するために関連する点データを使用できるにもかかわらず,本質的にセル操作です.つまり,ある点が閾値処理後に含まれるかどうかは,その点が閾値処理後に保持されるセルの一部であるかどうかに依存します.
また,デフォルトの
preference
では,POINT データよりも CELL データが選択されていることに注意してください.これは,PyVistaのAPIの他のほとんどの場所で,通常POINTデータが優先されるのに反しています.POINTデータとCELLデータの両方に存在する名前付き配列で閾値を設定すると,CELL単位の演算を行う際にCELLデータの配列がデフォルトになるように,ここではCELLデータを優先することにしました.- パラメータ:
- value
float
| sequence[float
],optional
データ閾値に使用する単一の値または
(min, max)
.シーケンスの場合,長さは2にする必要があります.値を指定しない場合,NaN以外のデータ範囲を使用してNaN値が削除されます.単一の値がどのように扱われるかについては,method
パラメータを参照してください.- scalars
str
,optional
閾値に対するスカラーの名前.デフォルトは現在アクティブなスカラーです.
- invertbool, default:
False
閾値の結果を反転させます.つまり,このオプションをオフにした場合,出力に含まれるはずだったセルは除外され,出力から除外されるはずだったセルは含まれる.
- continuousbool, default:
False
Trueの場合,頂点からの離散スカラー値のセットではなく,連続間隔[最小セルスカラー,最大セルスカラー]が閾値境界との交差に使用されます.
- preference
str
, default: 'cell' scalars
が指定された場合,データセットから検索する際に優先される配列の種類を指定します.'point'
または'cell'
のどちらかを指定する必要があります.PyVistaでは通常'point'
が優先されるが,閾値フィルタはセル単位の操作であるため,閾値処理ではセルのデータを優先する.- all_scalarsbool, default:
False
点データを使用する場合,この値が
True
のときは,セル内のすべての点のすべてのスカラーが閾値を満たす必要があります.False
のときは,閾値の基準を満たすスカラー値を持つセルの任意の点がセルを抽出します.セルデータ使用時には効果がありません.- component_mode{'selected', 'all', 'any'}
多成分スカラーの閾値オフの基準を満たすメソッド. 'selected' (デフォルト) は,
component
のみを使用します. 'all' は,すべてのコンポーネントが基準を満たすことを要求します. 'any' は,いずれかのコンポーネントが基準を満たす場合です.- component
int
, default: 0 component_mode='selected'
を使用している場合,どのコンポーネントに閾値を設定するかを指定します.- method
str
, default: 'upper' 単一の値に対する threshold メソッドを設定し,使用する threshold の境界を定義します.もし
value
が範囲指定されている場合,このパラメータは無視され,2つの値の間のデータが抽出されます.単一の値の場合,'lower'
はvalue
よりも低いデータを抽出します.'upper'
はvalue
よりも大きなデータを取り出します.- progress_barbool, default:
False
進行状況を示す進行状況バーを表示します.
- value
- 戻り値:
pyvista.UnstructuredGrid
閾値要件を満たすジオメトリを含むデータセット.
例
>>> import pyvista as pv >>> import numpy as np >>> volume = np.zeros([10, 10, 10]) >>> volume[:3] = 1 >>> vol = pv.wrap(volume) >>> threshed = vol.threshold(0.1) >>> threshed UnstructuredGrid (...) N Cells: 243 N Points: 400 X Bounds: 0.000e+00, 3.000e+00 Y Bounds: 0.000e+00, 9.000e+00 Z Bounds: 0.000e+00, 9.000e+00 N Arrays: 1
Perlinノイズに閾値フィルターを適用します.まず,構造格子を生成します.
>>> import pyvista as pv >>> noise = pv.perlin_noise(0.1, (1, 1, 1), (0, 0, 0)) >>> grid = pv.sample_function( ... noise, [0, 1.0, -0, 1.0, 0, 1.0], dim=(20, 20, 20) ... ) >>> grid.plot( ... cmap='gist_earth_r', ... show_scalar_bar=True, ... show_edges=False, ... )
次に,閾値を適用します.
>>> import pyvista as pv >>> noise = pv.perlin_noise(0.1, (1, 1, 1), (0, 0, 0)) >>> grid = pv.sample_function( ... noise, [0, 1.0, -0, 1.0, 0, 1.0], dim=(20, 20, 20) ... ) >>> threshed = grid.threshold(value=0.02) >>> threshed.plot( ... cmap='gist_earth_r', ... show_scalar_bar=False, ... show_edges=True, ... )
このフィルターを使用したその他の例については, 共通フィルタの使用 を参照してください.