範囲外ポイントの位置の特定(Locate Outliers) (3D Analyst)
サマリ
定義されている標高値の範囲を超える、または周囲のサーフェスと一致しない傾斜の特性を持ったテレイン、TIN、または LAS データセットからの特異な標高の計測値を識別します。
使用法
-
範囲外ポイントの検出には、[ハードリミットを適用] オプションと [比較フィルタを適用] オプションの両方が適用されます。
注意:両方のフィルタが有効な場合、ハード リミットが先に適用されます。
サーフェスの有効な標高値の範囲がわかっている場合は、[ハードリミットを適用] オプションを使用することを検討してください。[Z の絶対最小値] および [Z の絶対最大値] によって定義される範囲の外にあるポイント標高の計測値が出力で作成されます。
隣接する計測値を基準とする高さまたは傾斜角の差分を超えるデータ ポイントを検索するには、[比較フィルタを適用] オプションを使用することを検討してください。各データ ポイントにおいて、その自然近傍に対する高さおよび傾斜角の変化がテストされます。[許容率を超過] は、ポイントを範囲外ポイントと見なすために傾斜角または高さの許容値を超過している必要がある、テスト ポイント近傍のポイント数の決定に使用されます。
- X 個の三角形のエッジによって接続されたノードを持つ所定のポイントでは、そのポイントから接続ポイントまでの傾斜角が [傾斜角の許容値] より m ポイント(m は [許容率を超過] の n 倍)大きい場合、このポイントは出力に書き込まれます。
[範囲外データの上限] によって、出力に書き込むことができるポイントの数が制限されます。この制限に達すると、ツールは警告を返し、範囲外ポイントの検索を中止します。
出力ポイントには、REASON という名前の整数フィールドの属性が追加されます。このフィールドの値によって、ポイント計測値が含められたときの範囲外ポイントの識別条件が特定されます。
- 0 - ハード リミット
- 1 - ハード リミットおよび比較フィルタ
- 2 - 比較フィルタ
テレイン データセットから範囲外ポイントを削除するには、[テレイン ポイントの削除(Delete Terrain Points)] ツールを実行して、[対象地域(AOI)] パラメータで指定した範囲外ポイントを使用します。
[フィーチャを使用して LAS クラス コードを設定(Set LAS Class Codes Using Features)] ツールを使用して、LAS データセットで識別された範囲外ポイントをノイズとして再分類します。
構文
パラメータ | 説明 | データ タイプ |
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 許容値]、[傾斜角の許容値]、および [許容率を超過])で構成されています。
| Boolean |
z_tolerance (オプション) |
比較フィルタが適用されている場合に、近傍ポイントの Z 値を比較するために使用します。デフォルトは 0 です。 | Double |
slope_tolerance (オプション) |
範囲外ポイントを識別するために使用される連続するポイント間の傾斜角の変化の閾値。傾斜角はパーセンテージで指定します。デフォルトは 150 です。 | Double |
exceed_tolerance_ratio (オプション) |
各範囲外ポイントを判断する基準を、指定された比較フィルタを超過する自然近傍のポイント比率の関数として定義します。たとえば、デフォルト値 0.5 の場合、入力ポイントが範囲外ポイントとしてフラグ付けされるには、入力ポイントの周囲のポイントの半数以上が比較フィルタを超過している必要があります。値 0.7 の場合、近傍のポイントの 70% 以上が許容値を超過している必要があります。 | Double |
outlier_cap (オプション) |
出力に書き込むことができる範囲外ポイントの最大数。この値に到達すると、範囲外ポイントはこれ以上、検出されません。デフォルトは 2,500 です。 | Long |
コードのサンプル
次のサンプルは、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)
次のサンプルは、スタンドアロン 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)