|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
matlab读取网络数据的能力和python相比太弱了,python有很多开源工具包,功能非常强大。其实以前批量下载数据都是用python语言写的,但是现在因为工作需要每天都要用matlab,所以尝试用matlab写个小程序批量下载网络数据。要下载的数据网址是:
I& C8 r; y) t2 L: O l3 H, M- ]5 k) k* i* i- s9 p1 F
http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/godas/catalog.html
9 y1 D& P5 v; y. E/ ^4 j
0 b$ r+ Z3 S8 N: n l要下载的数据如下:pottmp.1980.nc到pottmp.2016.nc,共37个nc文件- O7 `. w( |$ U
+ j/ U* O0 r5 E5 b' Q) K程序如下,核心函数是urlwrite0 v6 R6 d5 N7 a' @
. b4 }, n5 C/ q) r9 ]filepath='D:用户目录Desktoppottmp';. q$ W& m9 K+ L
mkdir(filepath); %在桌面创建文件夹pottmp$ ^" B7 a$ k4 `: M% G
0 U; L: m, s4 J
for i=1980:2016& t ?5 p( U) p& t
fullURL=['http://www.esrl.noaa.gov/psd/thredds/fileServer/Datasets/godas/pottmp.',num2str(i),'.nc'];%下载网址( w' ~8 R1 [& Y! i2 t1 @
filename=[filepath,'pottmp.',num2str(i),'.nc']; %保存的文件名/ l( ^( q! N a$ ^- v- |% p
tic;
6 E- e9 P/ E* G) |[f,status]=urlwrite(fullURL,filename);%下载命令
8 t, S# j- |- cif status==1
7 m" Z$ `: l: F; x/ G t=toc;
$ C" ~: _1 s, D: ]6 ?1 {# t3 @4 t7 @ lst=dir(filename);8 ?$ P' z7 d. Z2 n
xi=lst.bytes;
5 H8 {! W: g5 S6 v) F. w% e! K disp(['pottmp.',num2str(i),'.nc','下载成功','文件大小为',num2str(xi/1024/1024),'M',' 花费',num2str(t/60),'分钟']);
7 E' c, r) O$ }2 m% F/ g4 G Ielse( @, A8 K! C* C8 C( c: {# g
disp(['pottmp.',num2str(i),'.nc','下载失败']);# J& f# R9 k0 q/ c6 f4 |
end, G& {) t" `9 \, a) J
end
( ^) s* E7 j' S% J! H; `
' k0 j; n/ F |* v, G0 ]. P0 U |
|