Shapely определяет полигон как недопустимый, если пересекаются какие-либо его сегменты, включая коллинеарные. Многие программные пакеты создают область или область с "вырезом", как показано здесь, который имеет коллинеарные сегменты:
>>> pp = Polygon([(0,0), (0,3), (3,3), (3,0), (2,0),
(2,2), (1,2), (1,1), (2,1), (2,0), (0,0)])
>>> pp.is_valid
WARNING:shapely.geos:Self-intersection at or near point 2 0
False
Естественно, вырез может быть реализован изначально в Shapely, или эта же геометрия может быть реализована в виде двух допустимых многоугольников, но если у меня есть только список точек, показанный выше, легко ли это "исправить" (создайте правильную геометрию из этого список точек)?