私は単純なラスターを持っています(Rパッケージで作成された:ラスター)。関数 "rasterToPolygons" を使用して、値 "1" を含むすべてのラスター セルのポリゴンを取得します。
library(raster)
dat = list()
dat$x = seq(1.5, by = 10, len = 10)
dat$y = seq(3.5, by = 10, len = 15)
dat$z = matrix(sample(c(0,1), size = 10*15, replace = T), 10, 15)
r=raster(dat);plot(r)
r_poly = rasterToPolygons(r, fun = function(r) {r == 1}, dissolve = F)
plot(r_poly, add = T)
すべてのポリゴンが 1 つの大きなポリゴンにマージされるのを避けるために、「dissolve = T」は使用しません。代わりに、エッジまたはポイントを共有するすべてのポリゴンが結合された新しい SpatialPolygonsDataFrame を取得したいと考えています。明確に分離されたポリゴンは、個々のポリゴンとして識別できる必要があります。新しい SpatialPolygonsDataFrame に基づいて、結合されたポリゴンのサイズを次のように分析したいと思います。
b = extract(r,r_poly_new) # "r_poly_new" contains the combined polygons
str(b) # list of clearly separated polygons
tab = lapply(b,table)
tab
私の質問は 2 つあります。1) エッジまたはポイントを共有するポリゴンを結合する方法は? 2) 結合されたポリゴンの領域を分析できる形式にこの情報を取得する方法は? フィードバックをお寄せいただきありがとうございます。