点群からのフロア プランの生成 (Generate Floor Plan From Point Cloud) (Indoors)

サマリー

入力された点群のデータから生成される 2D ポリライン フィーチャを含む、ポリライン フィーチャクラスを作成します。 フロア対応のマップやシーンの作成に役立つデータを Indoors ワークスペースに入力するとき、このツールの出力を調整し、入力として使用できます。

使用法

  • このツールは入力として LAS ファイルを受け付け、壁、ドア、柱など、垂直方向に長いアーキテクチャを表す 2D ポリライン フィーチャを作成します。 このツールを大規模なワークフローの一部として使い、点群からフロア プランを生成できます。

  • ツールにより作成された出力ポリライン フィーチャクラスを調整し、[フィーチャを Indoor データセットにインポート (Import Features To Indoor Dataset)] ツールの入力として使用できます。

  • 入力の点群に座標系が定義されているとき、[座標系] パラメーターが自動的に設定されます。 入力の点群に座標系が定義されていないときは、[座標系] パラメーターを使用して指定します。 入力の点群に誤った座標系が定義されているときは、入力の点群の [レイヤー プロパティ] で変更できます。 このツールは、点群の座標を処理するとき、および出力ライン フィーチャを作成するときに、指定された座標系を使用します。

  • このツールは、実行されるごとに 1 つの施設から 1 つのレベルを処理します。 入力の点群が複数の施設またはレベル (フロア) をカバーしているなら、次に示す [処理境界] パラメーターを使用して処理領域を限定します。

    • [Z 範囲] パラメーターを使用して、処理を単一のレベルか、レベルの高さの一部に限定します。
    • [範囲] パラメーターを使用して、処理を単一の施設か、施設のサブセットに限定します。 [範囲] パラメーターは、範囲の環境設定よりも優先されます。

  • 生成される出力の品質を改善するには、[Z 範囲] パラメーターを使用して、部屋の境界を構成するフィーチャではないほとんどの家具、備品、照明、その他のオブジェクトを除外するよう、処理する Z 値の範囲を制限します。 ローカル シーンの点群のデータを活用して、含める Z 値の最適な範囲を判定できます。 次の図は、1 ~ 2 メートルの Z 範囲を処理することで、家具や天井の備品を除外できることを示しています。

    家具や天井の備品がある部屋で Z 範囲の値を使用する
    Z の最小値に 1 を、最大値に 2 を設定すると、部屋にある家具や天井の備品をキャプチャすることを避けられます。

  • [ラインの単純化] パラメーターを使用して、生成される出力ポリラインを直線化し、頂点の数を減らします。 このパラメーターをオンにしたとき、生成されたポリラインはポリラインの圧縮アルゴリズムを使用して正規化されてから、有効エリアを保持するため必要ではない余分の頂点が削除されます。

  • [短いフィーチャの許容値] パラメーターを使用して、短いポリライン フィーチャをデータから削除します。 指定された許容値と同じ長さか、より短いフィーチャは、他のフィーチャから 0.05 メートル以内に存在しない限り削除されます。 値として 0 を使用すると、短いフィーチャは削除されません。この設定は、まばらな点群データで壁の位置を視覚化するため便利です。

  • このツールは、処理中に入力点群の KeyPoint 分類フィールドを使用する場合があります。 その場合、ツールはツールの実行終了時にフィールド値を元の値に戻します。

パラメーター

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

ポリライン フィーチャの生成元となる点群データを含む、入力 LAS ファイルまたはデータセット。

LAS Dataset Layer
出力ライン フィーチャ

LAS データから生成されるフィーチャを保存するために作成される、ポリライン フィーチャクラス。

ワークスペースが指定されていなければ、テンポラリ ワークスペースが使用されます。

Feature Class
座標系
(オプション)

入力 LAS データと出力ポリライン フィーチャクラスの座標系。 デフォルトでは、水平座標系と鉛直座標系の両方について LAS データで定義されている座標系が使用されます。

Spatial Reference
出力 Z 値
(オプション)

生成されるポリライン フィーチャに割り当てられる Z 値。 デフォルトは 0 です。

