LAS格式中文说明.docx
《LAS格式中文说明.docx》由会员分享,可在线阅读,更多相关《LAS格式中文说明.docx(22页珍藏版)》请在冰豆网上搜索。
LAS格式中文说明
Las格式版本1.3
1.目的,作用域以及应用
Las文件用来包含lidar点数据记录。
由软件输出的数据都以这种格式存在。
数据格式的目的是提供一个公开的数据格式,使得不同的lidar软硬件工具能够以一个共同的格式输出。
该文档反映了自从最初的1.0版本以来las格式规范的3次修订。
Las1.3添加的内容包含:
●能够应用点记录类型4和5在las文件中存储反射脉冲波形数据(或者存储在一个外部文件)
●存储对波形数据进行空间转换的参数
●额外的全局编码旗标,表示反射是否为人工生成的
波形数据存储的目标:
●波形数据和lidar点被包含在同一个文件中
●一个反射可能有也可能没有一个相关联的波形数据包
●同一lidar脉冲的多个反射可能指向同一个波形数据包
●支持2至32位波形数据记录
●配置了多个波形数字化设置(取样数,取样间距,每个取样所占位数等等)
●支持波形数据的压缩(虽然在该版本规范中没有提供具体的压缩机制)
波形数据存储实现:
●公开反射附近的波形部分被存储起来(波形数据包,WDP)
●原始波形数据数据包存储在一个大而连续的扩展变长记录(EVLR)里,或者,存储在一个另外的辅助文件中。
●对波形数字化配置的描述存储在一个包含255个变长记录的波形描述器(WPD)里。
●每个点记录有一个新的元数据,它是一个指向该点WDP的索引。
●每个点记录都包含有额外的信息,表明那个WPD用来描述该点的波形数据包。
与las1.2的兼容性:
公共头文件区有一个不可避免的改变,就是添加了波形数据起始位置。
该超长整形数据被添加到了公共头文件区的末尾,所以对于不需要波形数据的las1.2点读器来说,只需要一点或者不需要改变。
对于点数据记录类型0到3,没有任何改变。
而在点数据记录类型4和5中加入了波形数据。
2.一致性
Las格式定义中所用到的数据类型与1999ANSIc语言规范一致。
3.所有者
ASPRS是Las规范的拥有者。
标准由组织内部委员维持。
4.要求
Las格式定义:
格式由二进制数据组成,包含一个头文件区,变长记录区和点记录区。
表4.1:
las格式定义
PUBLICHEADERBLOCK
VARIABLELENGTHRECORDS
POINTDATARECORDS
一个包含波形数据的las文件(点数据格式4或5)应该是:
表4.2:
包含波形数据的las格式定义
PUBLICHEADERBLOCK
VARIABLELENGTHRECORDSINCLUDING
WAVEFORMPACKETDESCRIPTORS(upto255)
POINTDATARECORDS
EXTENDEDVARIABLELENGTHRECORD
(WAVEFORMDATAPACKETS)
所有数据都是little-endian格式。
头文件区包含一个公共区,后面紧接着变长记录。
公共区块包含一些描述数据整体情况的记录,比如点记录数,坐标边界。
变长记录包含一些变长类型数据,有投影信息,元数据,波形数据包信息和用户应用数据。
如果包含波形数据包的话,那么它位于所有点数据记录的末尾。
它被放置在该处以方便对它的分离或实体化。
该记录是一个扩展变长记录(EVLR)。
EVLR的存储格式为无符号超长整型(unsignedlonglong8byte),允许存储比一个VLR更多的信息。
数据类型:
Las格式规范用到了以下数据类型。
Char(1字节)
Unsignedchar(1字节)
Short(2字节)
Unsignedshort(2字节)
Long(4字节)
Unsignedlong(4字节)
Longlong(8字节)
Unsignedlonglong(8字节)
Double(8字节IEEE浮点型格式)
公共文件头区:
表4.3:
公共文件头区
Item
Format
Size
Required
FileSignature(“LASF”)
char[4]
4bytes
*
FileSourceID
unsignedshort
2bytes
*
GlobalEncoding
unsignedshort
2bytes
*
ProjectID-GUIDdata1
unsignedlong
4bytes
ProjectID-GUIDdata2
unsignedshort
2byte
ProjectID-GUIDdata3
unsignedshort
2byte
ProjectID-GUIDdata4
unsignedchar[8]
8bytes
VersionMajor
unsignedchar
1byte
*
VersionMinor
unsignedchar
1byte
*
SystemIdentifier
char[32]
32bytes
*
GeneratingSoftware
char[32]
32bytes
*
FileCreationDayofYear
unsignedshort
2bytes
*
FileCreationYear
unsignedshort
2bytes
*
HeaderSize
unsignedshort
2bytes
*
Offsettopointdata
unsignedlong
4bytes
*
NumberofVariableLengthRecords
unsignedlong
4bytes
*
PointDataFormatID(0-99forspec)
unsignedchar
1byte
*
PointDataRecordLength
unsignedshort
2bytes
*
Numberofpointrecords
unsignedlong
4bytes
*
Numberofpointsbyreturn
unsignedlong[7]
28bytes
*
Xscalefactor
Double
8bytes
*
Yscalefactor
Double
8bytes
*
Zscalefactor
Double
8bytes
*
Xoffset
Double
8bytes
*
Yoffset
Double
8bytes
*
Zoffset
Double
8bytes
*
MaxX
Double
8bytes
*
MinX
Double
8bytes
*
MaxY
Double
8bytes
*
MinY
Double
8bytes
*
MaxZ
Double
8bytes
*
MinZ
Double
8bytes
*
StartofWaveformDataPacketRecord
Unsignedlonglong
8bytes
*
公共文件头区中任何不需要或不用的字段必须被赋为0.
文件标签(FileSignature):
文件标签必须包含四个字符“LASF”,这是las规范所需要的。
这四个字符用来被用户软件进行检查以便快速确定文件类型。
文件源ID(FileSourceID)(如果该文件是由一个原始航线获得,文件源ID为航线号):
该字段应该被设为1到65535之间的一个值,包含65535。
0值意思为一个还没有分配的ID。
在这种情况下,允许处理软件来赋一个合法的值。
注意该机制允许一个lidar项目包含65535个单独的源。
一个源可能是一个原始航线或是合并或萃取操作的结果。
全局编码:
这是一个位段,用来说明文件的某种全局属性。
在las1.2(在该版本中该字段被引入),只有低位被定义(该位默认为无符号整型值1)。
该位段定义如下:
表4.4:
全局编码-位段编码
Bits
FieldName
Description
0
GPSTimeType
ThemeaningofGPSTimeinthePointRecords
0(notset)->GPStimeinthepointrecordfieldsisGPSWeekTime(thesameaspreviousversionsofLAS)
1(set)->GPSTimeisstandardGPSTime(satelliteGPSTime)minus1x109(AdjustedStandardGPSTime).Theoffsetmovesthetimebacktonearzerotoimprovefloatingpointresolution.
1
WaveformDataPacketsInternal
Ifthisbitisset,thewaveformdatapacketsarelocatedwithinthisfile(notethatthisbitismutuallyexclusivewithbit2与bit2互斥关系)
2
WaveformDataPacketsExternal
Ifthisbitisset,thewaveformdatapacketsarelocatedexternaltothisfileinanauxiliaryfilewiththesamebasenameasthisfileandtheextension“.wdp”.(notethatthisbitismutuallyexclusivewithbit1)
3
Returnnumbershavebeensyntheticallygenerated
Ifset,thepointreturnnumbersinthePointDataRecordshavebeensyntheticallygenerated.Thiscouldbethecase,forexample,whenacompositefileiscreatedbycombiningaFirstReturnFileandaLastReturnFile.Inthiscase,firstreturndatawillbelabeled“1of2”andsecondreturndatawillbelabeled“2of2”
4:
15
Reserved
Mustbesettozero
项目ID(GUIDdata):
这四个字段组成了一个全球唯一的标示符,作为一个项目标示符(项目ID)。
该字段仍是可选择的。
对项目ID的赋值时间决定于处理软件。
一个特定的项目中的所有文件应该有一个共同的项目ID。
通过指定一个项目ID和一个文件源ID,一个项目中的每个文件和每个文件中的每个点能够全球唯一标示。
版本号:
版本号由一个主版本和副版本字段组成。
两者组成了当前文件的版本。
例如,版本号1.2将包含1在主版本号里,2在副版本号里。
系统标识符:
1.0版本假定las文件全部由一个硬件传感器获取生成。
其后的版本文件通常是萃取,合成或者修改已有文件的结果。
系统ID成为:
表4.5:
系统标识符
GeneratingAgent
SystemID
Hardwaresystem
Stringidentifyinghardware(e.g.“ALTM1210”or“ALS50”
Mergeofoneormorefiles
“MERGE”
Modificationofasinglefile
“MODIFICATION”
Extractionfromoneormorefiles
“EXTRACTION”
Reprojection,rescaling,warping,etc.
“TRANSFORMATION”
Someotheroperation
“OTHER”orastringupto32charactersidentifyingtheoperation
生成软件:
以ASCII格式描述生成软件。
该字段提供一个机制,用来标示文件创建时的生成软件包和软件版本号(例如,“TerraScanV-10.8”,“REALMV-4.2”等),如果字符数据少于16个字符,剩余数据必须为NULL。
文件创建日期:
无符号短整型,日期采用格林尼治标准时间(GMT)。
一月一日就是第一天。
文件创建年份:
文件创建的年份,四位阿拉伯数字。
文件头大小:
公共文件头区的大小,以字节为单位。
如果头文件由于一个软件的扩展而在文件头末尾添加了一些数据,文件头大小必须更新为新的文件头大小。
对公共文件头区的扩展是不提倡的。
任何时候要添加用户文件头数据时,应该用变长记录完成。
如果一个软件对公共文件头区添加了数据,数据必须放置在最后面,并且一定要更新反映出新的文件头大小。
点数据起始暗标:
从文件起始处到第一个点数据记录首个字段的实际字节数。
如果有任何软件在公共文件头区添加了数据或从变长记录里添加或删除了数据,点数据起始暗标必须进行更新。
点数据之前的变长记录数:
该字段表明该文件中点数据之前的变长记录数。
任何时候变长记录数改变时,都应对其进行更新。
点数据格式ID:
点数据格式ID与点数据记录格式类型对应。
Las1.3定义了0-5种类型。
点数据记录长度:
以字节为单位的点数据记录长度。
点数据记录数:
该字段表示文件中总的点记录数。
各反射点数:
该字段是一个各反射点数统计的数组。
第一个值是第一反射的记录数,以此类推。
X,Y,Z比例因子:
该字段包含一个双精度浮点型值,用来缩放点记录对应的X,Y,Z长整型值。
为获取真实的点坐标,必须将长整型XYZ值乘上XYZ比例因子。
例如,如果XYZ坐标要包含两个小数点位,每个比例因子必须为值0.01。
X,Y,Z偏移:
该字段用来设置点记录的整体偏移。
一般情况下,这些值为0。
但在有些情况下,点数据记录分辨率(resolution)可能对于特定的投影系统来说不够大。
通常应认为这些偏移是被应用的。
所以真正的XYZ坐标应为:
Xcoordinate=(Xrecord*Xscale)+Xoffset
Ycoordinate=(Yrecord*Yscale)+Yoffset
Zcoordinate=(Zrecord*Zscale)+Zoffset
最大与最小XYZ:
是las文件中未缩放的XYZ的最大与最小值。
波形数据包记录起始暗标:
该值代表从文件起始开始到第一个波形数据包记录的字节数。
注意这可能是波形数据包文件头的首个字节。
所有数据都是需要投影信息的。
投影信息位于变长记录里。
将投影信息放置在变长记录里允许定义任何投影包含用户投影系统。
GeoTiff规范http:
//www.remotesensing.org/geotiff/geotiff.html是投影系统的模型,该格式在该规范中有明确的定义。
变长记录:
公共文件头区后面是一个或多个变长数据记录(有一个是强制性的,就是GeoKeyDirectoryTag)。
在公共文件头区变长数据记录数说明了共有几个变长记录。
变长记录必须依次进行访问,因为每个变长记录长度都包含在变长记录头信息里。
每个变长记录头大小为60字节。
表4.6:
变长记录文件头
Item
Format
Size
Required
Reserved
unsignedshort
2bytes
UserID
char[16]
16bytes
*
RecordID
unsignedshort
2bytes
*
RecordLengthAfterHeader
Unsignedshort
2bytes
*
Description
char[32]
32bytes
UserID:
用户ID是ASCⅡ字符数据,用来标示创建变长记录的用户。
可能有来自不同来源的多个变长记录,且有着不同的用户ID。
如果字符数据少于16个字符,剩余数据必须为NULL。
用户ID必须向las规范管理机构进行注册。
对这些用户ID的管理确保没有任何两个个体碰巧用了同一个用户ID。
该规范起始应用这两个ID:
一个是为全局特定记录服务的(LASF_Spec),另外一个是为投影类型服务的(LASF_Projection)。
RecordID:
记录ID依赖于用户ID。
每个用户ID可能有0-65535个记录ID。
Las规范管理着自己的记录ID(规范所拥有的用户ID),其他的记录ID都由指定的用户ID的拥有者进行维护管理。
每个用户ID允许被以任意方式分配0到65535个记录ID。
对指定的记录ID的意义的公开化是该用户ID所有者的工作。
未知的用户ID和记录ID组合是不被认可的。
文件头后记录长:
是标准文件头部分之后的记录的字节数。
所以整个记录长度为54字节(包括记录里变长部分的长度)。
描述:
可选择的部分,以NULL结尾的数据的txt描述文本。
任何不用的字符都应为null。
注意用户ID为LASF_Spec和记录ID为65535的记录为波形数据包扩展变长记录(EVLR)。
与其他变长记录相比,该VLR是唯一一个位于点数据记录之后的VLR。
所以,如果有的话,它将是las文件的最后一个数据记录。
点数据记录:
注意:
点数据开始标记在las1.1中被移除了。
Las文件I/O软件必须用公共文件头中的OffsettoPointData字段来定位第一个点数据记录的起始位置。
注意所有的点数据记录必须是同一个类型。
点数据记录格式0(20字节):
表4.7:
点数据记录格式0
Item
Format
Size
Required
X
long
4bytes
*
Y
long
4bytes
*
Z
long
4bytes
*
Intensity
unsignedshort
2bytes
ReturnNumber
3bits(bits0,1,2)
3bits
*
NumberofReturns(givenpulse)
3bits(bits3,4,5)
3bits
*
ScanDirectionFlag
1bit(bit6)
1bit
*
EdgeofFlightLine
1bit(bit7)
1bit
*
Classification
unsignedchar
1byte
*
ScanAngleRank(-90to+90)–Leftside
char
1byte
*
UserData
unsignedchar
1byte
PointSourceID
unsignedshort
2bytes
*
X,Y,Z:
X,Y,Z值以长整型格式储存。
X,Y和Z值与比例因子和偏移值一起来决定每个点的坐标。
反射强度:
反射强度值是脉冲反射能量的整型值。
该值是可选择的且因系统而已的。
尽管如此,如果可获得,都应该被包含。
注意:
以下四个字段(反射号,反射数,扫描方向旗标和航线边沿标记)是单个字节里的若干位段。
反射号:
反射序号是一个给定输出脉冲的反射脉冲的编号。
一个给定的输出激光脉冲可能有许多反射脉冲,这些反射脉冲的反射号必须按次序进行编号。
第一次反射的反射号为1,第二次反射的反射号为2,直到第5反射。
反射数(指定某一发射脉冲):
反射数是某一脉冲的所有反射的数量。
例如,一个激光点可能是一个脉冲的5个反射中的第2反射。
扫描方向旗标:
扫描方向旗标表示在输出该脉冲时扫描镜所处的位置。
1代表正向扫描角,0代表负向扫描角(以飞机飞行方向为准,从左侧向右侧摆动时为正向,相反为负向)。
航线边界旗标:
只有当该点位于一个扫描的末尾时,扫描边沿旗标值为1。
它是飞机改变航向前的扫描的最后一个点。
分类:
该字段代表着一个点的类属性。
如果一个点从来没被分类,该值必须设为0。
没有用户自定义的类,因为所有的点格式只为每个点提供8位的用户自定义操作。
注意分类是一个位段字段,低5位用于分类,高3位用来作为标记。
位定义如下:
表4.8:
分类位段编码
Bits
FieldName
Description
0:
4
Classification
StandardASPRSclassificationasdefinedinthefollowingclassificationtable.
5
Synthetic
IfsetthenthispointwascreatedbyatechniqueotherthanLIDARcollectionsuchasdigitizedfromaphotogrammetricstereomodelorbytraversingawaveform.
6
Key-point
Ifset,thispointisconsideredtobeamodelkey-pointandthusgenerallyshouldnotbewithheldinathinningalgorithm.
7
Withheld
Ifset,thispointshouldnotbeincludedinprocessing(synonymouswithDeleted).
注意位字段5,6,7为标记,且在任何合并中可被设置或清除。
例如,一个点分类的5,6位设为1,低5位设为设为2代表一个人工生成的地面点,并被标记为模型关键点。
分类必须遵循以下标准:
表4.9:
ASPRS标准lidar点分类
ClassificationValue(bits0:
4)
Meaning
0
Created,neverclassified
1
Unclassified1
2
Ground
3
LowV