2016-03-03 6 views
3

Интересно, можно ли назначать определенные цвета ячейкам растра в r.Как передать определенные цвета растровому в r

Я знаю, что «растрировать» в пакете «растр» позволяет передавать значения раструю с учетом координат заданного значения. Однако, интересно, можно ли передать только цвет в конкретную позицию ячейки?

Короче говоря, у меня есть заданная растра и внешняя база данных с тремя столбцами (x, y и цвет). Я хотел бы передать цвет в третьем столбце в ячейку растра в позиции x-y.

Это код, который у меня есть:

library(raster) 

BaseRaster<-raster(xmn=1, xmx=4, ymn=1, ymx=4,resolution=1) #create an empty raster 

Database<-data.frame(Xcols=c(1.5, 2.5,3.5, 1.5, 2.5,3.5, 1.5, 2.5,3.5) , 
Ycols= c(1.5, 1.5,1.5, 2.5, 2.5,2.5, 3.5, 3.5,3.5), 
Cols=c("#FFF423","#FFFF14","#FFE20F","#FFF80A","#FFCB07","#FFE100","#FFEE0B","#FDEE0A","#FFE209")) 

Вопрос в том, как я могу передать цвета в третьем столбце базы данных в растре, учитывая координаты, приведенные в колонках 1 и 2 в база данных? К сожалению, растрировать не делает работу

ColorRaster= rasterize(c(Database$Xcols, Database$Ycols), BaseRaster, Database $Cols) 

ответ

1

Предполагая, что BaseRaster вашего растра объект и база данных имеет цвета должны работать:

plot(BaseRaster, col=colorRampPalette(database$color))(255) 

для получения дополнительной информации см plot{raster}

+0

Благодарность Вишала , Я пробовал ваш код, но я получаю следующую ошибку: «нет значений, связанных с этим RasterLayer» – Camilo

+0

Если один заполнить растр, скажем, значением 1 (например: BaseRaster [] = 1), а затем запустите свой код, вы получите следующее error: «Ошибка в col [x]: объект типа« замыкание »не является подмножеством» – Camilo

+0

, это не то, как вы создаете растровый камило. Попытка BaseRaster <- as.raster (матрицу (HCL (0, 80, SEQ (50, 80, 10)), nrow = 4, Ncol = 5)) Дополнительная помощь по растру: https: // stat.ethz.ch/R-manual/R-devel/library/grDevices/html/as.raster.html –