首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Matlab实现从ftp下载数据

用Matlab实现从ftp下载数据
EN

Stack Overflow用户
提问于 2014-07-25 03:32:01
回答 2查看 1.1K关注 0票数 0

我需要从Ftp服务器下载大量数据。现在我想使用matlab来完成这项任务。

我的ftp地址是http://e4ftl01.cr.usgs.gov/MOLT/MOD09GA.005/2008.03.17/

文件名包括:

"MOD09GA.A2008077.h23v05.005.2008080122921.hdf“"MOD09GA.A2008077.h22v05.005.2008080122814.hdf”

数据将保存在驱动器E中的文件夹中。

我想用Matlab下载这个文件。这样我就可以从ftp服务器下载数据了。

等待您的帮助。提前感谢

谢谢你的数据有个问题。我只需要2个下面的数据:"MOD09GA.A2008077.h23v05.005.2008080122921.hdf“"MOD09GA.A2008077.h22v05.005.2008080122814.hdf。”

但我只需要该数据的ID,以消除多余的字母:"MOD09GA.A2008077.h23v05.hdf“"MOD09GA.A2008077.h22v05.hdf”

我想有2到313个数据。如何做到这一点?请帮帮忙。

EN

回答 2

Stack Overflow用户

发布于 2014-07-25 05:25:33

从技术上讲,您使用的是HTTP下载,而不是FTP。

您可以让Matlab将URL的内容复制到本地文件中:

代码语言:javascript
复制
url = 'http://e4ftl01.cr.usgs.gov/MOLT/MOD09GA.005/2008.03.17/MOD09GA.A2008077.h23v05.005.2008080122921.hdf'
urlwrite(url, 'tmp.hdf');

然后查看文件中的内容:

代码语言:javascript
复制
hdfinfo('tmp.hdf')
票数 1
EN

Stack Overflow用户

发布于 2014-07-25 05:31:33

正如dpwe已经说过的,从技术上讲,您并不是通过FTP下载。然而,这里有一个针对您的情况量身定做的解决方案,它首先获得您想要的所有文件名,即".*hdf“文件。然后循环遍历所有找到的*.hdf文件,并将它们下载到“localPath”。

这绝对不是最简单或最干净的方式,但它的工作,它应该满足您的需求,我希望。

代码语言:javascript
复制
% URL you want to grab from - has to end with a /
URL = 'http://e4ftl01.cr.usgs.gov/MOLT/MOD09GA.005/2008.03.17/';
% Local path on your machine
localPath = 'E:/myfolder/';

% Read html contents and parse file names with ending *.hdf
urlContents = urlread(URL);
ret = regexp(urlContents, '"\S+.hdf"', 'match');

% Loop over all files and download them
for k=1:length(ret)
    filename = ret{k}(2:end-1);
    filepathOnline = strcat(URL, filename);
    filepathLocal = fullfile(localPath, filename);
    urlwrite(filepathOnline, filepathLocal);
end
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24942440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档