0

ジオリファレンスされたtif ファイルをR の ggplots に追加しようとしているときに、スロットに関する一見奇妙な問題にraster()遭遇しましたcolortable

>>サンプルの tif ファイルを取得<< :

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

最後の 2 行は同じように機能するはずですが、両方ともエラー メッセージが表示されます。

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)ます。

ご協力いただきありがとうございます!

4

1 に答える 1

2

私は今、自分自身で答えを見つけました。からの(完全に明らかではない)出力を読み間違えただけattributes(raster1)です。colortable-slot は、直接 (一次) のラスター オブジェクト インターフェイスの一部ではありませんlegend

attr(raster1, "legend")@colortable

R での参照には、いつも驚かされることがあります。:)

于 2013-10-04T16:34:00.230 に答える