【Arcpy】批量处理遥感图像

循环读取影像,调用栅格计算器批量计算最后保存

#第一次计算代码
import arcpy
import pandas as pd
#读取csv文件,转为字典
df = pd.read_csv("土壤含水量均值.csv")
df=df.set_index("date")['mean'].to_dict()

#设定工作空间和投影
e=r'土壤含水量栅格'
arcpy.env.workspace=e
arcpy.env.outputCoordinateSystem =arcpy.SpatialReference("WGS 1984")

#读取工作空间内的栅格数据
rasters = arcpy.ListRasters()
for raster in rasters:
    
    #读取栅格
    out_raster = arcpy.Raster(raster)
    #out_raster.exportImage()

    #获取多年同期土壤含水量均值
    a=df[raster[5:10]]
    
    #执行栅格计算
    output_raster = arcpy.sa.RasterCalculator([out_raster, a], ["x", "y"],"(x-y)/y")
    
    #保存数据
    output_raster.save("MyProject\\result\C"+raster)
    #output_raster.exportImage()
    


#计算每个月的均值影像
import arcpy
import pandas as pd

#读取csv文件,转为字典
df = pd.read_csv("土壤含水量均值.csv")
df=df['date'].tolist()


#设定工作空间和投影
e=r'土壤含水量栅格'
arcpy.env.workspace=e
arcpy.env.outputCoordinateSystem =arcpy.SpatialReference("WGS 1984")

#读取工作空间内的栅格数据
rasters = arcpy.ListRasters()

#循环读取每天
for i in range(len(df)):
    n=0
    #从原始影像中循环找出该天的影像
    for raster in rasters:
        if(raster[5:10]==df[i]):
            #计算总和
            if(n==0):
                out_raster=raster
            else:
                output_raster = arcpy.sa.RasterCalculator([out_raster, raster], ["x", "y"],"x+y")
            n=n+1
    #计算均值并保存
    output_raster = arcpy.sa.RasterCalculator([out_raster, n], ["x", "y"],"x/y")
    output_raster.save("MyProject\\mean\C"+df[i]+'.tif')

#读取csv文件,转为字典
df = pd.read_csv("土壤含水量均值.csv")
df=df.set_index("date")['mean'].to_dict()

for raster in rasters:
    #读取栅格
    out_raster = arcpy.Raster(raster)
    #out_raster.exportImage()

    #获取多年同期土壤含水量均值影像
    a=arcpy.Raster('MyProject\mean\\c'+raster[5:10]+'.tif')
    
    #执行栅格计算
    output_raster = arcpy.sa.RasterCalculator([out_raster, a], ["x", "y"],"(x-y)/y")
    
    #保存数据
    output_raster.save("MyProject\\result\C"+raster)
    #output_raster.exportImage()
    


新开通了本人的公众号,欢迎关注:燕南路GISer ,专注GIS干货分享,不定期更新。
主要兴趣:GIS、时空数据挖掘、python、机器学习深度学习
CSDN的部分内容会重写再搬迁到公众号,欢迎关注!
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

燕南路GISer

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

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

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

打赏作者

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

抵扣说明:

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

余额充值