您現在的位置是:首頁 > 人文

Matlab程式碼批處理中國地面氣象日值資料集(2400站點)及資料共享

由 資地理遙感生態網 發表于 人文2023-01-23
簡介% 輸出,sheet名改為年份,所有年份,全年存在一個excel表中writecell(title,strcat(xls_Path,‘EVP_d20

matlab中fseek怎麼使用

氣象資料一直是一個價值較高的資料,它被廣泛用於各個領域的研究當中。

地理遙感生態網平臺www.gisrs.cn

提供的

氣象資料包括有氣溫、氣壓、相對溼度、降水、蒸發、風向風速、日照等多種指標,但是包含了這些全部指標的氣象資料卻較難獲取,即使獲取到了也不能隨意分享。

Matlab程式碼批處理中國地面氣象日值資料集(2400站點)及資料共享

Matlab:中國地面氣象日值資料集提取所需省份全部站點資料程式碼結構:(1)Input:8個變數,每年12個月,每年96個txt檔案;(2)目標:多年迴圈,提取所需站點;(3)Output:一個子變數一個表,全年資料放入一個sheet中,不同年份放入不同sheet中輸入資料命名基本為預設:

Matlab程式碼批處理中國地面氣象日值資料集(2400站點)及資料共享

編輯

新增圖片註釋,不超過 140 字(可選)

Matlab程式碼批處理中國地面氣象日值資料集(2400站點)及資料共享

編輯

新增圖片註釋,不超過 140 字(可選)

%%%%% @LastEditors : 地理遙感生態網平臺 % @Date : 2021-12-01 20:00 % @LastEditTime : 2021-12-07 22:00 % @Description : 全系列標準化氣象資料的處理txt2excel;注意對每個輸出結果進行檢查% @Objective : 按類輸出所需省份全部年份n個氣象站點資料%%clear;clc;%% 0。 前期輸入輸出&定義% 輸入txt根路徑txt_Path=‘D:\科研資料\metadata\2010_2017\’;% 輸出xls根路徑xls_Path=‘D:\科研資料\metadata\xls2010_2017\’;% 預分配中間變數記憶體,列數根據元資料類別數目確定(注意按需修改)A11=zeros(68,11);%3 RHU相對溼度;5 EVP蒸發;% 按年讀取全部txt檔案% year by yearfor yy = 2010:2017 year = num2str(yy); txt_file=fullfile(txt_Path,year,‘\’); txt_list=dir(strcat(txt_file,‘*。txt’));%列出路徑下所有txt檔案% 判別平閏年,確定月天數,計算doy if (mod(yy,4)==0 && mod(yy,100)~=0 || mod(yy,400)==0) mon2day=[31 29 31 30 31 30 31 31 30 31 30 31]; % 閏年各月天數 else mon2day=[31 28 31 30 31 30 31 31 30 31 30 31]; % 平年各月天數 end doy=sum(mon2day);% 根據doy預分配輸出資料和表頭(注意按需修改) evp_d20=zeros(66,4+doy); evp_E601=zeros(66,4+doy); title{1,1}=‘station’; title{1,2}=‘lat’; title{1,3}=‘lon’; title{1,4}=‘altitude’; for dd=1:doy title{1,4+dd}=strcat(‘doy’,year,num2str(dd,‘%03d’)); end%% 1。 整合EVP結果% month by monthi=1;m=1;%第1個變數,排序根據txt_list來確定m1=1+12*(m-1);%每個變數的第1個txtm0=12*(m-1);m12=12*m;%每個變數的第12個txtfor mm=m1:m12 evp_name=txt_list(mm)。name; evp_mm=load(fullfile(txt_file,evp_name));%原始txt檔案讀成表 n=1; ss_1=53*mon2day(mm-m0)+1;%51053第1天 ss_2=(53+68-1)*mon2day(mm-m0)+1;%52313第1天% day by day for dm=0:(mon2day(mm-m0)-1)%1個月每天的迴圈 for ss=(ss_1+dm):mon2day(mm-m0):(ss_2+dm)%68個站點提取同一天 A11(n,:)=evp_mm(ss,:); n=n+1; end A11(61,:)=[];% delete 51886 剔除不需要的站點 A11(66,:)=[];% delete 52267 注意上一個刪除後位次67需減去1 evp_d20(:,1:3)=A11(1:66,1:3); evp_E601(:,1:3)=A11(1:66,1:3); evp_d20(:,4)=A11(1:66,4)*0。1;%altitude,0。1米 evp_E601(:,4)=A11(1:66,4)*0。1;%altitude,0。1米 evp_d20(:,4+i)=A11(:,8)*0。1;%小型蒸發量,0。1mm evp_E601(:,4+i)=A11(:,9)*0。1;%大型蒸發量,0。1mm i=i+1; clear A11; n=1; endend% 經緯單位(度、分),轉換為度lat_int=floor(evp_d20(:,2)*0。01);lat_decimal=(evp_d20(:,2)*0。01-lat_int)。*100/60;lat=lat_int+lat_decimal;lon_int=floor(evp_d20(:,3)*0。01);lon_decimal=(evp_d20(:,3)*0。01-lon_int)。*100/60;lon=lon_int+lon_decimal;evp_d20(:,2)=lat;evp_E601(:,2)=lat;evp_d20(:,3)=lon;evp_E601(:,3)=lon;% 質量控制,剔除異常值(matlab固有bug,查詢替換不完全,採用excel查詢替換)% evp_d20(evp_d20(:,5:end)==evp_d20(1,274))=nan;% % evp_d20(evp_d20(:,5:end)>32765)=nan;% evp_E601(evp_E601(:,5:end)==evp_E601(1,5))=nan;% check1=find(evp_d20==3276。6);% check2=find(evp_E601==3276。6);% 輸出,sheet名改為年份,所有年份,全年存在一個excel表中writecell(title,strcat(xls_Path,‘EVP_d20。xlsx’),‘Sheet’,year,‘Range’,‘A1’);writematrix(evp_d20,strcat(xls_Path,‘EVP_d20。xlsx’),‘Sheet’,year,‘Range’,‘A2’);writecell(title,strcat(xls_Path,‘EVP_E601。xlsx’),‘Sheet’,year,‘Range’,‘A1’);writematrix(evp_d20,strcat(xls_Path,‘EVP_E601。xlsx’),‘Sheet’,year,‘Range’,‘A2’);clear doy title;end

透過這樣就可以得到逐年的所需站點的資料集了,方便又快捷!如果對您有幫助的話請點贊轉發支援下!

Matlab程式碼批處理中國地面氣象日值資料集(2400站點)及資料共享

編輯

切換為居中

新增圖片註釋,不超過 140 字(可選)

資料來源請引用:中國日值氣象站點資料集。地理遙感生態網科學資料註冊與出版系統(http://www。gisrs。cn/DOI),2022。DOI:10。12020/2022090501

————————————————

版權宣告:本文為CSDN博主「地理遙感生態網」的原創文章,遵循CC 4。0 BY-SA版權協議,轉載請附上原文出處連結及本宣告。

原文連結:

Matlab程式碼批處理中國地面氣象日值資料集(2400站點資料集),提取所需省份全部站點資料_地理遙感生態網的部落格-CSDN部落格

推薦文章