Description Usage Arguments Value Author(s) Examples
Currently works only for MODIS 16 days composites! In MODIS composites, the Julian dates inside the 'composite_day_of_the_year' SDS are referring always to the year they are effectively in. The problem is that the layer/SDS name from the last files from Terra and Aqua within a year can include dates from the following year and so starting again with 1. The problem occurs if you want to sort values of a time series by date (e.g. for precise time series functions). This function generates a sequential vector beginning always with the earliest SDS/layer date and ending with the total sum of days of the time serie length.
1 |
pixX |
|
layerDate |
If |
bias |
|
A matrix
with sequential Julian dates.
Matteo Mattiuzzi
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | ## Not run:
tfs <- runGdal(product="M.D13A2", begin="2010350", end="2011016"
, extent="Luxembourg", job="deleteme", SDSstring="100000000010")
ndviFiles <- grep("NDVI.tif$", unlist(tfs, use.names = FALSE), value = TRUE)
ndviFiles <- preStack(files = ndviFiles, timeInfo = orgTime(ndviFiles))
ndvi <- stack(ndviFiles)
doyFiles <- grep("composite_day_of_the_year.tif$"
, unlist(tfs, use.names = FALSE), value = TRUE)
doyFiles <- preStack(files = doyFiles, timeInfo = orgTime(doyFiles))
doy <- stack(doyFiles)
layerDates <- extractDate(doyFiles)
pixX <- 169
y <- ndvi[pixX]
print(x1 <- doy[pixX])
print(x2 <- repDoy(x1,layerDates))
# the plotting example is not really good.
# To create a figurative example it would be necessary to dolwnload to much data!
plot("",xlim=c(1,max(x1,x2)),ylim=c(0,2000),xlab="time",ylab="NDVI*10000")
lines(y=y,x=x1,col="red",lwd=3)
lines(y=y,x=x2,col="green",lwd=2)
# repDoy function is thought to be embedded in something like that:
tr <- blockSize(ndvi)
doyOk <- brick(doy)
doyOk <- writeStart(doyOk, filename='test.tif', overwrite=TRUE)
for (i in 1:tr$n)
{
pixX <- getValues(doy,tr$row[i],tr$nrows[i])
ok <- repDoy(pixX,layerDates)
doyOk <- writeValues(x=doyOk,v=ok,start=tr$row[i])
}
doyOk <- writeStop(doyOk)
unlink(filename(doyOk))
## End(Not run)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.