点群からオブジェクトを抽出 (Extract Objects From Point Cloud) (3D Analyst)

サマリー

分類された点群からポイント フィーチャ、ポリゴン フィーチャ、またはマルチパッチ フィーチャに個別オブジェクトを抽出します。

点群からオブジェクトを抽出ツールの図

使用法

  • このツールは、クラスタリング距離を使用して、同じオブジェクトに属するポイントを設定します。 複数のクラス コードが同じオブジェクトを表している可能性がある場合、クラスタリング処理中にクラス コードをリンクする共通グループ ID を割り当てます。 たとえば、大木のポイントにはクラス コード 3、4、または 5 が割り当てられていることがあります。 大木が適切に識別されるようにするため、この 3 つのクラス コードに共通グループ ID を割り当てることができます。

  • オブジェクトを抽出することで定量化可能なデータセットが提供され、これを使用して、マップまたはシーンに表示可能な資産目録を作成することができます。 このツールによって生成可能な 3D シェープは、可視領域や日影の影響評価を行う際に役立ちます。 簡略化されたジオメトリ表現によって、大量の点群の中のオブジェクトを可視化するのに役立つカートグラフィック抽象化も提供されます。

  • [最小ポイント数] パラメーターを使用すると、意味のある出力を生成しない可能性がある、少数のポイントで定義されたオブジェクトを除外できます。

  • [出力ジオメトリ タイプ] パラメーターに [2D 凹包] または [3D 凹包] オプションを使用している場合、出力ジオメトリを定義するアルファ半径をオブジェクトごとに計算したり、同じアルファ半径をすべてのオブジェクトに使用したりできます。 オブジェクトごとにアルファ半径を計算するのは、特性が大きく異なる複数のオブジェクトを抽出する場合に有効です。 同じアルファ半径をすべてのオブジェクトに適用する場合、[アルファ半径] パラメーターを使用して目的の半径を指定します。 値を指定しない場合、[2D 凹包] オプションは、[クラスタリング距離] パラメーター値と同じになります。 [3D 凹包] オプションを使用している場合、半径は、縮尺係数が 0 より大きい限り、[クラスタリング距離] パラメーター値を [鉛直クラスタリング縮尺係数] で除算して求められます。 縮尺係数が 0 の場合、凸包が作成されます。

  • 出力フィーチャは次の属性を持ちます。

    • ObjectCode- オブジェクト タイプの識別に使用されるクラス コードまたはグループ ID。
    • COUNT- オブジェクトに関連付けられているポイントの数。
    • ALPHA- 出力形状の構築に使用されるアルファ半径。 このフィールドは、[出力ジオメトリ タイプ] パラメーターが [2D 凹包] または [3D 凹包] に設定されている場合のみ追加されます。

    ポリゴン ジオメトリ タイプでは次の属性が追加されます。

    • MIN_Z- オブジェクトに属するポイントのうちの最小 z 値
    • MAX_Z- オブジェクトに属するポイントのうちの最大 z 値

    [Z 情報の追加 (Add Z Information)] ツールを使用して、マルチパッチ出力の表面積や体積などの属性を計算できます。

パラメーター

ラベル説明データ タイプ
入力点群

オブジェクトの検出に使用される分類済みの LAS データセット、点群シーン レイヤー パッケージ、または点群 I3S サービス。

LAS Dataset Layer; Scene Layer; File
抽出するクラス コード

オブジェクトを識別するために処理されるクラス コード。 共通グループ ID を割り当てて複数のクラス コードを同じオブジェクトにグループ化することができます。

Value Table
クラスタリング距離

同じオブジェクトに属するポイントを識別するために使用される 3 次元距離。

Linear Unit
出力オブジェクト フィーチャ

フィーチャ ジオメトリが [出力ジオメトリ タイプ] パラメーター値に基づいてポイント、ポリゴン、またはマルチパッチである出力オブジェクト。

Feature Class
出力ジオメトリ タイプ
(オプション)

