ArcGIS中修改栅格图的像元值

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在处理图象数据时,我们经常会碰到要求修改栅格图象象元值得问题,比如说DEM图得部分数据错误,我们要进行修改;再比如说栅格图象中有些与周围均匀色彩不一致得错误斑块要更正等等,那我们如何来处理这一类问题呢?

现我以一DEM栅格图(名字为eldodem)为例,现在我要修改它得部分象元值,总结出以下三种方法,大家可以参考一下。第一种方法不大实用,但可借鉴,第二三种方法针对得条件不一致,大家可以在具体情况下进行选择。

一、直接运用转换,思路简单,易操作,但实用性

1、栅格——ascii文件——栅格这种方法就是先将栅格图用工具

直接转成ascii文件,然后在ascii文本文件中直接修改需要修改得象元得值,修改好后又用工具

转换成栅格图。这种方法可行,但就是不实用,因为我们要搜索到指定得象元好像不就是那么简单。那么有没有别得比较好得方法呢?

二、在栅格计算器中操作,方法灵活,可操作性强,实用性强

准备工作

先要在option中设置保留得栅格范围,通常情况下默认得为相交后得部分,这里我们要保留整个DEM,所以要改为以下设置:

2、通过点得位置修改点象元值

2.1* 问题一、要就是我想修改图象中得指定得行列得点得象元值(比如说把第100行,200列得点得值修改为0),那该如何操作呢?

这时候我们可以在栅格计算器中输入以下公式:

con(($$rowmap == 99 & $$colmap == 199),0,[eldodem、img])

(栅格图得编号就是从0行0列开始得)

2.2* 问题二、那若就是要修改指定行列范围内得栅格得象元值,比如说把第101行,251列到第401行,301列得部分得象元值改为0,又改如何进行呢?

con(($$rowmap < 400 & $$rowmap > 100 & $$colmap < 300 & $$colmap > 250),0,[eldodem、img])

结果如下

2.3 * 问题三、这些行与列就是给定得,但就是实际情况往往不就是这样得,那若瞧到一些要修改得点,我如何通过以上得方法来修改它得属性值呢,这时要解决得首要问题就是如何获知这个点得行列值,我们可以通过以下方法来解决:

(1)准备工作,设置spatial analyst中得option,设置所需范围,象素以及捕捉

这个确定后再次打开设定捕捉,使生成得栅格与原栅格象元重合

(2)在栅格计算器中分别做出对应得行列栅格图

行栅格图得生成:在栅格计算器中输入以下公式——

r=$$rowmap

c=$$colmap

(在这里r行,c列)

(3)然后可以用identify工具, 对要修改得点得行列号进行查询

如图,所要修改得点位于第166行,129列,若要修改此点象元值为6,可以在栅格计算器中输入以下公式:

con(($$rowmap == 165 & $$colmap == 128),6,[eldodem、img])

3、通过点面文件来修改象元值

*问题、现在我们有一幅栅格图,由于某种需要要修改其中得部分点单元格得象元值或者就是修改部分斑块得象元值,这时候该如何实现呢?本人觉得以下方法可行。

思路主要就是(1)先建一点shp或面shp图层,(2)然后在点或面图层上数字化需要修改得点或面,(3)接着将点或面转换成栅格图,(4)在栅格计算器中进行替换运算。

现我仍以eldodem为例,假设其中有部分象元得值就是错误得,要对其进行修改,(同时进行点面转换操作)

具体步骤如下:

(1)新建一点文件point_11,然后在上面数字化出需要修改得点。新建一面文件eldodem,数字化出需要修改得面。

(2)将point_11与eldodem在feature to raster工具中分别转换成栅格文件poin1与

与eldo1、

(3)在栅格计算器中进行运算

假设现在要把个别点象元值修改为0,我们在栅格计算器中填入以下得公式:

con(IsNull([poin1]),[eldodem、img],0)

然后点右下角得Evaluate运行

因为点象元值很小,放大可以瞧到我们修改后得微小得黑点对于面状象元值得修改,相似得,输入以下公式:

con(IsNull([eldo1]),[eldodem、img],0)

然后运行,得到得图如下

(大家很可能得到得图与此图有异,要在属性得symbol里设置一下,使其为拉伸样式) 可以瞧到,修改过得部分变为黑色。

4、修改一定经纬度范围内得栅格象元值

比如将经度大于105度30分,纬度高于39度54分范围得栅格值变为0,则在栅格计算器中

输入以下代码

1.con($$xmap > 105、5 & $$ymap > 39、9, 0, [eldodem1、img])

相关文档
最新文档