2

I would like to plot a raster with hillshading and add layers with tmap.

library(raster)
alt = getData('alt', country='CHE')
slope = terrain(alt, opt='slope')
aspect = terrain(alt, opt='aspect')
hill = hillShade(slope, aspect, 40, 270)
plot(hill, col=grey(0:100/100), legend=FALSE, main='Switzerland')
plot(alt, col=rainbow(25, alpha=0.35), add=TRUE)

enter image description here

I would like to overlay roads etc. using tmap. How to make this work?

library(tmap)
tm_shape(hill) + tm_raster() + tm_shape(alt) + tm_raster()

is the same as

tm_shape(alt) + tm_raster()

The tm_shape(hill) + tm_raster() part gives warning message:

Variable "layer" contains positive and negative values, so midpoint is set to 0. Set midpoint = NA to show the full spectrum of the color palette.
Henk
  • 3,634
  • 5
  • 28
  • 54

1 Answers1

2
library(tmap)  
tm_shape(hill) +
 tm_raster(palette = gray(0:100 / 100), n = 100, legend.show = FALSE)  +
  tm_shape(alt) +
  tm_raster(alpha = 0.5, palette = terrain.colors(25),
            legend.show = FALSE)

Thanks to Nowosad on the tmap github page.

Henk
  • 3,634
  • 5
  • 28
  • 54