ArcGIS教程:众数滤波 (Spatial Analyst)
2015-10-27 11:54
253 查看
摘要
根据相邻像元数据值的众数替换栅格中的像元。
插图
用法
· 众数滤波工具需要满足两个条件才能发生替换:具有近似值的相邻像元数必须足够多(达到所有像元的半数及以上),并且这些像元在滤波器内核周围必须是连续的。第二个条件与像元的空间连通性有关,目的是将像元的空间模式的破坏程度降到最低。
· 相邻像元数使用 FOUR 会保留矩形区域的拐角。使用 EIGHT 将使矩形区域的拐角变得平滑。
· 相邻的定义是共享 EIGHT 内核的一条边和共享 FOUR 内核的一个角。
· 如果将替换阈值指定为 HALF,并且两个值的出现次数相等,则当处理的像元值与其中某一半的值相同时将不会发生替换。HALF 比 MAJORITY 的过滤范围广泛。
· 当边和角栅格像元的相邻条件相同时,它们会遵循不同的 MAJORITY 和 HALF 规则。使用 FOUR 内核时,边或角像元始终要求存在两个匹配的相邻像元才能发生替换。使用 EIGHT 内核时,角像元在所有相邻像元均具有相同值时才能发生更改,而边像元需要三个相邻像元(包括边上的像元)具有相同值才发生更改。
· 运行几次众数滤波后,输出栅格将会稳定下来(不再变化)。
代码实例
MajorityFilter 示例 1(Python 窗口)
本例将使用全部八个相邻像元过滤输入栅格,并在替换时要求半数像元具有相同值,从而生成更加平滑的效果。
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outMajFilt = MajorityFilter("land", "EIGHT", "HALF")
outMajFilt.save("c:/sapyexamples/output/outmajfilt")
MajorityFilter 示例 2(独立脚本)
本例将使用全部八个相邻像元过滤输入栅格,并在替换时要求半数像元具有相同值,从而生成更加平滑的效果。
# Name: MajorityFilter_Ex_02.py
# Description: Replaces cells in a raster based on the
# majority of their contiguous neighboring cells.
# Requirements: Spatial Analyst Extension
# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *
# Set environment settings
env.workspace = "C:/sapyexamples/data"
# Set local variables
inRaster = "land"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute MajorityFilter
outMajFilt = MajorityFilter(inRaster, "EIGHT", "HALF")
# Save the output
outMajFilt.save("c:/sapyexamples/output/majfilter")
环境
像元大小, 当前工作空间, 掩膜, 输出坐标系, 范围, 临时工作空间, 捕捉栅格
根据相邻像元数据值的众数替换栅格中的像元。
插图
用法
· 众数滤波工具需要满足两个条件才能发生替换:具有近似值的相邻像元数必须足够多(达到所有像元的半数及以上),并且这些像元在滤波器内核周围必须是连续的。第二个条件与像元的空间连通性有关,目的是将像元的空间模式的破坏程度降到最低。
· 相邻像元数使用 FOUR 会保留矩形区域的拐角。使用 EIGHT 将使矩形区域的拐角变得平滑。
· 相邻的定义是共享 EIGHT 内核的一条边和共享 FOUR 内核的一个角。
· 如果将替换阈值指定为 HALF,并且两个值的出现次数相等,则当处理的像元值与其中某一半的值相同时将不会发生替换。HALF 比 MAJORITY 的过滤范围广泛。
· 当边和角栅格像元的相邻条件相同时,它们会遵循不同的 MAJORITY 和 HALF 规则。使用 FOUR 内核时,边或角像元始终要求存在两个匹配的相邻像元才能发生替换。使用 EIGHT 内核时,角像元在所有相邻像元均具有相同值时才能发生更改,而边像元需要三个相邻像元(包括边上的像元)具有相同值才发生更改。
· 运行几次众数滤波后,输出栅格将会稳定下来(不再变化)。
代码实例
MajorityFilter 示例 1(Python 窗口)
本例将使用全部八个相邻像元过滤输入栅格,并在替换时要求半数像元具有相同值,从而生成更加平滑的效果。
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outMajFilt = MajorityFilter("land", "EIGHT", "HALF")
outMajFilt.save("c:/sapyexamples/output/outmajfilt")
MajorityFilter 示例 2(独立脚本)
本例将使用全部八个相邻像元过滤输入栅格,并在替换时要求半数像元具有相同值,从而生成更加平滑的效果。
# Name: MajorityFilter_Ex_02.py
# Description: Replaces cells in a raster based on the
# majority of their contiguous neighboring cells.
# Requirements: Spatial Analyst Extension
# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *
# Set environment settings
env.workspace = "C:/sapyexamples/data"
# Set local variables
inRaster = "land"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute MajorityFilter
outMajFilt = MajorityFilter(inRaster, "EIGHT", "HALF")
# Save the output
outMajFilt.save("c:/sapyexamples/output/majfilter")
环境
像元大小, 当前工作空间, 掩膜, 输出坐标系, 范围, 临时工作空间, 捕捉栅格
相关文章推荐
- 基于Arcgis for javascript实现百度地图ABCD marker的效果
- 在arcgis使用python脚本进行字段计算时是如何解决中文问题的
- 基于ArcEngine+C#开发的空间数据管理平台架构设计及功能说明
- Zoom to Selected Globe Features
- 在ArcGIS中如何删除重复的点要素
- Arcgis Flex Api自定义点样式实现风场显示
- ArcGIS10.2 破解版安装教程
- ArcMap求四至点坐标的方法(最小外接矩形范围)
- SDE服务启动报错的解决方法
- Arcgis10.0安装遇到错误1935
- catalog下添加ArcServer报“参数错误”错误
- ArcGIS 中的标准分类方法
- ArcGIS Flex 3.1版本的新特点
- 用ArcGIS Online创建交互式照片地图
- 添加公里网格(修改)
- ArcGis 10+Oracle发布WFS-T服务,无法更新Feature的解决方法
- ArcGIS_API for Javascript 3.9 tomcat 下部署
- 如何将asc文件转换成的txt文件,并导入到sql server中?
- arcgis禁用双击放大地图 Silverlight
- 如何实现安卓定位,用arcGis开发