pyvista.PointSet.threshold#
- PointSet.threshold(
- value: float | VectorLike[float] | None = None,
- scalars: str | None = None,
- invert: bool = False,
- continuous: bool = False,
- preference: Literal['point', 'cell'] = 'cell',
- all_scalars: bool = False,
- component_mode: Literal['component', 'all', 'any'] = 'all',
- component: int = 0,
- method: Literal['upper', 'lower'] = 'upper',
- progress_bar: bool = 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{'component', 'all', 'any'}
The method to satisfy the criteria for the threshold of multicomponent scalars. 'component' (default) uses only the
component. 'all' requires all components to meet criteria. 'any' is when any component satisfies the criteria.- component
int, default: 0 When using
component_mode='component', this sets which component to threshold on.- method
str, default: 'upper' 単一の値に対する threshold メソッドを設定し,使用する threshold の境界を定義します.もし
valueが範囲指定されている場合,このパラメータは無視され,2つの値の間のデータが抽出されます.単一の値の場合,'lower'はvalueよりも低いデータを抽出します.'upper'はvalueよりも大きなデータを取り出します.- progress_barbool, default:
False 進行状況を示す進行状況バーを表示します.
- value
- 戻り値:
pyvista.UnstructuredGrid閾値要件を満たすジオメトリを含むデータセット.
参考
threshold_percentThreshold a dataset by a percentage of its scalar range.
extract_values()Threshold-like filter for extracting specific values and ranges.
image_threshold()Similar method for thresholding
ImageData.select_values()Threshold-like filter for
ImageDatato keep some values and replace others.
例
>>> 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, bounds=[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, bounds=[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, ... )