【Python科研】如何使用Python计算年度和季节的平均降水栅格数据并进行批量裁剪

目录

1.环境准备

2.设置文件路径

3.读取矢量数据

4.定义年份和季节

5.创建输出文件夹

6.裁剪栅格数据的函数

7.计算和保存年度平均降水数据

8.计算和保存季节平均降水数据

9.结论

10.完整代码


        本次分享内容中,我们将介绍如何使用Python计算和裁剪年度和季节的降水栅格数据。本教程主要涉及到以下内容:

  1. 计算2000-2021年的年度和季节平均降水量;
  2. 使用研究区域矢量数据裁剪出研究区域的降水栅格数据。

        我们将使用 rasteriogeopandas 两个库来实现这些操作。

 图1|现有需要计算处理和裁剪的降水栅格数据

1.环境准备

        首先,确保你的Python环境中已经安装了必要的库。如果没有的话,你可以使用以下命令来安装这些库(在Anaconda进行):

pip install rasterio geopandas numpy

2.设置文件路径

        将文件路径设置为你自己的数据文件夹路径和矢量数据路径:

import os
import rasterio
import numpy as np
import geopandas as gpd
from rasterio.mask import mask

input_folder = r"你的降水栅格数据文件夹路径"
output_folder = r"保存结果的文件夹路径"
clipped_output_folder = r"保存裁剪后结果的文件夹路径"
shapefile_path = r"矢量数据文件路径"

3.读取矢量数据

        使用 geopandas 读取研究区域的矢量数据:

shapefile = gpd.read_file(shapefile_path)

4.定义年份和季节

        设置要处理的年份和季节:

years = list(range(2000, 2021))  # 从2000到2020年
seasons = {
    "spring": [3, 4, 5],
    "summer": [6, 7, 8],
    "autumn": [9, 10, 11],
    "winter": [12, 1, 2]
}

5.创建输出文件夹

        确保输出文件夹存在:

os.makedirs(output_folder, exist_ok=True)
os.makedirs(clipped_output_folder, exist_ok=True)

6.裁剪栅格数据的函数

        定义一个函数来裁剪栅格数据,并设置无效值:

def clip_raster(raster, shapes, nodata_value):
    out_image, out_transform = mask(raster, shapes, crop=True, nodata=nodata_value, filled=False)
    out_meta = raster.meta.copy()
    out_meta.update({
        "height": out_image.shape[1],
        "width": out_image.shape[2],
        "transform": out_transform,
        "nodata": nodata_value
    })
    return out_image, out_
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值