各オブジェクトに作成されるジオメトリのタイプを指定します。 指定されたタイプによって、オブジェクトがポイント フィーチャ、ポリゴン フィーチャ、マルチパッチ フィーチャのいずれとして表されるかが決まります。

  • 中心点オブジェクトの凸包のほぼ中央に作成されたポイントで各オブジェクトを表す 3 次元ポイントが生成されます。
  • 境界円そのポイントを囲む最小境界円で各オブジェクトを表す 2 次元ポリゴンが生成されます。
  • 2D 境界四角形そのポイントを囲む最小方向付き境界四角形で各オブジェクトを表す 2 次元ポリゴンが生成されます。
  • 2D 凸包そのポイントを囲む凸包で各オブジェクトを表す 2 次元ポリゴンが生成されます。
  • 2D 凹包そのポイントを囲む凹包で各オブジェクトを表す 2 次元ポリゴンが生成されます。
  • 境界球体そのポイントを囲む最小境界球体で各オブジェクトを表すマルチパッチ フィーチャが生成されます。
  • 3D 境界四角形そのポイントを囲む最小方向付き境界四角形で各オブジェクトを表すマルチパッチ フィーチャが生成されます。
  • 3D 凸包そのポイントを囲む凸包で各オブジェクトを表すマルチパッチ フィーチャが生成されます。 これがデフォルトです。
  • 3D 凹包そのポイントを囲む凹包で各オブジェクトを表すマルチパッチ フィーチャが生成されます。 このオプションは、ポイントから生成できる最も近いジオメトリを近似します。
String
最小ポイント数
(オプション)

出力を生成するためにオブジェクトに必要な最小ポイント数。 デフォルト値は 10 です。

Long
鉛直クラスタリング縮尺係数

z 値に適用される縮尺係数。これは、z 軸に沿ったクラスタリング距離の適用方法と、ポイントがオブジェクトにクラスター化される方法に影響します。 デフォルト値は 1 で、有効な値の範囲は 0.0 ~ 10.0 です。 縮尺係数 0 は 2 次元クラスタリングになります。縮尺係数が 1 より小さく、0 より大きい場合は、各オブジェクトの z 範囲が大きくなります。 同様に、鉛直縮尺係数が 1 より大きい場合、ポイントが z 軸に沿ってより短い距離でクラスター化されます。 鉛直縮尺係数は、ポイントをクラスター化する方法にのみ適用されます。 ポイントのジオメトリは変更されず、z 単位も変更されません。

Double
オブジェクトごとに一意のアルファ半径を計算
(オプション)

アルファ半径をオブジェクトごとに計算するか、同じアルファ半径をすべてのオブジェクトに適用するかを指定します。

このパラメーターは、[出力ジオメトリ タイプ] パラメーターが [2D 凹包] または [3D 凹包] に設定されている場合のみ使用できます。

  • オン - オブジェクトごとに一意のアルファ半径を計算します。
  • オフ - 同じアルファ半径をすべてのオブジェクトに使用します。 このパラメーターがオフの場合、[アルファ半径] パラメーターを使用してこの値を定義できます。 値が指定されていない場合、データセット全体のアルファ半径が計算されます。 これがデフォルトです。
Boolean
アルファ半径
(オプション)

オブジェクト フィーチャの作成時にアルファ形状の定義に使用されるアルファ半径。

このパラメーターは、[オブジェクトごとに一意のアルファ半径を計算] パラメーターがオフで、[出力ジオメトリ タイプ] パラメーターが [2D 凹包] または [3D 凹包] に設定されている場合に適用されます。

アルファ半径が大きいほど、凸包に達するまで、より単純な境界の、より統一されたオブジェクト フィーチャが作成されます。一方、値が小さいほど、オブジェクトのポイントがより詳細に網羅され、不連続のパートが生成される可能性も高くなります。 アルファ半径を定義しない場合、値は [クラスタリング距離] および [鉛直クラスタリング縮尺係数] パラメーターから求められます。

デフォルトのアルファ半径の取得方法については、ツールのヘルプの使用法セクションをご参照ください。

Linear Unit

arcpy.ddd.ExtractObjectsFromPointCloud(in_point_cloud, class_codes_to_extract, clustering_distance, out_features, {geometry_type}, {min_points}, vertical_scale_factor, {alpha_calculation}, {alpha_radius})
名前説明データ タイプ
in_point_cloud

オブジェクトの検出に使用される分類済みの LAS データセット、点群シーン レイヤー パッケージ、または点群 I3S サービス。

LAS Dataset Layer; Scene Layer; File
class_codes_to_extract
[class_codes_to_extract,...]

オブジェクトを識別するために処理されるクラス コード。 共通グループ ID を割り当てて複数のクラス コードを同じオブジェクトにグループ化することができます。

Value Table
clustering_distance

同じオブジェクトに属するポイントを識別するために使用される 3 次元距離。

Linear Unit
out_features

フィーチャ ジオメトリが geometry_type パラメーター値に基づいてポイント、ポリゴン、またはマルチパッチである出力オブジェクト。

Feature Class
geometry_type
(オプション)

