方法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配额限制。