Расчет расстояния и пеленга: геопространственный анализ LuckyTemplates

Цель этого руководства — обсудить, как рассчитать расстояние и азимут в LuckyTemplates и как их эффективно использовать для геопространственного анализа .

Вы можете найти множество расчетов расстояния в Интернете. Для этой демонстрации я буду использовать упрощенный пример решения, которое мне нужно было построить для одного из моих проектов сети цепочки поставок.

Расчет расстояния и пеленга: геопространственный анализ LuckyTemplates

Я также покажу расчет расстояния по прямой линии от склада доставки до пунктов обслуживания.

Здесь у меня есть слайсер для выбора расстояния с использованием меры DAX . Это позволяет динамически анализировать клиентов, потоки, вес, доход и любые другие значения в пределах выбранного расстояния.

Расчет расстояния и пеленга: геопространственный анализ LuckyTemplates

Вычисление расстояния по большому кругу, также известное как формула Хаверсина , является основной мерой этого руководства. Если вы освоите эту технику, вы сможете выполнить расчет любого требуемого расстояния и азимута.  

Расчет расстояния и пеленга: геопространственный анализ LuckyTemplates

Хотя я предпочитаю выполнять большинство вычислений в Power Query, необходимо использовать меру DAX, когда вам нужно динамически анализировать данные на основе выбираемого расстояния.

Если возможно, фактическое расстояние может быть предпочтительным вариантом. Однако во многих случаях вам это не понадобится, так как расстояния по прямой будет достаточно. 

Google или Bing API можно использовать для добавления расстояния в Power Query как для фактического, так и для прямого расстояния. Рекомендуется иметь больше инструментов в вашем наборе геопространственных инструментов. Однако в этом руководстве не будет обсуждаться применение API к LuckyTemplates. 

Оглавление

Понимание сценария

Меня попросили помочь с привязкой ближайших к бизнесу посылочных автоматов по домашнему адресу сервисных инженеров.

Сервисные инженеры работали в заранее определенных рабочих зонах, которые со временем могли меняться, и начинали эту работу из дома.

Ночью произошло пополнение срочных запчастей в посылочные автоматы. На следующее утро инженер собирал запчасти из почтового ящика по дороге на работу. 

Обычно для такого анализа я использую программное обеспечение ГИС (географическая информационная система). Но теперь я попытаюсь сделать это с помощью LuckyTemplates, чтобы получить модель динамического распределения. Я также использовал как расстояние по прямой, так и расчет пеленга. 

В  ГИС угол азимута используется для навигации или направления. В этом примере я добавил азимут , преобразованный в направление ( Ориентация ), потому что само по себе расстояние не дает полного решения. 

Расчет расстояния и пеленга: геопространственный анализ LuckyTemplates

Ближайший посылочный автомат может располагаться в противоположном направлении от рабочей зоны. Итак, я также хотел показать направление.

Это позволяет ограничить выбор для распределения шкафчиков на основе соответствующих географических заголовков с рабочей областью. 

Например, рабочая зона находится к северу от его дома. Таким образом, предпочтительное местонахождение почтового ящика должно быть в том же направлении. 

Анализ набора данных расстояния и азимута

В этом упрощенном примере набор данных включает адреса в Нидерландах и места расположения бесплатных посылочных автоматов.

Расчет расстояния и пеленга: геопространственный анализ LuckyTemplates

Он содержит столбцы для Широты и Долготы (от и до ) , Депо , Имя , Стоимость запчастей и Спрос .

Расчет расстояния и пеленга: геопространственный анализ LuckyTemplates

Рядом с исходной таблицей находятся вычисляемые столбцы и расчеты расстояний в Excel. Сначала я вычислил радианы.

Расчет расстояния и пеленга: геопространственный анализ LuckyTemplates

Затем я создал фактические расчеты расстояния как для миль, так и для километров, используя радианы и формулу гаверсина

Расчет расстояния и пеленга: геопространственный анализ LuckyTemplates

Расчет расстояния и азимута: создание демонстрационных данных

Расчеты пеленга первоначально приводят к десятичному числу в градусах. Итак, мне нужно преобразовать это во что-то более практичное.

Я создал столбец таблицы с градусами от 1 до 360. Я также добавил столбец для направлений по компасу.