各オブジェクトに作成されるジオメトリのタイプを指定します。 指定されたタイプによって、オブジェクトがポイント フィーチャ、ポリゴン フィーチャ、マルチパッチ フィーチャのいずれとして表されるかが決まります。

  • CENTERPOINTオブジェクトの凸包のほぼ中央に作成されたポイントで各オブジェクトを表す 3 次元ポイントが生成されます。
  • BOUNDING_CIRCLEそのポイントを囲む最小境界円で各オブジェクトを表す 2 次元ポリゴンが生成されます。
  • BOUNDING_BOX_2Dそのポイントを囲む最小方向付き境界四角形で各オブジェクトを表す 2 次元ポリゴンが生成されます。
  • CONVEX_HULL_2Dそのポイントを囲む凸包で各オブジェクトを表す 2 次元ポリゴンが生成されます。
  • CONCAVE_HULL_2Dそのポイントを囲む凹包で各オブジェクトを表す 2 次元ポリゴンが生成されます。
  • BOUNDING_SPHEREそのポイントを囲む最小境界球体で各オブジェクトを表すマルチパッチ フィーチャが生成されます。
  • BOUNDING_BOX_3Dそのポイントを囲む最小方向付き境界四角形で各オブジェクトを表すマルチパッチ フィーチャが生成されます。
  • CONVEX_HULL_3Dそのポイントを囲む凸包で各オブジェクトを表すマルチパッチ フィーチャが生成されます。 これがデフォルトです。
  • CONCAVE_HULL_3Dそのポイントを囲む凹包で各オブジェクトを表すマルチパッチ フィーチャが生成されます。 このオプションは、ポイントから生成できる最も近いジオメトリを近似します。
String
min_points
(オプション)

出力を生成するためにオブジェクトに必要な最小ポイント数。 デフォルト値は 10 です。

Long
vertical_scale_factor

z 値に適用される縮尺係数。これは、z 軸に沿ったクラスタリング距離の適用方法と、ポイントがオブジェクトにクラスター化される方法に影響します。 デフォルト値は 1 で、有効な値の範囲は 0.0 ~ 10.0 です。 縮尺係数 0 は 2 次元クラスタリングになります。縮尺係数が 1 より小さく、0 より大きい場合は、各オブジェクトの z 範囲が大きくなります。 同様に、鉛直縮尺係数が 1 より大きい場合、ポイントが z 軸に沿ってより短い距離でクラスター化されます。 鉛直縮尺係数は、ポイントをクラスター化する方法にのみ適用されます。 ポイントのジオメトリは変更されず、z 単位も変更されません。

Double
alpha_calculation
(オプション)

アルファ半径をオブジェクトごとに計算するか、同じアルファ半径をすべてのオブジェクトに適用するかを指定します。

このパラメーターは、geometry_type パラメーターが CONCAVE_HULL_2D または CONCAVE_HULL_3D に設定されている場合のみ有効です。

  • PER_OBJECTオブジェクトごとに一意のアルファ半径を計算します。
  • ALL_OBJECTS同じアルファ半径をすべてのオブジェクトに使用します。 このオプションを指定した場合、alpha_radius パラメーターを使用してこの値を定義できます。 値が指定されていない場合、データセット全体のアルファ半径が計算されます。 これがデフォルトです。
Boolean
alpha_radius
(オプション)

オブジェクト フィーチャの作成時にアルファ形状の定義に使用されるアルファ半径。

このパラメーターは、alpha_calculation パラメーターが ALL_OBJECTS に設定され、geometry_type パラメーターが CONCAVE_HULL_2D または CONCAVE_HULL_3D に設定さている場合に適用されます。

アルファ半径が大きいほど、凸包に達するまで、より単純な境界の、より統一されたオブジェクト フィーチャが作成されます。一方、値が小さいほど、オブジェクトのポイントがより詳細に網羅され、不連続のパートが生成される可能性も高くなります。 アルファ半径を定義しない場合、値は clustering_distance および vertical_clustering_scale_factor パラメーターから求められます。

デフォルトのアルファ半径の取得方法については、ツールのヘルプの使用法セクションをご参照ください。

Linear Unit

コードのサンプル

ExtractObjectsFromPointCloud の例 1 (Python ウィンドウ)

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

import arcpy
arcpy.env.workspace = r"C:/GIS_Data"
arcpy.ddd.ExtractObjectsFromPointCloud("Terrestrial_Scan.lasd", [(4, 5), (5, 5)],
                                       "60 Centimeters", "Trees.shp", 
                                       "CONCAVE_HULL_2D", 50)