Equal-area buffering for polygon using GeoPandas
最近要做一个等面积Buffer(大概就像上面那个图,红色部分是紫色部分的缓冲区,要求紫色和红色部分面积相同),以为肯定是有这个工具的,没想到搜了很久都没搜到;
后来就不浪费时间在搜索上了(如果有这个工具请大神指教),自己去了解了一下GeoPandas这个基于Python的包,写了个循环,用穷举法无限逼近,找到了合适的Buffer宽度;
之前做的方法是手动设置端点值,容易出bug,最近重新更新了一下代码,运算更快一点,而且也不会出问题了。
具体操作如下:
导入需要的包
import matplotlib.pyplot as plt
import geopandas as gpd
import numpy as np
导入矢量数据,检查面积
在这里有一点要注意一下,shapefile一定要有投影坐标的,我这里的投影坐标单位是米,所以我在后续操作面积的时候都除以了1000000,把单位变成平方千米,为了方便看;另外,我的投影坐标是用QGIS去定义的,因为之前