Расчет расстояния и пеленга: геопространственный анализ LuckyTemplates

Кроме того, я добавил столбец SORT для сортировки направлений по часовой стрелке в LuckyTemplates.

Расчет расстояния и пеленга: геопространственный анализ LuckyTemplates

После этого я загрузил набор данных sourceNL и таблицу Orientation в Power Query.

Расчет расстояния и пеленга: геопространственный анализ LuckyTemplates

Давайте взглянем на исходную таблицу NL .

Добавление столбцов

Во-первых, я добавил столбец Index . Всякий раз, когда я делаю преобразования в редакторе, я добавляю столбец индекса либо для справки, либо для сортировки.

Расчет расстояния и пеленга: геопространственный анализ LuckyTemplates

Затем я округлил широту и долготу до 4 цифр , что важно для больших наборов данных. Сделав это, он вернет точность 11 метров , чего все еще достаточно.

Расчет расстояния и пеленга: геопространственный анализ LuckyTemplates

Ради этого примера я добавил каждый шаг в отдельный вычисляемый столбец, чтобы показать карту. Я вычислил значения широты и долготы в радианах точно так же, как в Excel.

Расчет расстояния и пеленга: геопространственный анализ LuckyTemplates

Расчет расстояния и пеленга: геопространственный анализ LuckyTemplates

Расчет расстояния и пеленга: геопространственный анализ LuckyTemplates

Расчет расстояния и пеленга: геопространственный анализ LuckyTemplates

Затем я применил формулу Хаверсина для расчета расстояний как в милях, так и в километрах.

Расчет расстояния и пеленга: геопространственный анализ LuckyTemplates

Расчет расстояния и пеленга: геопространственный анализ LuckyTemplates

Подшипник и ориентация

Для подшипника расчет по другой формуле, которую я взял из сети. Я просто немного подправил его, чтобы он соответствовал моим целям для этого сценария

Расчет расстояния и пеленга: геопространственный анализ LuckyTemplates

Первоначально этот расчет производится в радианах. Это совершенно бесполезно. Итак, мне нужно преобразовать его.

Это предварительный шаг подшипника . Это для преобразования радианов в следующий шаг моего расчета.  

Расчет расстояния и пеленга: геопространственный анализ LuckyTemplates

Расчет расстояния и пеленга: геопространственный анализ LuckyTemplates

Для следующего шага я изменил отрицательные числа и скорректировал их, применив этот расчет.

Расчет расстояния и пеленга: геопространственный анализ LuckyTemplates

Расчет расстояния и пеленга: геопространственный анализ LuckyTemplates

После этого я округлил Пеленг, чтобы получить целое число.

Расчет расстояния и пеленга: геопространственный анализ LuckyTemplates

Расчет расстояния и пеленга: геопространственный анализ LuckyTemplates

Я удалил столбцы Bearing (rad) , Bearing pre и Bearing . Затем я переименовал колонку Naar boven afronden в Bearing Roundup .

Расчет расстояния и пеленга: геопространственный анализ LuckyTemplates

Расчет расстояния и пеленга: геопространственный анализ LuckyTemplates

Теперь я могу объединить столбец Bearing Roundup в этой таблице со столбцом BEARING из таблицы Orientation .

Расчет расстояния и пеленга: геопространственный анализ LuckyTemplates

Расчет расстояния и пеленга: геопространственный анализ LuckyTemplates

Сделав это, я смогу получить направление.

Теперь у меня есть столбцы пеленга ( Bearing Roundup ) и направления ( Orientation_Direction ), которые я буду использовать для следующей модели.

Расчет расстояния и пеленга: геопространственный анализ LuckyTemplates

Вот результат в Power Query.

Расчет расстояния и пеленга: геопространственный анализ LuckyTemplates

Скрипт R для расчета расстояния и азимута

Для этого я буду использовать решение со скриптом R. Это набор данных с рассчитанными расстояниями в милях и километрах.

Расчет расстояния и пеленга: геопространственный анализ LuckyTemplates

Я запускаю этот R-скрипт , который намного короче и чище, чем формулы.

Расчет расстояния и пеленга: геопространственный анализ LuckyTemplates

После запуска сценария R у меня теперь есть 3 таблицы.

Расчет расстояния и пеленга: геопространственный анализ LuckyTemplates

