Я хотел бы взять класс пространственных объектов многоугольника с несколькими неправильными многоугольниками и сделать так, чтобы Arc рисовала параллельные линии внутри каждого многоугольника. В идеале было бы неплохо, чтобы Arc вычислил угол самой длинной стороны многоугольника и провел параллельные линии на этой стороне, но для простоты, я думаю, если бы я мог просто ввести один угол для всех параллельных линий, чтобы было бы проще.
Таким образом, мои основные критерии - это угол линии, ширина между линиями, минимальная / максимальная длина и ширина буфера со стороны многоугольников.
Изображение прикреплено, если это поможет.
arcgis-desktop
arcpy
Tx_Dan
источник
источник
Ответы:
Как упоминает @cndnflyr, это может быть написано в Python.
Интерфейс Script Tool:
Пример вывода:
источник
Это можно сделать с помощью Python, но для его написания потребуется некоторое время.
Я думаю, что самый быстрый способ реализовать это без Python - это иметь шаблонный файл SHP этих параллельных линий. Имейте несколько, если вам нужна переменная ширина, и просто используйте соответствующую для этого полигона. Сделайте так, чтобы линии шаблона занимали достаточно места, чтобы покрыть самый большой полигон, с которым вы столкнетесь.
Шаги с 3 по 7 могут быть смоделированы, без необходимости написания кода.
Почти тот же процесс может быть использован для его кодирования, но вместо шаблонных линий можно сделать так, чтобы код рисовал линии под прямым углом, на расстоянии друг от друга и т. Д. Я некоторое время этого не делал, но я думаю, что Библиотека Python вроде shapely поможет. Просто убедитесь, что он охватывает большую область, чем полигон, и используйте инструменты для автоматического преобразования в ломаную линию, буферизации, удаления, выделения линий, не входящих в полигон, и удаления их.
источник