ArcGIS基础:不同方法修改栅格数据像元值

【1】:根据值修改栅格值

原始数据如下所示:

是一个栅格数据,分为三种不同的颜色,三种颜色代表三个不同的数值,如下所示:
在这里插入图片描述
如下所示,为1、2、3三个不同值。
在这里插入图片描述

下面将栅格值为1 的数据的数值替换为10,进行以下操作:

打开工具,位于【spatial analyst工具】下,找到【条件分析】,再找到【条件函数】,打开之后,会弹出对话框如下所示:

输入栅格数据,然后,在表达式里输入value=1,表示选中所有的value=1的数据,【输入条件为true时】设置为10,表示把所有的1替换为10,false时为1,表示只要不是value=1的数据最后值都赋给1,然后查看一下结果。
在这里插入图片描述
这个是表达式的设置,如下图所示:
在这里插入图片描述
结果如下所示,原先value=1的数据现在都是10,原来是value=2或3的数据现在都是1。
在这里插入图片描述

也可以把false时数据输出设置为原来的value值,也就是保持不变,如下所示设置。

在这里插入图片描述
输出结果,如下,原来的value是2或3的数据都未变,原来value是1的现在值是10。
在这里插入图片描述

【地图代数】下的【栅格计算器】也可以实现同样的工具,如下所示,

打开栅格计算器,按照左侧的输入方法,使用CON函数,输入函数:con(“grid”==1,10,“grid”),意思是把原来value=1的值替换为10,其他的保持不变。
在这里插入图片描述
输出结果如下所示,与上步骤生成的结果完全一样。

在这里插入图片描述
【2】:【按照像元修改栅格值】

查看原始数据,如下所示,就是一个非常普通的DEM数据。

在这里插入图片描述

先进行【栅格转点】操作,用于生成点要素,

该工具位于【转换工具】下的【栅格转点】,进行如下设置
在这里插入图片描述
输出结果,是一个点阵,也就是每一个栅格像元的VALUE值转换为了属性值。

在这里插入图片描述

打开属性表,可以看到,属性表里的第四个字段就是转换的点要素的值。
在这里插入图片描述

点要素的值不多,我们可以先按照pointid字段进行标注,如下所示。
在这里插入图片描述
标注后的结果如下所示:
在这里插入图片描述
假如需要修改标注为50的像元,先选中它,打开属性表。
在这里插入图片描述
右键编辑数据,把其值改为50,如下所示。
在这里插入图片描述

然后再进行转换操作,找到【转为栅格】下的【点转栅格】,把相应的字段和数据输入,如下所示。
在这里插入图片描述
特别注意,像元大小不要保持默认设置,可以设置大一些,也可以设置为原始数据的大小,如下所示,这里设置为5*5。
在这里插入图片描述
输出结果,如下所示,中间的哪个黑色就是刚才修改为50的栅格像元。
在这里插入图片描述

### ArcGIS栅格数据化的方法ArcGIS中,栅格数据的二化是指将多灰度级别的图像简化为只有两个灰度级别(通常是黑白两色)的过程。这一步骤对于后续的操作如自动矢量化非常重要[^1]。 #### 方法一:通过重分类工具实现二化 可以使用Spatial Analyst扩展模块中的“重分类”工具来完成这一操作。“重分类”允许指定新的像元值范围并将其映射到特定的新上,在此过程中可以选择一个阈作为区分标准,低于该阈的所有像素被赋予一个固定数(比如0),而高于等于这个阈则分配另一个不同的数得以形成二进制模式的结果图层。 ```python import arcpy from arcpy.sa import * arcpy.CheckOutExtension("Spatial") inRaster = "path_to_input_raster" outReclassify = Reclassify(inRaster, "Value", RemapRange([[0, threshold_value, 0], [threshold_value, max_value, 1]]), "NODATA") outReclassify.save("output_binary_raster.tif") ``` 上述脚本展示了如何利用Python脚本来调用`Reclassify`函数执行栅格数据的二化过程。其中`RemapRange()`定义了重新赋区间;第一个参数代表输入栅格路径,第二个参数指定了依据哪个字段来进行重分类,“Value”表示基于像元值本身;第三个参数是一个列表对象描述旧新之间的对应关系;最后一个选项控制未参与计算区域的表现形式。 #### 方法二:采用条件语句创建二影像 另一种方式是借助于Map Algebra表达式的灵活性构建逻辑判断结构——即当满足一定条件下返回某给定常量否则输出另一预设的方式达成目的。具体来说就是编写类似于 `Con(InRas >= Threshold, 1, 0)` 的公式,这里的意思是如果原始栅格内的某个位置处的数据大于或等于设定好的界限就设置其对应的输出单格为1反之置零从而得到最终所需的二态型成果物。 ```python expression = Con(Raster("input_raster") >= threshold_value, 1, 0) expression.save("binary_output.tif") ``` 这段代码片段说明了怎样运用条件运算符`Con()`配合其他辅助功能快速简便地达到同样的效果。它接受三个主要组成部分:测试条件、真分支结果以及假分支结果。这里的`Raster("input_raster")`用来加载待处理的源文件,并且整个表达式会被保存成一个新的TIFF格式文件存储下来。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值