adding contours to a projected map
On Tue, 8 Nov 2005, Jeanne Thibeault wrote:
Hello, I'm having a problem adding contours to a projected map. I was able to do it before I specified a projection. This is the code:
Sum.80.83.li <-
interp(SummerO18.80.84.df$longitude,SummerO18.80.84.df$latitude, + SummerO18.80.84.df$wt18o)
eurM <- map(database = "world", interior = FALSE, xlim = c(-10,50),
+ ylim = c(35,60), plot = FALSE)
map("world", interior = FALSE, xlim = c(-10,50), ylim = c(35,60),
+ projection = "bonne", par = 47, col = "slateblue1")
map.grid(eurM, labels = FALSE, col = "lightgray", lty = 2, nx = 2, ny = 2) contour(Sum.80.83.li, add = TRUE)
Everything was coming out nicely until I tried to add the contours. No contours printed on the map. Any ideas on what is going wrong?
contour() is a base graphics generic function, and has no idea where to plot, so plots in the input coordinate system xlim = c(-10,50), ylim = c(35,60). When map() projects, the output coordinate system is changed:
library(maps)
eurobonne <- map("world", interior = FALSE, xlim = c(-10,50),
+ ylim = c(35,60), projection = "bonne", par = 47, plot=FALSE)
range(eurobonne$x, na.rm=TRUE)
[1] -0.3668910 0.3308747
range(eurobonne$y, na.rm=TRUE)
[1] -1.1721820 -0.6617041 so contour() misses the output plot region (y overshoots). With a little work, you can use contourLines(): res <- contourLines(Sum.80.83.li) contours_x <- unlist(sapply(res, function(x) c(x$x, NA))) contours_y <- unlist(sapply(res, function(x) c(x$y, NA))) contours <- list(x=contours_x, y=contours_y) gets you contours you can give as an argument to mapproject(), but you'll need to handle label positions and values yourself based on res - look at str(res[[1]]) to get a view of what the raw contours look like. plot(mapproject(contours, ...), type="l") does the plotting.
Thanks, Jeanne
_______________________________________________ R-sig-Geo mailing list R-sig-Geo at stat.math.ethz.ch https://stat.ethz.ch/mailman/listinfo/r-sig-geo
Roger Bivand Economic Geography Section, Department of Economics, Norwegian School of Economics and Business Administration, Helleveien 30, N-5045 Bergen, Norway. voice: +47 55 95 93 55; fax +47 55 95 95 43 e-mail: Roger.Bivand at nhh.no