|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
matlab读取网络数据的能力和python相比太弱了,python有很多开源工具包,功能非常强大。其实以前批量下载数据都是用python语言写的,但是现在因为工作需要每天都要用matlab,所以尝试用matlab写个小程序批量下载网络数据。要下载的数据网址是:2 {8 [4 s$ H* {: B! ^3 c
8 Q L+ u8 F, `) b# a
http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/godas/catalog.html
) U$ a( j, P: d5 V5 v, g! C6 m! r4 S: y+ c* E( l8 u$ ]/ O) v. {) Z
要下载的数据如下:pottmp.1980.nc到pottmp.2016.nc,共37个nc文件 E: I4 m b7 K, \
4 d; r/ A8 y* x1 J( Z程序如下,核心函数是urlwrite
$ E7 y7 o' a* f5 e% {; z6 ^8 M+ g5 p
filepath='D:用户目录Desktoppottmp';8 r ]. T( f% p$ n( z5 W" B
mkdir(filepath); %在桌面创建文件夹pottmp
8 s7 J2 G. j7 k1 C S+ u; V. L! W9 E9 t' ^ {' ]$ t6 a0 N1 }; {
for i=1980:2016
# u e: v# r) L/ c& J" \1 j/ hfullURL=['http://www.esrl.noaa.gov/psd/thredds/fileServer/Datasets/godas/pottmp.',num2str(i),'.nc'];%下载网址0 u9 `$ z+ t* z
filename=[filepath,'pottmp.',num2str(i),'.nc']; %保存的文件名" [8 M5 S1 {6 G& o% |/ T
tic; R2 G' |+ I9 D ~/ w# S
[f,status]=urlwrite(fullURL,filename);%下载命令& H1 _8 s& h* V* C4 @
if status==17 M, k4 q/ h; q, Q# @
t=toc;
0 t' C5 \( y3 E! d4 h: f( ` lst=dir(filename);
: B: I/ ~# ~ q- _+ W# g xi=lst.bytes;
3 S8 h; I" k$ m) u; @ disp(['pottmp.',num2str(i),'.nc','下载成功','文件大小为',num2str(xi/1024/1024),'M',' 花费',num2str(t/60),'分钟']);
/ V t+ s& y2 y+ xelse
7 C, y3 J3 J/ Y2 L9 A2 W disp(['pottmp.',num2str(i),'.nc','下载失败']);
( G8 }9 G2 v2 {& \) i' Rend4 j( P6 b5 `9 e( t; O. A
end8 k! E5 G* w& z7 Z- z
8 @2 @1 y2 Y2 @3 Y: b0 e9 d& J |
|