companynameJ

点群におけるLASとは?

点群データを扱うLASファイルを解きほぐす

 
 

はじめに

 
3D画像ファイルの点群とは?で、3D画像ファイルにおける点群はどういうものなのかを調べました。
 
その記事では、

・ポリゴンを用いる3D画像ファイルの世界からPLYファイル、
・LIDARスキャナーなどの測距技術の世界からPTSファイル、
・地図情報の世界からシェープファイル(Shapefile)

を取り上げて説明しました。
 
PTSファイルについては、

「PTSファイルは、通常LIDARスキャナーからのポイントデータを保存するために使用される単純なテキストファイルです。」
 引用:【Point Cloud】色付きの点群は立体になる

とあるように、「単純なテキストファイル」でありました。
 
しかし、LIDERスキャナーの点群データを使う際には、

「LASとは、ASPRS(The American society for Photogrammetry and Remote Sensing:アメリカ写真測量・リモートセンシング協議会)が定義する、LIDAR(Light Detection and Ranging:レーザー検出および測距)により計測された点群データの標準フォーマットです。」
 引用:PC-MAPPINGでのLASファイルの取り扱いについて

とあるように、LASファイルが標準フォーマットとして利用されています。
 
LASファイルについて興味深い記事がありました。

「指定された入力LASファイルから、Classification属性やRGB値を参照して画像ファイル(32bit(アルファ付き)GeoTIff)を生成します。」
 引用: LASデータの利活用~点群からラスターデータを作成する

と書かれています。
 
LASファイルは点群を扱うのであり、3Dの点群はベクタデータであるから、それをラスターデータに変換するとはどういうことなのでしょうか?
 
今回は、LASファイルはデータをどのように扱っているかという仕組みに焦点を当てて、標準フォーマットとされているLASファイルを分かり易く具体的に解きほぐしてみることにしました。
 

LASファイルフォーマットの仕様

 
LASファイルフォーマットの仕様については、LAS Specification 1.4 - R15などに書かれています。
下記具体例はバージョンLAS1.2のファイルであり、バージョンLAS1.2の仕様は、LAS Specification Version 1.2に書かれています。
 
PC-MAPPINGでのLASファイルの取り扱いについての記事には、
「LASファイルは、1つのパブリックヘッダ部(Public Header Block)、任意の数の可変長レコード(Variable Length Records:VLRs)、計測したポイント分のポイントデータレコード(Point Data Records)、任意の数の拡張可変長レコード(Extended Variable Length Records:EVLRs)で構成されます。」
と書かれています。
 
また、ポイントデータレコードについて、
「ポイントデータレコードは、バージョンを経るごとにフォーマットが追加されており、LAS1.4の時点では0~10までの計11個のフォーマットが存在します。・・・フォーマットによってGPS時間やRGBなどのデータフィールドが異なるため、ファイル内ではポイントデータレコードの形式が同一である必要があります。」
という記載もあります。
 
この「ポイントデータレコードの形式」は、どのようなデータかを把握するに当たって重要な項目になります。
 
3D画像ファイルの点群とは?のシェープファイルの説明のところで、
「シェープタイプ毎にデータ構造が異なります。このシェープタイプを確認するには32Byte目の値を調べるしかなさそうです。」と書きましたが、シェープタイプと同様に、この「ポイントデータレコードの形式」も1ByteのPoint Data Record Formatデータで定められているだけなので、ポイントデータレコードの形式を確認するには、Point Data Record Formatデータを調べるしかなさそうです。
 
そのようなデータ構造を以下に具体的に説明します。
 

LASファイルの点群の具体例

 
Leafmap/Open3Dを使って掛川城の大規模点群データ(5GB)をPythonで可視化してみよう!や、
iPhoneでも使えるようになったLiDARの標準ファイル形式「LAS」ってどんなデータなの?を、PDAL/Laspyを使って調べてみるの記事に、掛川城の点群データを用いたいくつかの処理が記載されています。
それら処理に興味がある方は参考にされると良いと思います。
 
その掛川城の点群データ20190308掛川城.lasは、ポイントデータレコードの形式が2の、rgb色データを含む形式になっているので、これを具体例として使わせてもらいました。
 
