У меня есть два шейп-файла на Python, и я хотел бы найти площадь всех пространств, которые они перекрывают.
Я могу использовать sjoin из геопанд, чтобы получить области, в которых они соединяются, но для мест, где есть несколько перекрытий, я хотел бы оставить только одно с наибольшей площадью.
municipality = gpd.read_file(muni_file)
soil_type = gpp.read_file(soil)
combined = gpd.sjoin(municipality,soil_type,how="left",op="intersects")
С помощью OGR я могу получить площадь многоугольника, как показано ниже.
from osgeo import ogr
wkt = "POLYGON ((1162440.5712740074 672081.4332727483, 1162440.5712740074 647105.5431482664, 1195279.2416228633 647105.5431482664, 1195279.2416228633 672081.4332727483, 1162440.5712740074 672081.4332727483))"
poly = ogr.CreateGeometryFromWkt(wkt)
Поэтому мне интересно, есть ли способ взять мой объединенный шейп-файл и получить область, где они пересекаются, чтобы я оставил только максимальное значение для каждого муниципалитета.