数据格式
结果查看
每个站点输出一个excel;
在excel中插入数据透视表查看
数据文件命名由数据集代码(SURF_CLI_CHN_MUL_DAY)、要素代码(XXX)、项目代码(XXXXX)、年份标识(YYYY)和月份标识(MM)组成。其中,SURF表示地面气象资料,CLI表示地面气候资料,CHN表示中国,MUL表示多要素,DAY表示日值数据
MATLAB处理 本文以降水数据为例
”station.xlsx“ 为需要提取的站的区站号,按列排序
特征值处理:
32766 根据需要处理;
降水量 32700 表示降水"微量" 改为 1
32XXX XXX为纯雾露霜 取后三位
31XXX XXX为雨和雪的总量 取后三位
30XXX XXX为雪量(仅包括雨夹雪,雪暴) 取后三位
代码
clear;
clc;
tic
station=xlsread('station.xlsx','sheet1') % 输入站名的区站号
flies = dir('SURF_CLI_CHN_MUL_DAY-PRE*.txt'); % 筛选出所有数据文件,以“SURF_CLI_CHN_MUL_DAY-PRE”为搜索关键词 假设数据文件是txt格式
lieming={'区站号','纬度','经度','观测场拔海高度','年','月','日','20-8时降水量','8-20时降水量','20-20时累计降水量','20-8时降水量质量控制码','8-20时累计降水量质量控制码','20-20时降水量质量控制码'}
for i=1:length(station)
for i=station(i,1)
clear a
for j=1:length(flies)
% 读取数据
filename = flies(j).name;
data=readtable(filename);
data=table2array(data);
if j<2
a=data(data(:,1)==i,:);
else
a=[a;data(data(:,1)==i,:)];
end
end
%%%%对特征值处理
a(a(:,10)==32700,10) =1;
idx=(a(:,10) > 31999)&(a(:,10) < 33000);
a(idx,10) = a(idx,10)-32000;
idx=(a(:,10) > 30999)&(a(:,10) < 32000);
a(idx,10) = a(idx,10)-31000;
idx=(a(:,10) > 29999)&(a(:, 10) < 31000);
a(idx,10)=a(idx,10)-30000;
a(:,10) = a(:,10) * 0.1;
filename=sprintf('%d.xlsx',i);
xlswrite(filename,lieming)
xlswrite(filename,a,'sheet1','A2');
end
end
toc