как отобразить RasterBrick с tmap так же, как растр :: plotRGB - PullRequest
0 голосов
/ 23 мая 2019

Мне очень нравятся минималистичные базовые карты 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 Ответ

1 голос
/ 25 мая 2019

Кажется, что 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()

чтобы избавиться от белых границ АН, вы можете использовать crop

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