LAS クラス コードの変更 (Change LAS Class Codes) (3D Analyst)

サマリー

.las ファイルと .zlas ファイルの分類コードとフラグを再割り当てします。

使用法

  • American Society for Photogrammetry and Remote Sensing (ASPRS) では、LAS ファイルでのクラス コードの使用方法を定義しています。 ASPRS 分類標準により、異なるアプリケーション間でも LAS ファイルを簡単に処理し、解釈できるようになります。 ASPRS ガイドラインでは、クラス コードを予約済みクラスとユーザー定義可能クラスに分類しています。 予約済みクラスとは、ASPRS によって意味が定義されている、あるいは今後定義される値のことです。 ユーザー定義可能クラスは、予約済みクラスによってまだ説明されていないオブジェクトを分類するために使用されます。 多くの予約済みクラスはすでに定義されていますが (地上はクラス 2、建物はクラス 6 など)、未定義の予約済みクラスは、LAS 仕様の進化に伴って将来的に使用されます。 このため、予約済みクラスは、説明の対象となるオブジェクトに対してのみ使用し、ユーザー定義可能クラス コードにはカスタム クラス コードを割り当てます。 このツールは、予約済みクラスを使用しているカスタム オブジェクトのクラス コードを、ユーザー定義可能クラスに再割り当てするために使用することを検討してください。

  • このツールでは、レイヤー フィルターは考慮されません。 [現在のクラス] 列で指定されたクラス コードを持つすべてのポイントが変更されます。 分類の変更は、クラス コードまたは特定のクラス フラグの編集や、クラス コードとクラス フラグの任意の組み合わせ (値 8 が割り当てられた地上モデル キー ポイントを、モデル キー クラス フラグを持つクラス 2 に再割り当てするなど) に限定されることがあります。 また、[現在のクラス] 列で -1 の値を指定すると、クラス コードに関係なく、すべてのポイントに均一的な変更を加えることができます。 これは、異なる分類設定を評価したり、分類フラグに他の均一的な編集を加えたりするために、既存の分類をリセットする必要がある場合に便利です。 たとえば、合成分類フラグは、LIDAR 以外のソースから取得されたポイントを表します。 点群が写真測量処理から生成されており、各ポイントに対して合成フラグを割り当てたい場合は、[現在のクラス] 列で値 -1 を指定し、[合成] 列で [設定] を指定します。

  • 使用できる分類コードとフラグは、LAS ファイル バージョンとポイント記録形式によって異なります。 変更の可能性については、入力 .las ファイルと .zlas ファイルの制限を考慮してください。 点群を分類するオプションを最大限に活用するには、[LAS の変換 (Convert LAS)] ツールを使用して、古いファイルを LAS 1.4 形式に変換できます。 ファイルをタイルまたは間引きしてパフォーマンスを向上する必要がある場合は、[LAS タイルの作成 (Tile LAS)] ツールと [LAS の間引き (Thin LAS)] ツールを使用して、ファイル バージョンを変換します。

    LAS ファイル バージョンクラス コードの範囲分類フラグ

    1.0

    0 ~ 255

    なし

    1.1

    0 ~ 31

    合成、キーポイント、保留

    1.2

    0 ~ 31

    合成、キーポイント、保留

    1.3

    0 ~ 31

    合成、キーポイント、保留

    1.4

    0 ~ 255

    合成、キーポイント、保留、オーバーラップ

    キーポイントやオーバーラップなどの分類フラグは、同じコンセプトを定義していた分類コードを置き換えるものです。 これにより、ポイントが表しているオブジェクトを説明する分類コードを持ちつつ、モデル キー ポイントやオーバーラップ ポイントとして定義されるという機能的な価値を維持することも可能になります。 LAS ファイル バージョンがこれらの分類フラグをサポートしている場合、それに従ってポイントを変更することを検討してください。 これまでは、モデル キー ポイントがクラス コード 8 で定義されると、ポイントは地表の分類ポイントのサブセットを表していました。 このようなポイントを変更し、[モデル キー] 分類フラグでクラス コードを 2 に設定できるようになりました。

  • ArcGIS では、LAS ファイル バージョン 1.4 で規定されている以下の分類方式を適用します。

    分類値意味

    0

    作成済み、分類不可

    1

    未分類

    2

    地表

    3

    低植生

    4

    中植生

    5

    高植生

    6

    ビルディング

    7

    低ポイント

    8

    モデル キー ポイント

    9

    10

    レール

    11

    路面

    12

    予約

    13

    保護線 (シールド)

    14

    導線 (フェーズ)

    15

    送電塔

    16

    電線接続構造物 (絶縁体)

    17

    橋床版

    18

    高ノイズ

    19

    予約

    20

    無視された地表

    21

    22

    一時的な除外

    23 ~ 63

    予約

    64 ~ 255

    ユーザー定義可能

    注意:
    • 最新の LAS 1.4 の分類システムでは、これらのコード (コード 8: モデル キー/予約済み、コード 12: オーバーラップ/予約済み) は予約されています。これらの特性を持つポイントは、代わりに対応する分類フラグを使用する必要があります。
    • LAS 1.1 ~ 1.3 では、0 ~ 31 の分類のみがサポートされます。

