引言
氣象數(shù)據(jù)是進行氣候變化研究必不可少的基礎數(shù)據(jù),對其空間插值是實現(xiàn)面源數(shù)據(jù)的重要步驟羔飞,空間插值的方式是多種的肺樟,如常見的Kring,IDW等逻淌,上述兩種通過arcgis既能夠快速的完成么伯,但當我們的研究時間尺度較短,需要的數(shù)據(jù)量特別大時卡儒,即需要我們進行批量的氣象數(shù)據(jù)插值田柔,這里假設我們需要同時插值全國2000-2015年日氣壓,日相對濕度骨望,日風速凯楔,日照時數(shù),空間分辨率為8km锦募,時間分辨率為1km摆屯,將會產(chǎn)生366416=23424個文件,AUSPLIN是專業(yè)的氣象插值軟件糠亩,主要是通過薄樣條函數(shù)進行插值虐骑,協(xié)變量的引入(通常是高程,氣象要素的分布一般與高程相關)能夠使得插值精度更高赎线,插值結(jié)果更為平滑廷没。
基于matlab的文本氣象數(shù)據(jù)初處理
基于matlab的文本批量拼接
首先從中國氣象數(shù)據(jù)網(wǎng)上下載中國地面氣候資料日值數(shù)據(jù)集(V3.0)。如下圖所示:
我這里下載的是1951-2016年的垂寥,包括了日氣壓颠黎,日相對濕度另锋,日風速,日照時數(shù)等
以下是下載下來的氣壓的文本文件狭归,可以看到每個文本文件是以月為單位的夭坪,我們需要將月的全部拼接到年上去。
代碼如下所示:
%
filename='H:\Day1951-2012yuanshi\';%%根目錄过椎,自行修改
e=dir(); %得到文件夾的名稱
for i=5:10
file=strcat(filename,e(i).name,'\'); %得到子文件夾
if i==5
id='-13011-'; %對應不同的數(shù)據(jù)
end
if i==6
id='-10004-';
end
if i==7
id='-13003-';
end
if i==8
id='-14032-';
end
if i==9
id='-12001-';
end
if i==10
id='-11002-';
end
for m=2000:2015
value=[];value1=[];value2=[];
for n=1:12
if n<10
term=importdata(strcat(file,'SURF_CLI_CHN_MUL_DAY-',file(28:30),id,int2str(m),'0',int2str(n),'.TXT'));%導入數(shù)據(jù)
else
term=importdata(strcat(file,'SURF_CLI_CHN_MUL_DAY-',file(28:30),id,int2str(m),int2str(n),'.TXT'));
end
if i==9
term1=[term(:,1),term(:,5:7),term(:,9)];%最高溫
value1=[value1;term1];
term2=[term(:,1),term(:,5:7),term(:,10)];%最低溫
value2=[value2;term2];
else
if i==5
term1=[term(:,1),term(:,5:7),term(:,10)];%
value=[value;term1];
else
term1=[term(:,1),term(:,5:8)];%
value=[value;term1];
end
end
end
%輸出的
if i==9
name1=strcat('H:\Day1951-2012yuanshi\統(tǒng)一到年上\',file(28:30),int2str(m),'max.xlsx');
name2=strcat('H:\Day1951-2012yuanshi\統(tǒng)一到年上\',file(28:30),int2str(m),'min.xlsx');
xlswrite(name1,value1);
xlswrite(name2,value2);
else
name1=strcat('H:\Day1951-2012yuanshi\統(tǒng)一到年上\',file(28:30),int2str(m),'.xlsx');
xlswrite(name1,value);
end
end
end
當文件夾中只有以下文件時
運行上述代碼可得到每年的降水室梅,氣壓,相對濕度疚宇,日照時數(shù)亡鼠,日最高氣溫,日最低氣溫及風速敷待,如下圖
通過上述步驟就完成了auspline插值的第一步间涵,下期是形成auspline需要的插值格式,見下圖榜揖,敬請期待
更多需求勾哩,請查看個人介紹