基于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的栅格图像平滑处理(转)的更多相关文章

  1. 基于ArcGIS Viewer for Flex开发的一款跨平台的应用程序

    特点: 1.基于ArcGIS Viewer for Flex开发的一款跨平台的应用程序: -(IBAction) showTOC:(id)sender { if (_tocViewController ...

  2. 基于ArcGIS JS API的在线专题地图实现

    0 引言     专题地图是突出而深入的表示一种或几种要素或现象,即按照地图主题的要求,集中表示与主题有关内容的地图.专题地图的专题要素多种多样,分类方法也多种多样,根据专题地图表现数据的特点可分为定 ...

  3. 基于 ArcGIS Silverlight API开发的WebGIS应用程序的部署

    部署流程概述 在微软的iis服务器上部署基于ArcGIS  Silverlight API的应用程序,主要包括以下几个步骤: 1)(可选)部署GIS服务 如果需要将GIS服务也部署在Web服务器上,则 ...

  4. 点聚合功能---基于ARCGIS RUNTIME SDK FOR ANDROID

    一直不更新博客的原因,如果一定要找一个,那就是忙,或者说懒癌犯了. 基于ArcGIS RunTime SDK for Android的点聚合功能,本来是我之前做过的一个系统里面的一个小部分,今天抽出一 ...

  5. 基于ArcGIS for Server的服务部署分析 分类: ArcGIS for server 云计算 2015-07-26 21:28 11人阅读 评论(0) 收藏

    谨以此纪念去年在学海争锋上的演讲. ---------------------------------------------------- 基于ArcGIS for Server的服务部署分析 -- ...

  6. 基于ArcGIS的CAD数据向GIS数据转换方法(转)

    基于ArcGIS的CAD数据向GIS数据转换方法 1 CAD数据与ArcGIS数据介绍 地图数据来源多种多样,大多数使用的是计算机辅助设计软件(CAD)制作的数据,CAD软件制图自动化程度高,操作简单 ...

  7. 基于GDAL的栅格图像空间插值预处理

    转自 基于GDAL的栅格图像空间插值预处理——C语言版 基于GDAL的栅格图像预处理 前言 栅格数据和矢量数据构成空间数据的主要来源,怎样以开源方式读取并处理这些空间数据?目前有多种开源支持包,这里只 ...

  8. (转) 基于Arcgis for Js的web GIS数据在线采集简介

    http://blog.csdn.net/gisshixisheng/article/details/44310765 在前一篇博文“Arcgis for js之WKT和geometry转换”中实现了 ...

  9. 基于ArcGIS Flex API实现动态标绘(1.0)

    标绘作为一种数据展示形式,在多个行业都有需求. 基于ArcGIS Flex API(3.6)实现标绘API,当前版本号1.0 alpha,支持经常使用几种标绘符号,包含: 圆弧.曲线.圆形.椭圆.弓形 ...

随机推荐

  1. JRebel 5.3.2

    http://www.blogjava.net/xylz/archive/2013/09/15/404098.html   此为单文件版本,无需license文件 IDE(Eclipse.IDEA可能 ...

  2. git 的版本回滚

    当用git clone 复制远程代码库到本地时,使用 git branch 只能看到默认库(master),当远程库有多个分支时,可以使用 git branch -a 查看全部的分支, 然后git c ...

  3. LeetCode题解——Median of Two Sorted Arrays

    题目: 找两个排序数组A[m]和B[n]的中位数,时间复杂度为O(log(m+n)). 解法: 更泛化的,可以找第k个数,然后返回k=(m+n)/2时的值. 代码: class Solution { ...

  4. codeforces 617B Chocolate

    题意: 在给定01串中,问能分割成多少个子串?每个子串只有一个1. dp #include<iostream> #include<string> #include<alg ...

  5. 【OpenGL】入门

    根据OpenGL蓝宝书(OpenGL超级宝典)来入门,写的比较细,易懂,这里给我贴代码和记录零碎的事儿用 第一个代码 #include <gl/glut.h> void RenderSce ...

  6. ACCESS-如何多数据库查询(跨库查询)

    测试通过:ACCESSselect * from F:\MYk.mdb.tablename说明:1.查询语句2.来原于哪(没有密码是个路径)3.查询的表名 ====================== ...

  7. [Objective-c 基础 - 2.3] 继承、组合

    A.继承的实现: is a 1.不允许子类.父类存在相同的成员变量 2.方法调用优先原则:子类调用方法的时候,优先从本类寻找,若无则向上在父类中寻找 3.重写:子类重新实现父类的方法,覆盖父类之前的方 ...

  8. vs2015中升级Nuget后,找不到Umbraco安装包问题

    打开VS2015, Tools=>Extensions and Updates=> Updates => Visual Studio Gallery   在这里check一下是否有N ...

  9. sql语句常见错误

    1.两张表关联用的三种连接:  left join .right join .inner join区别 (备注:两个表链接肯定是根据两个表(如A B)中的两个字段值(如A.bId和B.id),相等就行 ...

  10. 如何对SQL Server 2005进行设置以允许远程连接(转载)

    如何对SQL Server 2005进行设置以允许远程连接(转载) 在尝试从远程计算机连接到 Microsoft SQL Server 2005 实例时,可能会接收到错误消息.在使用任何程序连接到 S ...