SuperMap iDesktop 提取影像边界裁剪去除无值区域处理方案
- 处理栅格数据
- 1. 查询白边栅格值
- 2. CON函数代数运算
- 3. 得到结果栅格
- 栅格矢量化转为面
- 矢量面裁剪原始栅格数据
- 6. 选中所有面进行地图裁剪
- 7. 裁剪后栅格白边被去除
作者:jjz
相信很多人都会遇到栅格数据有白边、黑边的问题,到原始影像处理软件中处理再导出步骤繁琐,希望能在 SuperMap iDesktop 中直接进行去除,保证生成缓存时不会出现问题。除了在地图和场景中设置图层的透明色、无值等参数,更推荐直接将干扰数据进行裁剪,只保留有值部分。但是有时手中没有合适的轮廓或边界数据,本文将提供提取范围面数据的方法。有了这个面数据集,就可以直接将原始数据进行裁剪,得到没有白边、黑边的新数据集。文中操作如果有不熟悉的,可以翻阅帮助文档,直接搜索功能关键字查看详细解释。
处理栅格数据
1. 查询白边栅格值
首先需要查询要去除的栅格值,工具在:空间分析 - 栅格分析 - 栅格查询。
点选空白区域获得栅格值,在输出窗口复制栅格值备用。教程数据为存在白边问题的影像数据,且范围比较大,地图实际上已经设置了背景颜色为米色。
![原始数据](https://img8.php1.cn/3cdc5/12f09/8fd/381cf7f4feab42b5.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAc3VwZXJtYXBzdXBwb3J0,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
2. CON函数代数运算
利用 CON 函数来进行代数运算,功能在:数据 - 数据处理 - 代数运算。
函数说明:
Con(x, y, z)
:条件判断函数。x 为条件表达式(或值),y、z 为提取值。如果函数满足条件 x,则提取 y 值,否则提取 z 值。
将正常栅格值和白边值进行二元化,公式如下:
Con( [RasterData] == 白边值,0,1)
如果栅格值是白边值,则将栅格值变为0;如果不是白边值,则变为1。此公式可以根据数据情况进行变通,例如有些数据有不正常的负值,导致栅格显示不正常,也可以用此公式处理。
![CON函数](https://img8.php1.cn/3cdc5/12f09/8fd/86d7b4d2d552c230.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAc3VwZXJtYXBzdXBwb3J0,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
3. 得到结果栅格
灰色部分为原始有值区域,蓝色为白边部分。
![二元化后栅格结果](https://img8.php1.cn/3cdc5/12f09/8fd/23a6d51b06220604.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAc3VwZXJtYXBzdXBwb3J0,size_12,color_FFFFFF,t_70,g_se,x_16#pic_center)
栅格矢量化转为面
4. 栅格矢量化
将上一步的数据集进行栅格矢量化,转为面数据集。功能在:空间分析 - 栅格分析 - 矢栅转换 - 栅格矢量化。注意无值设置为0即可。
![栅格矢量化设置](https://img8.php1.cn/3cdc5/12f09/8fd/7a51a111f0c04895.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAc3VwZXJtYXBzdXBwb3J0,size_12,color_FFFFFF,t_70,g_se,x_16#pic_center)
5. 得到裁剪面数据集
蓝色部分为得到的面数据集,米色为地图背景色。
![裁剪面](https://img8.php1.cn/3cdc5/12f09/8fd/1c9f82e08c0569f0.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAc3VwZXJtYXBzdXBwb3J0,size_11,color_FFFFFF,t_70,g_se,x_16#pic_center)
矢量面裁剪原始栅格数据
6. 选中所有面进行地图裁剪
将上一步得到的面数据集和原始的栅格数据集进行裁剪,功能在:地图 - 地图裁剪 - 选中对象区域裁剪。
将两个数据集加到同一张地图内,选中需要的面后,点击地图裁剪功能。
![裁剪设置](https://img8.php1.cn/3cdc5/12f09/8fd/ea80bc20df457e01.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAc3VwZXJtYXBzdXBwb3J0,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
7. 裁剪后栅格白边被去除
点击确定后可以看到新生成的栅格数据集已经没有白边了。左图为处理前,右图为处理后,地图背景色为米色。
![裁剪后结果对比](https://img8.php1.cn/3cdc5/12f09/8fd/378cc4e043a58211.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAc3VwZXJtYXBzdXBwb3J0,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)