Вот результат. Я тоже округлил.

Расчет расстояния и пеленга: геопространственный анализ LuckyTemplates

Как видите, результаты расчета R-скрипта и расчета Excel аналогичны. 

Расчет расстояния и пеленга: геопространственный анализ LuckyTemplates

Добавление визуальных элементов карты

Наконец, я добавлю визуальное отображение конечного результата.

Для этого я повторил шаги в отчете LuckyTemplates . Я загрузил таблицу с 3 местоположениями. Я также загрузил таблицу Orientation и набор данных ( selectionNL ) со столбцом Sort . Затем я объединил столбцы для ориентации .

Расчет расстояния и пеленга: геопространственный анализ LuckyTemplates

Это завершает окончательную модель.

Расчет расстояния и пеленга: геопространственный анализ LuckyTemplates


Геопространственный анализ — новый курс по
визуализации данных LuckyTemplates LuckyTemplates — динамические карты во всплывающих подсказках
Визуализация карты формы LuckyTemplates для пространственного анализа

Заключение

В этом отчете я решил показать направление, которое видит клиент. Вы можете отменить это или показать оба в своем отчете, в зависимости от ваших предпочтений. Все, что требуется, это поменять местами от и до широту и долготу в расчете.

Надеемся, что это руководство способствовало лучшему пониманию расчетов расстояния и азимута в целом.

Перейдите по ссылкам ниже для получения дополнительных примеров и соответствующего контента.

Ваше здоровье!

Павел

Leave a Comment

Расчет недельных продаж с помощью DAX в LuckyTemplates

Расчет недельных продаж с помощью DAX в LuckyTemplates

В этом руководстве показано, как в конечном итоге можно рассчитать разницу между еженедельными результатами продаж с помощью DAX в LuckyTemplates.

Что такое self в Python: примеры из реального мира

Что такое self в Python: примеры из реального мира

Что такое self в Python: примеры из реального мира

Как сохранить и загрузить файл RDS в R

Как сохранить и загрузить файл RDS в R

Вы узнаете, как сохранять и загружать объекты из файла .rds в R. В этом блоге также рассказывается, как импортировать объекты из R в LuckyTemplates.

Новый взгляд на первые N рабочих дней — решение для языка кодирования DAX

Новый взгляд на первые N рабочих дней — решение для языка кодирования DAX

В этом руководстве по языку программирования DAX вы узнаете, как использовать функцию GENERATE и как динамически изменять название меры.

Продемонстрируйте идеи с помощью метода многопоточных динамических визуализаций в LuckyTemplates

Продемонстрируйте идеи с помощью метода многопоточных динамических визуализаций в LuckyTemplates

В этом учебном пособии рассказывается, как использовать технику многопоточных динамических визуализаций для создания аналитических сведений из динамических визуализаций данных в ваших отчетах.

Введение в фильтрацию контекста в LuckyTemplates

Введение в фильтрацию контекста в LuckyTemplates

В этой статье я пройдусь по контексту фильтра. Контекст фильтра — одна из основных тем, с которой должен ознакомиться любой пользователь LuckyTemplates.

Лучшие советы по использованию приложений в онлайн-службе LuckyTemplates

Лучшие советы по использованию приложений в онлайн-службе LuckyTemplates

Я хочу показать, как онлайн-служба LuckyTemplates Apps может помочь в управлении различными отчетами и аналитическими данными, созданными из различных источников.

Анализ изменений маржи прибыли с течением времени — аналитика с LuckyTemplates и DAX

Анализ изменений маржи прибыли с течением времени — аналитика с LuckyTemplates и DAX

Узнайте, как рассчитать изменения вашей прибыли, используя такие методы, как разветвление показателей и объединение формул DAX в LuckyTemplates.

Идеи материализации кэшей данных в DAX Studio

Идеи материализации кэшей данных в DAX Studio

В этом руководстве будут обсуждаться идеи материализации кэшей данных и то, как они влияют на производительность DAX при предоставлении результатов.

Бизнес-отчетность с использованием LuckyTemplates

Бизнес-отчетность с использованием LuckyTemplates

Если вы все еще используете Excel до сих пор, то сейчас самое подходящее время, чтобы начать использовать LuckyTemplates для своих бизнес-отчетов.