パラメーター

ラベル説明データ タイプ
入力 LAS データセット

処理される LAS データセット。

LAS Dataset Layer
クラス コード

変更されるクラス コードと、分類コードおよび分類フラグに対する変更。 [現在のクラス] 列で -1 の値を指定すると、すべてのクラス コードを変更できます。

Value Table
統計情報の計算
(オプション)

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

  • オン - 統計情報を計算します。 これがデフォルトです。
  • オフ - 統計情報を計算しません。
Boolean
処理範囲
(オプション)

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

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

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

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

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

Extent
処理境界

処理対象の地域を定義するポリゴン フィーチャ。

Feature Layer
範囲と重なる LAS ファイル全体を処理
(オプション)

.las ファイルの処理方法の決定に対象地域をどのように使用するかを指定します。 対象地域は、[処理範囲] パラメーター値、[処理境界] パラメーター値、またはこれら 2 つの組み合わせによって定義されます。

  • オフ - 対象地域と交差している LAS ポイントだけが処理されます。 これがデフォルトです。
  • オン - .las ファイルの一部が対象地域と交差している場合、対象地域の外側にあるポイントも含め、そのファイル内のすべてのポイントが処理されます。
Boolean
ピラミッドの更新
(オプション)

クラス コードが変更された後に、LAS データセットのピラミッドを更新するかどうかを指定します。

  • オン - LAS データセットのピラミッドを更新します。 これがデフォルトです。
  • オフ - LAS データセットのピラミッドを更新しません。
Boolean

派生した出力

ラベル説明データ タイプ
出力 LAS データセット

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

LAS Dataset Layer

arcpy.ddd.ChangeLasClassCodes(in_las_dataset, class_codes, {compute_stats}, {extent}, boundary, {process_entire_files}, {update_pyramid})
名前説明データ タイプ
in_las_dataset

処理される LAS データセット。

LAS Dataset Layer
class_codes
[[current_class, new_class, synthetic, model_key, withheld, overlap],...]

変更されるクラス コードと、分類コードおよび分類フラグに対する変更。 最初の列 (リスト内の最初のアイテム) に -1 の値を指定すると、すべてのクラス コードを変更できます。

既存のクラス コード、新しいクラス コード、および新しいクラス フラグは、スペースで区切った文字列、または再分類される値を含むリストの一覧として表すことができます。 たとえば、現在のクラス コード 5 を 25 に変更する場合は、"5 2" または [[5, 2]] と指定します。 合成クラス フラグは、変更のキーワード ("5 2 SET" または [[5, 2, "SET"]]) を追加することで変更できます。 複数の変更は、セミコロンで区切った文字列 (たとえば "5 2; 8 3; 1 4")、またはリストの一覧 (たとえば [[5, 2], [8, 3], [1, 4]]) として指定できます。

Value Table
compute_stats
(オプション)

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

  • COMPUTE_STATS統計情報を計算します。 これがデフォルトです。
  • NO_COMPUTE_STATS統計情報を計算しません。
Boolean
extent
(オプション)

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

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

処理対象の地域を定義するポリゴン フィーチャ。

Feature Layer
process_entire_files
(オプション)

処理範囲の適用方法を指定します。

  • PROCESS_EXTENT対象地域と交差している LAS ポイントだけが処理されます。 これがデフォルトです。
  • PROCESS_ENTIRE_FILES.las ファイルの一部が対象地域と交差している場合、対象地域の外側にあるポイントも含め、そのファイル内のすべてのポイントが処理されます。
Boolean
update_pyramid
(オプション)

クラス コードが変更された後に、LAS データセットのピラミッドを更新するかどうかを指定します。

  • UPDATE_PYRAMIDLAS データセットのピラミッドを更新します。 これがデフォルトです。
  • NO_UPDATE_PYRAMIDLAS データセットのピラミッドを更新しません。
Boolean

派生した出力

名前説明データ タイプ
derived_las_dataset

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

LAS Dataset Layer

コードのサンプル

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

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

arcpy.env.workspace = 'C:/data'
arcpy.ddd.ChangeLasClassCodes('test.lasd', [[5, 2], [3, 1], [4, 6]],
                           'COMPUTE_STATS')
ChangeLasClassCodes の例 2 (スタンドアロン スクリプト)

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

'''****************************************************************************
Name: Update LAS 1.0 Classification to ASPRS 1.1 Specs
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

# 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)

# Execute CreateLasDataset
arcpy.management.CreateLasDataset(inLas, lasd, recursion)
# Execute ChangeLasClassCodes
arcpy.ddd.ChangeLasClassCodes(lasd, reclassList, calcStats)

ライセンス情報

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

関連トピック