【问题标题】:R - Slot unreachable?R - 无法访问插槽?
【发布时间】:2013-10-11 17:41:03
【问题描述】:

当我尝试将 georeferenced tif-files 添加到我在 R 中的 ggplots 中时,我遇到了一个看似奇怪的 槽问题:使用 @ 加载光栅文件后987654322@我无法到达它的colortable-slot:

>>Grab the example tif-file<<:

raster1 <- raster(paste(workingDir, "/HUEK200_Durchlaessigkeit001_proj001.tif", sep="", collapse=""))
raster1@colortable  #or
slot(raster1, "colortable")

最后两行应该同样工作,但都会导致错误消息:

Error in slot(raster1, "colortable") : 
  no slot of name "colortable" for this object of class "RasterLayer"

这令人困惑,因为通过attributes(raster1) 对属性的一瞥清楚地列出了该插槽:

Slot "colortable":
  [1] "#FFFFFF" "#000000" "#B49ED7" "#9B7DCF" "#9EAAD7" "#B2BEEB" "#B4EBB4"
  [8] "#F5E1B5" "#CCB792" "#B9A08C" "#0070FF" "#0000C8" "#F8F8F8" "#DBF5FF"
 [15] "#B14D00" "#000000" "#000000" "#000000" "#000000" "#000000" "#000000"
 [22] "#000000" "#000000" "#000000" "#000000" "#000000" "#000000" "#000000"
 [29] "#000000" "#000000" "#000000" "#000000" "#000000" "#000000" "#000000"
 [36] "#000000" "#000000" "#000000" "#000000" "#000000" "#000000" "#000000"
 [43] "#000000" "#000000" "#000000" "#000000" "#000000" "#000000" "#000000"
 [50] "#000000" "#000000" "#000000" "#000000" "#000000" "#000000" "#000000"
 [57] "#000000" "#000000" "#000000" "#000000" "#000000" "#000000" "#000000"
 [64] "#000000" "#000000" "#000000" "#000000" "#000000" "#000000" "#000000"
 [71] "#000000" "#000000" "#000000" "#000000" "#000000" "#000000" "#000000"
 [78] "#000000" "#000000" "#000000" "#000000" "#000000" "#000000" "#000000"
 [85] "#000000" "#000000" "#000000" "#000000" "#000000" "#000000" "#000000"
 [92] "#000000" "#000000" "#000000" "#000000" "#000000" "#000000" "#000000"
 [99] "#000000" "#000000" "#000000" "#000000" "#000000" "#000000" "#000000"
[106] "#000000" "#000000" "#000000" "#000000" "#000000" "#000000" "#000000"
[113] "#000000" "#000000" "#000000" "#000000" "#000000" "#000000" "#000000"
[120] "#000000" "#000000" "#000000" "#000000" "#000000" "#000000" "#000000"
[127] "#000000" "#000000" "#000000" "#000000" "#000000" "#000000" "#000000"
[134] "#000000" "#000000" "#000000" "#000000" "#000000" "#000000" "#000000"
[141] "#000000" "#000000" "#000000" "#000000" "#000000" "#000000" "#000000"
[148] "#000000" "#000000" "#000000" "#000000" "#000000" "#000000" "#000000"
[155] "#000000" "#000000" "#000000" "#000000" "#000000" "#000000" "#000000"
[162] "#000000" "#000000" "#000000" "#000000" "#000000" "#000000" "#000000"
[169] "#000000" "#000000" "#000000" "#000000" "#000000" "#000000" "#000000"
[176] "#000000" "#000000" "#000000" "#000000" "#000000" "#000000" "#000000"
[183] "#000000" "#000000" "#000000" "#000000" "#000000" "#000000" "#000000"
[190] "#000000" "#000000" "#000000" "#000000" "#000000" "#000000" "#000000"
[197] "#000000" "#000000" "#000000" "#000000" "#000000" "#000000" "#000000"
[204] "#000000" "#000000" "#000000" "#000000" "#000000" "#000000" "#000000"
[211] "#000000" "#000000" "#000000" "#000000" "#000000" "#000000" "#000000"
[218] "#000000" "#000000" "#000000" "#000000" "#000000" "#000000" "#000000"
[225] "#000000" "#000000" "#000000" "#000000" "#000000" "#000000" "#000000"
[232] "#000000" "#000000" "#000000" "#000000" "#000000" "#000000" "#000000"
[239] "#000000" "#000000" "#000000" "#000000" "#000000" "#000000" "#000000"
[246] "#000000" "#000000" "#000000" "#000000" "#000000" "#000000" "#000000"
[253] "#000000" "#000000" "#000000" "#000000"

首先是我做错了什么还是可能是一个错误?我怎样才能最终访问颜色表?我通过调用plot(raster1) 知道它应该可以工作,因为该图显示了正确的颜色集。此外:通常,在管理空间多边形对象时,S4object@someslot-方法对我来说效果很好。

编辑: 在colortable 旁边尝试访问attributes(raster1) 的其他插槽列表时会出现相同的错误。

感谢您的帮助!

【问题讨论】:

    标签: r colors raster slot


    【解决方案1】:

    我现在自己找到了答案。我只是误读了attributes(raster1) 的(不完全明显的)输出。 colortable-slot 不是直接(一阶)光栅对象接口的一部分,如果你可以在 R 中这样称呼它的话。而是在legend 中列出,如下所示:

    attr(raster1, "legend")@colortable
    

    R 中的引用总是让我感到惊讶! :)

    【讨论】:

    • 自己找路的好工作!你很快就会成为专家 :-) ;同时看看 Josh 的替代语法(语法?)
    • @CarlWitthoft Synti?也许辛塔?
    • 是的,这与我之前的 Josh O'Brien postet 的解决方案相同。似乎,stackoverflow 并不总是“安全的”:P
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-17
    • 1970-01-01
    • 2020-07-21
    • 2019-02-20
    • 2023-02-03
    • 1970-01-01
    • 2019-07-08
    相关资源
    最近更新 更多