设为首页 加入收藏

TOP

R:MODIS 原数据下载
2017-10-10 12:10:25 】 浏览:9924
Tags:MODIS 数据 下载

目前下载MODIS数据的工具功能不够完整,比如先要下载500米分辨率的LAI数据集MOD15A2H, 无论是MODIS官网提供的网页下载工具daac2disk,还是R论坛提供的ftp协议下载包http://r-gis.net/?q=ModisDownload, 都不能下载MOD15A2H。 这里展示使用R下载http协议的MODIS数据,有兴趣的可以自己研究一下,贴出全部代码 :

rm(list = ls())
setwd("F:/modis/MOD15A2H006/")
library(RCurl)
library(rgdal)

#去除网页Html标记 cleanFun <- function(htmlString) { return(gsub("<.*?>", "", htmlString)) } #R的防错机制 safe_download <- function(furl, fsave, fmode, fmethod) { tryCatch ( { download.file(url = furl,destfile = fsave,mode = fmode,method = fmethod) }, error = function(cond) { print("error") } ) } #下载数据的地址 MOD15A2H006 <- "http://e4ftl01.cr.usgs.gov/MOLT/MOD15A2H.006/" gg<- getURL(MOD15A2H006) gg<- cleanFun(gg) items <- strsplit(gg, " - \n ")[[1]] items<- items[-1] items<- items[-1* NROW(items)] pp<- strsplit(items, "/ ") dirs <- unlist(lapply(strsplit(items, "/ "), function(x){x[1]})) dates <- unlist(lapply(strsplit(items, "/ "), function(x){x[2]})) dirsURL<- paste(MOD15A2H006, dirs, "/", sep="") #记录日志
sink(file = "log.log",split = T) for (i in 1:length(dirsURL)) { print(dirsURL[i]) dirurl<- dirsURL[i] files<- getURL(dirurl) files<- cleanFun(files) bb <- strsplit(files, " \n ")[[1]] bb<- bb[-1] bb<- bb[-1*NROW(bb)] hh <- unlist( lapply(strsplit(bb, " "), function(x){x[[1]]})) hdffile<- hh[grep(hh, pattern="MOD15A2H.*.h26v05.*.hdf")[1]] gurl = paste(dirurl, hdffile, "", sep="") gsave = paste(getwd(), "/", hdffile, sep="") gmode='wb' gmethod='wininet'
 #开始下载 safe_download(furl = gurl, fsave = gsave, fmode = gmode, fmethod = gmethod) print(gurl) } sink()

 转载请注明出处:http://www.cnblogs.com/ABMRG/p/5194082.html

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇R: rgdal could not find "g.. 下一篇01创建数据集

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目