No problems; sp in csv now has this, the next release will have it. Torleif Markussen Lunde wrote: > Hi > > To read netcdf data (or any other "gridded" spatial time data) I find it > convenient to define new classes Spatial3dArray and Spatial4dArray. > > setClass("Spatial3dArray", > representation("Spatial", data = "array", coords = "list", > time = "character", btime = "character"), > prototype= list(data = array(NA, c(1,1,1,1)), > bbox=matrix(NA), > proj4string = CRS(as.character(NA)), > coords = list(1,1), > time = "posix", > btime = "posix")) > > > ########################################## > ###################EXAMPLE################## > ########################################## > > x <- matrix(seq(-10, 10, length = 100), 100, 100, > byrow = FALSE) > y <- matrix(seq(-10, 10, length = 100), 100, 100, > byrow = TRUE) > > tm <- 1:10 > tm.c <- as.character(seq(as.POSIXct("2002-01-01 06:00:00", > "2002-01-01 15:00:00"), > by="hours", > length.out=10)) > > z <- array(NA, c(dim(x)[1], dim(x)[2], length(tm.c), 1)) > > for (i in 1:10) { > z[,,i,] <- i * ( sin(sqrt(x^2+y^2))) > } > > sin3dA <- new("Spatial3dArray", > data = z, > coords = list(x, y), > bbox = matrix(c(min(x), min(y), max(x), max(y), 2, 2), 2, 2, > dimnames = list(NULL, c("min","max"))), > time = tm.c, > btime = c(min(tm.c), max(tm.c))) > > dimnames(slot(sin3dA, "data")) = list(NULL, > NULL, > slot(sin3dA, "time"), > c("a")) > names(slot(sin3dA, "coords")) <- c("x", "y") > > > ########################################## > > for the coordinates method I would like to have two options on how to return > the coordinates; "list" or default "sp": > > coordinates.3dArray <- function (obj, type = "sp") { > lat <- slot(obj, "coords")[[1]] > long <- slot(obj, "coords")[[2]] > if (type == "list") { > return(list(long=long, lat=lat)) > } else if (type == "sp") { > res <- as.matrix(cbind(c(long), c(lat))) > dimnames(res) <- list(NULL, c("x1", "x2")) > } > } > setMethod("coordinates", signature("Spatial3dArray"), coordinates.3dArray) > > This means that the default coordinates method in sp has to include the > option > "..." . Would it be possible to include this in a future release of sp? > > The reason I want to keep the list option is to use a matrix oriented > approach > in spplot, overlay, etc. methods. I also feel having a matrix/array approach > with these kind of data makes sense. Allowing type = "sp" means overlay() > will > work more or less out of the box (however I would like to return a matrix), > and still I could get the list/matrix when desired. > > > Best wishes > Torleif Markussen Lunde > Centre for International Health > Bjerknes Centre for Climate Research > University of Bergen > Norway > > _______________________________________________ > R-sig-Geo mailing list > R-sig-Geo@stat.math.ethz.ch > https://stat.ethz.ch/mailman/listinfo/r-sig-geo >
-- Edzer Pebesma Institute for Geoinformatics (ifgi), University of Münster Weseler Straße 253, 48151 Münster, Germany. Phone: +49 251 8333081, Fax: +49 251 8339763 http://ifgi.uni-muenster.de/ http://www.springer.com/978-0-387-78170-9 e.pebe...@wwu.de _______________________________________________ R-sig-Geo mailing list R-sig-Geo@stat.math.ethz.ch https://stat.ethz.ch/mailman/listinfo/r-sig-geo