码迷,mamicode.com
首页 > 其他好文 > 详细

CesiumLab 地形数据处理

时间:2018-12-06 17:50:33      阅读:365      评论:0      收藏:0      [点我收藏+]

标签:proc   完成   怎么   存储   define   数据格式   索引   undefined   地理   

最近接连有用户反应地形数据处理的各种问题,我也是各种测试,想想还是整理一个文档彻底说明一下。

地形栅格数据格式,一般是tif ,也有dem或者img,但是我个人强烈建议使用tif格式,因为cesiumlab都是用这个格式测试的。
我们先说一下地形栅格数据的几个关键参数:

强烈建议处理之前,先用arcmap打开,确保以下参数正常
1,空间参考(spatial reference)

spatial reference 定义了 栅格数据的坐标空间,下图为正常参数,如果arcmap 这里显示undefined,那表示空间参考未知,必然无法正常处理。

技术分享图片
栅格的空间参考信息
如果tif中不含空间参考,但是空间参考数据处理人员又明确知道,那么可以在cesiumlab中指定。反过来说如果不确定,那就不要乱尝试,只会浪费处理时间。
技术分享图片
cesiumlab中指定空间索引
2,无数据值(nodata)
nodata定义了删格中的无效数据数据值,也就是说如果栅格里某个像素的值 = nodata,意味着该像素没有数据。

对于nodata的处理,cesiumlab把该位置使用高程0填充。
但是原始数据中这个值很乱,完全是用户设置的,栅格里可能没有这个nodata信息,也可能为任意值。一般用户会设置一个超大的负数值,比如 -10000? ,-99999等。这里强烈建议,不要设置数据极值,例如-1.797693e+308 ,这种极值会导致中间计算出现非数字,导致地形处理异常。

技术分享图片
无数据值
如果原始栅格中没有nodata值,只有一种情况处理地形高程会正常(数据的空间参考是wgs84,地形数据边界为矩形),除此之外都必须设置此值。在cesiumlab选中对应tif,如下设置。
技术分享图片
这个-9999.005859是怎么来的? 我们还是必须通过arcmap打开tif,使用indentify工具,点击我们明确知道是无数据区域,那么获得他的值。
技术分享图片
arcgis里人工判定nodata
3,地理范围(extent)

栅格数据实际上是一张图片,必须要一个转换,把像素坐标转到地理坐标,这就是extent,在gdal里是geotransform。在arcmap里如下图所示
技术分享图片
栅格的地理范围
正常这里应该显示的地理坐标,如果你发现这个extent的四个值里有0,那么基本意味着,你的tif的地理范围信息缺失。

tif 一般把这个信息存储在文件内,还有另一种方式存储为 同名的tfw 文件。
所以我们处理或者拷贝数据的时候,如果有tfw,请一并拷贝。

技术分享图片
tfw文件
确保上面三个关键参数正确,我们再分析cesiumlab处理地形的异常情况原因
1, 瞬间结束? ? ? 空间参考缺失? 或者? 地理范围缺失
2,处理完成之后半边黑球? ? ? nodata 过大
3,地形高程异常? ? ? nodata 缺失或者不正确
4,位置不正确或伴随高程不正常? ? ? 一般是空间参考不正确根据异常原因,请在arcmap使用相关工具处理你的栅格数据。

CesiumLab 地形数据处理

标签:proc   完成   怎么   存储   define   数据格式   索引   undefined   地理   

原文地址:http://blog.51cto.com/14117342/2326975

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!