基于MATLAB和Geemap的多时间段指定点降水提取方法代码-一、简介

时间:2024-10-30 15:06:13

方法1:基于MATLAB的指定时间的指定经纬度点降水提取

该方法适用于从本地存储的TIF文件中按指定经纬度提取降水数据。流程如下:

读取输入数据:
    从CSV文件中读取指定的经度、纬度和日期信息。

遍历每一个点的前30天数据:
    使用一个循环遍历每个经纬度点,以读取目标点前30天的降水数据。
    根据每一天的日期构造TIF文件名,检查是否存在该文件。
    使用 geotiffinfo 和 readgeoraster 读取TIF文件,从中提取目标经纬度位置的像素值。

存储结果:
    将每个点的经纬度及其前30天的像素值存储在矩阵中,并最终将结果转换为表格。
    保存提取结果到指定的CSV文件。

优点:
适合处理本地存储的大量TIF文件。
无需联网,因此适合在网络受限的环境中使用。

缺点:
数据量大时运行效率较低。
只能处理本地文件,无法访问在线数据库。

方法2:基于geemap的指定时间的指定经纬度点降水提取

该方法利用Python库 geemap 和 Google Earth Engine (GEE) API 从在线数据源提取降水数据。流程如下:

设置和初始化:
    使用 ee.Initialize() 初始化 Google Earth Engine,并配置代理服务器以确保连接成功。
    使用 geemap.shp_to_ee 导入感兴趣区域的 shapefile,并将其转换为 Earth Engine 对象。

选择数据集和时间范围:
    使用 ee.Filter.date() 设置时间范围,并选择指定的降水数据集 (如 CHIRPS Daily 或 ERA5 Daily)。
    通过 ImageCollection 过滤指定时间段内的降水数据。

提取数据并保存:
    使用 geemap.zonal_statistics 计算各区域的均值降水量,并将结果保存到CSV文件中。
    每个时间段提取完后,通过 ee.Reset() 清空内存。

多时间段批量处理:
    使用循环分别处理多个时间段(如2000-2005,2006-2010等),自动生成输出CSV文件,便于长期数据提取。

优点:

可以直接访问全球覆盖的降水数据集(如CHIRPS、ERA5等),无需本地存储。
处理速度快,适合大区域和长期数据分析。
可自动处理多个时间段,灵活性高。

缺点:

需要稳定的网络环境和代理配置支持。
受GEE免费账户限制,处理大规模数据可能会遇到API配额限制。