EDA365电子论坛网

标题: 利用Matlab进行批量下载网络数据 [打印本页]

作者: haidaowang    时间: 2020-1-21 10:11
标题: 利用Matlab进行批量下载网络数据
matlab读取网络数据的能力和python相比太弱了,python有很多开源工具包,功能非常强大。其实以前批量下载数据都是用python语言写的,但是现在因为工作需要每天都要用matlab,所以尝试用matlab写个小程序批量下载网络数据。要下载的数据网址是:
9 I% ^/ n) D( n& P' C
; C0 U/ f/ c% Z! q" N( L- Yhttp://www.esrl.noaa.gov/psd/thredds/catalog/Datasets/godas/catalog.html/ K0 U" ]# x+ X+ f: a$ _
" D2 F" `& ?& }
要下载的数据如下:pottmp.1980.nc到pottmp.2016.nc,共37个nc文件
' }7 z) o! a0 H4 }1 }$ J" I! I' S0 d- u( q
程序如下,核心函数是urlwrite; H9 `4 o( B/ J; o
) Y# N, S. Z6 V. q
filepath='D:用户目录Desktoppottmp';
' z- B0 u8 A, T3 fmkdir(filepath); %在桌面创建文件夹pottmp) b# J' I9 H. c! `" e* L
( X* e4 O7 y. n2 `% n
for i=1980:2016! T6 [' |( H4 R5 L, @* y. [2 b$ f1 C
fullURL=['http://www.esrl.noaa.gov/psd/thredds/fileServer/Datasets/godas/pottmp.',num2str(i),'.nc'];%下载网址# ~/ l% ^) B6 p; ^
filename=[filepath,'pottmp.',num2str(i),'.nc']; %保存的文件名
! c! c3 ^4 k( ?' g6 htic;* f# O9 @0 L& Z5 @. \6 m$ ?9 e
[f,status]=urlwrite(fullURL,filename);%下载命令
3 K) _/ ?: x( ^0 Dif status==1
9 s! s2 D: ]+ o# O; N; s  G    t=toc;. g- d! S4 r  V& `9 P
    lst=dir(filename);& @) `. E- R, ^0 t2 K
    xi=lst.bytes;$ O9 {% q3 ]2 g' s0 q! s( l
    disp(['pottmp.',num2str(i),'.nc','下载成功','文件大小为',num2str(xi/1024/1024),'M','  花费',num2str(t/60),'分钟']);/ ?* P) Z% E/ w; U2 j$ W
else& |2 d% D7 e( e: s: q
    disp(['pottmp.',num2str(i),'.nc','下载失败']);
+ ~% u% M' `7 D8 s% B, Gend1 K& R2 E1 Q# R$ m
end8 Q; P$ t& }4 Q4 u3 W

' o3 Q6 H# R  P& }# |3 i( j1 E  ?8 v
作者: CCxiaom    时间: 2020-1-21 17:51
利用Matlab进行批量下载网络数据




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2