湖の大きな SpatialPixelsDataFrame である cr1 というオブジェクトがあります。ファイルへのリンクは次のとおりです: https://www.dropbox.com/s/uuvlmxmri144hp2/macrosmall.rdata?dl=0
各ピクセルのセル サイズは 1m x 1m だと思いますが、この属性はどこにも指定されていないと思います。「マクロ」は、湖に沈んだ大型植物の測定された高さです。構造はこんな感じ。
Formal class 'SpatialPixelsDataFrame' [package "sp"] with 7 slots
..@ data :'data.frame': 252234 obs. of 1 variable:
.. ..$ macro: num [1:252234] 0.0468 0.0518 0.0445 0.046 0.0477 ...
..@ coords.nrs : num(0)
..@ grid :Formal class 'GridTopology' [package "sp"] with 3 slots
.. .. ..@ cellcentre.offset: Named num [1:2] 3404494 5872334
.. .. .. ..- attr(*, "names")= chr [1:2] "x" "y"
.. .. ..@ cellsize : Named num [1:2] 1 1
.. .. .. ..- attr(*, "names")= chr [1:2] "x" "y"
.. .. ..@ cells.dim : Named int [1:2] 776 536
.. .. .. ..- attr(*, "names")= chr [1:2] "x" "y"
..@ grid.index : int [1:252234] 415333 415334 415335 415336 415337 415338
415339 414554 414555 414556 ...
..@ coords : num [1:252234, 1:2] 3404666 3404667 3404668 3404669 3404670 ...
.. ..- attr(*, "dimnames")=List of 2
.. .. ..$ : chr [1:252234] "949" "950" "951" "952" ...
.. .. ..$ : chr [1:2] "x" "y"
..@ bbox : num [1:2, 1:2] 3404493 5872333 3405269 5872869
.. ..- attr(*, "dimnames")=List of 2
.. .. ..$ : chr [1:2] "x" "y"
.. .. ..$ : chr [1:2] "min" "max"
..@ proj4string:Formal class 'CRS' [package "sp"] with 1 slot
.. .. ..@ projargs: chr NA
特定の大型植物の高さの間隔で覆われている面積(つまり、「マクロ」の間隔で覆われている面積)を計算したいと思います。
各セルの解像度またはサイズ (=1m x 1m) を指定するにはどうすればよいですか? SpatialPixelsDataFrame の面積推定を処理するパッケージと関数はどれですか?
私は実際にこれまでマップをロードしただけです
library(sp)
library(raster)
load("macrosmall.rdata")
いくつかのことを試しました:
area(cr1)
これは私が望むものとそれを計算する方法の例ですが、データフレームの仕様では許可されていません
intervals <- list(c(0.1,0.2),
c(0.2,0.3),
c(0.3,0.4))
sapply(intervals, function(x) {
sum(cr1[] > x[1] & cr1s[] <= x[2])
})
しかし、私は基本的に常に同じ警告メッセージで終わります
警告メッセージ: In .local(x, ...) : この関数は、経度/緯度座標を持つ Raster* オブジェクトにのみ役立ちます
問題の地域は非常に小さい (25 ヘクタール) ことにご注意ください。
誰かが私を正しい方向に押し進めることができますか?