问题标签 [lidar]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
statistics - 从 LiDAR 云中提取描述性信息(.las 文件)
我有 .las(激光雷达数据)文件,现在我想知道它的大小,例如它的宽度和高度以公里为单位的长度。
如何检索这些信息?
c++ - 有什么好的 C 或 C++ 库可以处理大型点云吗?
基本上,我正在寻找一个库或 SDK 来处理来自激光雷达或扫描仪的大型点云,通常会遇到数百万个 X、Y、Z、颜色的点。我所追求的如下;
快速显示、缩放、平移点云注册快速低级访问数据曲面和实体的回归(不如其他重要)
虽然我不介意为合理的商业库付费,但我对非常昂贵的库(例如超过 5000 美元)或每个用户运行时许可成本的库不感兴趣。开源也不错。我通过谷歌找到了一些可能性,但对于我的预算来说,它们都太贵了。
visual-c++ - 在默认路径中未找到 ArcSDK.h
默认情况下,它应该位于 ..\include\CPPAPI。但在我的机器上,这个文件夹甚至不存在,只有“CatIDs”和“GridIDs”文件夹位于 \include 中。我已经安装了 ArcGIS Desktop 9.3 及其 VC++ SDK。
我是 ArcGIS 和 LiDAR 的新手,我有 LAS 文件和相应的文本版本,我需要做的就是将 txt 文件转换为 shp 文件。我找到了一个可以做到这一点的示例代码,它包括 ArcSDK.h。
感谢你们中的任何人的帮助。
performance - 加速 IO 绑定的 OpenGL 应用程序
我最近一直在研究一个点云播放器,它应该能够理想地可视化来自激光雷达捕获的地形数据点,并以大约 30fps 的速度顺序显示它们。然而,我似乎遇到了 PCI-e IO 的问题。
我需要为每一帧加载一个存储在内存中的大点云,然后根据高度计算颜色图(我使用类似于 matlab 的喷射图),然后将数据传输到 GPU。这适用于点数 < 100 万的云捕获。然而,在大约 200 万个点处,这开始减慢到每秒 30 帧以下。我意识到这是很多数据(每点 200 万帧 * [每点 3 个浮点数 + 每个色点 3 个浮点数] * 每个浮点数 4 字节 * 每秒 30 帧 =大约每秒 1.34 GB)
我的渲染代码现在看起来像这样:
vertData 和 colorData 的指针每帧都会改变。
我希望能够以每秒至少 30 帧的速度播放,即使稍后使用可能达到每帧 700 万点的大型点云。这甚至可能吗?或者也许将它们网格化并构建一个高度图并以某种方式显示它会更容易?我对 3-D 编程还是很陌生,所以任何建议都将不胜感激。
matlab - 如何将激光雷达设备与 MATLAB 连接?
我有一个 Hokuyo USB 激光雷达/激光雷达。我在将其连接或连接到 MATLAB/Simulink 时遇到问题,这样我就可以在这些软件包中进行所有处理。
我已经问过北洋了。它们仅提供 C++ 程序接口(示例编程指南和库)。如何将其连接到 MATLAB/Simulink?
python - 如何使用 Python 更改文件的字段分隔符?
我是来自 R 世界的 Python 新手,我正在处理以数据列结构化的大文本文件(这是 LiDaR 数据,因此通常有 6000 万+条记录)。
是否可以更改如此大文件的字段分隔符(例如,从制表符分隔到逗号分隔)而无需读取文件并for
在行上执行循环?
sql-server-2008 - 优化 SQL Server 2008 上 7000 万个极高密度空间点云的最近邻查询
我在 SQL Server 2008 R2 Express 数据库中有大约 7500 万条记录。每个都是对应于某个值的 lat long。该表有地理列。我正在尝试为给定的纬度经度(点)找到一个最近的邻居。我已经有了一个带有空间索引的查询。但是根据记录在数据库中的位置,比如第一季度或上季度,查询可能需要大约 3 到 30 秒才能找到最近的邻居。我觉得这可以通过优化查询或空间索引来优化以提供更快的结果。现在应用了一些具有默认设置的空间索引。这是我的表和查询的样子。
我正在使用的空间索引:
这是我正在使用的查询:
这是我的数据库中的 lat longs 示例。给出准确度和密度的概念。所有 7000 万条记录都针对一个城市(激光雷达数据)
现在这个查询给了我上面描述的结果,但我想尽可能地提高性能。我的猜测是通过调整空间索引的默认值,我可能能够提高性能。这有什么线索吗?
我尝试将缓冲区从 10 更改为 1000,但结果几乎相同。
也欢迎任何其他改进性能的建议。
这是我现在使用的系统:
bing-maps - 在 Web 地图(如 Geoserver、Bing 地图、Google 地图)上显示动态栅格(激光雷达)数据
我有一些高质量的激光雷达数据。我需要动态处理它,并根据我当时的输入和海拔来更新一个字段(不是海拔字段)。完成此操作后,我需要尽可能实时地在 Web 地图(Bing 地图、谷歌地图等)上显示此栅格数据。这是我到目前为止能够做的事情:我已经提出了一些使用 ArcGIS Python Lib 的脚本,这些脚本处理我的激光雷达剪辑,添加一个字段,根据输入的输入更新该字段。所以现在我基本上拥有了所有栅格上的点每 5 分钟分为 3 类。如果我在 arcGIS 中查看此栅格,我可以查看重叠在底图上的漂亮 3 色栅格。
但现在我需要在 Web 地图上呈现这些光栅剪辑。我的第一个想法是将这些分类剪辑多边形化并在 JavaScript 地图上显示多边形。但是多边形化需要很多时间,因此它被淘汰了。
现在我的其他选择是使用 GeoServer 的 Raster 渲染功能来显示图像。然后使用我创建的这个 WMS,将其重叠在 Bing 地图上。这就是我卡住的地方。我不知道如何从我的 ADF 文件中自动获取 Geoserver 支持的栅格,例如 Geotiff、jpg200o 等,首先在开放图层上渲染它们,然后尝试在 bing 地图上重叠它们。
如果有人知道任何好的教程可以在地图上进行这种动态变化的栅格渲染,如果你能指出我会很棒。
此外,如果有其他更好的方法来建立这种系统,请提出建议。我对几乎任何解决方案都持开放态度。
谢谢
PS:我非常擅长网络编程、网络服务、数据库和脚本等。但是对于使用激光雷达和地理光栅是新手。
c++ - 改进我的四叉树设计?
我有一个应用程序,用于显示和修改来自激光雷达文件的大量点云数据(每个文件最多几个 GB,有时同时加载)。在应用程序中,用户可以查看加载点的 2D 图像(从顶部)并选择要在另一个窗口中查看的配置文件(从侧面)。这再次涉及数百万个点,它们使用 OpenGL 显示。
为了处理数据,还有一个四叉树库,它可以工作,但速度极慢。它已经使用了一段时间,但最近激光雷达点格式发生了变化,并且 LidarPoint 对象需要添加许多属性(类成员),这导致它的大小增加,进而影响性能到几乎无法使用的水平(想想 5 分钟加载单个 2GB 文件)。
四叉树目前由指向 PointBucket 对象的指针组成,这些对象只是具有指定容量和定义边界(用于空间查询)的 LidarPoint 对象数组。如果超过桶容量,它将分成四个桶。还有一种缓存系统,当点数据占用过多内存时,它会导致点桶被转储到磁盘。如果需要,然后将它们加载回内存。最后,每个 PointBucket 都包含子桶/分辨率级别,它们保存原始数据的每个第 n 个点,并在根据缩放级别显示数据时使用。这是因为一次显示几百万个点,虽然没有必要那么详细,但速度非常慢。
我希望你能从中得到一张照片。如果没有,请询问,我可以提供更多详细信息或上传更多代码。例如,这里是当前(和慢速)插入方法:
现在我的问题是,您是否可以想办法改进这个设计?在处理大量无法放入内存的数据时,有哪些通用策略?如何使四叉树更有效率?有没有办法加快点的渲染?
3d - Leica ScanStation C10 输出文件格式
这是他们尚未发布的徕卡专有文件格式。必须使用他们自己的(仅限 Windows)软件 Cyclone 来处理来自 ScanStation 的数据。
任何人都可以提供有关这些 .bin 文件的内部结构的任何提示吗?