LASファイル20190308掛川城.lasは、3D画像ファイルの点群とは?のPTSファイルを表示する際に用いた、点群データのフリービューアソフトであるCloudCompareで開けばすぐに表示できます。表示例を【図1】に示します。
 

imgP9_1
【図1】

 
この20190308掛川城.lasファイルは、5,001,518,281Byteのサイズで、
227Byteのパブリックヘッダ部と、
各26Byteで計192,366,079個のポイントデータからなる5,001,518,054Byteのポイントデータレコード部
で構成されています。
 
パブリックヘッダ部のNumber of Variable Length Records値は0であるので、可変長レコード部はありません。
227Byteのパブリックヘッダ部のすぐ後からポイントデータレコード部が続きます。
 

パブリックヘッダ部

 
この20190308掛川城.lasファイルは、バージョンLAS1.2のファイルになっているので、パブリックヘッダ部は以下の227Byteのデータになっています。

   

         

    

項目名 サイズ
File Signature 4 Byte LASF
File Source ID 2 Byte 0
Global Encoding 2 Byte 0
Project ID - GUID Data 1 4 Byte 0
Project ID - GUID Data 2 2 Byte 0
Project ID - GUID Data 3 2 Byte 0
Project ID - GUID Data 4 8 Byte 0
Version Major 1 Byte 1
Version Minor 1 Byte 2
System Identifier 32 Byte 32ByteのID
Generating Software 32 Byte 32ByteのSoftware名
File Creation Day of Year 2 Byte 0
File Creation Year 2 Byte 0
Header Size 2 Byte 227
Offset to Point Data 4 Byte 227(0xE3)
Number of Variable Length Records 4 Byte 0
Point Data Record Format 1 Byte 2
Point Data Record Length 2 Byte 26
Legacy Number of Point Records 4 Byte 192,366,079
Legacy Number of Point by Return 20 Byte Return1:192,366,079
Return2:1,140,850,736
Return3:67,111,168
Return4:2,596,204,288
Return5:1,964,434,249
X scale factor 8 Byte 0.00000007131602618438667
Y scale factor 8 Byte 0.00000008309306580718317
Z scale factor 8 Byte 0.000000022329229780036834
X Offset 8 Byte -44528.753
Y Offset 8 Byte -135852.29
Z Offset 8 Byte 25.648
Max X 8 Byte -44375.603
Min X 8 Byte -44528.753
Max Y 8 Byte -135673.849
Min Y 8 Byte -135852.29
Max Z 8 Byte 73.5996558027345
Min Z 8 Byte 25.648

 

ポイントデータレコード部

 
この20190308掛川城.lasファイルは、パブリックヘッダ部のPoint Data Record Format値が2であるので、ポイントデータレコード形式2の以下の計26Byteのデータ構成になっています。
最初に現れるポイントのポイントデータレコードを以下に示します。

   

         

       

         

       

         

       

         

         

         

         

         

         

         

         

         

         

         

         

    

項目名 サイズ
X 4 Byte 531,578,298
scale、offset変換後-44,490.84295
Y 4 Byte 855,844,897
scale、offset変換後-135,781.1752
Z 4 Byte 1,295,921,591
scale、offset変換後54.58493098
Intensity 2 Byte 513
Return Number 3 bits (bits 0, 1, 2) 0
Number of Returns (given pulse) 3 bits (bits 3, 4, 5) 0
Scan Direction Flag 1 bit (bit 6) 0
Edge of Flight Line 1 bit (bit 7) 0
Classification 1 Byte 1 :Unclassified
Scan Angle Rank (-90 to +90) – Left side 1 Byte 0
User Data 1 Byte 0
Point Source ID 2 Byte 29
Red 2 Byte 35,445
Green 2 Byte 31,365
Blue 2 Byte 32,640

 

具体例の解説

 

XYZ座標値:
LASファイルは、パブリックヘッダ部でX scale factor、Y scale factor、Z scale factor、X Offset、Y Offset、Z Offsetを定め、それらのデータを用いて各ポイントデータレコードのX、Y、Z値を変換してXYZ値を得る規格になっています。
変換後のX=X × X scale factor + X Offset
変換後のY=Y × Y scale factor + Y Offset
変換後のZ=Z × Z scale factor + Z Offset
 
