Arcpy批量处理数据——文件夹下的所有栅格求和

文章指导如何使用Python和ArcPy处理tif格式栅格文件,转换nodata值为0后进行累加操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用场景:在文件夹下存放着许多tif格式的栅格文件,需要求此文件夹下所有栅格文件的和。

以下代码将每一个tif文件中的nodata像元转为了0值像元,再对每一个tif格式的栅格文件进行了累加。如果没有将nodata像元进行转0处理,那么某一个位置的像元如果曾经取值为nodata,那么此像元与其他非nodata像元相加所得的值还是nodata,所以在此使用场景下,有必要进行这一步的转0处理。

注意事项:代码中需要修改两个路径。

# # -*- coding: UTF-8 -*-
import arcpy
from arcpy.sa import *

# 设置工作空间和输出路径,两者需要在同一文件夹下,否则在保存的时候会报错
arcpy.env.workspace = r"E:\GSH\River_tif"
output_path = r"E:\GSH\River_tif"

# 获取文件夹中的栅格文件列表
raster_list = arcpy.ListRasters("*","TIF")

# 计算栅格相加
total_raster = None
for raster_file in raster_list:
    # 创建栅格对象
    raster = arcpy.Raster(raster_file)

    # 处理 nodata 值为 0
    raster_fixed = Con(IsNull(raster), 0, raster)

    # 累加栅格
    if total_raster is None:
        total_raster = raster_fixed
    else:
        total_raster += raster_fixed

# 输出路径和文件名
output_file = output_path + "\\total_raster_River.tif"

# 保存累加后的栅格
total_raster.save(output_file)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小郭学地信

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

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

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

打赏作者

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

抵扣说明:

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

余额充值