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

サマリー

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

使用法

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

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

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

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

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

  • 出力の品質を改善するには、[Z 範囲] パラメーターを使用して、部屋の境界を構成するフィーチャではないほとんどの家具、備品、照明、その他のオブジェクトを除外するよう、処理する Z 値の範囲を制限します。

    注意:

    単一の Z 範囲でこのツールを使用している場合は、[Z 範囲] パラメーターの値を指定しないでください。代わりに、LAS [標高範囲] フィルターを設定します。 これにより、ツールの実行時間が大幅に短縮されます。

  • ローカル シーンの点群のデータを探索して、Z 値の最適な範囲を決定します。 次の図は、1 ~ 2 メートルの Z 範囲を処理することで、家具や天井の備品を除外できることを示しています。

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

  • [ラインの単純化] パラメーターを使用して、生成される出力ポリラインを統合して直線化し、小さいギャップを埋め、頂点の数を減らします。 このパラメーターをオンにしたとき、生成されたポリラインはポリラインの圧縮アルゴリズムを使用して正規化されてから、有効エリアを保持するため必要ではない余分の頂点が削除され、コンピューター ビジョン アルゴリズムが使用され、ポリラインを建築の詳細部分に分割するためのコーナーを検出します。

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

  • オプションの [出力ラスター] パラメーターを使用して、出力ポリラインを編集する際のコンテキストを提供することができます。 このパラメーターでは、.tif および .png ファイル形式のラスター、ジオデータベース ラスター、およびメモリー ワークスペース内のラスターがサポートされます。

  • このツールは、処理中に入力点群の 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
出力ラスター
(オプション)

入力点群データから生成される出力ラスター。 ジオデータベース ラスター、メモリー ワークスペース内のラスター、.tif および .png ファイル形式がサポートされます。

値を指定しなかった場合、出力ラスターは保存されず、ポリラインが生成された後で削除されます。

Raster Dataset

arcpy.indoors.GenerateFloorPlanFromPointCloud(in_point_cloud, out_line_features, {coordinate_system}, {output_z_value}, {simplify}, {short_feature_tolerance}, {z_ranges}, {extent}, {out_raster})
名前説明データ タイプ
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
out_raster
(オプション)

入力点群データから生成される出力ラスター。 ジオデータベース ラスター、メモリー ワークスペース内のラスター、.tif および .png ファイル形式がサポートされます。

値を指定しなかった場合、出力ラスターは保存されず、ポリラインが生成された後で削除されます。

Raster Dataset

コードのサンプル

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

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

import arcpy
arcpy.indoors.GenerateFloorPlanFromPointCloud(r"C:\Indoors\PointcloudData\Floor1scan.LAS",
                                              r"C:\Indoors\ExampleData.gdb\OutputPolylines",
                                              "", 
                                              "4.25 Meters", 
                                              "NO_SIMPLIFY", 
                                              "2.2 Meters", 
                                              "1 2", 
                                              "MAXOF", 
                                              r"C:\Indoors\ExampleData.gdb\OutputRaster"
                                              )
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_2"
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 = "1.5 Meters"
z_ranges = "5.8 7.1" # above furniture and below ceiling fixtures
extent=arcpy.Extent(2074000, 56200, 2074150, 56250) # east section of building L
out_raster=r"C:\data\Building_L_East_Floor_2.png"


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

# 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 も必要です

関連トピック