点云数据格式说明
1. LiDAR點(diǎn)云數(shù)據(jù)
LiDAR,是Light Detection and Ranging即光探測和測距的縮寫。
常見點(diǎn)云文件格式如下:
.las,.laz(LiDAR數(shù)據(jù)的工業(yè)標(biāo)準(zhǔn)格式,是一種二進(jìn)制文件格式)
.pcd(PCL庫官方指定格式)
.obj(是由Alias|Wavefront Techonologies公司從幾何學(xué)上定義的3D模型文件格式,是一種文本文件)
.pcap(現(xiàn)在流行的Velodyne公司出品的激光雷達(dá)默認(rèn)采集數(shù)據(jù)的二進(jìn)制文件格式)
.ply(一種由斯坦福大學(xué)的Turk等人設(shè)計(jì)開發(fā)的多邊形文件格式,因而也被成為斯坦福三角格式。文件格式有文本和二進(jìn)制兩種格式)
.pts(被稱之為最簡便的點(diǎn)云格式,屬于文本格式。只包含點(diǎn)坐標(biāo)信息,按X Y Z順序存儲)
.xyz,.txt(一種文本格式)
LAS是點(diǎn)云文件的一種,LAS文件是根據(jù)幾種規(guī)格打包的二進(jìn)制文件,LAS文件只要是倆部分:點(diǎn)云規(guī)格、點(diǎn)云點(diǎn)數(shù)據(jù);
las格式作為點(diǎn)云數(shù)據(jù)的一種,常見于自動駕駛、高精地圖制作的使用中。las文件旨在包含激光雷達(dá)點(diǎn)云數(shù)據(jù)記錄。
2.las格式版本
las文件是一個二進(jìn)制文件,其中定義的數(shù)據(jù)類型與C語言中數(shù)據(jù)類型一致。到目前為止,las共有6版分別是:
Superseded ASPRS LAS 1.4 Format Specification R14 March 26 2019 (PDF)
Superseded ASPRS LAS 1.4 Format Specification R13 July 15 2013 (PDF)
Superseded ASPRS LAS 1.3 Format Specification October 24 2010 (PDF)
Superseded ASPRS LAS 1.2 Format Specification September 2 2008 (PDF)
Superseded ASPRS LAS 1.1 Format Standard May 7 2005 (PDF)
Superseded ASPRS LAS 1.0 Format Standard May 9 2003 (PDF)
3. las數(shù)據(jù)類型
| 序號 | 數(shù)據(jù)類型 | 字節(jié)數(shù) |
| 1 | char | 1? |
| 2 | unsigned char | 1? |
| 3 | short | 2? |
| 4 | unsigned short | 2? |
| 5 | long | 4? |
| 6 | unsigned long | 4 |
| 7 | double | 8 |
?Python常用于解析點(diǎn)云數(shù)據(jù),Python數(shù)據(jù)類型與C語言數(shù)據(jù)類型對應(yīng)關(guān)系,具體可參考鏈接?struct解析二進(jìn)制數(shù)據(jù)
| x | pad byte | no value | ||
| c | char | bytes of length 1 | 1 | |
| b | signed char | integer | 1 | (1), (2) |
| B | unsigned char | integer | 1 | (2) |
| ? | _Bool | bool | 1 | (1) |
| h | short | integer | 2 | (2) |
| H | unsigned short | integer | 2 | (2) |
| i | int | integer | 4 | (2) |
| I | unsigned int | integer | 4 | (2) |
| l | long | integer | 4 | (2) |
| L | unsigned long | integer | 4 | (2) |
| q | long long | integer | 8 | (2) |
| Q | unsigned long long | integer | 8 | (2) |
| n | ssize_t | integer | (3) | |
| N | size_t | integer | (3) | |
| e | (6) | float | 2 | (4) |
| f | float | float | 4 | (4) |
| d | double | float | 8 | (4) |
| s | char[] | bytes | ||
| p | char[] | bytes | ||
| P | void* | integer | (5) |
4. las格式的完整構(gòu)成
| 序號 | las1.0~las1.2 | las1.3~las1.4 | 中文說明 |
| 1 | PUBLIC HEADER BLOCK | PUBLIC HEADER BLOCK | 公共頭 |
| 2 | VARIABLE LENGTH RECORDS | VARIABLE LENGTH RECORDS(VLR) | 可變長度記錄域 |
| 3 | POINT DATA RECORDS | POINT DATA RECORDS | 點(diǎn)數(shù)據(jù)記錄域 |
| 4 | EXTENDED VARIABLE LENGTH RECORDS (EVLR) | 擴(kuò)展可變長度記錄域 |
5.公共頭不同版本構(gòu)成
以 las1.2為例列出公共頭信息如下表。其它不同版本有不同程度增刪,具體詳見上述官方鏈接。
| 序號 | 類別 | 格式 | 字節(jié)數(shù) | 必須 | las版本 | 備注 |
| 1 | File Signature (“LASF”) | char[4] | 4 | * | 1.1~1.4 | |
| 2 | File Source ID | unsigned short | 2 | * | ||
| 3 | Global Encoding | unsigned short | 2 | * | ||
| 4 | Project ID - GUID data 1 | unsigned long | 4 | |||
| 5 | Project ID - GUID data 2 | unsigned short | 2 | |||
| 6 | Project ID - GUID data 3 | unsigned short | 2 | |||
| 7 | Project ID - GUID data 4 | unsigned char[8] | 8 | |||
| 8 | Version Major | unsigned char | 1 | * | 1.1~1.4 | |
| 9 | Version Minor | unsigned char | 1 | * | 1.1~1.4 | |
| 10 | System Identifier | char[32] | 32 | * | ||
| 11 | Generating Software | char[32] | 32 | * | ||
| 12 | File Creation Day of Year | unsigned short | 2 | * | ||
| 13 | File Creation Year | unsigned short | 2 | |||
| 14 | Header Size | unsigned short | 2 | |||
| 15 | Offset to point data | unsigned long | 4 | * | ||
| 16 | Number of Variable Length Records | unsigned long | 4 | * | ||
| 17 | Point Data Format ID (0-99 for spec) | unsigned char | 1 | * | ||
| 18 | Point Data Record Length | unsigned short | 2 | * | ||
| 19 | Number of point records | unsigned long | 4 | * | ||
| 20 | Number of points by return | unsigned long[5] | 20 | * | ||
| 21 | X scale factor | double | 8 | * | 1.1~1.4 | |
| 22 | Y scale factor | double | 8 | * | 1.1~1.4 | |
| 23 | Z scale factor | double | 8 | * | 1.1~1.4 | |
| 24 | X offset | double | 8 | * | 1.1~1.4 | |
| 25 | Y offset | double | 8 | * | 1.1~1.4 | |
| 26 | Z offset | double | 8 | * | 1.1~1.4 | |
| 27 | Max X | double | 8 | * | 1.1~1.4 | |
| 28 | Min X | double | 8 | * | 1.1~1.4 | |
| 29 | Max Y | double | 8 | * | 1.1~1.4 | |
| 30 | Min Y | double | 8 | * | 1.1~1.4 | |
| 31 | Max Z | double | 8 | * | 1.1~1.4 | |
| 32 | Min Z | double | 8 | * | 1.1~1.4 |
6.坐標(biāo)轉(zhuǎn)換關(guān)系
7.點(diǎn)數(shù)據(jù)記錄格式?
在las1.0版本中定義了點(diǎn)數(shù)據(jù)格式0,其一共20(12+8)字節(jié)數(shù)據(jù),在las1.0~las1.4的版本中點(diǎn)數(shù)據(jù)格式1到5都是在點(diǎn)數(shù)據(jù)格式0基礎(chǔ)上增添字段。詳見上述鏈接對應(yīng)的官方文檔。
在las1.4版本中增加了點(diǎn)格式6,其一共30字節(jié)數(shù)據(jù),在las1.4版本中點(diǎn)格式7到10都是在點(diǎn)數(shù)據(jù)格式6基礎(chǔ)上增添字段。詳見上述鏈接對應(yīng)的官方文檔。
不同版本las對應(yīng)的點(diǎn)數(shù)據(jù)格式匯總?cè)缦卤怼?/p>
| 1.0,1.1 | 0, 1 |
| 1.2 | 0, 1, 2, 3 |
| 1.3 | 0, 1, 2, 3, 4, 5 |
| 1.4 | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 |
不同版本對應(yīng)的點(diǎn)數(shù)據(jù)記錄數(shù)匯總?cè)缦?#xff1a;
?
?
?
8.點(diǎn)云數(shù)據(jù)常用信息
利用點(diǎn)云數(shù)據(jù)解析結(jié)果,用于點(diǎn)云分割,道路標(biāo)線特征提取與矢量化等自動駕駛相關(guān)的應(yīng)用場景,上述不同版本點(diǎn)云數(shù)據(jù)比較常用的信息如下表。其中強(qiáng)度值與RGB值可二取一或二者有之,兩者都有時(shí)效果更佳。
| 序號 | 項(xiàng)目 | 說明 | 備注 |
| 1 | X | X坐標(biāo) | 必須 |
| 2 | Y | Y坐標(biāo) | 必須 |
| 3 | Z | Z坐標(biāo) | 必須 |
| 4 | Intensity | 反射強(qiáng)度 | 可選 |
| 5 | R | 點(diǎn)Red顏色通道值 | 可選 |
| 6 | G | 點(diǎn)Green顏色通道值 | 可選 |
| 7 | B | 點(diǎn)Blue顏色通道值 | 可選 |
9.解析庫與可視化工具
常用的解析las點(diǎn)云數(shù)據(jù)的python庫有l(wèi)aspy,?plcpy
常用的顯示點(diǎn)云數(shù)據(jù)的軟件有CloudCompare,QGIS(3.20或以上),matlab(2018a或以上)
總結(jié)
- 上一篇: #define typedef 区别
- 下一篇: 【struts2】预定义拦截器