- 136
- 0
- 约3千字
- 约 12页
- 2021-06-10 发布于天津
- 举报
在处理图象数据时,我们经常会碰到要求修改栅格图象象元值的问题, 比
如说DEM图的部分数据错误,我们要进行修改;再比如说栅格图象中有些与周围 均匀色彩不一致的错误斑块要更正等等,那我们如何来处理这一类问题呢? 现我以一 DEM!格图(名字为eldodem)为例,现在我要修改它的部分象元值,总结出以下 三种方法,大家可以参考一下。 第一种方法不大实用,但可借鉴, 第二三种方法针对的条件
不一致,大家可以在具体情况下进行选择。
、直接运用转换,思路简单,易操作,但实用性
1栅格一一ascii文件一一栅格这种方法是先将栅格图用工具
from RgMtEE*
沪 Rtiter to 护 Kester to Float
直接转成ascii文件,然后在ascii文本文件中直接修改需要修改的象元的值,修改 好后又用工具
-轴 T Rast
to Raster
严 DEM tc filter
尸 Feature to Raster
转换成栅格图。这种方法可行,但是不实用,因为我们要搜索到指定的象元好像不是那么简 单。那么有没有别的比较好的方法呢?
二、在栅格计算器中操作,方法灵活,可操作性强,实用性强
准备工作
Ge n et_:al Ek IL ^nt
Ge n et_:al Ek IL ^nt
1 z e虹 alysis 空慕
1 z e
虹 alysis 空慕 t eat:
1
Tap:
昵消
2、通过点的位置修改点象元值
2.1*问题一 、要是我想修改图象中的指定的行列的点的象元值 (比如说把第100行,200
列的点的值修改为 0),那该如何操作呢?
这时候我们可以在栅格计算器中输入以下公式:
con( ($$rowmap == 99 $$colmap == 199),0,[eldodem.img])
(栅格图的编号是从 0行0列开始的)
Layers.Calculation Calculation^ .alcJatnnS ldoderrr.!rftg「
Layers.
Calculation Calculation^ .alcJatnnS ldoderrr.!rftg
「 1 I 2 I 3 I - Xar
0 I ( ] Nat
con(($$rowmap 400 $$ewm叩 a WO IScolmap
300 ^colinap SSO^OJeldodem.img])
Ab口ut Buildi
Ab口ut Buildi阿 Expressions
Evaluate
Cancel
2*问题二、那若是要修改指定行列范围内的栅格的象元值,比如说把第 101行,251列
到第401行,301列的部分的象元值改为 0,又改如何进行呢?
1.con( ($$rowmap 400 $$rowmap 100 $$colmap 300 $$colm ap
1.
250),0,[eldodem.img])
结果如下
2. 3 *问题三、这些行和列是给定的,但是实际情况往往不是这样的,那若看到一些要修 改的点,我如何通过以上的方法来修改它的属性值呢, 这时要解决的首要问题是如何获知这
个点的行列值,我们可以通过以下方法来解决:
(1 )准备工作,设置 spatial analyst 中的option,设置所需范围,象素以及捕捉
这个确定后再次打开设定捕捉,使生成的栅格和原栅格象元重合
r
Options:
5 Extent:
? 7 c L ..-- F -I- -J E
3 3 3 3 3 -.5 13 r Pi
:.r-ft
44275S
467985
478635
4413735
Snap exttnt to: | sldodem. r
确定| 取消|
Bottoifr
11
11
匹
(2 )在栅格计算器中分别做出对应的行列栅格图 行栅格图的生成:在栅格计算器中输入以下公式-
1.
1.
r=$$rowmap
c=$$colmap
(在这里 r--- 行,c 列)
(3)然后可以用ide ntify 工具, 对要修改的点的行列号进行查询
1.
1. con(($$rowmap == 165 $$colmap == 128),6,[eldodem.img])
6,可以在栅格计算器如图,所要修改的点位于第 166 行, 129
6,可以在栅格计算器
3、通过点面文件来修改象元值 *问题、现在我们有一幅栅格图,由于某种需要要修改其中的部分点单元格的象元值或者是 修改部分斑块的象元值,这时候该如何实现呢?本人觉得以下方法可行。
思路主要是( 1)先建一点 shp 或面 shp 图层,( 2)然后在点或面图层上数字化需要修改的 点或面,( 3)接着将点或面转换成栅格图,( 4)在栅格计算器中进行替换运算。
原创力文档

文档评论(0)