基于ArcGIS的栅格图像平滑处理(转)
基于ArcGIS的栅格图像平滑处理
栅格数据获取的途径多种多样,造成了栅格数据质量的很大差异,一些质量较差的栅格数据存在大量“噪音”象元,即在表达同类型的地理要素时,出现个别像元值与周边像元不一致的情况,数据中噪音栅格象元的存在为数据的使用和分析带来了极大的不便,因此经常需要对栅格进行平滑的预处理操作。
在ArcGIS软件的空间分析工具箱中,提供了大量的栅格数据处理工具,其中对栅格数据进行平滑处理的工具在去除图像上的椒盐噪音的处理中有非常重要的作用
1. 主滤波工具
1.1 主滤波工具原理
主滤波工具的原理是根据像元邻域内的众数值来替换像元。主滤波需要满足两个条件才能发生替换。首先,相同值的邻近像元的数量必须多到可以成为众数值,或者至少一半的像元必须具有相同值。即,如果指定的是众数参数,则四分之三或八分之五的已连接像元必须具有相同的值;如果指定的是半数参数,则需要四分之二或八分之四的已连接像元具有相同的值。其次,那些像元必须与指定的滤波器的中心相邻(例如,四分之三的像元必须相同)。第二个条件与像元的空间连通性有关,目的是将像元的空间模式的破坏程度降到最低。如果不满足这些条件,将不会进行替换,像元的值也将保持不变。
在下图中,主滤波应用于输入栅格,使用最近的四个像元(四个正交的相邻像元)作为滤波器,并要求众数(四分之三的像元)值是相同的,才能更改相应像元的值。仅更改那些被三个或三个以上值相同的(正交)像元包围的像元。
输入栅格输出栅格
在下图中,应用了主滤波,使用最近的八个像元作为滤波器,并要求至少一半的值(八分之四的像元)相同,才能更改像元的值,此时的平滑效果更佳。
输入栅格输出栅格
1.2 主滤波工具应用
在“ArcToolbox工具箱——空间分析工具——栅格综合——众数滤波”路径下找到工具双击打开,工具界面如下图所示:
要使用的相邻要素数:
确定在滤波器核中使用的相邻像元数。
FOUR — 滤波器内核将是与当前像元直接相邻(正交)的四个像元。这是默认设置。
EIGHT — 过滤器内核将是距当前像元最近的八个相邻像元(3 × 3 窗口)。
替换阈值
在进行替换之前指定必须具有相同值的相邻(空间连接)像元数。
MAJORITY — 多数像元必须具有相同值并且相邻。四分之三或八分之五的连接像元必须具有相同值。
HALF — 半数像元必须具有相同值并且相邻。四分之二或八分之四的连接像元必须具有相同值。使用 HALF 选项可获得更平滑的效果。
为加强栅格处理效果,可反复调用滤波工具,并将上一次输出作为下一次输入,反复处理后,栅格图像的效果会有很大改善。
2. 焦点统计工具
2.1 焦点统计工具原理
焦点统计工具也可以实现对栅格数据进行平滑的效果,且效果优于主滤波工具。该工具用于计算输出栅格数据的邻域运算,各输出像元的值是其周围指定邻域内所有输入像元值的函数。对输入数据执行的函数可得出统计数据,例如最大值、平均值或者邻域内遇到的所有值的总和。
工具在执行过程中,算法将访问栅格中的每个像元,并且根据识别出的邻域范围计算出指定的统计数据。要计算统计数据的像元称为处理像元。处理像元的值以及所识别出的邻域中的所有像元值都将包含在邻域统计数据计算中。各邻域可以重叠,因此一个邻域中的像元也可以包含在其他处理像元的邻域中。
通过下图中值为 5 的处理像元可演示出焦点统计的邻域处理过程。指定一个 3 x 3 的矩形像元邻域形状。邻域像元值的总和 (3 + 2 + 3 + 4 + 2 + 1 + 4 = 19) 与处理像元的值 (5) 相加等于 24 (19 + 5 = 24)。因此将在输出栅格中与输入栅格中该处理像元位置相同的位置指定值 24。
输入栅格输出栅格
上图演示了如何对输入栅格中单个像元执行计算。而在下图中,将显示出所有输入像元的计算结果。以黄色高亮显示的是上例中所述处理像元及其邻域。
输入栅格输出栅格
2.2 焦点统计工具应用
在“ArcToolbox——空间分析——邻域分析——焦点统计分析”路径下找到工具并双击打开,工具界面如下图所示“
邻域分析
邻域的形状可以是环形(圆环)、圆形、矩形或楔形。通过使用核文件,也可定义自定义邻域形状,以及在计算统计数据之前将不同的权重分配给领域中的各个特定像元。
统计类型
可用的焦点统计统计数据包括众数、最大值、平均值、中值、最小值、少数、范围、标准差和总和。默认统计类型为平均值。
处理结果对比图:
原始栅格
主滤波工具处理后的栅格
焦点统计工具处理后的栅格
(作者:赵立超)
来自:http://www.higis.cn/Tech/tech/tId/33
基于ArcGIS的栅格图像平滑处理(转)的更多相关文章
- 基于ArcGIS Viewer for Flex开发的一款跨平台的应用程序
特点: 1.基于ArcGIS Viewer for Flex开发的一款跨平台的应用程序: -(IBAction) showTOC:(id)sender { if (_tocViewController ...
- 基于ArcGIS JS API的在线专题地图实现
0 引言 专题地图是突出而深入的表示一种或几种要素或现象,即按照地图主题的要求,集中表示与主题有关内容的地图.专题地图的专题要素多种多样,分类方法也多种多样,根据专题地图表现数据的特点可分为定 ...
- 基于 ArcGIS Silverlight API开发的WebGIS应用程序的部署
部署流程概述 在微软的iis服务器上部署基于ArcGIS Silverlight API的应用程序,主要包括以下几个步骤: 1)(可选)部署GIS服务 如果需要将GIS服务也部署在Web服务器上,则 ...
- 点聚合功能---基于ARCGIS RUNTIME SDK FOR ANDROID
一直不更新博客的原因,如果一定要找一个,那就是忙,或者说懒癌犯了. 基于ArcGIS RunTime SDK for Android的点聚合功能,本来是我之前做过的一个系统里面的一个小部分,今天抽出一 ...
- 基于ArcGIS for Server的服务部署分析 分类: ArcGIS for server 云计算 2015-07-26 21:28 11人阅读 评论(0) 收藏
谨以此纪念去年在学海争锋上的演讲. ---------------------------------------------------- 基于ArcGIS for Server的服务部署分析 -- ...
- 基于ArcGIS的CAD数据向GIS数据转换方法(转)
基于ArcGIS的CAD数据向GIS数据转换方法 1 CAD数据与ArcGIS数据介绍 地图数据来源多种多样,大多数使用的是计算机辅助设计软件(CAD)制作的数据,CAD软件制图自动化程度高,操作简单 ...
- 基于GDAL的栅格图像空间插值预处理
转自 基于GDAL的栅格图像空间插值预处理——C语言版 基于GDAL的栅格图像预处理 前言 栅格数据和矢量数据构成空间数据的主要来源,怎样以开源方式读取并处理这些空间数据?目前有多种开源支持包,这里只 ...
- (转) 基于Arcgis for Js的web GIS数据在线采集简介
http://blog.csdn.net/gisshixisheng/article/details/44310765 在前一篇博文“Arcgis for js之WKT和geometry转换”中实现了 ...
- 基于ArcGIS Flex API实现动态标绘(1.0)
标绘作为一种数据展示形式,在多个行业都有需求. 基于ArcGIS Flex API(3.6)实现标绘API,当前版本号1.0 alpha,支持经常使用几种标绘符号,包含: 圆弧.曲线.圆形.椭圆.弓形 ...
随机推荐
- NGINX(一)内存结构
ngx_buf_t和ngx_chain_t是nginx中操作内存的重要手段, 很多的数据都需要通过这个结构进行保存. 其中ngx_buf_t中保存一块可用内存, ngx_chain_t则是将内存块连接 ...
- linux删除数据文件无备份恢复
参考 : http://www.lunar2013.com/2013/06/linux-%E8%AF%AF%E5%88%A0%E9%99%A4%E6%96%87%E4%BB%B6%E6%81%A2%E ...
- extjs分组查询
<script type="text/jscript"> var grid; Ext.onReady(function () { Ext.QuickTips.init( ...
- SVN server 安装 并创建用户访问
1. 下载svn 官网https://www.visualsvn.com/server/download/ 或者其他网站都行,下载是VisualSVN-Server-3.5.6.msi. 2.安装 ...
- centos ssh 免密码登录
最近在学习的过程中遇到这个问题: A主机和B主机: A 免密码登录B: 首先在A的 ~/.ssh 目录中 执行 ssh-keygen -t rsa 一路回车 最后生成连个文件: 将id_rsa.pub ...
- 查表法计算CRC16校验值
CRC16是单片机程序中常用的一种校验算法.依据所采用多项式的不同,得到的结果也不相同.常用的多项式有CRC-16/IBM和CRC-16/CCITT等.本文代码采用的多项式为CRC-16/IBM: X ...
- jdk源码调试功能
JDK源码重新编译——支持eclipse调试JDK源码--转载 最近在研究jdk源码,发现debug时无法查看源码里的变量值. 因为sun提供的jdk并不能查看运行中的局部变量,需要重新编译一下rt. ...
- 2014上海网络赛 HDU 5053 the Sum of Cube
水 #include <stdio.h> #include <stdlib.h> #include<math.h> #include<iostream> ...
- 大数据架构师基础:hadoop家族,Cloudera产品系列等各种技术
大数据我们都知道hadoop,可是还会各种各样的技术进入我们的视野:Spark,Storm,impala,让我们都反映不过来.为了能够更好的架构大数据项目,这里整理一下,供技术人员,项目经理,架构师选 ...
- 关于main()和_tmain()
1.两者的共同点 int _tmain(int argc, _TCHAR* argv[]) 和 int main(int argc, char* argv[]) ,两者都是程序的主函数,两者 ...