|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
matlab读取网络数据的能力和python相比太弱了,python有很多开源工具包,功能非常强大。其实以前批量下载数据都是用python语言写的,但是现在因为工作需要每天都要用matlab,所以尝试用matlab写个小程序批量下载网络数据。要下载的数据网址是:
6 s- t$ _! }# c% D4 p) G& x& w& h3 p; o& F
Y5 m; z% I" d; Y# N0 _http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/godas/catalog.html8 l, X/ H+ f$ C* |" ~- R; X
% g y5 z7 h5 V, _/ p' `
要下载的数据如下:pottmp.1980.nc到pottmp.2016.nc,共37个nc文件; l$ @# r" K' n( n
* l2 R3 x# H8 g: j# I
程序如下,核心函数是urlwrite K3 V4 k& @, `1 A* ~9 P
; ?0 B/ p Z2 a+ ~8 x) Y
filepath='D:用户目录Desktoppottmp';5 N* [' z' M- T$ Z! T
mkdir(filepath); %在桌面创建文件夹pottmp b4 t3 E. V% m4 A
1 v1 D y. y* I) G+ ?1 y! Q
for i=1980:2016
9 B' Y; I: Y! @5 y$ ~fullURL=['http://www.esrl.noaa.gov/psd/thredds/fileServer/Datasets/godas/pottmp.',num2str(i),'.nc'];%下载网址
" H( a9 D; O" w5 @' |filename=[filepath,'pottmp.',num2str(i),'.nc']; %保存的文件名
$ c2 g5 c7 g+ d% U4 J: Jtic;6 H+ ?5 X( n/ ` q
[f,status]=urlwrite(fullURL,filename);%下载命令
& X3 q8 a* n1 l+ E" R7 S4 R5 Vif status==1
4 s6 d8 M# T6 L# R# @: z6 H t=toc;
$ q8 f4 n" x1 k$ u' h8 a lst=dir(filename);/ O) Q/ t9 r2 P" E8 j; e
xi=lst.bytes;! P& n1 e- M3 R3 r3 e
disp(['pottmp.',num2str(i),'.nc','下载成功','文件大小为',num2str(xi/1024/1024),'M',' 花费',num2str(t/60),'分钟']);! m" H9 ~( P4 p- i4 w
else1 x4 c; X! e' G- {: V7 a
disp(['pottmp.',num2str(i),'.nc','下载失败']);
; H* T0 J/ g. I7 m8 v" kend+ S @4 L) \$ I4 |2 k
end; [- _6 Q/ O) f( r: y0 J
$ l/ n6 I s z
|
|