2013-10-04 33 views
0

当我试图添加地理参考TIF-文件我的R中ggplots,我曾经遇到过一个看似怪异问题插槽:加载使用raster()光栅文件后,我无法达到其colortable -Slot:R - 插槽无法访问?

>>Grab the example tif-file<<

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

最后两行shoudl效果一样,但无论是在错误信息导致:

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" 

难道我是谁做错事摆在首位,或者可以说,它是一个错误吗?我怎样才能最终访问colortable?我知道从调用plot(raster1)它应该工作,因为剧情显示正确的颜色集。此外:通常,在管理空间多边形对象时,[email protected] -approach对我来说工作得很好。

编辑: 除colortable之外,当尝试访问attributes(raster1)的其他插槽时出现相同的错误。

感谢您的帮助!

回答

2

我现在已经找到了答案。我只是误解了attributes(raster1)的输出(不是完全明显的)。所述colortable -Slot不是直接的(第一顺序)的一部分光栅对象的接口,如果可以称之为liek在R.相反,它是在legend列出如下所示:R中

attr(raster1, "legend")@colortable 

参考总是倾向于让我感到惊讶! :)

+0

那么约什在2分钟前说了什么?! :-) +1为自学。 –

+0

良好的工作你自己找到方法!你很快就会成为专家:-);同时看看Josh的替代语法(syntaces?) –

+0

@CarlWitthoft Synti? Pehaps Synta? –