例えば最初のポイントでは、
変換後のX=-44,490.84295
変換後のY=-135,781.1752
変換後のZ=54.58493098
になっていました。
 
これらのXYZ値は何を表しているかを調べてみます。
 
掛川城は静岡県ですので平面直角座標系の区分は8であって、その原点座標値は
 東経138度30分0秒
 北緯36度0分0秒
で八ヶ岳の東側になっています。
 
ウィキペディアによれば、掛川城の位置は
 東経138度0分53.04秒
 北緯34度46分31.5秒
ですので、
原点から緯度では南側に大きく離れ、経度では西側に少し離れています。
 
3D画像ファイルの点群とは?で用いた、平面直角座標への換算を使ってXY座標値を求めると【図2】に示すように
X=-135743.8449 m
Y=-44415.5463 m
になっていました。
 

imgP9_2
【図2】

 3D画像ファイルの点群とは?で記載した、国土地理院の定義を再録すると、
「平面直角座標系は、現在全国を19の座標系に区分しています。平面直角座標系は地点の座標値が次の条件に従ってガウス・クリューゲルの等角投影法によって表示されるように設けられています。

1.座標系のX軸は、座標系原点において子午線に一致する軸とし、真北に向かう値を正とし、座標系のY軸は、座標系原点において座標系のX軸に直交する軸とし、 真東に向かう値を正とする。
2.座標系のX軸上における縮尺係数は、0.9999とする。
3.座標系原点の座標値は、次のとおりとする。
X=0.000メートル Y=0.000メートル」

  引用:GIS(地理情報システム)
と定義しています。
 
掛川城はその原点から緯度では南側に大きく離れ、経度では西側に少し離れているのだから、Xは負の大きい値、Yは負の小さい値であるはずですので、【図2】のXY値は正しいように思われます。
 
ところが、具体例のXY値は逆転しています。
 
3D画像ファイルの点群とは?で取り上げたシェープファイルサンプルで「XとYの値が逆になっています」と書いていた問題と同じで、ファイル作成時に逆転されたのではないかと思います。
 
逆転の問題はありますが、XY値は平面直角座標系の値で単位はメートルであることが分かりました。
z値は同様に単位はメートルで天守閣の高いところはMax Zにより73.6メートルなのでしょう。
 
前述のCloudCompareで開いた直後の画像を【図3】に示します。
天守閣あたりにマウスを置いてその位置座標を左下に示しています。
3D(-44483.1;-135768;72.151)と表示されています。
この画像は掛川城を上から見た画像になっていて、横がX軸、縦がY軸になっています。
上が北になっており、通常見慣れた地図のように観察できます。
このように配置するために、XYを逆転させているのであろうと想像しています。

 

imgP9_3
【図3】

 

Return値:
パブリックヘッダ部のLegacy Number of Point by Returnは、LiDARがレーザービームを照射したときの反射(リターン)パルス数で、1番目から5番目までのそれぞれの個数が格納されています。
植生や地面などをこのReturnデータを利用して判定するのですが、1番目(1stReturn)の個数がポイント総数と一致しているので、1番目(1stReturn)だけが使われていると思われます。
それら5個の数値がまちまちである理由は分かりませんでした。

 

16bit Color:
ポイントデータレコードのRed、Green、Blueの色データは16bitになっています。
このファイルの色データが16bitの分解能で設定されているかは不明ですが、最初のポイントの
Red:35,445
Green:31,365
Blue:32,640
のいずれも255で割り切れるので、8Bit Colorデータに255を掛けて16bitデータにしていると思われます。

 

MAX/MIN XYZ:
Max X、Min X、Max Y、Min Y、Max Z、Min ZでXYZ座標の最大値と最小値が格納されているので、データのXYZ座標範囲が特定できます。
これらの値を使って、所望の2D画像に変換できるでしょう。

 

おわりに

 

・今回はLIDERスキャナーの点群データ用の標準フォーマットとされているLASファイルを取り上げて、データをどのように扱っているかを調べてみました。

 

