【ArcGIS遇上Python】ArcGIS python计算长时间序列多个栅格数据的平均值

39 篇文章 768 订阅 ¥89.90 ¥99.00

通常,我们需要将多个栅格求平均,例如,将一年中每个月的NDVI值加起来除以12,就会等到月均NDVI,该过程虽然在栅格计算器中可以实现,但是当时间序列较长时就比较费事,此时,python代码是不二的选择。

下图所示为栅格数据相加的原理图,也就是对应的栅格相加,生成新的栅格数据。求均值是需要再除以栅格个数。

在独立脚本中编写如下代码:

python求均值代码友情赠送:

import arcpy
from arcpy.sa import *
arcpy.CheckOutExtension("spatial")
arcpy.gp.overwriteOutput=1
 
#custom
arcpy.env.workspace="G:\\Phenology of 30 Years\\GIMMS 3g\\15Length\\1Length\\"
#custom
outpath="G:\\Phenology of 30 Years\\GIMMS 3g\\15Length\\2mean_len\\"
#custom
outfilename="mean";n=30;
 
Sum=0
 
files=arcpy.ListRasters()
 
for file in files:
    Sum=Sum+Raster(file)
(Sum/n).save(outpath+outfilename)
 
print("Done,please close")
  • 30
    点赞
  • 121
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 21
    评论
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文件。你可以根据需要修改输入路径和文件名,以适应自己的数据。
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘一哥GIS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值