概要
正射投影画像から LAS ポイントに色と近赤外の値を適用します。
図
使用法
RGB 情報を使用して LAS ポイントを表示すると、没入感のある写実的な表示によって独特の表示体験を提供できます。LAS ポイントに重ね合わせた実際の画像のビジュアル フィードバックにより、ポイント クラウドの不連続特性に関する洞察を得ることができます。これは、データの対話的分類、新しいフィーチャのデジタイズ、3D 距離計測値を取得する際のリファレンス ポイントの確立などに役立ちます。
LAS ポイントに色を適用する際に使用する画像は、取得されるフィーチャとベスト マッチするよう、LIDAR 測量のときと同じものが最適です。それがない場合、建設などのイベントや落葉による季節の違いによる差異を最小にするために、そのスキャン日付にできるだけ近い画像を使用します。
ソース画像が多くのタイル化画像で構成されている場合、これらのタイルをモザイク データセットに読み込んで、単一データセットとして参照し、LAS データをカラー化するための画像入力として使用できるようにすることを検討してください。モザイク データセットの作成の詳細
LAS ポイントの近赤外値の保存に対応しているのは、ポイント記録形式 8 の LAS ファイル バージョン 1.4 のみです。
処理対象範囲が定義されている場合は、処理範囲と重なる LAS ファイル全体がカラー化されます。入力 LAS ファイルのサブセットのみが必要な場合、[LAS の抽出 (Extract LAS)] ツールを使用して、サブセットをクリップし、このツールの入力として結果ファイルを使用することを検討します。
ポイントの空間クラスタリングに対応しないバイナリ シーケンスの LAS ファイルに LAS ポイント レコードを保存することは珍しいことではありません。このような分布のデータが検索される場合、LAS ポイントを表すバイナリ レコードへのアクセス効率が低下する可能性があります。作成される LAS ファイルのポイントを再配置することで、視覚化やその他の空間操作のデータが最適化されます。再配置オプションが有効化されると、統計情報が自動的に計算されます。LAS ポイントの再配置をしないことを選択した場合は、統計情報の計算の有効化/無効化を選択できます。統計情報の計算により、空間検索が最適化され、クラス コードのサマリーが提供され、LAS ファイルに表示される値が返されます。ただし、このツールの処理に時間がかかるようになります。作成される LAS ファイルが ArcGIS で使用されない場合、ツールの実行時間を短縮するために、統計情報の計算を無効化することもできます。
構文
arcpy.ddd.ColorizeLas(in_las_dataset, in_image, bands, target_folder, {name_suffix}, {las_version}, {point_format}, {compression}, {rearrange_points}, {compute_stats}, {out_las_dataset})
パラメーター | 説明 | データ タイプ |
in_las_dataset | 処理対象の LAS データセット。 | LAS Dataset Layer |
in_image | LAS ポイントに色を適用するために使用される画像。 | Mosaic Layer; Raster Layer |
bands [bands,...] | 入力画像からのバンド。出力 LAS ポイントに関連付けられたカラー チャンネルに割り当てられます。 | Value Table |
target_folder | 出力 LAS ファイルが書き込まれる既存のフォルダー。 | Folder |
name_suffix (オプション) | 各出力 LAS ファイルの名前に追加されるテキスト。 各ファイルは、ソース ファイルからベース名を継承し、このパラメーターで指定された接尾辞が付加されます。 | String |
las_version (オプション) | 作成される出力ファイルの LAS バージョン。
| String |
point_format (オプション) | 出力 LAS ファイルのポイント レコード形式。
| Long |
compression (オプション) | 出力 LAS ファイルを圧縮形式にするか、標準の LAS 形式にするかを指定します。
| String |
rearrange_points (オプション) | LAS ファイル内のポイントを整理するかどうかを決定します。
| Boolean |
compute_stats (オプション) | LAS データセットで参照されている LAS ファイルの統計情報を計算するかどうかを指定します。統計情報を計算することで、LAS ファイルごとの空間インデックスが提供され、解析と表示のパフォーマンスが向上します。また統計によって、分類コードやリターン情報などの LAS 属性の表示が LAS ファイルに存在する値に制限されるので、フィルタリングとシンボルのエクスペリエンスも強化されます。
| Boolean |
out_las_dataset (オプション) | 新しく作成された LAS ファイルを参照する出力 LAS データセット。 | LAS Dataset |
派生した出力
名前 | 説明 | データ タイプ |
output_folder | 出力 LAS ファイルが書き込まれるフォルダー。 | フォルダー |
コードのサンプル
ColonizeLas (LAS のカラー化) の例 1 (Python ウィンドウ)
次のサンプルは、Python ウィンドウでこのツールを使用する方法を示しています。
arcpy.env.workspace = 'C:/data'
arcpy.ddd.ColorizeLas('2014_lidar_survey.lasd', '2014_CIR.tif',
'RED Band_1; GREEN Band_2; BLUE Band_3',
'las/rgb', '_rgb', 1.3, 3, 'ZLAS',
'REARRANGE_POINTS')
ColonizeLas (LAS のカラー化) の例 2 (スタンドアロン スクリプト)
次のサンプルは、スタンドアロン Python スクリプトでこのツールを使用する方法を示しています。
'''****************************************************************************
Name: Classify Lidar & Extract Building Footprints
Description: Extract footprint from lidar points classified as buildings,
regularize its geometry, and calculate the building height.
****************************************************************************'''
import arcpy
lasd = arcpy.GetParameterAsText(0)
dem = arcpy.GetParameterAsText(1)
footprint = arcpy.GetParameterAsText(2)
try:
desc = arcpy.Describe(lasd)
if desc.spatialReference.linearUnitName in ['Foot_US', 'Foot']:
unit = 'Feet'
else:
unit = 'Meters'
ptSpacing = desc.pointSpacing * 2.25
sampling = '{0} {1}'.format(ptSpacing, unit)
# Classify overlap points
arcpy.ddd.ClassifyLASOverlap(lasd, sampling)
# Classify ground points
arcpy.ddd.ClassifyLasGround(lasd)
# Filter for ground points
arcpy.management.MakeLasDatasetLayer(lasd, 'ground', class_code=[2])
# Generate DEM
arcpy.conversion.LasDatasetToRaster('ground', dem, 'ELEVATION',
'BINNING NEAREST NATURAL_NEIGHBOR',
sampling_type='CELLSIZE',
sampling_value=desc.pointSpacing)
# Classify noise points
arcpy.ddd.ClassifyLasNoise(lasd, method='ISOLATION', edit_las='CLASSIFY',
withheld='WITHHELD', ground=dem,
low_z='-2 feet', high_z='300 feet',
max_neighbors=ptSpacing, step_width=ptSpacing,
step_height='10 feet')
# Classify buildings
arcpy.ddd.ClassifyLasBuilding(lasd, '7.5 feet', '80 Square Feet')
#Classify vegetation
arcpy.ddd.ClassifyLasByHeight(lasd, 'GROUND', [8, 20, 55],
compute_stats='COMPUTE_STATS')
# Filter LAS dataset for building points
lasd_layer = 'building points'
arcpy.management.MakeLasDatasetLayer(lasd, lasd_layer, class_code=[6])
# Export raster from lidar using only building points
temp_raster = 'in_memory/bldg_raster'
arcpy.management.LasPointStatsAsRaster(lasd_layer, temp_raster,
'PREDOMINANT_CLASS', 'CELLSIZE', 2.5)
# Convert building raster to polygon
temp_footprint = 'in_memory/footprint'
arcpy.conversion.RasterToPolygon(temp_raster, temp_footprint)
# Regularize building footprints
arcpy.ddd.RegularizeBuildingFootprint(temp_footprint, footprint,
method='RIGHT_ANGLES')
except arcpy.ExecuteError:
print(arcpy.GetMessages())
環境
ライセンス情報
- Basic: 次のものが必要 3D Analyst
- Standard: 次のものが必要 3D Analyst
- Advanced: 次のものが必要 3D Analyst