3D Analyst のライセンスで利用可能。
サマリ
LAS データセットが参照する LAS ファイルのクラス コード値を変更します。
使用法
-
LAS データセットが参照するすべての LAS ファイルがこのツールによって評価されます。ただし、変更されるのは、提供されたクラス コードを含むファイルだけです。
このツールを使用して、LAS 1.1 仕様の標準化されたクラス コードの導入の前に作成された LAS ファイルのデータ ポイントの分類を更新します。
-
LAS 形式は、ASPRS (American Society for Photogrammetry and Remote Sensing) によって定義された仕様に基づいて各ポイントの分類をサポートします。ArcGIS プラットフォームは、LAS ファイル バージョン 1.4 で規定されている以下の分類方式を適用します。
分類値 分類タイプ 0
分類不可
1
未分類
2
地表
3
低植生
4
中植生
5
高植生
6
建物
7
低ノイズ
8
モデル キー/予約
9
水域
10
レール
11
路面
12
オーバーラップ/予約
13
保護線
14
導線
15
送電塔
16
ワイヤー コネクタ
17
橋床版
18
高ノイズ
19 – 63
ASPRS 定義用の予約 (LAS 1.1 〜 1.3 はクラス コード 31 までをサポート)
32 – 255
ユーザー定義可能 (LAS 1.0 および 1.4 の特定バージョンでのみサポートされる)
構文
ChangeLasClassCodes_3d (in_las_dataset, class_codes, {compute_stats})
パラメータ | 説明 | データ タイプ |
in_las_dataset | 処理対象の LAS データセット。 | LAS Dataset Layer |
class_codes [[current_class new_class],...] | 現在のクラス コード値と新しいクラス コード値の各ペアを、スペースで区切った文字列または整数のリストとして指定します。たとえば、現在のクラス コード 5 を 2 に変更する場合は、「5 2」または [5, 2] と指定します。複数のクラス コードは、セミコロンで区切った文字列 (「5 2; 8 3; 1 4」)、文字列のリスト (たとえば、[[5, 2], [8, 3], [1, 4]]) として入力できます。 | Value Table |
compute_stats (オプション) | LAS データセットで参照されている LAS ファイルの統計情報を計算するかどうかを指定します。統計情報が存在することにより、LAS データセット レイヤーのフィルターおよびシンボル オプションで、LAS ファイル内に存在する LAS 属性値のみを表示できます。
| Boolean |
コードのサンプル
ChangeLasClassCodes (LAS クラス コードの変更) の例 1 (Python ウィンドウ)
次のサンプルは、Python ウィンドウでこのツールを使用する方法を示しています。
import arcpy
from arcpy import env
arcpy.CheckOutExtension('3D')
env.workspace = 'C:/data'
arcpy.ChangeLasClassCodes_3d('test.lasd', [[5, 2], [3, 1], [4, 6]],
'COMPUTE_STATS')
ChangeLasClassCodes (LAS クラス コードの変更) の例 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
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:
arcpy.CheckOutExtension('3D')
# Execute CreateLasDataset
arcpy.management.CreateLasDataset(inLas, lasd, recursion)
# Execute ChangeLasClassCodes
arcpy.ddd.ChangeLasClassCodes(lasd, reclassList, calcStats)
# Report messages
arcpy.GetMessages()
except arcpy.ExecuteError:
print arcpy.GetMessages()
except:
# Get the traceback object
tb = sys.exc_info()[2]
tbinfo = traceback.format_tb(tb)[0]
# Concatenate error information into message string
pymsg = 'PYTHON ERRORS:\nTraceback info:\n{0}\nError Info:\n{1}'\
.format(tbinfo, str(sys.exc_info()[1]))
msgs = 'ArcPy ERRORS:\n {0}\n'.format(arcpy.GetMessages(2))
# Return python error messages for script tool or Python Window
arcpy.AddError(pymsg)
arcpy.AddError(msgs)
環境
ライセンス情報
- ArcGIS for Desktop Basic: 次のものが必要 3D Analyst
- ArcGIS for Desktop Standard: 次のものが必要 3D Analyst
- ArcGIS for Desktop Advanced: 次のものが必要 3D Analyst