近接性による LAS ポイントの特定 (Locate LAS Points By Proximity) (3D Analyst)

概要

Z 対応フィーチャの 3 次元の範囲内にある LAS ポイントと、これらのポイントを再分類するためのオプションを特定します。

使用法

  • このツールは、入力フィーチャの、指定した検索範囲内にある LAS ポイントの数が格納されるフィールドを更新します。このツールで生成できるポイント数には制限はないので、極端に大きすぎる検索距離を使用しないことも検討してください。

  • LAS データセット レイヤーにより、レイヤーのフィルター設定内の分類コード、分類フラグ、リターンの組み合わせを選択することで表示および処理される LAS ポイントを制限できます。フィルターは、[レイヤー プロパティ] ダイアログ ボックスまたは [LAS データセット レイヤーの作成 (Make LAS Dataset Layer)] ツールを使用して定義できます。

  • シングル ポイント ジオメトリを使用して出力ポイント フィーチャを生成する場合、DIST3D というフィールドが出力に追加されます。このフィールドには、ポイントから最も近い入力フィーチャへの 3D 距離が含まれます。

構文

arcpy.3d.LocateLasPointsByProximity(in_las_dataset, in_features, search_radius, count_field, {out_features}, {geometry}, {class_code}, {compute_stats})
パラメーター説明データ タイプ
in_las_dataset

処理対象の LAS データセット。

LAS Dataset Layer
in_features

LAS ポイントの識別に使用される近接性を持つ、3D ポイント フィーチャ、3D ライン フィーチャ、3D ポリゴン フィーチャ、または 3D マルチパッチ フィーチャ。

Feature Layer
search_radius

LAS ポイントの存在が調べられる入力フィーチャの周囲の距離。これは、直線距離または入力フィーチャの属性テーブル内の数値フィールドで指定できます。フィールドまたは直線距離から得られた検索範囲の単位が [不明] と指定されている場合、入力フィーチャの XY 空間参照の距離単位が使用されます。

以下の単位がサポートされています。

  • UNKNOWN不明
  • INCHESインチ
  • FEETフィート
  • YARDSヤード
  • MILESマイル
  • CENTIMETERSセンチメートル
  • DECIMETERSデシメートル
  • METERSメートル
  • KILOMETERSキロメートル
Linear Unit; Field
count_field

入力フィーチャの属性テーブルに追加され、各フィーチャに近接する LAS ポイントの数が設定されるフィールドの名前。デフォルトのフィールド名は、COUNT です。

String
out_features
(オプション)

入力フィーチャから指定した距離の範囲内で検出された LAS ポイントを表すポイント フィーチャ。

Feature Class
geometry
(オプション)

入力フィーチャから指定した距離の範囲内で検出された LAS ポイントを表す出力ポイント フィーチャのジオメトリを指定します。

  • MULTIPOINT各行に複数のポイントを含むマルチポイント フィーチャ。
  • POINT特定された LAS ポイントごとに一意の行を含むシングルポイント フィーチャ。
String
class_code
(オプション)

入力フィーチャの検索範囲内で検出されたポイントの再分類に使用されるクラス コード値。

Long
compute_stats
(オプション)

LAS データセットで参照されている LAS ファイルの統計情報を計算するかどうかを指定します。統計情報を計算することで、LAS ファイルごとの空間インデックスが提供され、解析と表示のパフォーマンスが向上します。また統計によって、分類コードやリターン情報などの LAS 属性の表示が LAS ファイルに存在する値に制限されるので、フィルタリングとシンボルのエクスペリエンスも強化されます。

  • COMPUTE_STATS統計情報を計算します。
  • NO_COMPUTE_STATS統計情報を計算しません。これがデフォルトです。
Boolean

派生した出力

名前説明データ タイプ
out_las_dataset

更新された LAS データセット。

LAS データセット レイヤー
derived_features

更新された入力 3D フィーチャ。

フィーチャ レイヤー

コードのサンプル

LocateLasPointsByProximity (近接性による LAS ポイントの特定) の例 1 (Python ウィンドウ)

次のサンプルは、Python ウィンドウでこのツールを使用する方法を示しています。

import arcpy
from arcpy import env

arcpy.CheckOutExtension('3D')
env.workspace = 'C:/data'
arcpy.LocateLasPointsByProximity_3d('lidar.lasd', 'powerlines.shp', 
                                    search_radius="10 Feet", 
                                    count_field="Near_Pts",
                                    out_features="located_pts.shp")
LocateLasPointsByProximity (近接性による LAS ポイントの特定) の例 2 (スタンドアロン スクリプト)

次のサンプルは、スタンドアロン Python スクリプトでこのツールを使用する方法を示しています。

'''****************************************************************************
Name: Classify Noise Points
Description: Updates classification of version 1.0 LAS files to conform to
             the standardized class codes introduced in the 1.1 specifications.
             The code is designed for use as a script tool.
****************************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback

# Set Local Variables
inLas = arcpy.GetParameterAsText(0)
recursion = arcpy.GetParameterAsText(1)
lasd = arcpy.GetParameterAsText(2)
reclassList = arcpy.GetParameterAsText(3) #List of values '<oldCode> <newCode>'
calcStats = arcpy.GetParameter(4)

try:
    # Execute CreateLasDataset
    arcpy.management.CreateLasDataset(inLas, lasd, folder_recursion=recursion)
    # Execute Locate Outliers
    outlier_pts = 'in_memory/outliers'
    arcpy.ddd.LocateOutliers(lasd, out_feature_class=outlier_pts, 
                            apply_hard_limit='Apply_Hard_Limit', 
                            absolute_z_min=-15, absolute_z_max=680, 
                            apply_comparison_filter='Apply_Comparison_Filter',
                            z_tolerance=0, slope_tolerance=150, 
                            exceed_tolerance_ratio=0.5, outlier_cap=3000)
    # Execute ChangeLasClassCodes
    arcpy.ddd.LocateLasPointsByProximity(lasd, in_features=outlier_pts, 
                                         search_radius='0.5 Centimeters', 
                                         class_code=18)
    # Report messages
    arcpy.GetMessages(0)

except arcpy.ExecuteError:
    print(arcpy.GetMessages())

ライセンス情報

  • Basic: 次のものが必要 3D Analyst
  • Standard: 次のものが必要 3D Analyst
  • Advanced: 次のものが必要 3D Analyst

関連トピック