|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
matlab读取网络数据的能力和python相比太弱了,python有很多开源工具包,功能非常强大。其实以前批量下载数据都是用python语言写的,但是现在因为工作需要每天都要用matlab,所以尝试用matlab写个小程序批量下载网络数据。要下载的数据网址是:
' _* i+ v _+ W* z9 F: ] k% R6 Q. B: V! m2 Q* }5 S9 x
http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/godas/catalog.html
, B$ h+ W. \* s7 |9 J( g, o+ L L& Z1 C6 x' k
要下载的数据如下:pottmp.1980.nc到pottmp.2016.nc,共37个nc文件
9 r$ d0 x: Y7 t/ R+ I4 @, G
2 k7 c; ^6 {! D/ b& q程序如下,核心函数是urlwrite
+ D. c# E9 h% I, C5 O' e. T% `9 T
filepath='D:用户目录Desktoppottmp';, _0 }9 s9 t; a' D. _% c6 C
mkdir(filepath); %在桌面创建文件夹pottmp
5 k- z3 `7 c+ ^+ q8 w9 O0 w& Z- B, F0 q
for i=1980:2016
7 F3 d+ F9 r# M+ f: N* d8 @8 efullURL=['http://www.esrl.noaa.gov/psd/thredds/fileServer/Datasets/godas/pottmp.',num2str(i),'.nc'];%下载网址7 G9 h9 f9 p" m- G @* q4 n1 i6 d
filename=[filepath,'pottmp.',num2str(i),'.nc']; %保存的文件名( u9 }) n7 W% U6 J- k: W
tic;
3 M8 Z u3 `. I( ~3 _/ j) g7 O8 p[f,status]=urlwrite(fullURL,filename);%下载命令2 u% y2 L9 A& p8 Q8 o# N5 I( M
if status==17 u3 G5 M- S* _. a7 ]
t=toc;
& _% u6 h0 y9 \+ Y lst=dir(filename);" A7 Q- w& h' C/ G9 p, c- M
xi=lst.bytes;3 Z: u+ k6 p/ \) g, N' F8 W: j
disp(['pottmp.',num2str(i),'.nc','下载成功','文件大小为',num2str(xi/1024/1024),'M',' 花费',num2str(t/60),'分钟']);
/ F/ V, E, S, R# Y5 N: I; uelse
3 O$ ]3 Z+ u& E* d) p disp(['pottmp.',num2str(i),'.nc','下载失败']);
% @ i- `" ]! b }end; X+ i1 F6 p3 j @& R( o" k
end: w# M F5 ~" V/ R( A; M. g1 O
/ U& V# O- G1 U$ f- L4 I
|
|