两类气象站点数据的合并

%第一步按标准日期核对数据 EXCEL可操作,并在matlab中保存为riqi.mat

%第二步按时间取数据,也可以检查缺测率

clc %清屏

clear %清内存变量

load('riqi.mat'); %Excel中生成的标准序列日期

filenames = ls('*.mat');%以字符串数组的形式列出该路径下所有的txt文件

[m n] = size(filenames);%获取filenames的行列数

[mm nn] = size(riqi);

jieguo = zeros(mm,1).*NaN;

jiangshui = [];

for j = 1:m

fid = load(char(filenames(j,:)));

fid=struct2cell(fid);

fid=cell2mat(fid);

clear e;

nian = fid(:,5);

yue = fid(:,6);

ri = fid(:,7);

RHU = fid(:,8)./10;

shijian = cat(2,nian,yue,ri);

[C,ia,ib] = intersect(riqi,shijian,'rows'); %交集的逻辑运算

jieguo(ia,1) = RHU(ib,1);

jiangshui=[riqi,jieguo];

matname=char(filenames(j,1:5));

JDT=[matname,'转换完毕!'];

disp(JDT)

save(['D:\气象局kongfengD\气温站点数据\站点存储\',matname],'jiangshui');%转为mat格式

end

%另外一类数据可重复上述步骤

%第三步,两类数据的合并

clc %清屏

clear %清内存变量

filenames = ls('D:\气象局kongfengD\桑拿天火烤天计算\平均气温\*.mat');%以字符串数组的形式列出该路径下所有的txt文件

filenames1 = ls('D:\气象局kongfengD\桑拿天火烤天计算\相对湿度\*.mat');%以字符串数组的形式列出该路径下所有的txt文件

[m n] = size(filenames);%获取filenames的行列数

for j = 1:m

d=load(['D:\气象局kongfengD\桑拿天火烤天计算\平均气温\',char(filenames(j,:))]);

e=struct2cell(d);

temp=cell2mat(e);

clear d e;

d=load(['D:\气象局kongfengD\桑拿天火烤天计算\相对湿度\',char(filenames1(j,:))]);

e=struct2cell(d);

RHU=cell2mat(e);

clear d e;

RHU1=RHU(:,4);

clear RHU;

hebing=cat(2,temp,RHU1);

matname=char(filenames(j,1:5));

save(['D:\气象局kongfengD\桑拿天火烤天计算\',matname],'hebing');%转为mat格式

end

%后续就可以计算类似雾霾天,桑拿天,烧烤天等多个指标的综合判断

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20180724G1ABEP00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券