如何以与raster :: plotRGB相同的方式显示带有tmap的RasterBrick

时间:2019-05-22 21:22:53

标签: r r-raster tmap

我非常喜欢CARTO的极简底图,但是在将它们与我首选的地图工具tmap配合使用时遇到了麻烦。我可能犯了一个愚蠢的错误,但是我无法正确选择颜色。

library(tmap)
library(cartography)

data("NLD_prov")

# get the basemap

carto.raster <- getTiles(NLD_prov, type = "cartolight")

# This is the output I want
raster::plotRGB(carto.raster)

# This output looks bad
tm_shape(carto.raster) +
  tm_raster()

# I think I'm supposed to use tm_rgb() but that gives an error
tm_shape(carto.raster) +
  tm_rgb()
  

rgb(x [,1],x [,2],x [,3],maxColorValue = 255)中的错误:     颜色强度NA,不在0:255

1 个答案:

答案 0 :(得分:0)

似乎tm_rgb无法处理NA值。您可以使用raster::reclassify

删除它们
library(raster)
library(tmap)
library(cartography)
data("NLD_prov")
carto.raster <- getTiles(NLD_prov, type = "cartolight")
r <- reclassify(carto.raster, cbind(NA, 255))
tm_shape(r) + tm_rgb()

要摆脱白色NA边界,可以使用crop

e <- extent(11000, 288000, 305000, 625000)
x <- crop(r, e)
tm_shape(x) + tm_rgb()