・LASファイルは、Return値のデータなどLIDERスキャナー独特の情報を格納していたりしているので、標準フォーマットとしてふさわしいファイルであると思われます。

 

・LASファイルでRGB色データは、前出の引用:PC-MAPPINGでのLASファイルの取り扱いについてに書かれているように、
バージョンLAS1.2では
 ポイントデータレコード形式2
バージョンLAS1.3では
 ポイントデータレコード形式5
バージョンLAS1.4では
 ポイントデータレコード形式7、8、10
の場合に格納されます。
このポイントデータレコード形式を確認するには、パブリックヘッダ部のPoint Data Record Formatを調べるしかなさそうです。
RGB色データは16bitになっているので分解能は十分ですが、今回のサンプルは一定値が掛けられているようです。

 

・シェープファイルの場合と同様に、XY座標値が逆転していることに気づきました。
LASファイルでは、平面直角座標系や測地座標系などの地理情報は格納されていないので、XY座標値は任意に設定されているようです。

 

・点群データをグリッドの形に敷き詰めればラスター形式に変換できますが、今回のサンプルのLASファイルには地理情報がほとんど入っていないので、例えばGeoTIFFに変換するには地理情報をどのように格納するかが課題になりそうです。
適当なサンプルを入手できれば調べてみたいと思っています。

 
 

sub1title

closeicon

サンシャインブルー工房創設者、管理人の 青木ガンバロ と申します。
団塊世代の一技術者としてかつては開発業務に没頭しておりました。今はたそがれ期に入り、世間では簡単なことであっても、自分にとっては知らない、経験していないことが山ほどあると気付かされます。
限りある時間に、少しでもそういう未経験のテーマに挑戦してみようと思い、本工房を立ち上げることにしました。
 
いろいろな分野の学習を続けていると、何度も躓いてしまいます。素朴な疑問が湧いてくるのですが、その解答を得るのに手こずります。
膨大な情報の中から欲しい情報を探るのが難しくなっていると感じます。
 
技術を中心としたさまざまな課題を解きほぐし、より本質的な内容を明らかにすることによって、同じように学ぼうとする方々が、素早く答にたどり着けるような情報を発信していければと考えております。
 
このホームページもその挑戦の一つとして独学で制作してきました。
Web技術の多岐にわたる学習が必要であったり、関連する規格やツールなどの仕組みも進化して更新されていくので、最善解に近づくのは容易ではありません。
当初から躓きの連続でありましたが、多くの親切な方々の的確な記事にも助けられて進めてきました。
まだ多くの疑問点が残っております。逐次改善していくつもりです。
 
これまで多くの友人、先輩方の支えがあったお陰で何とか過ごしてくることができました。
人びとの繋がりの大切さを痛感しております。
どこまで頑張れるか分かりませんが、残る力を絞って進んでまいります。
これからも、皆さまのご援助、ご協力をよろしくお願い申し上げます。

sub2title

closeicon

2019-  4-16

・サンシャインブルー工房の個人事業開業

2022-12-22

・ホームページを公開

・ブログ「立方体に写真を貼り付けるツールを作りました」を公開

・ブログ「球体に写真を貼り付けるツールを作りました」を公開

2023-  2-  3

・ブログ「3DにおけるJPEGとは?」を公開

2023-  3-  1

・ブログ「3D画像ファイルの画像とは?」を公開

2023-  4-16

・ブログ「3D画像ファイルのカメラデータとは?」を公開

2023-  5-22

・ブログ「3D画像ファイルの点群とは?」を公開

2023-  6-28

・ブログ「3D画像ファイルのGeoTIFFとは?」を公開

2023-  7-28

・「役立つーる」ページを新設し、最初のオンラインツールGeoTIFFリーダーを公開

・ブログ「GeoTIFFリーダーを作りました」を公開

2023-  8-16

・ブログ「点群におけるLASとは?」を公開

2023-  9- 1

・ブログ「Googleアースに使われるKMLとは?」を公開

2024-  1-16

・ブログ「3D画像ファイルのアニメーションとは?」を公開

2024-  2- 8

・ブログ「ボーンアニメーションのオフセット行列とは?」を公開

2024-  7- 13

・ブログ「3D画像モデルの回転表示とは?」を公開

