R - оригинальные цвета растрового изображения с географической привязкой с использованием ggplot2- и raster-пакетов

Я хотел бы использоватьоригиналcolortable из>> Растровое изображение с географической привязкой << (TIF-файл) в виде цветной шкалына карте, построенной ggplot / ggplot2.

Поскольку я не нашел более простого решения, я получил доступ кcolortableслот изlegend-атрибут загруженного растрового изображения (объекта)raster1 вот так:

raster1 <- raster(paste(workingDir, "/HUEK200_Durchlaessigkeit001_proj001.tif", sep="", collapse=""))
raster1.pts <- rasterToPoints(raster1)
raster1.df <- data.frame(raster1.pts)
colTab <- attr(raster1, "legend")@colortable

Хорошо, пока все хорошо. Теперь мне просто нужно подать заявкуcolortable как цветная шкала для моего существующего сюжета:

(ggplot(data=raster1.df)
+ geom_tile(aes(x, y, fill=raster1.df[[3]]))
+ scale_fill_gradientn(values=1:length(colTab), colours=colTab, guide=FALSE)
+ coord_fixed(ratio=1)
)

К сожалению, это не работает, как ожидалось. Полученное изображение не показывает никаких цветов, кроме белого и обычного ggplot-grey, который часто появляется, когда не определены пользовательские значения. На данный момент я немного не понимаю, что здесь на самом деле не так. Я предположил, что значения базовой полосы хранятся вraster1.df[[3]] индексы для таблицы цветов. Это может быть неправильно. Если это не так, то как значения полос связаны сcolortable? И даже если мое предположение будет правильным: параметры, которые я далscale_fill_gradientn() все равно должен привести к более красочному сюжету, не так ли? Я проверил, что уникальные значения:

sort(unique(raster1.df[[3]]))

Это выводит:

 [1]  0  1  2  3  4  5  6  7  8  9 10 11 12

По-видимому, не все 256 членовcolortable используются, что напоминает мне, что цвет не всегда должен отражать базовое распределение данных полосы (особенно при включении нескольких полос).

Надеюсь, мои последние мысли не смутили вас о том, что цель довольно проста.

Спасибо за помощь!

Ответы на вопрос(1)

Ваш ответ на вопрос