las資料的讀寫及注意事項總結

2021-10-07 02:06:32 字數 1929 閱讀 5823

從本質上來說,las格式是一種二進位制檔案格式。其目的是提供一種開放的格式標準,允許不同的硬體和軟體提供商輸出可互操作的統一格式。現在las格式檔案已成為lidar資料的工業標準格式。

las檔案按每條掃瞄線排列方式存放資料,包括雷射點的三維座標、多次回波資訊、強度資訊、掃瞄角度、分類資訊、飛行航帶資訊、飛行姿態資訊、專案資訊、gps資訊、資料點顏色資訊等。las格式定義中用到的資料型別遵循2023年ansi(american national standards institute,美國國家標準化協會)c語言標準。

乙個符合las標準的lidar檔案分為三個部分:公用檔案頭塊(public header block)、變數長度記錄(variable length records)和點資料記錄(point data record)。

a、public header block介紹

其中檔案記錄了點雲的版本號(1.1,1.2,1.3等)記錄在version minor欄位中,point data record length決定了每乙個點雲的長度。 point data format id 不相同,point data record length的值也不相同,點雲的點的屬性也不相同。

注:(二進位制檔案流的長度-offset to point data)/ point data record length=點雲的個數即標頭檔案中的number of point records

b、point data record介紹

所屬類)

f一flight(航線號)

t一time(gps時間)

i一intensity(回波強度)

r一return(第幾次回波)

n一number of return(回波次數)

a一scan angle(掃瞄角)

rgb一red green blue(rgb顏色值)

其中標頭檔案中的point data format id 不相同,point data record length的值也不相同,點雲的點的屬性也不相同。上圖是比較常用的,還有一些其他的字段屬性userdata、bitmask等此時的point data format id與上圖的point data format id就不是同一種型別了。

提到常用的開源庫,就會用到市面上比較常用的兩個開源庫如laslib與liblas。剛開始的時候會傻傻分不清兩者的關係。

liblas

和laslib是兩個不一樣的庫,laslib是lastools這個工具編譯出來的庫,是乙個教授維護的庫,liblas是乙個工程師維護的庫。在競爭抗衡的過程中因為一些問題後面liblas庫沒有繼續更新了維護了,然後liblas庫的開發者推出了乙個新的庫來對抗lastools 就是pdal,準備繼續與lastools競爭。

現在市面上常用的基本都是lastools編譯出來的laslib庫,c++可以直接引用使用該庫對las檔案進行讀寫。

github

上也有一些其他的版本的如c#版本的,python版本的等

c#使用laslib或liblas讀寫las資料

python

使用laspy或pylas讀寫las資料

las資料的要依據las屬性的型別進行儲存,譬如強度值沒有小數字,xyz都是int32型別等。

las標頭檔案中的 xyz scale是可以對xyz的值進行縮放的,設定xyz的縮放比。

Python讀寫遷移練習及注意事項

已知成績如下 羅恩102 n 哈利383 n 赫敏570 n 馬爾福275 n 對課堂上得到的 winner 文件再行處理一下。讓學員的成績從高到低排列,然後放到新文件 winner new.txt 下面已經為你準備好了開啟的 和一些變數名的準備。請你完成資料處理以及新建文件 同乙個目錄 的 fil...

mysql導資料及注意事項

匯出表test mysql use db1 database changed mysql select count from test count 5 1 row in set 0.01 sec 使用mysqldump匯出 加 single transaction引數 root miles21 my...

SSDB 安裝部署及注意事項總結

不要在生產環境中使用 windows 作業系統來執行 ssdb 伺服器.如果你確實必須使用 windows 作業系統,請在上面執行乙個 linux 虛擬機器,然後再讓 ssdb 執行於這個虛擬機器之中.將安裝在 usr local ssdb 目錄下 sudo make install sudo ma...