範囲外ポイントの位置の特定(Locate Outliers) (3D Analyst)
サマリ
サーフェスと比較して外れて見えるポイントを特定します。これらのポイントは誤差を生じる可能性があるので、必要に応じてサーフェスの作成から除外してください。
使用法
- フィーチャクラスが作成され、入力サーフェスに属しているコピーされたポイントが設定されます。これらのポイントには、ユーザ指定の基準に従って、範囲外のフラグが立っています。範囲外ポイントとは、想定外の標高であったり、想定外の傾斜の原因となるようなポイントのことです。
- [ハードリミットを適用] オプションを選択して、[比較フィルタを適用] オプションを選択しない場合、[Z の絶対最小値] および [Z の絶対最大値] でユーザが指定した範囲の外にあるすべてのポイントが出力されます。
- [ハードリミットを適用] オプションと [比較フィルタを適用] オプションを両方とも選択した場合、両方の基準が適用されます。
- n 個の接続ポイント(三角形のエッジによって接続された TIN のノード)を持つ所定のポイントでは、そのポイントから接続ポイントまでの傾斜角が [傾斜角の許容値] より m ポイント(m は [許容率を超過] の n 倍)大きい場合、このポイントは出力に書き込まれます。
- 出力に書き込まれたポイント数が [範囲外データの上限] 制限に到達したら、それ以上のポイントは書き出されません。
構文
LocateOutliers_3d (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 またはテレイン データセット。 | TIN Layer; Terrain Layer |
out_feature_class |
出力フィーチャクラス。 | Feature Class |
apply_hard_limit (オプション) |
Z の絶対最小値および Z の絶対最大値を使用して範囲外ポイントを検出するかどうか。
| Boolean |
absolute_z_min (オプション) |
絶対制限が適用されたら、この値を下回る標高のポイントはすべて範囲外と見なされます。デフォルトは 0 です。 | Linear unit |
absolute_z_max (オプション) |
絶対制限が適用されたら、この値を上回る標高のポイントはすべて範囲外と見なされます。デフォルトは 0 です。 | Linear unit |
apply_comparison_filter (オプション) |
比較フィルタは、ポイントが範囲外かどうか評価するための 3 つのパラメータで構成されています。次の 3 つのパラメータ([Z 許容値]、[傾斜角の許容値]、[許容率を超過])をポイントの評価に使用するかどうかを示します。
| Boolean |
z_tolerance (オプション) |
比較フィルタが適用されている場合に、近傍ポイントの Z 値を比較するために使用します。デフォルトは 0 です。 | Linear unit |
slope_tolerance (オプション) |
連続するポイント間の傾斜角の閾値。パーセンテージで表されます。デフォルトは 150 です。 | Double |
exceed_tolerance_ratio (オプション) |
最大許容値。デフォルトは 0.5 です。 | Double |
outlier_cap (オプション) |
出力された範囲外ポイントの最大数。この値に到達すると、範囲外ポイントはこれ以上、検出されません。デフォルトは 2500 です。 | Long |
コードのサンプル
Locate Outliers(範囲外ポイントの位置の特定)の例 1(Python ウィンドウ)
次の Python ウィンドウ スクリプトは、イミディエイト モードで Locate Outliers(範囲外ポイントの位置の特定)関数を使用する方法を示しています。
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)
Locate Outliers(範囲外ポイントの位置の特定)の例 2(スタンドアロン スクリプト)
次の Python スクリプトは、スタンドアロン スクリプトで Locate Outliers(範囲外ポイントの位置の特定)関数を使用する方法を示しています。
'''********************************************************************** 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)
環境
関連項目
ライセンス情報
ArcView: 必須 3D Analyst
ArcEditor: 必須 3D Analyst
ArcInfo: 必須 3D Analyst
7/10/2012