概要
Z 対応フィーチャの 3 次元の範囲内にある LAS ポイントと、これらのポイントを再分類するためのオプションを特定します。
使用法
このツールは、入力フィーチャの、指定した検索範囲内にある LAS ポイントの数が格納されるフィールドを更新します。 このツールで生成できるポイント数には制限はないので、極端に大きすぎる検索距離を使用しないことも検討してください。
-
LAS データセット レイヤーにより、レイヤーのフィルター設定内の分類コード、分類フラグ、リターンの組み合わせを選択することで表示および処理される LAS ポイントを制限できます。フィルターは、[レイヤー プロパティ] ダイアログ ボックスまたは [LAS データセット レイヤーの作成 (Make LAS Dataset Layer)] ツールを使用して定義できます。
シングル ポイント ジオメトリを使用して出力ポイント フィーチャを生成する場合、DIST3D というフィールドが出力に追加されます。このフィールドには、ポイントから最も近い入力フィーチャへの 3D 距離が含まれます。
構文
arcpy.ddd.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 空間参照の距離単位が使用されます。 | Linear Unit; Field |
count_field | 入力フィーチャの属性テーブルに追加され、各フィーチャに近接する LAS ポイントの数が設定されるフィールドの名前。 デフォルトのフィールド名は COUNT です。 | String |
out_features (オプション) | 入力フィーチャから指定した距離の範囲内で検出された LAS ポイントを表すポイント フィーチャ。 | Feature Class |
geometry (オプション) | 入力フィーチャから指定した距離の範囲内で検出された LAS ポイントを表す出力ポイント フィーチャのジオメトリを指定します。
| String |
class_code (オプション) | 入力フィーチャの検索範囲内で検出されたポイントの再分類に使用されるクラス コード値。 | Long |
compute_stats (オプション) | LAS データセットで参照されている LAS ファイルの統計情報を計算するかどうかを指定します。統計情報を計算することで、LAS ファイルごとの空間インデックスが提供され、解析と表示のパフォーマンスが向上します。また統計によって、分類コードやリターン情報などの LAS 属性の表示が LAS ファイルに存在する値に制限されるので、フィルタリングとシンボルのエクスペリエンスも強化されます。
| Boolean |
派生した出力
名前 | 説明 | データ タイプ |
out_las_dataset | 更新された LAS データセット。 | LAS Dataset Layer |
derived_features | 更新された入力 3D フィーチャ。 | Feature Layer |
コードのサンプル
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