CesiumLab 地形数据处理

最近接连有用户反应地形数据处理的各类问题,我也是各类测试,想一想仍是整理一个文档完全说明一下。工具

地形栅格数据格式,通常是tif ,也有dem或者img,可是我我的强烈建议使用tif格式,由于cesiumlab都是用这个格式测试的。测试

咱们先说一下地形栅格数据的几个关键参数:spa

强烈建议处理以前,先用arcmap打开,确保如下参数正常orm

1,空间参考(spatial reference)索引

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

 
栅格的空间参考信息

    若是tif中不含空间参考,可是空间参考数据处理人员又明确知道,那么能够在cesiumlab中指定。反过来讲若是不肯定,那就不要乱尝试,只会浪费处理时间。文档

 
cesiumlab中指定空间索引

2,无数据值(nodata)io

nodata定义了删格中的无效数据数据值,也就是说若是栅格里某个像素的值 = nodata,意味着该像素没有数据。form

对于nodata的处理,cesiumlab把该位置使用高程0填充。class

 可是原始数据中这个值很乱,彻底是用户设置的,栅格里可能没有这个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使用相关工具处理你的栅格数据。

相关文章
相关标签/搜索