Итак, сначала у вас есть MultiPolygon вашей страны, а затем ваши полигоны:
from shapely.ops import split
from shapely.geometry import Point, LineString, Polygon, MultiPolygon
#Somewhere you get your country and your line vars
collection_of_polygons = split(country,line)
Затем вы создаете многоугольник исходной границы ваших стран MutliPolygon и выполняете такое же разбиение с помощью линии:
bounds = country.bounds
p1 = Point(bounds[0],bounds[-1])
p2 = Point(bounds[0],bounds[1])
p3 = Point(bounds[-2],bounds[1])
p4 = Point(bounds[-2],bounds[-1])
point_list = [p1, p2, p3, p4, p1]
bounds_poly = Polygon(point_list)
boundaries = shapely.ops.split(bounds_poly,line)
Составьте два списка и выполните итерации по полигонам разделенной страны, чтобы проверить, находятся ли они в пределах первого полигона от полигона разделения границ:
group1, group2 = [],[]
for x in collection_of_polygons:
if x.within(boundaries[0]):
group1.append(x)
else:
group2.append(x)
Наконец, назначьте два списка двум двум разные мультиполигоны:
group_multi1 = MultiPolygon(group1)
group_multi2 = MultiPolygon(group2)