Date indexing error for STFDF objects?
Dear David, thanks for the clear report! I believe this is a time zone issue -- in my time zone,
date.ix
[1] "2009-03-21"
class(date.ix)
[1] "Date"
as.POSIXct(date.ix)
[1] "2009-03-21 01:00:00 CET" internally xts, and hence spacetime, work with POSIXct time stamps. If I run R with environmental variable TZ="", or TZ="GMT", I see
as.POSIXct("2009-03-21")
[1] "2009-03-21 GMT"
summary(rr[,"2009-03-21"]$PM10)
Min. 1st Qu. Median Mean 3rd Qu. Max. NA's 13.71 20.06 26.45 31.94 31.03 269.10 32
summary(rr[,"2009-03-22"]$PM10)
Min. 1st Qu. Median Mean 3rd Qu. Max. NA's 3.523 10.150 14.410 15.970 21.830 31.080 32 would that be right? # with TZ="" or TZ="GMT":
range(index(rr))
[1] "2009-01-01" "2009-12-30" # with TZ not set:
range(index(rr))
[1] "2008-12-31" "2009-12-30" So, it looks like the data set rr uses start-of-day time indexes, in seconds (POSIXct), in GMT.
On 07/03/2014 02:16 PM, d.g.rossiter at utwente.nl wrote:
Please see this as-simple-as-possible-but-no-simpler test; it appears to me as if date indexing is off by one day when extracting from STFDF objects. ## packages and version require(sp); require(xts); require(spacetime); require(gstat) sessionInfo() ## R version 3.1.0 (2014-04-10) ## Platform: x86_64-w64-mingw32/x64 (64-bit) ## locale ... ## attached base packages: ## [1] stats graphics grDevices utils datasets methods ## [7] base ## other attached packages: ## [1] gstat_1.0-19 spacetime_1.1-0 xts_0.9-7 zoo_1.7-11 ## [5] sp_1.0-15 ## loaded via a namespace (and not attached): ## [1] FNN_1.1 grid_3.1.0 intervals_0.14.0 ## [4] lattice_0.20-29 rgeos_0.3-5 tools_3.1.0 ## Germany & neighbours air quality test dataset data(air) rr <- rural[, "2009"] ## one year (ix <- which.max(rr$PM10)) ## which record has max PM10? station.xts <- rr[ix%%dim(rr)[1],] ## extract that station's time series summary(station.xts) ## date of maximum PM10 in this station's time series (date.xts <- station.xts[which.max(station.xts)]) ## find index of the record with the maximum PM10 (date.ix <- index(date.xts)) as.numeric(date.ix) ## correctly extracts the record from the xts station.xts[date.ix] station.xts["2009-03-21"] as.numeric(date.ix) ## now try to use this date index to ## extract all stations on that date ## from the STFDF object rr.maxpm <- rr[,date.ix] summary(rr.maxpm$PM10) ## wrong !! (date.ix.plus1 <- date.ix + 1) ## go to next day summary(rr[,date.ix.plus1]$PM10) ## right !! summary(rr[,"2009-03-21"]$PM10) ## wrong !! summary(rr[,"2009-03-22"]$PM10) ## right !! ## conclusion -- indexing off by one day?? ----------------------------------------------------------------------------------------------- D G (David) Rossiter Department of Earth Systems Analysis University of Twente (NL) http://www.itc.nl/personal/rossiter [[alternative HTML version deleted]]
_______________________________________________ R-sig-Geo mailing list R-sig-Geo at r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo
Edzer Pebesma Institute for Geoinformatics (ifgi), University of M?nster Heisenbergstra?e 2, 48149 M?nster, Germany. Phone: +49 251 83 33081 http://ifgi.uni-muenster.de GPG key ID 0xAC227795 -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 490 bytes Desc: OpenPGP digital signature URL: <https://stat.ethz.ch/pipermail/r-sig-geo/attachments/20140703/1a5cdfe0/attachment.bin>