【问题标题】:How to transfer specific colors to a raster in r如何将特定颜色传输到r中的栅格
【发布时间】:2016-03-03 04:33:59
【问题描述】:

我想知道是否可以将特定颜色分配给 r 中栅格的单元格。

我知道“raster”包中的“rasterize”允许在给定值的坐标下将值传输到栅格。但是,我想知道是否可以只将颜色转移到单元格的特定位置?

简而言之,我有一个给定的栅格和一个包含三列(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)

【问题讨论】:

    标签: r raster rasterize


    【解决方案1】:

    假设 BaseRaster 是您的栅格对象,并且数据库具有以下颜色应该可以工作:

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

    更多信息请参考 plot{raster}

    【讨论】:

    • 谢谢维沙尔。我尝试了您的代码,但出现以下错误:“没有与此 RasterLayer 关联的值”
    • 如果使用值 1 填充栅格(例如:BaseRaster[]=1)然后运行您的代码,则会收到以下错误:“Col[x] 中的错误:对象类型“闭包”不是子集”
    • 这不是您创建光栅 Camilo 的方式。试试 BaseRaster stat.ethz.ch/R-manual/R-devel/library/grDevices/html/…
    猜你喜欢
    • 2017-12-17
    • 1970-01-01
    • 2018-05-15
    • 2017-07-17
    • 2015-06-06
    • 1970-01-01
    • 2019-01-23
    • 1970-01-01
    • 2018-06-15
    相关资源
    最近更新 更多