本实验专栏来自于汤国安教授《地理信息系统基础实验操作100例》一书
实验平台:ArcGIS 10.6
实验数据:请访问实验1(传送门)
基础编辑篇--实验22 NoData数据处理
目录
一、实验背景
二、实验数据
三、实验步骤
方法一:条件赋值
方法二:设置赋值图层
(1)重分类
(2)合并图层
方法三:栅格转ASCII文本
(1)更改NoData值
(2)ASCII文本转栅格
一、实验背景
NoData数据是栅格数据中的一个特殊值,即属性值为空,代表该像元位置处不存在任何值。因此,在众多分析过程中,具有Nodata值的栅格像元不参与运算操作,故而无法使用修改栅格像元值的常规方法来处理 NoData数据,需要借助条件判断、叠加合并、格式转换等方法来处理。
本实验讲述使用地理信息系统软件对栅格数据中的NoData数据进行处理的三种有效方法,每种方法具有各自的优缺点,读者可以通过实验练习,理解和掌握不同方法的优缺点。
二、实验数据
图层名称 | 格式 | 坐标系 | 说明 |
dem | GRID栅格 | Krasovsky_1940_Transverse_Mercator | 用于数据处理的栅格数据 |
直接双击文件Ex22.mxd即可打开
三、实验步骤
方法一:条件赋值
在ArcToolbox 中,打开【Spatial Analyst Tools】→【Map Algebra】→【Raster Calculator】对话框,输入公式:Con(IsNull("dem"),1,"dem");在【Output raster】输入“dem1”;点击【OK】,得到对NoData进行赋值为1后的栅格数据。注:Con 函数中,第一个参数为条件判断,第二个参数为判断为True时的值,第三个参数为判断为False时的值。
方法二:设置赋值图层
(1)重分类
打开【Spatial Analyst Tools】→【Reclass】→【Reclassify】对话框,【Input raster】设置为“dem”,【Reclass Field】设置为“Value”,【Classification】项中将NoData值设置为“2”,其他值域统一设置为“NoData”;【Output raster】中设置为为“value”;点击【确定】。注:点击【Classify】按钮打开分类参数设置类别为1可快速设置新项。
(2)合并图层
打开【Data Management Tools】→【Raster】→【Raster Dataset】→【Mosaic To New Raster】对话框,【Input Rasters】设置为“dem”和“value”,【Output Location】设置为“Ex22”,【Raster Dataset Name with Extension】设置为“dem2”,【Number of Bands】设置为“1”;点击【OK】,得到对NoData进行赋值为2的栅格数据。注:NoData区被值为2的栅格所代替。
方法三:栅格转ASCII文本
打开【Conversion Tools】→【From Raster】→【Raster to ASCII】对话框,【Input raster】设置为“dem”,【Output ASCII raster file】设置为“asc.TXT”。点击【OK】,得到栅格数据对应的文本文件。
(1)更改NoData值
使用记事本软件打开“asc.TXT”文本,使用【替换】工具,将值“-9999”替换为“3”,点击【全部替换】,然后【保存】。注:直接使用记事本自带的替换工具可以快速地进行NoData值的替换,NoData值默认为“-9999”,但是第六行NoData参数必须设置为“-9999”。
(2)ASCII文本转栅格
打开【Conversion Tools】→【To Raster】→【ASCII to Raster】对话框,设置【Input ASCII raster file】为“asc.txt”,【Output Raster】设置为“dem3”,【Output data type】选择“FLOAT”。点击【OK】,得到自定义的栅格数据。注:数据类型根据实际栅格数据块的值类型选择,本例中为浮点型,故选择“FLOAT”。