概要
定義されている標高値の範囲を超える、または周囲のサーフェスと一致しない傾斜の特性を持ったテレイン、TIN、または LAS データセットからの特異な標高の計測値を識別します。
使用法
-
範囲外ポイントの検出には、[ハードリミットを適用] オプションと [比較フィルターを適用] オプションの両方が適用されます。両方のオプションが有効な場合、ハード リミットが先に適用されます。
[ハードリミットを適用] オプションでは、[Z の絶対最小値] 未満の標高値を持つポイントと [Z の絶対最大値] を超える標高値を持つポイントが範囲外ポイントと見なされます。サーフェスの有効な標高値の範囲がわかっている場合は、このオプションを使用することを検討してください。
隣接する計測値を基準とする高さまたは傾斜角の差分を超えるデータ ポイントを検索するには、[比較フィルターを適用] オプションを使用することを検討してください。サーフェスの各計測において、その自然近傍からの高さおよび傾斜角の偏差がテストされます。[許容率を超過] オプションは、入力ポイントの近傍から周囲の計測数を決定する際に使用されます。ポイントを範囲外ポイントと見なすには、傾斜角または高さの許容値を超える必要があります。
- X 個の三角形のエッジによって接続されたノードを持つ所定のポイントでは、そのポイントから接続ポイントまでの傾斜角が [傾斜角の許容値] より m ポイント (m は [許容率を超過] の n 倍) 大きい場合、このポイントは範囲外ポイントと見なされます。
この比較フィルターは、露出した地表ポイント データに最適です。この比較フィルターは、多くのフィーチャを範囲外ポイントと見なす傾向があるため、植生や建物を使用するデータセットに対して実行しないでください。この範囲外ポイント検出方法を LAS データセットに使用する場合は、地表分類ポイントのフィルタリングを検討してください。または、[LAS ノイズの分類 (Classify LAS Noise)] ツールを使用して、LAS データセットのノイズ ポイントを識別することを検討してください。
出力ポイントには、REASON という名前の整数フィールドの属性が追加されます。このフィールドの値によって、ポイント計測値が含められたときの範囲外ポイントの識別条件が特定されます。
- 0 - ハード リミット
- 1 - ハード リミットおよび比較フィルター
- 2 - 比較フィルター
テレイン データセットから範囲外ポイントを削除するには、[テレイン ポイントの削除 (Delete Terrain Points)] ツールを実行して、[対象地域 (AOI)] パラメーターで指定した範囲外ポイントを使用します。
構文
arcpy.ddd.LocateOutliers(in_surface, out_feature_class, {apply_hard_limit}, {absolute_z_min}, {absolute_z_max}, {apply_comparison_filter}, {z_tolerance}, {slope_tolerance}, {exceed_tolerance_ratio}, {outlier_cap})
パラメーター | 説明 | データ タイプ |
in_surface | 解析されるテレイン、TIN、または LAS データセット。 | LAS Dataset Layer; Terrain Layer; TIN Layer |
out_feature_class | このツールで生成されるフィーチャクラス。 | Feature Class |
apply_hard_limit (オプション) | Z の絶対最小値および Z の絶対最大値の使用を指定して範囲外ポイントを検出します。
| Boolean |
absolute_z_min (オプション) | ハード リミットが適用されたら、この値を下回る標高のポイントはすべて範囲外と見なされます。デフォルトは 0 です。 | Double |
absolute_z_max (オプション) | ハード リミットが適用されたら、この値を上回る標高のポイントはすべて範囲外と見なされます。デフォルトは 0 です。 | Double |
apply_comparison_filter (オプション) | 比較フィルターは、範囲外ポイントを特定するための 3 つのパラメーター (z_tolerance、slope_tolerance、および exceed_tolerance_ratio) で構成されています。
| Boolean |
z_tolerance (オプション) | 比較フィルターが適用されている場合に、近傍ポイントの Z 値を比較します。デフォルトは 0 です。 | Double |
slope_tolerance (オプション) | 範囲外ポイントを識別するために使用される連続するポイント間の傾斜角の変化の閾値。傾斜角はパーセンテージで指定します。デフォルトは 150 です。 | Double |
exceed_tolerance_ratio (オプション) | 各範囲外ポイントを判断する基準を、指定された比較フィルターを超過する自然近傍のポイント比率の関数として定義します。たとえば、デフォルト値 0.5 の場合、入力ポイントが範囲外ポイントと見なされるには、入力ポイントの周囲のポイントの半数以上が比較フィルターを超過している必要があります。値 0.7 の場合、近傍のポイントの 70% 以上が許容値を超過している必要があります。 | Double |
outlier_cap (オプション) | 出力に書き込むことができる範囲外ポイントの最大数。この値に到達すると、範囲外ポイントはこれ以上、検出されません。デフォルトは 2,500 です。 | Long |
コードのサンプル
LocateOutliers (範囲外ポイントの位置の特定) の例 1 (Python ウィンドウ)
次のサンプルは、Python ウィンドウでこのツールを使用する方法を示しています。
import arcpy
from arcpy import env
arcpy.CheckOutExtension("3D")
env.workspace = "C:/data"
arcpy.LocateOutliers_3d("tin", "outliers.shp", "NO_APPLY_HARD_LIMIT", 0, 0,
"APPLY_COMPARISON_FILTER", 0, 150, 0.5, 2500)
LocateOutliers (範囲外ポイントの位置の特定) の例 2 (スタンドアロン スクリプト)
次のサンプルは、スタンドアロン Python スクリプトでこのツールを使用する方法を示しています。
'''**********************************************************************
Name: Delete Terrain Outliers
Description: Uses Locate Outliers to identify outlier points in
a terrain dataset, and eliminates the outliers from the
terrain with Delete Terrain Points.
**********************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback
from arcpy import env
try:
arcpy.CheckOutExtension('3D')
# Set Local Variables
env.workspace = 'C:/data'
terrain = 'test.gdb/featuredataset/sample_terrain'
terrainPt = 'elevation_pts' # name of terrain point data source
outliers = 'in_memory/outliers'
# Execute LocateOutliers
arcpy.ddd.LocateOutliers(terrain, outliers, 'APPLY_HARD_LIMIT', -10,
350, 'APPLY_COMPARISON_FILTER', 1.2, 120,
0.8, 8000)
# Execute Delete Terrain Points
arcpy.ddd.DeleteTerrainPoints(terrain, terrainPt, outliers)
arcpy.CheckInExtension('3D')
except arcpy.ExecuteError:
print arcpy.GetMessages()
except:
# Get the traceback object
tb = sys.exc_info()[2]
tbinfo = traceback.format_tb(tb)[0]
# Concatenate error information into message string
pymsg = 'PYTHON ERRORS:\nTraceback info:\n{0}\nError Info:\n{1}'\
.format(tbinfo, str(sys.exc_info()[1]))
msgs = 'ArcPy ERRORS:\n {0}\n'.format(arcpy.GetMessages(2))
# Return python error messages for script tool or Python Window
arcpy.AddError(pymsg)
arcpy.AddError(msgs)
環境
ライセンス情報
- Basic: 次のものが必要 3D Analyst
- Standard: 次のものが必要 3D Analyst
- Advanced: 次のものが必要 3D Analyst