Присвоить новые значения полигону на основе области перекрытия с другими полигонами - PullRequest
0 голосов
/ 17 января 2020

У меня есть два квадратных многоугольника df1 и df2. Оба полигона имеют значения 10 (df1) и 20 (df2) в столбце «содержимое». Предположим, у меня есть круг со средней точкой 1.5,1.5 и радиусом 1. Как я могу назначить этому кругу новое значение "content", основанное на перекрытии с другими полигонами? Например, одна треть круга перекрывается с df1, а треть круга перекрывается с df2. В этом случае круг затем получит 10 * 1/3 + 20 * 1/3 в качестве значения для "содержимого".

from shapely.geometry import Polygon
import geopandas

polys1 = geopandas.GeoSeries([Polygon([(0,0), (2,0), (2,2), (0,2)])])

polys2 = geopandas.GeoSeries([Polygon([(1,1), (3,1), (3,3), (1,3)])])

df1 = geopandas.GeoDataFrame({'geometry': polys1, 'df1':[1], 'content':[10]})

df2 = geopandas.GeoDataFrame({'geometry': polys2, 'df2':[1], 'content':[20]})

ax = df1.plot(color='red');
df2.plot(ax=ax, color='green', alpha=0.5);

enter image description here

...