1.序:
图片都是矩形的,但项目实际应用当中很多影像数据是带状的,如果这个带状是斜的,那图像的像素就会特别高。
以实际应用为例,一个河道监测,使用无人机进行了航拍,输出了正射影像,河道弯弯曲曲,经度和纬度跨度范围都很大。单张tif的大小以及接近10Gb,像素总量:683610*150277=102730859970,千亿像素,但实际的河道所占的数据,有效数据不到十分之一,剩下的都是无效数据。如果不做处理,就需要全部加载。
如何快速加载这种数据?
2.解决方案原理
a)针对这样的大数据,进行分块,分成如下图的小块
这样一个文件变成了多个文件,但每个文件都包含很少的无效数据,存在的问题,文件个数会上升。如果同时加载需要考虑图层个数可能导致的问题(同一区域,目前的主流显卡最多支持8个图层叠加)。
b)切分成瓦片,类似下图结果
存在的问题,透明区域同样会被切分出这样的瓦片。碎文件量大,拷贝速度慢
3.LocaSpaceBuilder解决方案
LocaSpace特有的影像、地形数据存储格式lrp,内置lod,配置高效索引。
lrp结构说明:
lrp是一个二进制文件流,文件开始阶段存储了瓦片的索引,然后是一张张256*256像素的瓦片,可能是jpg,也可能是png,还可能是tif。
地形数据一般使用tif。索引是在瓦片写入的时候实时更新的。每次寻找瓦片先找索引,确定瓦片的位置以及字节个数,直接读取二进制文件流,构成瓦片,所以没有碎文件,查询速度特别快。
同时具备按范围裁切,去除黑边等功能,使用方法如下:
选择需要处理的数据,按照要求过滤无效值(默认不过滤),设置多边形范围控制,可以在LocaSpaceviewer里面绘制一个目标区域的面,另存为kml。可以设置【粗略过滤】、【精确过滤】两种模式
绘制一个有效数据的范围,如下图
这里使用粗略过滤,能过滤掉大部分的无效数据,同时保证了数据处理速度。
本示例当中提供的数据,在不设置过滤范围的情况下的处理时间为:11小时37分3秒,体积11.2Gb
设置如上图所示的范围后,处理时间:2小时43分29秒,体积10.2Gb
不要小看这缩小的一个Gb数据量,空数据压缩比很高,瓦片数可能降低10倍以上,提高的效率可想而知
处理完成之后生成一个lrp,直接在LocaSpaceViewer里面加载lrp,秒加!!!!!!
任意缩放,查看数据的状况,再也不担心像arcgis、globalmapper一样即使创建金字塔,也是拖拽一下卡顿一下的问题了。
最终效果如下:
放一个河道勘察的三维案例:
http://www.wish3d.com/projectPage/7c097a5e-0334-49bf-853d-49ae5b8e1601