spplot with two rasters
On Thu, 13 Mar 2008, Edzer Pebesma wrote:
Agus, I disagree with your claim that R plot functions are not ok for real applications. Also, I use real applications for learning and teaching -- they are not fundamentally different. In the trellis panel functions, or in the direct plot/image/lines etc functions, you plot in data coordinates. The main thing that the plot and spplot methods in package sp control is the aspect ratio. How else do data coordinates differ from geographical coordinates when it comes to plotting?
Exactly. In fact I think that a grid panel might make it possible to insert an image backdrop behind spplot(), which was the original question from Dylan - it would make a nice student project in visualisation. Something like an sp.image() for sp.layout=, but using its own palette and being painted over by the "real" data. Roger
Are you refering to taking care of geographic (re)projection at that level? -- Edzer Agustin Lobo wrote:
Well, the problem is that R does not have a real geographical display. While things can be done going back and forth from R to GIS, this procedure soon becomes very inconvenient. It's ok for learning and teaching, but not for real applications. Maybe getting an existing GIS to display spatial R objects is actually easier than developing a geographical display for R. Agus Dylan Beaudette escribi?:
On Thursday 06 March 2008, Thomas Adams wrote:
Dylan, I think a solution using GRASS can be found on pages 110-111 of "Open Source GIS: A GRASS GIS Approach", 3rd Ed. The same material is covered in the 2nd Ed. as well, where you use r.mapcalc to combine two rasters and judicious use of MASKs; a conditional statement in r.mapcalc is the key. Regards, Tom
Hi Tom, Thanks for the suggestion. This works, but we were hoping to make the plot in R-- as the PDF output is hard to match with GRASS alone. I suppose I will just have to try using two rasters with spplot() and see what happens. Cheers, Dylan
Dylan Beaudette wrote:
On Tuesday 04 March 2008, Edzer Pebesma wrote:
I find it hard to imagine how you want to plot two raster files on top of each other. Do you want some form of transparency? If it is just one overlaying the other, you could use overlay to find out which cells in raster 1 to replace with those in raster 2 before plotting. -- Edzer
Hi Edzer, I generally agree that plotting one raster file "over" another raster file would be of little use. In this case, one of the raster files (the interesting one) has been masked with nodata, such that it only really covers about 30% of the region of interest. The other raster is just contextual data, and thus would be useful to plot "behind" the first raster. Ideas? Dylan
Dylan Beaudette wrote:
Hi,
Is it possible to plot two raster images using spplot() in a manner
similar to:
pts <- list("sp.points", points_file, pch = 4, col = "black", cex=0.5)
spplot(raster_file, zcol="elev.pred", sp.layout=list(pts))
Note that one of the raster images is an aerial photo, used only for
context, while the second one is one with interesting z-values. The
second raster is masked and thus does not cover the entire region.
Thanks,
Dylan
_______________________________________________ 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