sub3title

closeicon






    皆さまからの、ご要望、ご依頼、ご質問、ご意見、ご提案などをお待ちしております。
    当方の事情や、お問い合わせの内容によりましては、返信を差し上げることができない場合もあります。あらかじめご了承ください。

    姓 例)日本

    名 例)太郎

    せい 例)にほん

    めい 例)たろう

    例)xxx@abcde.co,jp

    例)いろはに会社


     

    お問い合わせをいただき、ありがとうございます。

    messageOKこのお問い合わせの送信が完了しました。

    お問い合わせがエラーになりました。再度お試しください。

    messageNGこのお問い合わせの送信が失敗しました。

    sub4title

    closeicon
    1.著作権について
    当サイトは、お客さまご自身の画像が貼り付けられてダウンロードされた画像の情報を除き、当サイトに掲載されている、文章・画像・動画等の著作物の情報を無断転載することを禁止致します。
    当サイトは、ブラウザがFirefoxである場合に動画ファイルの生成のためにLPGLv3ライセンスのFFmpegライブラリを使用しています。
    2.リンクについて
    以下の場合を除き、当サイトを他のWebサイトに自由にリンクすることができます。
    (リンクをお断りするWebサイト)
    違法または反社会的な情報を提供するWebサイト
    当サイトの関係者や提供する情報に対して誹謗、中傷する内容を有するWebサイト
    当サイトであることが不明確であるWebサイト
    sub5title

    closeicon
    1.個人情報保護方針
    当サイトは、お客様からお預かりする個人情報の重要性個人情報の重要性を認識し、個人情報の保護に関する法律、その他の関係法令を遵守し、個人情報を安全かつ適切に取り扱います。
    2.個人情報の取得と利用目的
    個人情報を取得させていただくにあたっては、取得情報と利用目的を以下に定め、必要な個人情報のみを、適法かつ公正な手段により取得させていただきます。
     2.1.お問い合わせやご注文時の情報
    (取得情報)
    お客様ご自身によるお問い合わせやご依頼のための入力情報
    (利用目的)
    お客様へのご依頼に対応するため。
     2.2.ご利用履歴情報
    (取得情報)
    アクセス解析ツールGoogle Analyticsを用いた個人を特定しないトラフィックデータ
    (利用目的)
    ご利用状況の分析により当サイトの一層の改善や拡充を図るため
    このGoogle Analyticsの規約に関する詳細は、ここをクリックしてください。
     2.3.広告管理情報
    (取得情報)
    広告表示ツールGoogle AdSenseを用いた個人を特定しない広告管理データ
    (利用目的)
    お客様の興味に応じた商品やサービスの広告配信のため
    このGoogle AdSenseの規約に関する詳細は、ここをクリックしてください。
    3.個人情報の第三者への開示
    当サイトは、お客様からお預かりした個人情報を、個人情報保護法その他の法令に基づき開示が認められる場合、または、お客様からの同意を得た場合を除き、第三者に提供することはありません。
    4.クッキー(Cookie)について
    クッキー(Cookie)とは、当サイトにアクセスした際にお客様のブラウザに送信され、お客様のコンピューターに保存される情報のことです。
    当サイトでは、利用履歴の収集および広告の管理のためにそのクッキーを使用しています。
    当サイトが使用するクッキーのデータは、個人情報を含むものではありませんが、お客様がブラウザを操作することにより、クッキーの使用を制限(オプトアウト)することや、保存されたクッキーの情報を削除することも可能です。ただし、そのブラウザの設定によっては、当サイト一部の機能が使用できなくなる恐れがありますのでご注意ください。
    5.個人情報保護方針の変更
    当サイトは、法令の制定、改正等により、本個人情報保護方針を適宜見直し、予告なく変更する場合があります。本個人情報保護方針の変更は、変更後の内容が閲覧可能となった時点で有効になります。
    6.免責事項
    当サイトは、正確な情報を掲載するよう努めておりますが、誤情報の混入、情報の陳腐化が起こることがあります。当サイトに掲載された内容や、他のサイトに移動された場合の移動先サイトで提供される情報によって生じた損害等の一切の責任を負いかねますのでご了承ください。