ArcGIS中栅格空值计算与替换方法

在研究或工作中,经常会遇到栅格数据中某些像元数据缺失或者不能被使用,也会因为异常值而将部分像元定义为空值(NoData)。再此情况下,我们需要重新计算空值像元中正常值,从某种意义上也是对空值像元的内向插值。

整体思路是根据空值像元周围值来计算空值像元,类似于线性内插。具体方法如下:
1、首先确定空值栅格数据的空值范围,根据空值范围、类型、数据结构选择不同邻域统计工具。需要注意栅格数据的背景值与NoData的区分,最好去掉背景值。
空值像元
邻域统计工具箱

2、在大多数情况下可以选择Block Statistics或者Focal Statistics或者Filter等,邻域类型可以选择矩形或者圆形、环形,需要根据自己数据以及研究目的来确定。邻域半径大小越大,空值越平滑,但统计结果栅格的分辨率越小,同原始栅格范围出入较大。
邻域统计
需要注意的是,由于分辨率调整使得栅格数据行列数变化,这会同原始栅格范围有出入,此种情况可以选择通过重采样之后,求取此栅格同原始栅格的交集,保证范围大小一致。此过程会对空值处像元值产生变化,但可忽略不计。
3、根据邻域统计之后的栅格数据,替换原始栅格空值像元。可以用栅格计算器来完成这一操作。计算代码如下:

Con(IsNull("原始栅格"),"邻域统计栅格","原始栅格")

空值像元替换
需要注意的是,计算中,需要在环境设置中设置处理范围,应当以领域统计栅格为准。原因是原始栅格存在NoData,但这部分空值却需要纳入处理范围。
环境设置处理范围
4、最终计算栅格对比原始栅格,可以发现,空值像元已被完美替换。诚然,这只是一种处理思路,具体操作过程不一定完全如上所述。此外,遇见其他类似问题,需要深入分析,灵活运用各种地理处理工具。

  • 17
    点赞
  • 122
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
ArcGIS Python提供了强大的栅格计算功能,可以轻松实现历年最大值的计算。下面是使用ArcGIS Python进行历年最大值计算的步骤: 1. 导入所需模块:在Python脚本,首先需要导入ArcGIS相关的模块,如arcpy和arcpy.sa。 2. 定义输入路径和文件名:指定包含历年栅格数据的文件夹路径和栅格数据的文件名。 3. 创建栅格对象:利用arcpy.sa模块的Raster函数,将栅格数据加载到内存,并创建一个栅格对象。 4. 创建一个空的结果栅格:使用arcpy.sa模块的Con函数,创建一个与输入栅格相同大小的空白栅格,用于存储历年最大值。 5. 循环计算最大值:通过for循环,分别计算每个像元在历年的最大值。可以使用arcpy.sa模块的CellStatistics函数,在每次循环计算历年最大值,并将结果存储到结果栅格。 6. 保存结果:使用arcpy.sa模块的Raster函数,将结果栅格保存为新的栅格数据。 以下是一个示例代码,用于计算历年降水数据的最大值: import arcpy from arcpy.sa import * # 定义输入路径和文件名 input_folder = r"C:\data" input_files = ['rainfall2000.tif', 'rainfall2001.tif', 'rainfall2002.tif'] # 创建空白结果栅格 result_raster = arcpy.sa.Con(Raster(input_files[0]) > 0, Raster(input_files[0]) * 0, -9999) # 循环计算最大值 for input_file in input_files: raster = Raster(input_folder + "\\" + input_file) result_raster = arcpy.sa.CellStatistics([result_raster, raster], "MAXIMUM") # 保存结果 result_raster.save(input_folder + "\\max_rainfall.tif") 以上代码会将指定文件夹下的降水数据进行历年最大值计算,并将结果保存为max_rainfall.tif文件。你可以根据需要修改输入路径和文件名,以适应自己的数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值