|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
matlab读取网络数据的能力和python相比太弱了,python有很多开源工具包,功能非常强大。其实以前批量下载数据都是用python语言写的,但是现在因为工作需要每天都要用matlab,所以尝试用matlab写个小程序批量下载网络数据。要下载的数据网址是:
/ ^$ t: o4 m( ~+ k0 U& e7 _
% s& C+ S; u. j9 Y# Qhttp://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/godas/catalog.html
7 ~7 l1 [; V% p% P. {( L; X8 Q, }- ^) z" ]; G! k- @
要下载的数据如下:pottmp.1980.nc到pottmp.2016.nc,共37个nc文件
6 P7 u0 i7 l' X
2 c- m# Z* t) p/ ^程序如下,核心函数是urlwrite& m# a g. B4 y' g3 D
1 p/ r6 t6 \6 k6 Z2 k/ X
filepath='D:用户目录Desktoppottmp';7 N" }3 |- y2 G/ _0 y- R' l$ J
mkdir(filepath); %在桌面创建文件夹pottmp; k! o2 @, \, v0 h+ F3 V* u
6 B( t7 ^) [' o# q! \+ N
for i=1980:2016" \7 P& c- o S( E4 c
fullURL=['http://www.esrl.noaa.gov/psd/thredds/fileServer/Datasets/godas/pottmp.',num2str(i),'.nc'];%下载网址
5 S7 M3 N- Q/ p/ R4 R2 ?! l5 tfilename=[filepath,'pottmp.',num2str(i),'.nc']; %保存的文件名
6 ]+ r5 Y0 I' v0 s, w3 ^tic;- X' r+ J, @! z4 z0 `3 [
[f,status]=urlwrite(fullURL,filename);%下载命令5 d. X4 g/ V- C% R$ d( a
if status==19 N5 C, B, V3 e$ b2 r5 a
t=toc;
* T+ I- o- J( B, n) l8 x f0 z lst=dir(filename);8 _9 F7 ]5 ]% I, p
xi=lst.bytes;
4 I- i- F/ g! b/ o! k- J" L/ ~ disp(['pottmp.',num2str(i),'.nc','下载成功','文件大小为',num2str(xi/1024/1024),'M',' 花费',num2str(t/60),'分钟']); v1 X, }8 i% I) q& ~1 {
else7 g. a0 ?; d2 @" a( e! P
disp(['pottmp.',num2str(i),'.nc','下载失败']);5 L0 z0 m5 r9 a) U& l- D, p
end
4 l5 \' [9 q% V& `/ l4 \$ j4 Nend
+ Q$ `) b. v# F0 I f9 F8 U6 |' ^9 L
|
|