2016-03-03 89 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)然后运行你的代码,错误:“col [x]中的错误:'closure'类型的对象不可子集化” – Camilo

+0

这不是您如何创建栅格Camilo。 尝试BaseRaster < - as.raster(矩阵(HCL(0,80,SEQ(50,80,10)),nrow = 4,NcoI位= 5)) 更多关于光栅帮助: https://开头stat.ethz.ch/R-manual/R-devel/library/grDevices/html/as.raster.html –

相关问题