[R-sig-Geo] st_intersection produce Geometry type: GEOMETRY instead of Geometry type: POLYGON

Bede-Fazekas Ákos b|@|ev||@t @end|ng |rom gm@||@com
Fri Feb 10 18:53:01 CET 2023


Dear Manuel,

technically, the result of st_intersection(x, y), where both x and y are 
POLYGONs, can be POINT, LINESTRING, POLGYON and GEOMETRY as well. The 
result is GEOMETRY if the type of the different features is not the same 
(e.g. POLYGON+POINT).
You can subset the result in this way:
g_25000_c_polygons_only <- g_25000_c[st_is(x = g_25000_c, type = "POLYGON")]

HTH,
Ákos
___________
Ákos Bede-Fazekas
Centre for Ecological Research, Hungary

2023.02.10. 18:32 keltezéssel, Manuel Spínola írta:
> Dear list members,
>
> I am trying to "crop" a polygon (grid) with a polygon, but the result is an
> sf object Geometry type: GEOMETRY, instead of an sf object Geometry type:
> POLYGON.
>
> How can I obtain an sf POLYGON?
>
> nc = st_read(system.file("shape/nc.shp", package="sf"))
>
>
>
> nc <- st_transform(nc, 3857)
>
>
>
> g_50000 <- st_make_grid(nc, cellsize = 50000) |> st_as_sf()
>
>
>
> g_50000 <- g_50000[nc, ]
>
>
>
> g_50000_d <- st_union(g_50000)
>
>
>
> g_25000 = st_make_grid(g_50000_d, cellsize = 25000) |> st_as_sf()
>
>
>
> g_25000 # Geometry type: POLYGON
>
>
>
> g_25000_c <- st_intersection(g_25000, g_50000_d)
>
>
>
> g_25000_c # Geometry type: GEOMETRY
>
>
>
>



More information about the R-sig-Geo mailing list