Matlab基于经纬度点并行提取指定日期的tiff栅格位置的值


前言

该 MATLAB 代码用于从 GeoTIFF 文件中提取基于特定地理位置(经纬度)和日期的某个点的相关数据。代码首先读取一个包含事件数据(日期、经纬度)的 Excel 文件,然后根据日期和位置尝试从存储滑坡风险数据的 GeoTIFF 文件中提取相应的数值。为了加快数据提取过程,代码使用了并行处理。


一、基本说明

数据加载:从 Excel 文件中读取包含日期、经纬度的事件数据。
路径设置:指定 GeoTIFF 文件存储的文件夹路径。
GeoTIFF 数据提取:针对每个事件的日期和位置:
构建文件名并检查文件是否存在。
若文件存在,计算指定经纬度对应的行列索引并提取相应数值。
若坐标超出边界,则赋值为 NaN。
并行处理:使用 parfor 来加速处理每个日期-位置对。
结果存储:将提取的数值存储在数组 gpmresult 或 mswepresult 中。
该代码使得从大规模数据集中高效提取滑坡风险数据成为可能,并且具备处理缺失或越界数据的鲁棒性。

二、代码

% 清空环境、命令窗口,并关闭所有打开的图形窗口
clear all;
clc;
close all;

% 加载滑坡事件数据,包括日期、纬度和经度
data = readtable('E:\data.xlsx');
longitude = data{
   :, 3};  % 提取经度数据
latitude = data{
   :, 2};   % 提取纬度数据
dates = data{
   :, 1};      % 提取日期,格式为 'yyyy/MM/dd'

% 设置 GeoTIFF 文件夹路径
tif_folder = 'E:\';

% 初始化结果数组
gpmresult = [];

% 使用并行处理遍历每个数据点
parfor i = 1:length(dates)
    % 检查日期是单元格格式还是字符数组
    if iscell(dates)
        date_str = dates{
   i};
    else
        date_str = dates(i, :);
    end
    
    % 将日期字符串转换为 datetime 对象
    date_obj = datetime(date_s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值