las格式中文说明
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Las 格式版本1.3
1.目的,作用域以及应用
Las文件用来包含li dar点数据记录。
由软件输出的数据都以这种格式存在。
数据格式的目的是提供一个公开的数据格式,使得不同的l idar软硬件工具能够以一个共同的格式输出。
该文档反映了自从最初的1.0版本以来l as格式规范的3次修订。
Las 1.3添加的内容包含:
●能够应用点记录类型4和5在las文件中存储反射脉冲波形数据(或者存储在一个外部文件)
●存储对波形数据进行空间转换的参数
●额外的全局编码旗标,表示反射是否为人工生成的
波形数据存储的目标:
●波形数据和l idar点被包含在同一个文件中
●一个反射可能有也可能没有一个相关联的波形数据包
●同一lida r脉冲的多个反射可能指向同一个波形数据包
●支持2至32位波形数据记录
●配置了多个波形数字化设置(取样数,取样间距,每个取样所占位数等等)
●支持波形数据的压缩(虽然在该版本规范中没有提供具体的压缩机制)
波形数据存储实现:
●公开反射附近的波形部分被存储起来(波形数据包,WDP)
●原始波形数据数据包存储在一个大而连续的扩展变长记录(EVLR)里,或者,存储在一个另
外的辅助文件中。
●对波形数字化配置的描述存储在一个包含255个变长记录的波形描述器(WPD)里。
●每个点记录有一个新的元数据,它是一个指向该点WDP的索引。
●每个点记录都包含有额外的信息,表明那个WP D用来描述该点的波形数据包。
与las 1.2的兼容性:
公共头文件区有一个不可避免的改变,就是添加了波形数据起始位置。
该超长整形数据被添加到了公共头文件区的末尾,所以对于不需要波形数据的las1.2点读器来说,只需要一点或者不需要改变。
对于点数据记录类型0到3,没有任何改变。
而在点数据记录类型4和5中加入了波形数据。
2.一致性
Las格式定义中所用到的数据类型与1999 ANSI c语言规范一致。
3.所有者
ASPRS是Las规范的拥有者。
标准由组织内部委员维持。
4.要求
Las格式定义:
格式由二进制数据组成,包含一个头文件区,变长记录区和点记录区。
表4.2:包含波形数据的las格式定义
所有数据都是littl e-endian格式。
头文件区包含一个公共区,后面紧接着变长记录。
公共区块包含一些描述数据整体情况的记录,比如点记录数,坐标边界。
变长记录包含一些变长类型数据,有投影信息,元数据,波形数据包信息和用户应用数据。
如果包含波形数据包的话,那么它位于所有点数据记录的末尾。
它被放置在该处以方便对它的分离或实体化。
该记录是一个扩展变长记录(EVLR)。
EVLR的存储格式为无符号超长整型(unsign ed long long 8 byte),允许存储比一个VLR更多的信息。
数据类型:
Las格式规范用到了以下数据类型。
Char(1 字节)
Unsign ed char(1字节)
Short(2字节)
Unsign ed short(2字节)
Long(4 字节)
Unsign ed long(4 字节)
Long long(8字节)
Unsign ed long long(8字节)
Double(8字节IEE E浮点型格式)
公共文件头区:
公共文件头区中任何不需要或不用的字段必须被赋为0.
文件标签(File Signat ure):文件标签必须包含四个字符“LASF”,这是las规范所需要的。
这四个字符用来被用户软件进行检查以便快速确定文件类型。
文件源ID(File Source ID)(如果该文件是由一个原始航线获得,文件源ID为航线号):该字段应该被设为1到65535之间的一个值,包含65535。
0值意思为一个还没有分配的ID。
在这种情况下,允许处理软件来赋一个合法的值。
注意该机制允许一个li dar项目包含65535个单独的源。
一个源可能是一个原始航线或是合并或萃取操作的结果。
全局编码:这是一个位段,用来说明文件的某种全局属性。
在las 1.2(在该版本中该字段被引入),只有低位被定义(该位默认为无
符号整型值1)。
该位段定义如下:
版本号:版本号由一个主版本和副版本字段组成。
两者组成了当前文件的版本。
例如,版本号1.2将包含1在主版本号里,2在副版本号里。
系统标识符:1.0版本假定l as文件全部由一个硬件传感器获取生成。
其后的版本文件通常是萃取,合成或者修改已有文件的结果。
系统ID成为:
生成软件:以ASCII格式描述生成软件。
该字段提供一个机制,用来标示文件创建时的生成软件包和软件版本号(例如,“TerraS can V-10.8”,“REALMV-4.2”等),如果字符数据少于16个字符,剩余数据必须为NULL。
文件创建日期:无符号短整型,日期采用格林尼治标准时间(GMT)。
一月一日就是第一天。
文件创建年份:文件创建的年份,四位阿拉伯数字。
文件头大小:公共文件头区的大小,以字节为单位。
如果头文件由于一个软件的扩展而在文件头末尾添加了一些数据,文件头大小必须更新为新的文件头大小。
对公共文件头区的扩展是不提倡的。
任何时候要添加用户文件头数据时,应该用变长记录完成。
如果一个软件对公共文件头区添加了数据,数据必须放置在最后面,并且一定要更新反映出新的文件头大小。
点数据起始暗标:从文件起始处到第一个点数据记录首个字段的实际字节数。
如果有任何软件在公共文件头区添加了数据或从变长记录里添加或删除了数据,点数据起始暗标必须进行更新。
点数据之前的变长记录数:该字段表明该文件中点数据之前的变长记录数。
任何时候变长记录数改变时,都应对其进行更新。
点数据格式I D:点数据格式I D与点数据记录格式类型对应。
Las 1.3定义了0-5种类型。
点数据记录长度:以字节为单位的点数据记录长度。
点数据记录数:该字段表示文件中总的点记录数。
各反射点数:该字段是一个各反射点数统计的数组。
第一个值是第一反射的记录数,以此类推。
X,Y,Z比例因子:该字段包含一个双精度浮点型值,用来缩放点记录对应的X,Y,Z长整型值。
为获取真实的点坐标,必须将长整型XYZ值乘上XYZ比例因子。
例如,如果XYZ坐标要包含两个小数点位,每个比例因子必须为值0.01。
X,Y,Z偏移:该字段用来设置点记录的整体偏移。
一般情况下,这些值为0。
但在有些情况下,点数据记录分辨率(resolu tion)可能对于特定的投影系统来说不够大。
通常应认为这些偏移是被应用的。
所以真正的X YZ坐标应为:
Xcoord inate = (Xrecor d * Xscale) + Xoffse t
Ycoord inate = (Yrecor d * Yscale) + Yoffse t
Zcoord inate = (Zrecor d * Zscale) + Zoffse t
最大与最小X YZ:是las文件中未缩放的XYZ的最大与最小值。
文件起始开始到第一个波形数据包记录的字节数。
注意这可能是
所有数据都是需要投影信息的。
投影信息位于变长记录里。
将投影信息放置在变长记录里允许定义任何投影包含用户投影系统。
GeoTif f规范http://www.remote sensi /geotif f/geotif f.html是投影系统的模型,该格式在该规范中有明确的定义。
变长记录:
公共文件头区后面是一个或多个变长数据记录(有一个是强制性的,就是GeoK eyDir ector yTag)。
在公共文件头区变长数据记录数说明了共有几个变长记录。
变长记录必须依次进行访问,因为每个变长记录长度都包含在变长记录头信息里。
每个变长记录头大小为60字节。
表4.6:变长记录文件头
User ID:用户ID是A SCⅡ字符数据,用来标示创建变长记录的用户。
可能有来自不同来源的多个变长记录,且有着不同的用户ID。
如果字符数据少于16个字符,剩余数据必须为NULL。
用户ID必须向las规范管理机构进行注册。
对这些用户I D的管理确保没有任何两个个体碰巧用了同一个用户ID。
该规范起始应用这两个I D:一个是为全局特定记录服务的(LASF_S pec),另外一个是为投影类型服务的(LASF_P rojec tion)。
Record ID:记录ID依赖于用户ID。
每个用户ID可能有0-65535个记录ID。
Las规范管理着自己的记录ID(规范所拥有的用户ID),其他的记录I D都由指定的用户ID的拥有者进行维护管理。
每个用户ID允许被以任意方式分配0到65535个记录ID。
对指定的记录ID的意义的公开化是该用户ID所有者的工作。
未知的用户I D和记录I D组合是不被认可的。
文件头后记录长:是标准文件头部分之后的记录的字节数。
所以整个记录长度为54字节(包括记录里变长部分的长度)。
描述:可选择的部分,以NULL结尾的数据的txt描述文本。
任何不用的字符都应为n ull。
注意用户ID为LASF_Spec和记录ID为65535的记录为波形数据包扩展变长记录(EVLR)。
与其他变长记录相比,该VLR是唯一一个位于点数据记录之后的VL R。
所以,如果有的话,它将是las文件的最后一个数据记录。
点数据记录:
注意:点数据开始标记在las 1.1中被移除了。
Las文件I/O软件必须用公共文件头中的Off set to PointData字段来定位第一个点数据记录的起始位置。
注意所有的点数据记录必须是同一个类型。
点数据记录格式0(20字节):
X,Y,Z:X,Y,Z值以长整型格式储存。
X,Y和Z值与比例因子和偏移值一起来决定每个点的坐标。
反射强度:反射强度值是脉冲反射能量的整型值。
该值是可选择的且因系统而已的。
尽管如此,如果可获得,都应该被包含。
注意:以下四个字段(反射号,反射数,扫描方向旗标和航线边沿标记)是单个字节里的若干位段。
反射号:反射序号是一个给定输出脉冲的反射脉冲的编号。
一个给定的输出激光脉冲可能有许多反射脉冲,这些反射脉冲的反射号必须按次序进行编号。
第一次反射的反射号为1,第二次反射的反射号为2,直到第5反射。
反射数(指定某一发射脉冲):反射数是某一脉冲的所有反射的数量。
例如,一个激光点可能是一个脉冲的5个反射中的第2反射。
扫描方向旗标:扫描方向旗标表示在输出该脉冲时扫描镜所处的位置。
1代表正向扫描角,0代表负向扫描角(以飞机飞行方向为准,从左侧向右侧摆动时为正向,相反为负向)。
航线边界旗标:只有当该点位于一个扫描的末尾时,扫描边沿旗标值为1。
它是飞机改变航向前的扫描的最后一个点。
分类:该字段代表着一个点的类属性。
如果一个点从来没被分类,该值必须设为0。
没有用户自定义的类,因为所有的点格式只为每个点提供8位的用户自定义操作。
注意分类是一个位段字段,低5位用于分类,高3位用来作为标记。
位定义如下:
表4.8:分类位段编码
注意位字段5,6,7为标记,且在任何合并中可被设置或清除。
例如,一个点分类的5,6位设为1,低5位设为设为2代表一个人工生成的地面点,并被标记为模型关键点。
分类必须遵循以下标准:
①0和1层都用来表示Un class ified,处理与当前流行分类软件如Terr aScan的兼容性。
我们将1层扩
展包含已经过一个分类算法但仍未被分类的点。
例如,在0层里的数据通过一个算法来探测人工建筑物,那些没有被分类为建筑物的点可能从0层被分类到1层。
②Overla p Points是那些在重叠航线生成时被迅速剔除掉的点。
一般来说,由于这些点在后面不被分类,
所以对应的W ithhe ld位应该被设置。
【关于位段的一个注释:las存储格式为“Little Endian”。
这意味着多位数据位段在内存中的存储方式为,从低地址位到高地址位各位代表的值逐次升高,即地址位越高,该位所代表的权重越大。
例如,0位为1时表示值为1,1位为1时表示值为2,2位为1时表示值为4,依次类推。
】
扫描角:扫描角是一个带符号的1字节数字,值从-90到+90。
扫描角是激光点在输出时的扫描角度(包含飞机的翻动角度)(将原始扫描角值取绝对值后四舍五入后得到)。
扫描角精度为1度。
0度代表天底方向,-90度代表飞机飞行时的左侧。
用户数据:该记录由用户自己决定如何使用。
点源ID:该值表示该点是从哪个文件产生。
合法的值为从1到65535,不包含0,0用与下面讨论到的一个特殊的情况。
该数值对应着生成该点的文件源ID。
0值用来方便系统实现。
点源ID值为0时表示表示该点由该文件生成。
这意味着处理软件在一些处理中应将点源ID设置为与包含该点文件的文件源ID 一样。
注意:在las 1.0中的文件标记字段一般被错编或者不被用户实现。
整个该概念在las 1.1中被移除掉了,而这个单字节字段被重命名为用户数据,并可用来进行任何使用。
原始las1.0规范中该字段中的扩展记录被移除掉了。
请注意原来的用户位段(User Bit Field)已被重新命名为点源ID,并且不在可以可用。
点数据记录格式1(28字节):
点数据格式1在格式0的基础上加上了GPS时间。
GPS时间:GPS时间是点获取时的双精度浮点型时间。
如果全局编码中的低位没有设置的话,GPS时间类型为GPS星历时间,如果设置的话,GPS时间类型是标准G PS时间。
点数据记录格式2(26字节):
点数据格式2在点数据格式0的基础上加入了颜色通道。
这些字段用来从一个摄像机获取的辅助数据来彩色化lid ar点。
红色:该点红色通道值。
绿色:该点绿色通道值。
蓝色:该点蓝色通道值。
注记:红色,绿色,蓝色值应总被规范为16位。
例如,当对每个通道都是8位编码时,在存储至该字段之前将对每个颜色通道值乘上256。
这种规范化能使不同摄像位深的颜色值得到精确融合。
点数据记录格式3(34字节):
点数据格式3在点数据格式2的基础上加上了G PS时间。
点数据记录格式4(57字节):
格式4在格式1的基础上加入了波形数据信息。
表4.13:点记录格式4
点数据格式4在格式1的基础上加入了波形信息。
波形数据描述器索引:las 1.3支持255个描述波形数据包的用户定义记录。
该值说明了描述该点波形信息的具体用户定义记录。
注意:0值表示该激光点没有对应的波形数据。
波形数据起始暗标:las文件中的波形数据存储在一个扩展变长记录里面(或者,在一个辅助文件里)。
该字节偏移代表波形数据变长记录里lidar点波形数据包相对于波形数据文件头的起始位置。
注意波形数据包在文件中的绝对起始位置为:
a.波形数据存储在las文件中时
波形数据包记录起始位置+波形数据起始暗标
b.波形数据存储在一个辅助文件中时
波形数据起始暗标
波形数据包大小:该反射对应的波形数据包的的字节数。
注意由于数据包压缩的原因,每个波形数据的大小可能不一样(即使是对应同一个波形描述器索引)。
另外要注意波形数据的位值只能通过波形数据起始暗标来确定,因为波形数据包记录不是连续存储的。
反射点在波形中的位置:是从发射激光点(起始数字化值)开始到接收到该反射脉冲之间的匹克秒(10-12)值。
X(t),Y(t),Z(t):这些参数定义一个用来推算对应波形上点位置的线性方程。
波形上点位置由以下方程计算:
X = X0 + X(t)
Y = Y0 + Y(t)
Z = Z0 + Z(t)
x,y,z推算点的空间位置,x0,y0,z0是起始点的位置(该点数据的x,y,z),t(单位为匹克秒)是相对于起始点的时间(起始点时间为0)。
X,y,z的单位是l as数据坐标系统的单位。
如果坐标系统是地理坐标系,水平方向单位为度,垂直单位为米。
点数据记录格式5:
格式5在格式3的基础上加入了波形信息。
表4.14:点数据记录格式5
格式5在格式4的基础上加入了RG B值。
已定义变长记录:
地理参考信息
Las格式的地理参考采用了为Ge oTIFF标准开发的强大机制。
变长文件头部分包含与T IFF文件中GeoT IFF key tags中的数据一样的数据。
这样一来,任何已有可读取GeoT IFF标签中的坐标系统信息的软件就能识别las文件头中的坐标信息了。
由于las格式不是栅格格式,每个点都有自己的绝对位置信息,只需要6个G eoTIF F标签中的3个,ModelT iePoi ntTag(33922),
ModelP ixelS caleT ag(33550)和Model Trans forma tionT ag(34264)记录是不需要的。
只用了这三条记录:GeoKey Direc toryT ag(34735),GeoDou blePa ramsT ag(34736)和GeoAS CⅡParams Tag(34737)。
只需要Geo KeyDi recto ryTag记录。
GeoDou blePa ramsT ag 和GeoAS CIIPa ramsT ag 记录可能用也可能不用,由GeoKe yDire ctory Tag的内容决定。
GeoKey Direc toryT ag记录:(强制性的)
用户ID:LASF_P rojec tion
记录ID:34735
该记录定义坐标系统的关键值(key values)。
完整的描述参见GeoT IFF格式规范。
这里是一个大概的描述。
GeoKey Direc toryT ag被定义为一个无符号短整型数的数组。
但是,整体来说,数据结构如下:
struct sGeoKe ys
{
unsign ed shortwKeyDi recto ryVer sion;
unsign ed shortwKeyRe visio n;
unsign ed shortwMinor Revis ion;
unsign ed shortwNumbe rOfKe ys;
struct sKeyEn try
{
unsign ed shortwKeyID;
unsign ed shortwTIFFT agLoc ation;
unsign ed shortwCount;
unsign ed shortwValue_Offs et;
} pKey[1];
};
Where:
wKeyDi recto ryVer sion= 1; // Always
wKeyRe visio n = 1; // Always
wMinor Revis ion = 0; // Always
wNumbe rOfKe ys // Number of sets of 4 unsign ed shorts to follow
GeoDou blePa ramsT ag Record:(可选择)
用户ID:LASF_P rojec tion
记录ID:34736
该记录为一个一系列双精度数的数组,用来供Geo KeyDi recto ryTag中的标签集来引用。
GeoAsc iiPar amsTa g Record:(可选择)
用户ID:LASF_P rojec tion
记录ID:34737
该记录为一个一系列AS CII数值的数组。
它包含许多以空值(NULL)分隔的字符串,用来作为Ge oKeyD irect oryTa g记录的引用值。
分类查找:(可选择)
用户ID:LASF_S pec
记录ID:0
文件头后记录长:255条记录*16字节结构体长度
struct CLASSI FICAT ION
{
unsign ed char ClassN umber;
char Descri ption[15];
}
航线文件头查找:
(在1.1版本中移除掉了-点源ID与文件源ID提供了航线号新的直接编码方法。
于是可变记录1现在预留为将来应用。
)
用户ID:LASF_S pec
记录ID:1
柱状图:(可选择)
用户ID:LASF_S pec
记录ID:2
文本描述:(可描述)
用户ID:LASF_S pec
记录ID:3
波形数据描述器:(再用点格式4或5时需要)
用户ID:LASF_S pec
记录ID:n
100=<n<356
这些记录包含描述波形数据包设置的信息。
由于在一项工作中系统在不同时间可能配置也不同,las文件支持255个波形数据包描述器。
表4.16:波形数据包描述器用户定义记录
每个采样位数:支持2到30位。
波形压缩类型:标准压缩类型将为las委员会所采用。
该字段表示该描述器对应的波形数据包所采用的压缩算法。
当前只支持0值。
采样数:该波形数据包类型对应的采样数。
该值通常代表着全部解压过的波形数据包。
采样时间间隔:单位为匹克秒。
值可能为500,1000,2000等,分别代表数字化频率为2GHz,1GHz和500MHz。
数字化比例因子:比例因子和偏移值用来转换原始数值为一个绝对数字电压值,方程为:VOLTS= OFFSET + GAIN * Raw_Wa vefor m_Amp litud e
数字化偏移:与比例因子一起来计算绝对数字电压值。
扩展变长记录(EVLR)
扩展变长记录位于点数据记录之后。
该记录文件头与VLR不一样,文件头后记录长为8字节。
表4.17:扩展变长记录文件头
Las 1.3只允许有一个EVLR,即波形数据包。
波形数据包:(当点数据格式为4或5时需要)
用户ID:LASF_S pec
记录ID:65535
所有记录的原始波形振幅值紧跟随着该变长文件头。
这是LASF规范的最后的保留记录。
该扩展变长记录必须为一个las文件的最后一条记录。
与其他变长记录不一样,该记录以及相关数据位于点数据记录之后。
注意:当逐字进行运算时,如果增量值不为8时,每个波形数据包的最后一个字节必须补上,以使后面的波形数据能够从均匀的字节边界起始。