値はメートルまたはフィート単位で指定できます。 ツールはこの値を、データの鉛直座標系の計測単位を使用するよう自動的に変換します。

Linear Unit
ラインの単純化
(オプション)

出力ポリラインを処理するとき、有効エリアを保持するため必要ではない余分の頂点を削除する前に、生成されたポリラインをポリライン圧縮アルゴリズムで正規化し、単純化するかどうかを指定します。

  • オン - ラインが単純化されます。 これがデフォルトです。
  • オフ - ラインは単純化されません。
Boolean
短いフィーチャの許容値
(オプション)

短いフィーチャが削除される最大の許容値を、メートルまたは国際フィート単位で指定します。 デフォルトは 1 メートルです。

値に 0 を指定すると処理がバイパスされ、短いフィーチャが保持されます。

Linear Unit
Z 範囲
(オプション)

入力点群の 1 つ以上の Z 範囲。 出力ポリライン フィーチャを生成するとき、指定された Z 範囲内の点が分析されます。

値が指定されていなければ、入力点群のデータに存在するすべての Z 値の範囲が使用されます。

Value Table
範囲
(オプション)

評価されるデータの範囲。

  • [現在の表示範囲] マップ ビュー - 範囲は、アクティブなマップまたはシーンに基づきます。
  • [範囲の描画] 直角化して終了 - 範囲は、マップまたはシーンに描画された四角形に基づきます。
  • [レイヤーの範囲] レイヤー - 範囲は、アクティブなマップ レイヤーに基づきます。 使用可能なレイヤーを選択するか、[すべてのレイヤーのデータの範囲] オプションを使用します。 各マップ レイヤーには、次のオプションがあります。

    • [すべてのフィーチャ] すべて選択 - すべてのフィーチャの範囲。
    • [選択フィーチャ] 選択フィーチャからのエリア - 選択したフィーチャの範囲。
    • [表示フィーチャ] Extent Indicator - 表示フィーチャの範囲。

  • [参照] 参照 - 範囲はデータセットに基づきます。
  • [入力データの共通領域] 交差する - 範囲は、すべての入力データの共通範囲になります。
  • [入力データのすべての領域] ユニオン - 範囲は、すべての入力データの結合された範囲になります。
  • [クリップボード] 貼り付け - 範囲をクリップボードにコピーしたり、クリップボードから貼り付けたりできます。
    • [範囲をコピー] コピー - 範囲と座標系をクリップボードにコピーします。
    • [範囲を貼り付け] 貼り付け - 範囲と座標系をクリップボードから貼り付けます。 クリップボードに座標系が含まれていない場合、マップの座標系が範囲に使用されます。
  • [範囲をリセット] リセット - 範囲はデフォルト値にリセットされます。

座標を手動で入力する場合、アクティブなマップの座標系の座標を数値で指定する必要があります。 マップで、入力した座標と異なる表示単位が使用されることがあります。 南と西の座標にはマイナス値の記号を使用します。

Extent

arcpy.indoors.GenerateFloorPlanFromPointCloud(in_point_cloud, out_line_features, {coordinate_system}, {output_z_value}, {simplify}, {short_feature_tolerance}, {z_ranges}, {extent})
名前説明データ タイプ
in_point_cloud

ポリライン フィーチャの生成元となる点群データを含む、入力 LAS ファイルまたはデータセット。

LAS Dataset Layer
out_line_features

LAS データから生成されるフィーチャを保存するために作成される、ポリライン フィーチャクラス。

ワークスペースが指定されていなければ、テンポラリ ワークスペースが使用されます。

Feature Class
coordinate_system
(オプション)

入力 LAS データと出力ポリライン フィーチャクラスの座標系。 デフォルトでは、水平座標系と鉛直座標系の両方について LAS データで定義されている座標系が使用されます。

Spatial Reference
output_z_value
(オプション)

生成されるポリライン フィーチャに割り当てられる Z 値。 デフォルトは 0 です。

値はメートルまたはフィート単位で指定できます。 ツールはこの値を、データの鉛直座標系の計測単位を使用するよう自動的に変換します。

Linear Unit
simplify
(オプション)

