<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"Lucida Console";
        panose-1:2 11 6 9 4 5 4 2 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:"Courier New";
        mso-fareast-language:DE;}
span.gcwxi2kcpkb
        {mso-style-name:gcwxi2kcpkb;}
span.gcwxi2kcpjb
        {mso-style-name:gcwxi2kcpjb;}
span.gcwxi2kcdkb
        {mso-style-name:gcwxi2kcdkb;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="DE" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span lang="EN-US">Hi all,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Here is an example of my code up until I get I get the following error:<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:10.25pt;background:black;word-break:break-all">
<span lang="EN-US" style="font-size:10.0pt;font-family:"Lucida Console";color:#C397D8;mso-fareast-language:DE">> names(s) <- as.Date(modis.hdf[[1]], "A%Y%j")<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:10.25pt;background:black;word-break:break-all">
<span lang="EN-US" style="font-size:10.0pt;font-family:"Lucida Console";color:#E78C45;mso-fareast-language:DE">Error in `names<-`(`*tmp*`, value = c(NA_real_, NA_real_)) :
<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height:10.25pt;background:black;word-break:break-all">
<span lang="EN-US" style="font-size:10.0pt;font-family:"Lucida Console";color:#E78C45;mso-fareast-language:DE">  </span><span style="font-size:10.0pt;font-family:"Lucida Console";color:#E78C45;mso-fareast-language:DE">incorrect number of layer names</span><span style="font-size:10.0pt;font-family:"Lucida Console";color:#DEDEDE;mso-fareast-language:DE"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Many thanks for your help,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Vladimir <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">library(MODIS)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">library(gdalUtils)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">MODISoptions(gdalPath="C:/OSGeo4W64/bin")<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">setwd("C:/chapter 11")<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">getwd()<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">gdal_setInstallation(search_path = "C:/OSGeo4W64/bin", rescan = TRUE,ignore.full_scan = TRUE, verbose = FALSE)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">MODIS:::checkTools('GDAL')<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">MODIS:::checkTools('MRT')<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">viname <- "ndvi"<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">product <- "MOD13Q1"<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">ofilename <- paste0(product, "_", viname, "_brick.grd")<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">ofilename<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">pth <- paste0(getwd(), "/raster_data/", product)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">pth<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">fileout <- paste(pth, "/", ofilename, sep="")<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">fileout<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">if (!file.exists(fileout)) {<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  if (!file.exists(pth)) {<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">    print("the outfolder does not exist and will be created")<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">    print(pth)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">    dir.create(pth, recursive = TRUE)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  }<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">}<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">#dir.create() does not create nested folders by default. set "recursive = TRUE" to do so.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">MODISoptions(localArcPath = pth, outDirPath =pth)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">setwd(pth)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">getwd()<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">tileH <- 19<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">tileV <- 10<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">begin <- "2015.01.01"<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">end <- "2015.02.01"<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">modis.hdf <- getHdf(product = product, begin=begin, end=end, tileH=tileH, tileV=tileV, checkIntegrity=TRUE)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">print(modis.hdf)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">for (i in 1:length(modis.hdf[[1]])) {<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  ifl <- unlist(strsplit(unlist(strsplit(modis.hdf[[1]][i],<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">                                         <o:p>
</o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">                                         c("[/]"))) [5], "[.]")) [1]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  ifl<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  print(ifl)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  fn <- paste("cvi_", ifl, ".tif", sep="")<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  print(fn)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  if (is.na(ifl) | file.exists(fn)) {<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">    <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">    print("file exists or is not available on the server")<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">    <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  } else { <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">    <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">    sds <- get_subdatasets(modis.hdf[[1]][i])<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  }<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">}<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">tmp <- rasterTmpFile()<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">extension(tmp) <- "tif"<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">library(gdalUtils)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">gdal_translate(sds[1], dst_dataset=tmp, output_Raster=TRUE )<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">ndvi <- raster(tmp)/10000<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">writeRaster(ndvi, filename=paste0("ndvi_", ifl, ".tif", sep=""), dataType="INT2U", format="GTiff", overwrite=TRUE)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">tmp2 <- rasterTmpFile()<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">extension(tmp2) <- "tif"<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">gdal_translate(sds[12], dst_dataset=tmp2, output_Raster=TRUE )<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="FR-CH">rel <- crop(x=raster(tmp2), y=raster(tmp2),
<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="FR-CH">            </span><span lang="EN-US">filename=paste("rel_", ifl, ".tif", sep=""),
<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">            dataType="INT2U", format="GTiff")<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">rel<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">f_cleanvi <- function(vi, rel) {<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  i <- (rel <= 1)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  res <- matrix(NA, length(i), 1)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  if (sum(i, na.rm=TRUE) > 0) {<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">    <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">    i <- which(i)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">    <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">    res[i] <- vi[i]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  }<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">  res<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">}<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">res<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">clvi <- overlay(ndvi, rel, fun=f_cleanvi, filename=fn, dataType="INT2U", overwrite=TRUE)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">clvi<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">rm(ndvi, rel, clvi, tmp, tmp2)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">ofl <- list.files(pattern=glob2rx("rel*.tif"))<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">class(ofl)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">ofl<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">s <- do.call("brick", lapply(ofl, raster))<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">s<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">names(s) <- as.Date(modis.hdf[[1]], "A%Y%j")<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">s<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:10.0pt;color:#1F497D;mso-fareast-language:DE">Vladimir Wingate<br>
PhD candidate/Doctorant/Doktorand<br>
Physical Geography and Environmental Change<br>
Department of Environmental Science<br>
University of Basel<br>
Klingelbergstrasse 27<br>
Basel 4056 <br>
<br>
e-mail:  <a href="mailto:Vladimir.wingate@unibas.ch"><span style="color:blue">Vladimir.wingate@unibas.ch</span></a><br>
Skype: vladwingate<br>
Switzerland:  +41 (0) 78 613 6259<br>
Australia:  +61 (0) 448 353 105<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:10.0pt;color:#1F497D;mso-fareast-language:DE">Namibia: +264 (0) 81 82 28 881
</span><span lang="EN-GB" style="color:#1F497D;mso-fareast-language:DE"><o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>