Skip to content
Back to formatted view

Raw Message

Message-ID: <SA1PR15MB63976FD364A4C3AD2A58D8A5B0512@SA1PR15MB6397.namprd15.prod.outlook.com>
Date: 2024-02-19T10:04:49Z
From: Xiang Ye
Subject: How to create inward (shrinking) buffer zones with st_buffer()

Dear community,

I am learning some basic geometry operation functions of sf package including st_buffer().

It seems there should be no wonder if I provide a negative value to the dist argument in st_buffer(), I should expect an inward/shrinking buffer zone (I also followed here: https://gis.stackexchange.com/questions/392505/can-i-use-r-to-do-a-buffer-inside-polygons-shrink-polygons-negative-buffer). However, it turn out to be as long as I provide a negative value, the output will be an empty geometry:

library(sf)
library(spDataLarge)
st_geometry(bristol_zones[1, ]) -> a    # a is the exemplary data set

> a
Geometry set for 1 feature
Geometry type: MULTIPOLYGON
Dimension:     XY
Bounding box:  xmin: -2.534502 ymin: 51.40487 xmax: -2.488435 ymax: 51.43478
Geodetic CRS:  WGS 84
MULTIPOLYGON (((-2.510462 51.42878, -2.507985 5...
> st_buffer(a, 100)
Geometry set for 1 feature
Geometry type: POLYGON
Dimension:     XY
Bounding box:  xmin: -2.536248 ymin: 51.40393 xmax: -2.486907 ymax: 51.43598
Geodetic CRS:  WGS 84
POLYGON ((-2.517834 51.43188, -2.518218 51.4318...
> st_buffer(a, -100)
Geometry set for 1 feature  (with 1 geometry empty)
Geometry type: POLYGON
Dimension:     XY
Bounding box:  xmin: NA ymin: NA xmax: NA ymax: NA
Geodetic CRS:  WGS 84
POLYGON EMPTY

So I would like to know if it is possible to create inward buffer zones with st_buffer()? If st_buffer() is not designed to perform this, what is the best alternative?

Thank you, and have a great start of the week!

叶翔 YE, Xiang
THINKING SPATIALLY<http://www.linkedin.com/in/spatialyexiang>.
Ph.D. in Spatial Statistics

	[[alternative HTML version deleted]]