如何将栅格数据集中的特定值转化为另一值

如何在不改变其它值情况下,把栅格数据集中的特定值设为0

在使用栅格数据进行空间分析中,经常需要将栅格数据中的某一特定值更改为另一值,以便在下一个分析操作中使用该栅格数据。例如,有些值也许需要更改为零。
一个简单的方法是在栅格计算器中写一个“Con”声明。

该文档假设空间分析扩展功能可用(对于所有版本),并且空间分析工具条被激活(对于8.x和9.x版本)。

对于ArcGIS 8.x 和9.x 版本:
1. 在ArcMap中,导航到空间分析工具条 > 空间分析下拉菜单 > 栅格计算器。
2. 在栅格计算器中,输入下列语句:

Con([InRaster]= = -9999, 0, [InRaster])

将数据中的 ’-9999’ 更改为0。InRaster为你欲更改的栅格文件。
3. 点击Evaluate。
4. 通过右击栅格图层,点击数据,选择Make Permanent选项或者保存地图文档,保存更改后的栅格数据值。
对于ArcGIS 10.0版本:
1. 在ArcMap中,导航到工具箱 > 空间分析工具 > 地图代数,打开栅格计算器。
2. 在栅格计算器中,输入下列语句:

Con(“InRaster” == -9999, 0, ”InRaster”)

将数据中的“-9999”更改为0。
3. 为输出栅格数据指定一个路径。
4. 点击确定。

转载自ESRI China知识库。

查找替换

栅格查找替换是指将源栅格中的某些栅格值,替换为指定的值,结果为一个新的栅格数据集,源栅格不会被修改。

该功能需要给出一个查找表,查找表记录了原值和替换值的对应关系。原值是源栅格中的栅格值,替换值用于替换原值,即期望得到的结果栅格的值。图 3‑14展示了栅格查找替换的示意图,假设源栅格的无值为-9999。注意,无值的值不一定都是-9999,可以通过DatasetGrid的NoValue属性获取或设置。

如何将栅格数据集中的特定值转化为另一值_第1张图片
通过GeneralizeAnalyst类的Replace方法,可以实现对栅格数据的查找替换功能:

语法:

public static DatasetGrid Replace(DatasetGrid sourceDataset, Dictionary replaceTable, Datasource targetDatasource, String targetDatasetName)

参数说明:

sourceDataset:指定的待操作的栅格数据集。

replaceTable:指定的查找表,用于确定查找替换对应关系,是一个映射(Map)对象,其键代表源栅格值,值代表结果栅格值。

targetDatasource:指定的用于存储结果数据集的数据源。

targetDatasetName:指定的结果栅格数据集的名称。

返回值说明:

进行查找替换操作后的结果栅格数据集。

该方法要求传入一个字典(Dictionary)类型的查找表。字典的键为原值,值为对应的替换值。注意,Dictionary的键是唯一的,不可重复。

转载自SuperMap iObjects .NET 10i 知识库。

你可能感兴趣的:(ArcGIS)