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

在这里插入图片描述


一、简介

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

二、使用步骤

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

clear all
clc
close all
% 清空环境
clear; clc;

% 读取数据
data = readtable('DATA\Newpoints.csv');
longitude = data{
   
   :, 1};  % 经度
latitude = data{
   
   :, 2};   % 纬度
dates = data{
   
   :, 3};      % 日期,格式为 'yyyy/MM/dd'

% 设置 TIF 文件夹路径
tif_folder = 'H:\BaiduSyncdisk\GPMprecipitationCal\';

% 初始化结果存储
result = [];

% 遍历每一个点
for i = 1:length(dates)
    % 检查日期是字符数组还是单元格
    if iscell(dates)
        date_str = dates{
   
   i};
    else
        date_str = dates(i, :);
    end
    
    % 解析日期
    date_obj = datetime(date_str, 'InputFormat', 'yyyy/MM/dd');
    
    % 当前点的经纬度
    lon = longitude(i);
    lat = latitude(i);

    % 初始化存储当前点前30天的值
    pixel_values = NaN(1, 30);
    % 提取前30天的值
    for day_offset = 0:29
        % 计算目标日期
        target_date = date_obj - days(day_offset);
        
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值