出力ポリラインを処理するとき、有効エリアを保持するため必要ではない余分の頂点を削除する前に、生成されたポリラインをポリライン圧縮アルゴリズムで正規化し、単純化するかどうかを指定します。

  • SIMPLIFYラインが単純化されます。 これがデフォルトです。
  • NO_SIMPLIFYラインは単純化されません。
Boolean
short_feature_tolerance
(オプション)

短いフィーチャが削除される最大の許容値を、メートルまたは国際フィート単位で指定します。 デフォルトは 1 メートルです。

値に 0 を指定すると処理がバイパスされ、短いフィーチャが保持されます。

Linear Unit
z_ranges
[z_ranges,...]
(オプション)

入力点群の 1 つ以上の Z 範囲。 出力ポリライン フィーチャを生成するとき、指定された Z 範囲内の点が分析されます。

値が指定されていなければ、入力点群のデータに存在するすべての Z 値の範囲が使用されます。

Value Table
extent
(オプション)

評価されるデータの範囲。

  • MAXOF - すべての入力データの最大範囲が使用されます。
  • MINOF - すべての入力データに共通する最小領域が使用されます。
  • DISPLAY - 範囲は、表示範囲と同じになります。
  • レイヤー名 - 指定したレイヤーの範囲が使用されます。
  • Extent オブジェクト - 指定したオブジェクトの範囲が使用されます。
  • 座標のスペース区切りの文字列 - 指定した文字列の範囲が使用されます。 座標は、x-min、y-min、x-max、y-max の順序で表されます。
Extent

コードのサンプル

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

次の Python ウィンドウ スクリプトは、イミディエイト モードで GenerateFloorPlanFromPointCloud 関数を使用する方法を示しています。

import arcpy
arcpy.indoors.GenerateFloorPlanFromPointCloud(r"C:\Indoors\PointcloudData\Floor1scan.LAS",
                                              r"C:\Indoors\ExampleData.gdb\OutputPolylines",
                                              "", "", "", "", "", "",
                                              )
GenerateFloorPlanFromPointCloud の例 2 (Python ウィンドウ)

次のスタンドアロン スクリプトで、GenerateFloorPlanFromPointCloud 関数を使用する方法を示します。

#Name: Indoors_GenerateFloorPlanFromPointCloud_example2.py
#Description: Generates polyline floor plan features from LAS point cloud data

import arcpy

# Check Out Extensions
arcpy.CheckOutExtension('Indoors')
arcpy.CheckOutExtension('3D')
arcpy.CheckOutExtension('Spatial')  # or 'ImageAnalyst'

# Set Local Variables
in_point_cloud = r"C:\data\Building L - All_Floors.las"
out_line_features = r"C:\data\FloorPlans.gdb\Building_L_East_Floor_1"
coordinate_system = 'PROJCS["NAD_1983_2011_StatePlane_California_VI_FIPS_0406",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],
                            PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],
                            PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-116.25],
                            PARAMETER["Standard_Parallel_1",32.78333333333333],PARAMETER["Standard_Parallel_2",33.88333333333333],PARAMETER["Latitude_Of_Origin",32.16666666666666],
                            UNIT["Meter",1.0],AUTHORITY["EPSG",6425]]'
output_z_value = "4.25 Meters"
simplify = "SIMPLIFY"
short_feature_tolerance = "25.4 Millimeters"
z_ranges = "1 1.8;2.2 3.2"
extent="DEFAULT"


# Call the function
arcpy.gp.GenerateFloorPlanFromPointCloud(
    in_point_cloud,
    out_line_features,
    coordinate_system,
    output_z_value,
    simplify,
    short_feature_tolerance,
    z_ranges,
    extent
)

# Check In Extensions
arcpy.CheckInExtension('Indoors')
arcpy.CheckInExtension('3D')
arcpy.CheckInExtension('Spatial')

ライセンス情報

  • Basic: No
  • Standard: No
  • Advanced: 次のものが必要 3D Analyst および ArcGIS Indoors Pro または ArcGIS Indoors Maps。 Spatial Analyst または Image Analyst も必要です

関連トピック