|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
matlab读取网络数据的能力和python相比太弱了,python有很多开源工具包,功能非常强大。其实以前批量下载数据都是用python语言写的,但是现在因为工作需要每天都要用matlab,所以尝试用matlab写个小程序批量下载网络数据。要下载的数据网址是:) C$ j5 |. B! L n' a' r) J' ?4 _7 j9 o
# O4 I) T u# vhttp://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/godas/catalog.html
# W5 m7 [" d! R: u8 B
- p' R8 ]+ q6 K要下载的数据如下:pottmp.1980.nc到pottmp.2016.nc,共37个nc文件
6 f& N2 y8 A! }! W2 ]/ z& t0 Z. C8 G3 }
程序如下,核心函数是urlwrite* i/ `1 H- s6 P8 _( T; j
& ?. @$ d* u4 f4 c
filepath='D:用户目录Desktoppottmp';
# r1 l2 @$ m" umkdir(filepath); %在桌面创建文件夹pottmp! t5 |% V- M8 G5 s H& L; f: j
& R3 h6 F/ `9 ~4 R4 n8 n0 O! X
for i=1980:2016
/ A; ]6 S% R# Y" AfullURL=['http://www.esrl.noaa.gov/psd/thredds/fileServer/Datasets/godas/pottmp.',num2str(i),'.nc'];%下载网址/ N) p; ?# A! a, U
filename=[filepath,'pottmp.',num2str(i),'.nc']; %保存的文件名1 |- ]! C2 |$ O7 J7 V, P
tic;
- W+ W f) W7 L8 k2 O! [: Q[f,status]=urlwrite(fullURL,filename);%下载命令2 T5 L; q' \( N2 p
if status==1* D, S# V5 M% s
t=toc;
0 ^. t' L& G: j+ S lst=dir(filename);
" o* ~3 U* u) k3 P0 k7 D2 R xi=lst.bytes;& m6 r) i9 y D, S- x& _' z) V
disp(['pottmp.',num2str(i),'.nc','下载成功','文件大小为',num2str(xi/1024/1024),'M',' 花费',num2str(t/60),'分钟']);
% B" T2 n0 M- o7 Telse
" m% y1 d( `# b disp(['pottmp.',num2str(i),'.nc','下载失败']);3 K G9 j0 v" |7 i' S' ?& t i
end, t; e; @% ` [. G0 H" a
end' [6 z: H4 K1 B
2 M `* u6 n6 F. n; b
|
|