我有一个large polygon文件,small polygon文件,还是points文件。我在这里所做的是循环遍历大多边形以查找哪些小多边形相交。然后计算大多边形内每个小多边形的面积。然后我循环遍历小多边形以查找每个多边形中的点统计数据。
我发现了number_of_somethin每个小多边形的价值。问题是如何对number_of_somethin大多边形内的所有小多边形值求和并将结果存储在原始large_polygon文件中作为新列,比方说large_polygon['smth_sum']?
我df_res_2.loc[idx, 'smth'] = number_of_somethin在大多边形内的每个小多边形中得到了 number_of_somethin 值。现在我需要将它们相加large_polygon['smth_sum']
注: FID为大多边形的id,ID为小多边形的id
import geopandas as gpd
small_polygon = gpd.read_file(r'R:\...\small.shp')
large_polygon = gpd.read_file(r'R:\...\large.shp')
points = gpd.read_file(r'R:\...\points.shp')
SmallJoin =gpd.sjoin(small_polygon, large_polygon)[['FID', 'ID', 'someValue','geometry']]
for i in large_polygon.index:
df_i = SmallJoin[SmallJoin['FID'] == i]
# i do something here, f.e. calculate small polgyon area
df_res = gpd.overlay(large_polygon, df_i, how='intersection')
df_res['area'] = round((df_res.apply(lambda row: row.geometry.area, axis=1)), …Run Code Online (Sandbox Code Playgroud)