# fields, Tools for spatial data # Copyright 2004-2007, Institute for Mathematics Applied Geosciences # University Corporation for Atmospheric Research # Licensed under the GPL -- www.gpl.org/licenses/gpl.html "image.plot.info" <- function(...) { temp <- list(...) # xlim <- NA ylim <- NA zlim <- NA poly.grid<- FALSE # # go through various cases of what these can be # ##### x,y,z list is first argument if(is.list(temp[[1]])) { xlim <- range(temp[[1]]$x, na.rm = TRUE) ylim <- range(temp[[1]]$y, na.rm = TRUE) zlim <- range(temp[[1]]$z, na.rm = TRUE) if( is.matrix( temp[[1]]$x) & is.matrix(temp[[1]]$y) & is.matrix( temp[[1]]$z)){ poly.grid<- TRUE} } ##### check for polygrid first three arguments should be matrices ##### if( length( temp)>=3){ if( is.matrix(temp[[1]]) & is.matrix(temp[[2]]) & is.matrix(temp[[3]]) ){ poly.grid<- TRUE}} ##### z is passed without an x and y (and not a poly.grid!) ##### if(is.matrix(temp[[1]])& !poly.grid) { xlim <- c(0,1) ylim <- c(0,1) zlim <- range(temp[[1]], na.rm = TRUE) } ##### if x,y,z have all been passed find their ranges. ##### holds if poly.grid or not ##### if( length( temp)>=3){ if(is.matrix(temp[[3]])) { xlim <- range(temp[[1]], na.rm = TRUE) ylim <- range(temp[[2]], na.rm = TRUE) zlim <- range(temp[[3]], na.rm = TRUE) } } #### parse x,y,z if they are named arguments # determine if this is polygon grid (x and y are matrices) if( is.matrix( temp$x)& is.matrix(temp$y) & is.matrix( temp$z)){ poly.grid<- TRUE} xthere <- match("x", names(temp)) ythere <- match("y", names(temp)) zthere <- match("z", names(temp)) if(!is.na(zthere)) zlim <- range(temp$z, na.rm = TRUE) if(!is.na(xthere)) xlim <- range(temp$x, na.rm = TRUE) if(!is.na(ythere)) ylim <- range(temp$y, na.rm = TRUE) # overwrite zlims with passed values if(!is.null(temp$zlim)) zlim <- temp$zlim if(!is.null(temp$xlim)) xlim <- temp$xlim if(!is.null(temp$ylim)) ylim <- temp$ylim list(xlim = xlim, ylim = ylim, zlim = zlim,poly.grid=poly.grid) }