И вопрос 2.
Есть бинарные маски
После я их превращаю в полигон.
С помощью gdal. Ну python api использую.
Но надо бы как то более точно аппроксимировать. И да делать это белее квадратишь.
Как лучше?
1. В полигон из бинарной маски вписывать многоугольник с прямыми углами и настроенной длиной сторон. В зависимости от требований к данным, может быть необходима небольшая буферизация. Готовых библиотек для такой задачи не помню, но алгоритм можно реализовать самому.
2. Обходить циклом все углы и сравнивать их с медианным значением угла (отдельно по внутренним и внешним углам). Те, что меньше медианы - выравнивать, те, что больше - достраивать до 90 градусов. Скорее всего потребует больших ресурсов, либо упрощения геометрии.
Главная проблема таких выравниваний не в получении ровного домика, а в том, что домики стоят криво относительно друг друга (OSM во многих местах тому хороший пример). Можно их выравнивать автоматически, но это не тривиальная задача, особенно для населенных пунктов с перепадом высот/исторической застройкой.