处理GRACE数据而进行的水文模型GLDAS的处理matlab程序代码

本文介绍了一种从GLDAS数据集中读取特定变量的方法,包括雪水当量(SWE)和不同土壤湿度层的数据。通过MATLAB脚本解析控制文件,自动读取指定路径下的多个文件,提取并处理数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

function [gldas,time,num_file]=readgldas(controlfile_path)
% Read the Control File
fid=fopen(controlfile_path,'r');
num_file= fscanf(fid,'%d',1);
lat= fscanf(fid,'%d',1);
lon= fscanf(fid,'%d',1);
dir_in=fscanf(fid,'%s',1);
file_name=cell(num_file,1);
for i = 1:num_file 
    file_name{i} = fscanf(fid,'%s',1);
end
%ini
gldas=zeros(num_file,lat,lon);
SWE=zeros(num_file,lat,lon);
SoilMoi0_10cm_inst=zeros(num_file,lat,lon);
SoilMoi100_200cm_inst=zeros(num_file,lat,lon);
SoilMoi10_40cm_inst=zeros(num_file,lat,lon);
SoilMoi40_100cm_inst=zeros(num_file,lat,lon);
time=zeros(num_file,1);
for ii=1:num_file
    file=char(strcat(dir_in,file_name(ii)));
    SWE(ii,:,:)=rot90(ncread(file,'SWE_inst'));
    SoilMoi0_10cm_inst(ii,:,:)=rot90(ncread(file,'SoilMoi0_10cm_inst'));
    SoilMoi100_200cm_inst(ii,:,:)=rot90(ncread(file,'SoilMoi100_200cm_inst'));
    SoilMoi10_40cm_inst(ii,:,:)=rot90(ncread(file,'SoilMoi10_40cm_inst'));
    SoilMoi40_100cm_inst(ii,:,:)=rot90(ncread(file,'SoilMoi40_100cm_inst'));
    time(ii,:,:)=ncread(file,'time');
end
for j=1:num_file
    gldas(j,:,:)=SWE(j,:,:)+SoilMoi0_10cm_inst(j,:,:)+SoilMoi100_200cm_inst(j,:,:)+SoilMoi10_40cm_inst(j,:,:)+SoilMoi40_100cm_inst(j,:,:);
end

gldas=zeros(num_file,lat,lon);
SWE=zeros(num_file,lat,lon);
SoilMoi0_10cm_inst=zeros(num_file,lat,lon);
SoilMoi100_200cm_inst=zeros(num_file,lat,lon);
SoilMoi10_40cm_inst=zeros(num_file,lat,lon);
SoilMoi40_100cm_inst=zeros(num_file,lat,lon);
time=zeros(num_file,1);
这几个变量只是我需要的,也是grace需要的,只用下载这几个就可以,处理也就只处理这几个。
其中需要一个控制文件

180                           //文件数
150                           //纬度范围
360                           //经度范围
clm    						  //模型类型
E:\GLDAS\gldas_clm\           //文件夹
GLDAS_CLM10_M.A200201.001.grb.SUB.nc4          //文件名
GLDAS_CLM10_M.A200202.001.grb.SUB.nc4
GLDAS_CLM10_M.A200203.001.grb.SUB.nc4
GLDAS_CLM10_M.A200204.001.grb.SUB.nc4
GLDAS_CLM10_M.A200205.001.grb.SUB.nc4
GLDAS_CLM10_M.A200206.001.grb.SUB.nc4
GLDAS_CLM10_M.A200207.001.grb.SUB.nc4
GLDAS_CLM10_M.A200208.001.grb.SUB.nc4
GLDAS_CLM10_M.A200209.001.grb.SUB.nc4
GLDAS_CLM10_M.A200210.001.grb.SUB.nc4
GLDAS_CLM10_M.A200211.001.grb.SUB.nc4
................................
评论 40
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

扎不下村村长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值