R - Слот недоступен?

Когда я пытаюсь добавить tif-файлы с географической привязкой к своим ggplots в R, я столкнулся с кажущейся странной проблемой со слотами: после загрузки растрового файла с помощью raster() я могу ' t достигает своего colortable-слота:

>> Возьмите пример tif-файла ‹<:

raster1 <- raster(paste(workingDir, "/HUEK200_Durchlaessigkeit001_proj001.tif", sep="", collapse=""))
raster1@colortable  #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"

Это я вообще делаю что-то не так, или это может быть ошибка? И как мне наконец получить доступ к раскрашиванию? Из звонка plot(raster1) я знаю, что это должно работать, потому что график отображает правильный набор цветов. Более того: Обычно S4object@someslot-подход отлично работает для меня при управлении пространственными полигональными объектами.

РЕДАКТИРОВАТЬ: рядом с colortable такая же ошибка появляется при попытке доступа к спискам других слотов attributes(raster1).

Спасибо за вашу помощь!


person Florian R. Klein    schedule 04.10.2013    source источник


Ответы (1)


Я сам нашел ответ. Я просто неправильно прочитал (не совсем очевидный) вывод attributes(raster1). colortable-слот не является частью прямого (первого порядка) интерфейса растрового объекта, если вы можете назвать его таковым в R. Скорее он указан в legend следующим образом:

attr(raster1, "legend")@colortable

Ссылки в R меня всегда удивляют! :)

person Florian R. Klein    schedule 04.10.2013
comment
Хорошая работа, найти свой путь самостоятельно! Скоро станешь экспертом :-); А пока взгляните на альтернативные синтаксисы Джоша (синтаксисы?) - person Carl Witthoft; 04.10.2013
comment
@CarlWitthoft Synti? Pehaps Synta? - person Simon O'Hanlon; 04.10.2013
comment
Да, это то же самое решение, что и Джош О'Брайен постет прямо передо мной. Кажется, stackoverflow не всегда безопасен: P - person Florian R. Klein; 04.10.2013