Esri предоставила инструкции по созданию радиальной карты потока, но я думаю, что изогнутые линии будут создаваться только на большом расстоянии, например, на половине земного шара.
На коротких расстояниях (20 км) геодезическая линия, вероятно, все еще будет выглядеть довольно прямой. Чтобы продолжать использовать этот процесс для радиальной карты потока на короткие расстояния, тогда я подумал, что мы могли бы отредактировать базовые параметры, чтобы земля была меньше, поэтому вы получите хорошую изогнутую линию на небольшом расстоянии. Кто-нибудь знает, как это сделать?
В качестве альтернативы, есть ли в ArcGIS Desktop 10.0 другой инструмент для создания изогнутых линий? У меня есть 90 точек, которые мне нужно соединить до 54 точек, было бы неплохо автоматизировать это, а не рисовать линии вручную.
Ответы:
Вот иллюстрация рабочего процесса, о котором я упоминал в комментарии выше, и хотя я не знаю какой-либо простой предварительно подготовленной процедуры для этого, я приложил электронную таблицу Excel, в которую можно импортировать набор координат отправления-назначения и лист затем создает набор или круговую линию координат (таблица здесь ). У него есть настроенные формулы, поэтому довольно легко импортировать новые координаты OD и расширять формулы, чтобы заполнить результаты, но я более подробно расскажу о логике процесса, а другие могут дать совет, как полностью написать сценарий в ArcMap (или любой другой).
Вкратце, я думаю, что это разумно для визуализации данных OD, в основном по той же причине, по которой популярны большие круговые линии, они обеспечивают более визуальное различие между линиями. Подход, который я предлагаю, также имеет одно преимущество перед большими круговыми линиями в том, что направление потока кодируется в полукруге. В этом другом ответе на сайте я даю более общий обзор методов визуализации для отображения потока, и многие из тех же самых техник могут применяться в дополнение к созданию дуг, подобных этой.
Итак, чтобы детализировать, как рисуют линии, как я предлагаю, по сути, у меня есть только 3 шага для процесса, 1) найти ориентацию потока, 2) найти среднюю точку и расстояние потока, 3) обработать среднюю точку, как центр круга, а затем нарисуйте дугу (полукруг от начала координат до пункта назначения). Чтобы было ясно, я начинаю с установленной пары проецируемых координат начала и координат
(x1,y1)
назначения(x2,y2)
.Итак, 1) найдите ориентацию потока. Один сначала использует формулу,
ATAN((y2 - y1)/(x2 - x1))
а затем в зависимости от направления назначает ориентацию в зависимости от того, является ли направление на восток или запад. Пример псевдокода ниже (я назначаю точки OD, которые находятся в одинаковых координатах с ориентацией нуля). Здесь varaibleor_rad
предназначен для сокращения «ориентации в радианах» иpi
относится к значению pi.2) Найти среднюю точку и расстояние потока. Это очень просто, так как только для одного набора парных координат будет находиться средняя точка в координатах (x, y)
(x1+x2/2,y1+y2/2)
. Итак, давайте определимсяmid_x = (x1 + x2)/2
иmid_y = (y1 + y2)/2
для следующей части. Расстояние с использованием теоремы пифагорея простоdistance = SQRT((x1 - x2)^2 + (y1 - y2)^2)
.3) Затем, учитывая эту информацию, нарисуйте круг с заданным количеством градусов и радиусом (который равен половине расстояния между двумя точками). Например, допустим, мы начинаем с набора пар координат OD в
(1,3):(3,2)
. Ориентация в градусах будет ~ 116 (а в радианах ~ 2), средняя точка x, y будет,(2,2.5)
а расстояние между двумя точками - около 2.2.Допустим, мы хотим нарисовать полукруг около 180 градусов. В псевдо-коде (с использованием переменных, которые я уже определил) итерации будут выглядеть примерно так:
Ниже приведена схема исходных координат, указанных мной выше. Начиная с нуля и заканчивая 180, убедитесь, что существо и конечные точки находятся в одинаковых местах. Настройка цикла на большее количество шагов (более подробная дуга) или меньшее количество (менее подробная дуга) должна быть достаточно очевидной.
Отметим, что другие темы на сайте обсуждают создание линий из точечных данных (см. Тег polyline-creation ). У меня есть пример в прикрепленной электронной таблице xls, и я использовал инструмент Arcmap ET Geo- wizards для преобразования координат электронной таблицы в линии шейп - файла. Дуги в данных примера в прилагаемой электронной таблице впоследствии выглядят следующим образом;
Одним из простых, но потенциально полезных обновлений для этой текущей настройки было бы обновление формул, чтобы учесть предварительно определенное количество эксцентриситета в дуге, хотя я до сих пор не был совершенно уверен, как это сделать в моих нескольких попытках. Я с нетерпением жду предложений и отзывов от сообщества по моему совету.
источник