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

原始数据如下所示:

是一个栅格数据,分为三种不同的颜色,三种颜色代表三个不同的数值,如下所示:

arcgispython替换字符串 arcgis字段替换某一个数字_修改栅格数据


如下所示,为1、2、3三个不同值。

arcgispython替换字符串 arcgis字段替换某一个数字_arcgis_02

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

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

输入栅格数据,然后,在表达式里输入value=1,表示选中所有的value=1的数据,【输入条件为true时】设置为10,表示把所有的1替换为10,false时为1,表示只要不是value=1的数据最后值都赋给1,然后查看一下结果。

arcgispython替换字符串 arcgis字段替换某一个数字_arcgis_03


这个是表达式的设置,如下图所示:

arcgispython替换字符串 arcgis字段替换某一个数字_arcgispython替换字符串_04


结果如下所示,原先value=1的数据现在都是10,原来是value=2或3的数据现在都是1。

arcgispython替换字符串 arcgis字段替换某一个数字_像元值_05

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

arcgispython替换字符串 arcgis字段替换某一个数字_栅格像元_06


输出结果,如下,原来的value是2或3的数据都未变,原来value是1的现在值是10。

arcgispython替换字符串 arcgis字段替换某一个数字_修改栅格数据_07

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

打开栅格计算器,按照左侧的输入方法,使用CON函数,输入函数:con(“grid”==1,10,“grid”),意思是把原来value=1的值替换为10,其他的保持不变。

arcgispython替换字符串 arcgis字段替换某一个数字_像元值_08


输出结果如下所示,与上步骤生成的结果完全一样。

arcgispython替换字符串 arcgis字段替换某一个数字_arcgispython替换字符串_09


【2】:【按照像元修改栅格值】

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

arcgispython替换字符串 arcgis字段替换某一个数字_栅格像元_10

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

该工具位于【转换工具】下的【栅格转点】,进行如下设置

arcgispython替换字符串 arcgis字段替换某一个数字_arcgis_11


输出结果,是一个点阵,也就是每一个栅格像元的VALUE值转换为了属性值。

arcgispython替换字符串 arcgis字段替换某一个数字_arcgispython替换字符串_12

打开属性表,可以看到,属性表里的第四个字段就是转换的点要素的值。

arcgispython替换字符串 arcgis字段替换某一个数字_修改栅格数据_13

点要素的值不多,我们可以先按照pointid字段进行标注,如下所示。

arcgispython替换字符串 arcgis字段替换某一个数字_像元值_14


标注后的结果如下所示:

arcgispython替换字符串 arcgis字段替换某一个数字_栅格像元_15


假如需要修改标注为50的像元,先选中它,打开属性表。

arcgispython替换字符串 arcgis字段替换某一个数字_arcgispython替换字符串_16


右键编辑数据,把其值改为50,如下所示。

arcgispython替换字符串 arcgis字段替换某一个数字_arcgis_17

然后再进行转换操作,找到【转为栅格】下的【点转栅格】,把相应的字段和数据输入,如下所示。

arcgispython替换字符串 arcgis字段替换某一个数字_像元值_18


特别注意,像元大小不要保持默认设置,可以设置大一些,也可以设置为原始数据的大小,如下所示,这里设置为5*5。

arcgispython替换字符串 arcgis字段替换某一个数字_栅格像元_19


输出结果,如下所示,中间的哪个黑色就是刚才修改为50的栅格像元。

arcgispython替换字符串 arcgis字段替换某一个数字_arcgis_20