[R-sig-Geo] gplot error in rasterVis

Robert J. Hijmans r.hijmans at gmail.com
Fri May 31 01:55:52 CEST 2013


Here a simple alternative approach:

library(dismo)

r <- raster(ncol=10, nrow=10)
values(r) <- 1:ncell(r)
extent(r)<-c(-113.5732, -112.4852, 43.04848, 43.81728)

# get map
g <- gmap(r, lonlat=TRUE)
gg <- crop(g, r)

# simple, no legend
plot(gg)
image(r, col=terrain.colors(25, alpha=.25), add=TRUE)

# with some tricks to get legend:
plot(r, col=terrain.colors(25, alpha=.25))
plot(gg, add=TRUE)
image(r, col=terrain.colors(25, alpha=.25), add=TRUE)



On Thu, May 30, 2013 at 2:51 PM, Natalie Wagenbrenner
<nwagenbrenner at gmail.com> wrote:
> Thanks for the quick reply. Yes, this works for me now.
>
> One more follow-up question -- I'm trying to plot a raster on top of a
> static google map image. I can do this:
>
> library(RgoogleMaps)
> library(raster)
> library(maps)
> library(ggmap)
>
> r <- raster(ncol=10, nrow=10)
> values(r) <- 1:ncell(r)
> extent(r)<-c(-113.5732, -112.4852, 43.04848, 43.81728)
>
> #not ideal-> no legend, raster not transparent
> bsbMap<-get_map(location = c(lon = -113.027724, lat = 43.402726), zoom
> = 8, maptype = 'terrain')
> m <- ggmap(bsbMap)+ inset_raster(r, xmin(r), xmax(r), ymin(r), ymax(r))
>
> but is there a way to control plotting of the raster (e.g., to set the
> transparency or color scheme) and add a legend? I was hoping to do
> this with geom_raster rather than inset_raster, but it looks like
> ggmap doesn't work with geom_raster. I have used geom_raster to make a
> similar map with state/county boundaries:
>
> #would like to create this sort of overlay on a static google map
> rdf <- rasterToPoints(r)
> rdf <- data.frame(rdf)
> colnames(rdf)<-c("lon","lat","T")
>
> states<-map_data("state", region=c("idaho", "montana", "utah", "wyoming"))
> counties<-map_data("county", region=c("idaho"))
>
> g <- ggplot( data=rdf) + geom_raster(aes(x=lon, y=lat, fill=T) )
> g<-g + scale_fill_gradient(name="T (C)", low="blue", high="orange")
> g<-g + theme_bw() + xlim(c(-115.5,-110.5)) + ylim(c(41.5,45))
> g<-g + geom_path(data=states, aes(x=long,y=lat,group=group),
> colour="black", alpha=0.5)
> g<-g + geom_path(data=counties, aes(x=long,y=lat,group=group),
> colour="black", alpha=0.5)
>
> Any suggestions for the most efficient way to create this sort of
> raster overlay on a google map?
>
> Thanks,
> Natalie
>
> On Thu, May 30, 2013 at 6:52 AM, Oscar Perpiñán Lamigueiro
> <oscar.perpinan at gmail.com> wrote:
>> Hi,
>>
>> With the current definition of gplot you have to add the layers you need
>> to plot (that's why you get the error "No layers to plot"). Take a look
>> at the example of the help page. With your example:
>>
>> gplot(r) + geom_tile(aes(fill=value)) + coord_equal()
>>
>> On the other hand, the warning when you use gplot is because both
>> latticeExtra and ggplot2 define the function layer. If ggplot2 is loaded
>> after rasterVis, the layer definition from latticeExtra becomes
>> masked. If you plan to use latticeExtra (for example, to add layers over
>> the result of a levelplot call) you should load ggplot2 before
>> rasterVis.
>>
>> Best,
>>
>> Oscar.
>>
>> Natalie Wagenbrenner <nwagenbrenner at gmail.com> writes:
>>
>>> I'm trying to use gplot() in rasterVis to plot a RasterLayer object
>>> using ggplot2
>>> graphics, but I keep getting an error.  Here is a reproducible
>>> example:
>>>
>>> library(raster)
>>> library(rasterVis)
>>>
>>> r <- raster(ncol=10, nrow=10)
>>> values(r) <- 1:ncell(r)
>>> gplot(r)
>>>
>>> The following `from` values were not present in `x`: col, color, pch,
>>> cex, lty, lwd, srt, adj, bg, fg, min, max
>>> Error: No layers in plot
>>>
>>> I see the following warning when I load rasterVis:
>>>
>>> Loading required package: ggplot2
>>>
>>> Attaching package: ‘ggplot2’
>>>
>>> The following object(s) are masked from ‘package:latticeExtra’:
>>>
>>>     layer
>>>
>>> Perhaps this is part of the problem? Or I am misunderstanding the
>>> gplot() methods somehow? Thanks for any suggestions.
>>>
>>> Natalie
>>>
>>> Session info:
>>>
>>> R version 2.14.1 (2011-12-22)
>>> Platform: x86_64-pc-linux-gnu (64-bit)
>>>
>>> locale:
>>>  [1] LC_CTYPE=en_CA.UTF-8       LC_NUMERIC=C
>>> LC_TIME=en_CA.UTF-8
>>>  [4] LC_COLLATE=en_CA.UTF-8     LC_MONETARY=en_CA.UTF-8
>>> LC_MESSAGES=en_CA.UTF-8
>>>  [7] LC_PAPER=C                 LC_NAME=C
>>> LC_ADDRESS=C
>>> [10] LC_TELEPHONE=C             LC_MEASUREMENT=en_CA.UTF-8
>>> LC_IDENTIFICATION=C
>>>
>>> attached base packages:
>>> [1] grid      stats     graphics  grDevices utils     datasets
>>> methods   base
>>>
>>> other attached packages:
>>>  [1] ggmap_2.3           RgoogleMaps_1.2.0.3 png_0.1-4
>>> maps_2.3-2          rasterVis_0.20-07
>>>  [6] hexbin_1.26.2       latticeExtra_0.6-24 RColorBrewer_1.0-5
>>> lattice_0.20-0      ggplot2_0.9.3.1
>>> [11] rgdal_0.8-9         raster_2.1-25       sp_1.0-9
>>> ncdf_1.6.6          vimcom_0.9-8
>>> [16] setwidth_1.0-3      colorout_1.0-0
>>>
>>> loaded via a namespace (and not attached):
>>>  [1] colorspace_1.2-2 dichromat_2.0-0  digest_0.6.3     gtable_0.1.2
>>>   labeling_0.1     mapproj_1.2-1
>>>  [7] MASS_7.3-16      munsell_0.4      plyr_1.8         proto_0.3-10
>>>   reshape2_1.2.2   rjson_0.2.12
>>> [13] scales_0.2.3     stringr_0.6.2    zoo_1.7-9
>>>
>>> _______________________________________________
>>> R-sig-Geo mailing list
>>> R-sig-Geo at r-project.org
>>> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>>
>>
>> --
>> Oscar Perpiñán Lamigueiro
>> Grupo de Sistemas Fotovoltaicos (IES-UPM)
>> Dpto. Ingeniería Eléctrica (EUITI-UPM)
>> URL: http://procomun.wordpress.com
>> Twitter: @oscarperpinan
>
> _______________________________________________
> R-sig-Geo mailing list
> R-sig-Geo at r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo



More information about the R-sig-Geo mailing list