Tmap против plotRGB - PullRequest
       33

Tmap против plotRGB

0 голосов
/ 09 апреля 2020

Я пытаюсь получить цвета с помощью tmap :: tm_raster, чтобы они были такими же, как при печати с использованием raster :: plotRGB.

мой набор данных здесь https://drive.google.com/drive/folders/1a5gOJ2S6lf_5nWu2ViU-6TRfi_gTMqi-?usp=sharing

Сначала я загружаю свои данные:

library(raster)

DEM_grey <- raster::raster("DEM100GREY_clip.tif")

Затем я строю их с помощью tmap

library(tmap)

tm_map::tm_shape(DEM_grey)+
  tmap::tm_raster(palette = "-Greys")

и это выглядит так enter image description here

Теперь я строю его с растром

library(raster)

raster::plotRGB(DEM_grey)

и получаю желаемую шкалу серого enter image description here

есть мысли о том, как заставить tmap_raster выглядеть как изображение plotRGB с использованием tmaps?

Спасибо, Саймон

1 Ответ

0 голосов
/ 09 апреля 2020

Я пришел с одним решением, которое может быть не самым элегантным, но оно получило результат, очень похожий на тот, который вы опубликовали. Поскольку tm_raster классифицирует растровые значения на отдельные классы, вы можете назначить разрывы вручную, чтобы показать, например, вашу матрицу высот в 255 различных оттенках серого.

library(tmap)
library(raster)

#Get the image min, max and the range divided by 255 
#255 is the number of different tones of grey you will get in your plot
rast_min<-cellStats(DEM_grey,min)
rast_max<-cellStats(DEM_grey,max)
rast_step<-ceiling((rast_max-rast_min)/255)

tm_shape(DEM_grey)+
  tm_raster(palette = "-Greys",
            breaks = seq(rast_min,rast_max,rast_step),
            #You can hide the legend using legend.show = F
            legend.show = F) 
...