Las格式版本1.31.目的,作用域以及应用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格式定义PUBLICHEADERBLOCKVARIABLELENGTHRECORDSPOINTDATARECORDS一个包含波形数据的las文件(点数据格式4或5)应该是:表4.2:包含波形数据的las格式定义PUBLICHEADERBLOCKVARIABLELENGTHRECORDSINCLUDINGWAVEFORMPACKETDESCRIPTORS(upto255)POINTDATARECORDSEXTENDEDVARIABLELENGTHRECORD(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:公共文件头区ItemFormatSizeRequiredFileSignature(“LASF”)char[4]4bytes*FileSourceIDunsignedshort2bytes*GlobalEncodingunsignedshort2bytes*ProjectID-GUIDdata1unsignedlong4bytesProjectID-GUIDdata2unsignedshort2byteProjectID-GUIDdata3unsignedshort2byteProjectID-GUIDdata4unsignedchar[8]8bytesVersionMajorunsignedchar1byte*VersionMinorunsignedchar1byte*SystemIdentifierchar[32]32bytes*GeneratingSoftwarechar[32]32bytes*FileCreationDayofYearunsignedshort2bytes*FileCreationYearunsignedshort2bytes*HeaderSizeunsignedshort2bytes*Offsettopointdataunsignedlong4bytes*NumberofVariableLengthRecordsunsignedlong4bytes*PointDataFormatID(0-99forspec)unsignedchar1byte*PointDataRecordLengthunsignedshort2bytes*Numberofpointrecordsunsignedlong4bytes*Numberofpointsbyreturnunsignedlong[7]28bytes*XscalefactorDouble8bytes*YscalefactorDouble8bytes*ZscalefactorDouble8bytes*XoffsetDouble8bytes*YoffsetDouble8bytes*ZoffsetDouble8bytes*MaxXDouble8bytes*MinXDouble8bytes*MaxYDouble8bytes*MinYDouble8bytes*MaxZDouble8bytes*MinZDouble8bytes*StartofWaveformDataPacketRecordUnsignedlonglong8bytes*公共文件头区中任何不需要或不用的字段必须被赋为0.文件标签(FileSignature):文件标签必须包含四个字符“LASF”,这是las规范所需要的。这四个字符用来被用户软件进行检查以便快速确定文件类型。文件源ID(FileSourceID)(如果该文件是由一个原始航线获得,文件源ID为航线号):该字段应该被设为1到65535之间的一个值,包含65535。0值意思为一个还没有分配的ID。在这种情况下,允许处理软件来赋一个合法的值。注意该机制允许一个lidar项目包含65535个单独的源。一个源可能是一个原始航线或是合并或萃取操作的结果。全局编码:这是一个位段,用来说明文件的某种全局属性。在las1.2(在该版本中该字段被引入),只有低位被定义(该位默认为无符号整型值1)。该位段定义如下:表4.4:全局编码-位段编码BitsFieldNameDescription0GPSTimeTypeThemeaningofGPSTimeinthePointRecords0(notset)-GPStimeinthepointrecordfieldsisGPSWeekTime(thesameaspreviousversionsofLAS)1(set)-GPSTimeisstandardGPSTime(satelliteGPSTime)minus1x109(AdjustedStandardGPSTime).Theoffsetmovesthetimebacktonearzerotoimprovefloatingpointresolution.1WaveformDataPacketsInternalIfthisbitisset,thewaveformdatapacketsarelocatedwithinthisfile(notethatthisbitismutuallyexclusivewithbit2与bit2互斥关系)2WaveformDataPacketsExternalIfthisbitisset,thewaveformdatapacketsarelocatedexternaltothisfileinanauxiliaryfilewiththesamebasenameasthisfileandtheextension“.wdp”.(notethatthisbitismutuallyexclusivewithbit1)3ReturnnumbershavebeensyntheticallygeneratedIfset,thepointreturnnumbersinthePointDataRecordshavebeensyntheticallygenerated.Thiscouldbethecase,forexample,whenacompositefileiscreatedbycombiningaFirstReturnFileandaLastReturnFile.Inthiscase,firstreturndatawillbelabeled“1of2”andsecondreturndatawillbelabeled“2of2”4:15ReservedMustbesettozero项目ID(GUIDdata):这四个字段组成了一个全球唯一的标示符,作为一个项目标示符(项目ID)。该字段仍是可选择的。对项目ID的赋值时间决定于处理软件。一个特定的项目中的所有文件应该有一个共同的项目ID。通过指定一个项目ID和一个文件源ID,一个项目中的每个文件和每个文件中的每个点能够全球唯一标示。版本号:版本号由一个主版本和副版本字段组成。两者组成了当前文件的版本。例如,版本号1.2将包含1在主版本号里,2在副版本号里。系统标识符:1.0版本假定las文件全部由一个硬件传感器获取生成。其后的版本文件通常是萃取,合成或者修改已有文件的结果。系统ID成为:表4.5:系统标识符GeneratingAgentSystemIDHardwaresystemStringidentifyinghardware(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)。一月一日就是第一天。文件创建年份:文件创建的年份,四位阿拉伯数字。文件头大小:公共文件头区的大小,以字节为单位。如果头文件由于一个软件的扩展而在文件头末尾添加了一些数据,文件头大小必须更新为新的文件头大小。对公共文件头区的扩展是不提倡的。任何时候要添加用户文件头数据时,应该用变长记录完成。如果一个软件对公共文件头区添加了数据,数据必须放置在最后面,并且一定要更新反映出新的文件头大小。点数据起始暗标:从文件起始处到第一个点数据记录首个字段的实际字节数。如果有任何软件在公共文件头区添加了数据或从变长记录里添加或删除了数据,点数据起始暗标必须进行更新。点数据之前的变长记录数:该字段表明该文件中点数据之前的变长记录数。任何