GIS栅格平均值计算

GIS中批量计算tif栅格文件平均值

# -*-coding:UTF-8-*-#
import arcpy
import os
inws = r"C:\Users\DELL\Desktop\新建文件夹"
arcpy.env.workspace = inws
rasters = arcpy.ListRasters("*", "TIF")
for ras in rasters:
    # 获取栅格属性信息 主要是求所有栅格平均值mean
    meanValueIn
### 使用Python GDAL计算多个栅格文件的平均值 为了处理多个栅格文件并计算平均值,可以采用多种方法。以下是基于Python GDAL库的一种有效解决方案。 #### 准备工作 确保安装了必要的依赖项: ```bash pip install numpy gdal ``` #### 加载和预处理栅格数据 首先加载所有输入栅格文件,并将其转换为NumPy数组以便于后续运算: ```python import osgeo.gdal as gdal import numpy as np def load_raster(file_path): dataset = gdal.Open(file_path, gdal.GA_ReadOnly) band = dataset.GetRasterBand(1) array = band.ReadAsArray() return array, dataset.RasterXSize, dataset.RasterYSize, dataset.GetGeoTransform(), dataset.GetProjection() rasters = [] for file_name in ['input1.tif', 'input2.tif']: # 替换为实际文件名列表 raster_data, cols, rows, geotransform, projection = load_raster(file_name) rasters.append(raster_data) # 将所有栅格调整到相同的尺寸(如有必要) max_cols = max([cols]*len(rasters)) max_rows = max([rows]*len(rasters)) aligned_rasters = [] for i, (array, _, _) in enumerate(rasters): aligned_array = np.zeros((max_rows, max_cols), dtype=array.dtype) aligned_array[:array.shape[0], :array.shape[1]] = array aligned_rasters.append(aligned_array) ``` #### 计算平均值 通过遍历每个像元位置来求取各对应位置上的数值均值: ```python average_raster = sum(aligned_rasters)/float(len(aligned_rasters)) # 对齐后的栅格求平均[^1] output_file = "averaged_output.tif" driver = gdal.GetDriverByName('GTiff') out_dataset = driver.Create(output_file, max_cols, max_rows, 1, gdal.GDT_Float32) out_band = out_dataset.GetRasterBand(1).WriteArray(average_raster) out_dataset.SetGeoTransform(geotransform) out_dataset.SetProjection(projection) del out_dataset print(f"Averaged raster saved to {output_file}") ``` 此过程不仅实现了基本的功能需求——即对给定的一组栅格图像执行逐像素级别的加权平均操作;而且也展示了如何利用GDAL/OGR接口完成地理空间数据分析任务中的常见步骤,比如读写影像、设置坐标系参数等[^3]。 对于更加复杂的应用场景,则可能还需要考虑诸如缺失值填充、异常检测等问题,在此基础上进一步优化算法性能与鲁棒性。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Gabriel_程

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

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

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

打赏作者

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

抵扣说明:

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

余额充值