Ich habe eine ähnliche Einrichtung wie in this question. In meinem Fall habe ich aber bekam eine sf
data.frame, die eine Mischung aus verschiedenen Geometrietypen enthält, einige POLYGON
s, einige GEOMETRYCOLLECTION
s etwa so:Behalten Sie nur zweidimensionale Komponenten in sf data.frame
a <- st_polygon(list(cbind(c(0,0,7.5,7.5,0),c(0,-1,-1,0,0))))
b <- st_polygon(list(cbind(c(0,1,2,3,4,5,6,7,7,0),c(1,0,.5,0,0,0.5,-0.5,-0.5,1,1))))
i <- st_intersection(a,b)
a1 <- st_sf(a=1, geom = st_sfc(i))
a2 <- st_sf(a=2, geom = st_sfc(a))
ii <- rbind(a1, a2)
Wie in der Frage oben Bezug genommen wurde, was ich möchte nur die Teile der GEOMETRYCOLLECTION
beibehalten, die zweidimensional sind, da ich mich letztendlich für die Bereiche dieser Geometrien interessiere und st_area()
nicht auf GEOMETRYCOLLECTION
s funktionieren wird.
Im Fall von gemischten Geometrien, die Antwort jedoch
st_cast(ii)[which(st_is(st_cast(ii), c("POLYGON", "MULTIPOLYGON"))),]
funktioniert nicht wie die st_cast()
verlässt die unberührte GEOMETRYCOLLECTION
gegeben.
Ist 'st_collection_extract()' neu in 0.5.5? Wenn das so war, war das mein Problem. – RoyalTS
ja, es ist neu in 0.5-5 –