las数据的读写及注意事项总结
- 关于las数据的数据规范
从本质上来说,LAS格式是一种二进制文件格式。其目的是提供一种开放的格式标准,允许不同的硬件和软件提供商输出可互操作的统一格式。现在LAS格式文件已成为LiDAR数据的工业标准格式。
LAS文件按每条扫描线排列方式存放数据,包括激光点的三维坐标、多次回波信息、强度信息、扫描角度、分类信息、飞行航带信息、飞行姿态信息、项目信息、GPS信息、数据点颜色信息等。LAS格式定义中用到的数据类型遵循1999年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介绍
C--class(所属类)
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就不是同一种类型了。
- 常用的开源的las文件的读写库
提到常用的开源库,就会用到市面上比较常用的两个开源库如laslib与liblas。刚开始的时候会傻傻分不清两者的关系。
liblas和laslib是两个不一样的库,laslib是lastools这个工具编译出来的库,是一个教授维护的库,liblas是一个工程师维护的库。在竞争抗衡的过程中因为一些问题后面liblas库没有继续更新了维护了,然后liblas库的开发者推出了一个新的库来对抗lastools 就是pdal,准备继续与lastools竞争。
现在市面上常用的基本都是lastools编译出来的laslib库,C++可以直接引用使用该库对las文件进行读写。
Github上也有一些其他的版本的如C#版本的,Python版本的等
LASTools下载地址
https://github.com/LAStools/LAStools
C#使用laslib或liblas读写las数据
https://github.com/wren11/AtlassLASLib
Python使用laspy或pylas读写las数据
https://github.com/tmontaigu/pylas
https://github.com/laspy/laspy
- las数据读写中存在的问题
las数据的要依据las属性的类型进行存储,譬如强度值没有小数位,xyz都是int32类型等。
las头文件中的 XYZ scale是可以对xyz的值进行缩放的,设置xyz的缩放比。
las数据的读写及注意事项总结相关推荐
- spring Batch实现数据库大数据量读写
spring Batch实现数据库大数据量读写 博客分类: spring springBatchquartz定时调度批处理 1. data-source-context.xml Xml代码 &l ...
- c语言作业雇人写,C语言作业的链表数据的读写
问题的引入: 这学期C语言项目我选择做一个理财管理系统,数据存储使用链式映象,也在此基础上实现数据显示功能块.在完成了数据的统计显示,按时间段显示,按类别显示等功能后,才开始考虑数据的读写的文件操作功 ...
- las数据转pcd并显示
成功的方法: 可以转成ply bin pcd格式,转换流程如下所示: 1.打开CloudCompare软件,加载点云数据(.las或者是.laz等等). 2.选择要进行转换的文件,此时屏幕上会出现一个 ...
- 【ArcGIS风暴】ArcGIS+CASS点云(.las)数据生成等高线方法案例精解
本文讲解基于点云LAS数据,在ArcGIS+CASS平台上生成等高线的方法. 扩展阅读: 什么是点云?什么是Las数据集?一篇文章告诉你点云数据的奥秘 ArcGIS+CASS点云(.las)数据生成等 ...
- java获取xlsx某列数据_Java读取Excel指定列的数据详细教程和注意事项
本文使用jxl.jar工具类库实现读取Excel中指定列的数据. jxl.jar是通过java操作excel表格的工具类库,是由java语言开发而成的.这套API是纯Java的,并不依赖Windows ...
- python sqlserver 数据操作_python对Excel数据进行读写操作
python对Excel数据进行读写操作 将学习到的基础操作记录在这里,便与复习查看 1.python读取Excel工作簿.工作表 import xlrd # 读取工作簿 wb=xlrd.open_w ...
- opc读取ab的plc数据_C#读写 AB PLC 直接通过节点来读写数据 读写 AllenBradley PLC
本文将使用一个Github开源的组件库技术来读写AB PLC,使用的是基于以太网的实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能读写操作 本类库绝对是ab最 ...
- matlab segy文件,利用matlab实现segy格式数据的读写研究和分析.ppt
利用matlab实现segy格式数据的读写研究和分析 2.SEGY数据格式 地震数据一般以地震道为单位进行组织,采用SEG-Y文件格式存储.SEG-Y格式是由SEG (Society of Explo ...
- python对Excel数据进行读写操作
python对Excel数据进行读写操作 将学习到的基础操作记录在这里,便与复习查看 1.python读取Excel工作簿.工作表 import xlrd # 读取工作簿 wb=xlrd.open_w ...
最新文章
- Python编程基础:第四十节 类变量Class Variables
- Netty 框架学习(一):初始netty
- Cookie,Session基础知识
- Codeforces 524C Idempotent functions
- 归并python_python基本算法之实现归并排序(Merge sort)
- Mapped Statements collection already contains value for com.wen.mapper.ProjectMapper.xxx
- 关于Hibernate ResultTransformer
- 关于使用FileZilla软件出现中文乱码解决方法
- OPPO VOOC快充电路和协议
- 李南江html5教程资源合集,哇爪跟着李南江学习HTML5—HTML学习
- google hacking
- linux riot密码,拳头账号密码忘了怎么办?riot账号怎么找回密码修改密码
- 坚定文化新自信 提升文化软实力
- ERP : 总量库存管理
- 如何实时抓取动态网页数据?
- gstreamer+qgc+aarch64
- NET Framework合集(官方)
- Python 实现黑白棋
- HOUDINI 平面漩涡
- 1980-2018年全国30米土地利用类型样例数据
热门文章
- 关于VS调试时的加载符号
- 爆音在bilibili 的韵脚语录
- 主流 html5播放器,10 个最佳 HTML5 音频播放器推荐
- 画世界怎么用光影_世界绘画经典教程:水彩光影魔法教程
- revit插件加载位置 addin 文件位置
- 模糊字符串匹配:双重解密算法
- mysql5.6.1732位_MySQL - 龚哥哥的博客 - gong.gg
- PSIM免安装的方法附加使用教程
- 计算机远程教育网点,网络远程教育统考《计算机应用基础》电子表格部分练习(二)...
- 元器件封装标准IPC-7351