Я работал над реализацией сценария voronoi.py (перевод Биллом Саймоном кода Стива Фортуны). Согласно ссылке QGIS, это в основном тот же код, с которым я работаю, но способ генерирования полигонов, которые могут простираться до бесконечности, отличается между ними. В случае QGIS я предполагаю, что некоторый ограничивающий прямоугольник генерируется в некоторой степени за пределами точек сайта. В моем случае я создаю ложные точки сайта в виде круга вокруг точек интереса сайта. Точки окружности имеют радиус, в два раза превышающий диаметр точки узла. Результаты между ними показаны на прилагаемом рисунке, реализация QGIS слева и моя реализация справа. ,
Как можно видеть, реализация QGIS создает странные полигоны, которые не имеют точек сайта (см. Сайт 473 в качестве примера в обеих реализациях). Это очевидно неправильно, но я не уверен, правильна ли моя реализация. Поскольку у меня нет доступа к лицензии ArcInfo для ArcMap, я не могу сравнить ее с тем, что ArcMap генерирует изначально, и я не могу найти способ присоединить шейп-файл точки сайта для тестирования. Поэтому, если у кого-нибудь есть какие-либо комментарии по поводу моего использования «бесконечного круга», чтобы помочь привести граничные полигоны к «бесконечному прямоугольнику», я был бы признателен. Более того, если кто-то заинтересован в тестировании выходных данных на другой платформе ГИС, я могу предоставить шейп-файл точек сайта, которые я использовал.
Похоже, что проблема заключается в том, что многоугольники за пределами точек сайта перекрываются, поэтому, когда они обозначены символом без заливки, они отображаются как отдельные многоугольники. На следующем рисунке показано, что происходит, когда выбран полигон вокруг сайтов 473 и 415. Таким образом, оригинальные вопросы остаются, но есть новая морщина.
Это ошибка (или «неполнота»), правильные результаты в QGIS, если используется буфер 0%. Что еще необходимо решить, так это то, даст ли плотный узор круглых «точек бесконечности» тот же результат, что и прямоугольных «ребер бесконечности».