このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
lasFileReader
LAS または LAZ ファイルから点群データを読み取り
説明
lasFileReader
オブジェクトには、LAS または LAZ ファイルに含まれるメタデータが読み取り専用のプロパティとして格納されます。これらのプロパティは、オブジェクト関数 readPointCloud
でファイルから点群データを読み取るために使用されます。lasFileReader
オブジェクトは LAS 1.4 仕様までをサポートしています。
LAS ファイルには、LiDAR メタデータを含むパブリック ヘッダーがあり、その後に LiDAR 点のレコードが続きます。それぞれの点のレコードに 3 次元座標、強度、GPS タイムスタンプなどの属性が格納されています。
LAS ファイル形式は LiDAR データを格納するための業界標準のバイナリ形式であり、米国写真測量学会 (ASPRS) によって開発、維持されています。LAZ ファイル形式は LAS ファイル形式の圧縮バージョンです。
作成
説明
プロパティ
このプロパティはオブジェクトの作成後は読み取り専用になります。このプロパティを設定するには、lasFileReader
関数を呼び出すときに fileName
引数を使用します。
LAS または LAZ ファイルの名前。文字ベクトルまたは string スカラーとして指定します。
この プロパティ は読み取り専用です。
ファイル内の使用可能な点のレコードの数。正の整数として表されます。
この プロパティ は読み取り専用です。
LAS または LAZ ファイルのバージョン。文字ベクトルとして表されます。
この プロパティ は読み取り専用です。
x 軸方向の座標の範囲。2 要素の実数値の行ベクトルとして表されます。
この プロパティ は読み取り専用です。
y 軸方向の座標の範囲。2 要素の実数値の行ベクトルとして表されます。
この プロパティ は読み取り専用です。
z 軸方向の座標の範囲。2 要素の実数値の行ベクトルとして表されます。
R2025a 以降
この プロパティ は読み取り専用です。
XYZ 座標のスケール。[Xscale Yscale Zscale] という形式の 3 要素の実数値の行ベクトルとして表されます。Xscale、Yscale、Zscale は、それぞれ X 軸、Y 軸、Z 軸の方向のスケールを表します。
R2025a 以降
この プロパティ は読み取り専用です。
XYZ 座標のオフセット。[Xoffset Yoffset Zoffset] という形式の 3 要素の実数値の行ベクトルとして表されます。Xoffset、Yoffset、Zoffset は、それぞれ X 軸、Y 軸、Z 軸の方向のオフセットを表します。
R2025a 以降
この プロパティ は読み取り専用です。
使用可能な属性のリスト。string 配列として表されます。このプロパティは、ファイル内にあるすべての属性を特定するために使用します。readPointCloud
オブジェクト関数を使用して、使用可能なすべての属性を読み取ることもできます。
この プロパティ は読み取り専用です。
GPS タイムスタンプ読み取り値の範囲。1 行 2 列の duration
ベクトルとして表されます。
メモ
このプロパティの値はすぐには使用できません。lasFileReader
オブジェクト lasReader
のこのプロパティを取得するには、コマンド ウィンドウで lasReader.GPSTimeLimits
を入力します。このコマンドにより、オブジェクトの NumClasses
プロパティと ClassificationInfo
プロパティも取り込まれます。
この プロパティ は読み取り専用です。
すべての点のレーザー リターンの最大数。正の整数として表されます。
この プロパティ は読み取り専用です。
すべての点の分類値の最大数。正の整数として表されます。
メモ
このプロパティの値はすぐには使用できません。lasFileReader
オブジェクト lasReader
のこのプロパティを取得するには、コマンド ウィンドウで lasReader.NumClasses
を入力します。このコマンドにより、オブジェクトの GPSTimeLimits
プロパティと ClassificationInfo
プロパティも取り込まれます。
この プロパティ は読み取り専用です。
LAS ファイルを生成したハードウェア センサー システム識別子の名前。string スカラーとして表されます。
この プロパティ は読み取り専用です。
生成ソフトウェアの名前。string スカラーとして表されます。このプロパティは、LAS ファイルの作成時に使用された生成ソフトウェア パッケージを示します。
この プロパティ は読み取り専用です。
ファイル作成日。datetime
オブジェクトとして表されます。
この プロパティ は読み取り専用です。
LAS ファイル ソース識別子。非負の整数として表されます。値の範囲は 0 ~ 65535 です。これは、このファイルが元のフライト ラインから作成されたものである場合にフライト ライン番号を定義します。値 0 は ID が割り当てられていないことを示します。LAS ファイル内の各点を一意に識別するには、ProjectID
プロパティと FileSourceID
プロパティを使用します。
この プロパティ は読み取り専用です。
プロジェクト ID。string スカラーとして表されます。この値はグローバル一意識別子 (GUID) です。LAS ファイル内の各点を一意に識別するには、ProjectID
プロパティと FileSourceID
プロパティを使用します。
この プロパティ は読み取り専用です。
点データ レコード フォーマット ID。非負の整数として表されます。値の範囲は 0 ~ 10 です。詳細については、点データ レコード フォーマットを参照してください。
この プロパティ は読み取り専用です。
分類情報。table として表されます。点のクラスについて記述した次の情報が table の各行に格納されます。
Classification Value
— クラスの一意の分類 ID 番号。正の整数として表されます。Class Name
— クラスに関連付けられたラベル。string スカラーとして表されます。Number of Points by Class
— クラスに含まれる点の数。正の整数として表されます。
メモ
このプロパティの値はすぐには使用できません。lasFileReader
オブジェクト lasReader
のこのプロパティを取得するには、コマンド ウィンドウで lasReader.ClassificationInfo
を入力します。このコマンドにより、オブジェクトの GPSTimeLimits
プロパティと NumClasses
プロパティも取り込まれます。
この プロパティ は読み取り専用です。
レーザー リターン情報。table として表されます。レーザー リターンについて記述した次の情報が table の各行に格納されます。
Laser Return Number
— レーザー リターン番号。正の整数として表されます。Number of Points by Return
— レーザー リターンあたりの点の数。正の整数として表されます。
この プロパティ は読み取り専用です。
可変長レコード (VLR) または拡張 VLR の情報。table として表されます。レコードについて記述した次の情報が table の各行に格納されます。
Record ID
— レコード識別番号。正の整数として表されます。User ID
— レコード ID に関連付けられたユーザー ID。string スカラーとして表されます。Description
— レコードの説明。string スカラーとして表されます。
オブジェクト関数
readPointCloud | LAS または LAZ ファイルから点群データを読み取り |
readCRS | LAS ファイルまたは LAZ ファイルからの座標参照系データの読み取り |
readVLR | Read variable length record from LAS or LAZ file |
例
この例では、LAS/LAZ ファイルから点群データを読み取って可視化する方法を示します。
LAZ ファイル用の lasFileReader
オブジェクトを作成します。その後、関数 readPointCloud
を使用して点群データを LAZ ファイルから読み取り、pointCloud
オブジェクトを生成します。
LAZ ファイルのデータにアクセスするための lasFileReader
オブジェクトを作成します。
filepath = fullfile(toolboxdir("lidar"),"lidardata", ... "las","aerialLidarData.laz"); lasReader = lasFileReader(filepath);
関数 readPointCloud
を使用して、点群データを LAZ ファイルから読み取ります。
ptCloud = readPointCloud(lasReader);
点群を可視化します。
figure pcshow(ptCloud.Location)
LAZ ファイルの点群データを分類データに基づいて分けて可視化します。
LAZ ファイルのデータにアクセスするための lasFileReader
オブジェクトを作成します。
path = fullfile(toolboxdir("lidar"),"lidardata", ... "las","aerialLidarData.laz"); lasReader = lasFileReader(path);
関数 readPointCloud
を使用して、点群データとそれに関連する点の分類属性を LAZ ファイルから読み取ります。
[ptCloud,pointAttributes] = readPointCloud(lasReader,"Attributes","Classification");
それぞれの点に分類属性に基づいて色を付けます。ラベル イメージの形状を点群の形状に変更します。
labels = label2rgb(pointAttributes.Classification); colorData = reshape(labels,[],3);
色分けされた点群を可視化します。
figure pcshow(ptCloud.Location,colorData)
詳細
LAS ファイルには、点データ レコードの集合として格納された点群データに加え、レコードに関するパブリック ヘッダー ブロックとオプションのメタデータ情報が含まれます。パブリック ヘッダー ブロックに、LAS ファイルの点の数や点データの範囲とともに点データ レコード フォーマットが示されています。
LAS 1.4 仕様の時点では、Point Data Record Format 0 から Point Data Record Format 10 までの 11 個の点データ レコード フォーマットがあり、これらは 2 つのグループに大きく分けられます。
Point Data Record Format 0 ~ Point Data Record Format 5 — これらのフォーマットのコアは 20 バイトで、フォーマット 1 ~ 5 では、それに加えて GPS 時間、カラー チャネル、または波束に関する情報がオプションで含まれます。
Point Data Record Format 6 ~ Point Data Record Format 10 — これらのフォーマットのコアは 30 バイトで、フォーマット 7 ~ 10 では、それに加えてカラー チャネル、近赤外、または波束に関する情報がオプションで含まれます。
各バージョンで使用できる点データ レコード フォーマットなど、LAS ファイル仕様の詳細については、ASPRS の LASER (LAS) File Format Exchange Activities のページを参照してください。
バージョン履歴
R2020b で導入lasFileReader
オブジェクトに、LAS または LAZ 入力ファイルから XYZ 座標のスケールとオフセットの値を読み取るための次のプロパティが追加されました。
Scale
Offset
さらに、Attributes
プロパティもオブジェクトに含まれています。このプロパティは、LAS または LAZ 入力ファイル内の使用可能な属性のリストを取得するために使用します。
lasFileReader
関数で lasFileReader
オブジェクトを作成するパフォーマンスが向上しています。パフォーマンスの向上は、LAS または LAZ 入力ファイル内の使用可能な点のレコードの数が増えるほど大きくなります。たとえば、次のコードは前のリリースより約 118 倍高速になっています。
function t = timingTest pcfile = fullfile(toolboxdir("lidar"),"lidardata","las","aerialLidarData.laz"); lasReader = @()lasFileReader(pcfile); t = timeit(lasReader); end
おおよその実行時間は次のとおりです。
R2024b: 0.39 秒
R2025a: 0.0033 秒
コードの時間測定は、Windows® 10、Intel® Xeon® Gold 6240R CPU@ 2.40 GHz テスト システムで関数 timingTest
を呼び出して行いました。
オブジェクトのパフォーマンスの向上は、GPSTimeLimits
、NumClasses
、および ClassificationInfo
の各プロパティを作成後すぐには取り込まないことで実現しています。したがって、前のリリースと異なり、オブジェクトの作成時間は入力ファイル内の点のレコードの数に依存しません。これらのプロパティを取り込むには、そのいずれかを表示または抽出します。たとえば、このコマンドを使用して lasFileReader
オブジェクト lasReader
の GPSTimeLimits
プロパティを表示すると、オブジェクトの NumClasses
プロパティと ClassificationInfo
プロパティも取り込まれます。
lasFileReader
オブジェクトの次のオブジェクト関数は将来のリリースで削除される予定です。
hasCRSData
— LAS または LAZ ファイルに CRS データがあるかを確認するには、hasCRSData(lasReader)
の代わりに~isempty(readCRS(lasReader))
を使用してください。hasGPSData
— LAS または LAZ ファイルに GPS データがあるかを確認するには、hasGPSData(lasReader)
の代わりにany(lasReader.Attributes == "GPSTimeStamp")
を使用してください。hasWaveformData
— LAS または LAZ ファイルに波形データがあるかを確認するには、hasWaveformData(lasReader)
の代わりにany(lasReader.Attributes == "WaveformData")
を使用してください。hasNearIRData
— LAS または LAZ ファイルに近赤外データがあるかを確認するには、hasNearIRData(lasReader)
の代わりにany(lasReader.Attributes == "NearIR")
を使用してください。
lasFileReader
オブジェクトに次のプロパティが追加されました。
SystemIdentifier
GeneratingSoftware
FileCreationDate
FileSourceID
ProjectID
PointDataFormat
ClassificationInfo
LaserReturnInfo
VariableLengthRecords
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)