I have a large polygon (A) with a specific area. I also have another polygon (B) with area less than polygon A.
I want to buffer the polygon B so that its area becomes equal to the area of A.
from shapely.geometry import Polygon
ulx,uly= -105.645292, 28.094511
lrx, lry = -101.985052, 24.885167
poly_A = Polygon([(ulx,uly),(ulx,lry),(lrx,lry),(lrx,uly)])
print (poly_A.area)
ulx,uly= -110.398408, 58.136267
lrx, lry = -108.689382, 57.137692
poly_B = Polygon([(ulx,uly),(ulx,lry),(lrx,lry),(lrx,uly)])
print (poly_B.area)
buffer_size = (poly_A.area - poly_B.area) / poly_B.length
print (buffer_size)
poly_C = poly_B.buffer(buffer_size)
print (poly_C.area)
After knowing buffer_size
, I can get bufferred polygon C with area equals to polygon A.
Note. All polygons dealt are rectangles
.
Both polygons are in latlon
coordinates