|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
matlab读取网络数据的能力和python相比太弱了,python有很多开源工具包,功能非常强大。其实以前批量下载数据都是用python语言写的,但是现在因为工作需要每天都要用matlab,所以尝试用matlab写个小程序批量下载网络数据。要下载的数据网址是:4 [2 f2 I2 {3 ^! c& u0 {! {7 X
7 L- l& C# a: \2 F- Z& ~
http://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/godas/catalog.html
- o8 }0 t$ Q7 w" @" V
; t) J# `& @1 J8 c1 Q) m) L要下载的数据如下:pottmp.1980.nc到pottmp.2016.nc,共37个nc文件) A; d" a. D$ {- s0 n- r) X
. D# r) ?$ b$ S7 E, ^$ e# S程序如下,核心函数是urlwrite4 x( q: w! t- N# A1 N
: W6 J/ C1 K6 p! `' bfilepath='D:用户目录Desktoppottmp';& L2 ~# x. x$ l9 a
mkdir(filepath); %在桌面创建文件夹pottmp: P, G6 \/ w8 ~" R3 Y4 @5 E
( _4 [4 o0 Z/ x) D, dfor i=1980:20164 d5 z0 D' @3 b7 `0 U" a: m1 G
fullURL=['http://www.esrl.noaa.gov/psd/thredds/fileServer/Datasets/godas/pottmp.',num2str(i),'.nc'];%下载网址1 X% r w I H. V( A; V q9 u
filename=[filepath,'pottmp.',num2str(i),'.nc']; %保存的文件名
& q& v* k" V9 ltic;9 `, U; Z: T2 L5 _
[f,status]=urlwrite(fullURL,filename);%下载命令
9 w% D( B. g0 J$ T3 B2 ]; wif status==1) M. Y' g" s; y
t=toc;% g" \7 V4 p( k- @4 c' B3 `4 ~8 c
lst=dir(filename);
' ?& M/ e! l4 q5 z2 u xi=lst.bytes;( z5 m* g/ j8 F f% N- R# p
disp(['pottmp.',num2str(i),'.nc','下载成功','文件大小为',num2str(xi/1024/1024),'M',' 花费',num2str(t/60),'分钟']);$ W5 S2 B# e+ Q8 X
else
9 h3 j/ ~( \% Z3 j1 s disp(['pottmp.',num2str(i),'.nc','下载失败']);
$ B% w; _' w% j& k1 p0 M8 c2 Y" F" k9 e* Kend9 C. `: |/ }' L+ e `
end3 \! s$ p5 N- F5 k( s1 y
6 S9 z: v+ v! J. g
|
|