距離と方位の計算: LuckyTemplates 地理空間分析

距離と方位の計算: LuckyTemplates 地理空間分析

このチュートリアルの目的は、LuckyTemplates で距離と方位を計算する方法、およびそれらを地理空間分析に効率的に使用する方法について説明することです。

距離の計算方法はウェブ上でたくさん見つかります。このデモンストレーションでは、サプライ チェーン ネットワーク プロジェクトの 1 つで構築する必要があったソリューションの簡略化された例を使用します。

距離と方位の計算: LuckyTemplates 地理空間分析

配達拠点からサービス拠点までの直線距離の計算も示します。

ここでは、 DAX メジャーを使用して距離を選択するスライサーがあります。これにより、選択した距離内の顧客、フロー、重量、収益、およびその他の値を動的に分析できます。

距離と方位の計算: LuckyTemplates 地理空間分析

ハーバーサイン公式としても知られる大圏距離の計算は、このチュートリアルの中核的な尺度です。このテクニックをマスターすれば、必要な距離と方位の計算に取り組むことができます。  

距離と方位の計算: LuckyTemplates 地理空間分析

私はほとんどの計算を Power Query で行うことを好みますが、選択可能な距離に基づいてデータを動的に分析する必要がある場合は、DAX メジャーを使用する必要があります。

利用可能な場合は、実際の距離が優先オプションになる可能性があります。ただし、直線距離で十分なため、多くの場合はこれは必要ありません。 

Google または Bing API を使用して、Power Query で実際の距離と直線距離の両方の距離を追加できます。地理空間ツールボックスにさらに多くのツールを含めることをお勧めします。ただし、LuckyTemplates への API の適用については、このチュートリアルでは説明しません。 

目次

シナリオを理解する

私は、最寄りの企業間の宅配ロッカーをサービス エンジニアの自宅住所に割り当てる手伝いを依頼されました。

サービス エンジニアは、時間の経過とともに変更される可能性がある事前に定義された作業エリアで働き、自宅からその仕事を始めました。

夜間、緊急のスペアパーツが宅配ロッカーに補充されました。翌朝、エンジニアは作業エリアに向かう途中で小包ロッカーからスペアパーツを受け取りました。 

通常、この種の分析にはGIS (地理情報システム) ソフトウェアを使用します。ここでは、LuckyTemplates を使用して動的割り当てモデルを取得してみます。また、直線距離と方位の計算の両方を使用しました。 

GISでは 、方位角はナビゲーションや方向に使用されます。この例では、距離自体では完全な解決策が提供されない ため、方向 ( Orientation )に変換される方位を追加しました。

距離と方位の計算: LuckyTemplates 地理空間分析

最寄りの宅配ロッカーは、作業エリアとは反対方向に位置している場合があります。なので、方向性も表示したいと思いました。

これにより、ロッカー割り当ての選択を、作業エリアに対応する地理的見出しに基づいて制限することができます。 

例として、作業エリアは自宅の北にあります。したがって、優先宅配ロッカーの場所は同じ方向にある必要があります。 

距離と方位データセットの分析

この単純化された例では、データセットはオランダの住所と無料の宅配ロッカーの場所で構成されています。

距離と方位の計算: LuckyTemplates 地理空間分析

これには、緯度経度(行き先と出発地)拠点名前部品値、および需要の列が含まれます。

距離と方位の計算: LuckyTemplates 地理空間分析

最初のテーブルの隣には、Excel での計算列と距離計算があります。まず、ラジアンを計算しました。

距離と方位の計算: LuckyTemplates 地理空間分析

次に、ラジアンとハーバーサインの公式を使用して、マイルとキロメートルの両方の実際の距離の計算を作成しました。 

距離と方位の計算: LuckyTemplates 地理空間分析

距離と方位の計算: デモ データの作成

方位の計算では、最初は度単位の 10 進数が得られます。したがって、これをより実用的なものに変換する必要があります。

1 ~ 360 の度数を含むテーブル列を作成しました。コンパスに従って方向を示す列も追加しました。

距離と方位の計算: LuckyTemplates 地理空間分析

さらに、LuckyTemplates で方向を時計回りに並べ替えるためのSORT列を追加しました。

距離と方位の計算: LuckyTemplates 地理空間分析

その後、sourceNLデータセットと方向テーブルを Power Query に読み込みました。

距離と方位の計算: LuckyTemplates 地理空間分析

sourceNLテーブルを見てみましょう。

列の追加

まず、インデックス列を追加しました。エディターで変換を行うときは、参照または並べ替えのためにインデックス列を追加します。

距離と方位の計算: LuckyTemplates 地理空間分析

次に、緯度と経度を 4 桁に四捨五入しました。これは、より大きなデータセットでは重要です。こうすることで、 11 メートルの精度が得られますが、それでも十分です。

距離と方位の計算: LuckyTemplates 地理空間分析

この例では、マップを表示するために各ステップを別の計算列に追加しました。Excel で行ったのと同じように、緯​​度と経度の値のラジアンを計算しました。

距離と方位の計算: LuckyTemplates 地理空間分析

距離と方位の計算: LuckyTemplates 地理空間分析

距離と方位の計算: LuckyTemplates 地理空間分析

距離と方位の計算: LuckyTemplates 地理空間分析

次に、Haversine の公式を適用して、マイルとキロメートルの両方の距離を計算しました。

距離と方位の計算: LuckyTemplates 地理空間分析

距離と方位の計算: LuckyTemplates 地理空間分析

方位と方向

ベアリングの計算は、Web から取得した別の式です。このシナリオの目的に合わせて少し調整しただけです。 

距離と方位の計算: LuckyTemplates 地理空間分析

最初は、この計算はラジアン単位で行われます。まったく無駄です。したがって、変換する必要があります。

これはベアリングの前段階です。これは、計算の次のステップでラジアンを変換するためです。  

距離と方位の計算: LuckyTemplates 地理空間分析

距離と方位の計算: LuckyTemplates 地理空間分析

次のステップでは、負の数値を変更し、この計算を適用して修正しました。

距離と方位の計算: LuckyTemplates 地理空間分析

距離と方位の計算: LuckyTemplates 地理空間分析

その後、Bearing を四捨五入して整数を取得しました。

距離と方位の計算: LuckyTemplates 地理空間分析

距離と方位の計算: LuckyTemplates 地理空間分析

Bearing (rad)Bearing pre、およびBearing列を削除しました。次に、Naar boven afronden 列の名前をBearing Roundupに変更しました。

距離と方位の計算: LuckyTemplates 地理空間分析

距離と方位の計算: LuckyTemplates 地理空間分析

これで、このテーブルのBearing Roundup列をOrientationテーブルのBEARING列とマージできるようになりました。

距離と方位の計算: 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列とともにロードしました。次に、Orientationの列を結合しました。

距離と方位の計算: LuckyTemplates 地理空間分析

これで最終モデルが完成します。

距離と方位の計算: LuckyTemplates 地理空間分析


地理空間分析 – LuckyTemplates データ視覚化に関する新しいコース
LuckyTemplates – ツールチップの動的マップ 空間
分析のための LuckyTemplates 形状マップ視覚化

結論

このレポートでは、お客様から見た方向を示すことにしました。好みに応じて、これを逆にすることも、レポートに両方を表示することもできます。必要なのは、計算において出発地と到着地の緯度と経度を交換することだけです。

このチュートリアルが、距離と方位の計算全般についての理解を深めることに貢献できれば幸いです。

その他の例や関連コンテンツについては、以下のリンクをご覧ください。

乾杯!

ポール


Python における Self とは: 実際の例

Python における Self とは: 実際の例

Python における Self とは: 実際の例

RでRDSファイルを保存してロードする方法

RでRDSファイルを保存してロードする方法

R の .rds ファイルからオブジェクトを保存および読み込む方法を学習します。このブログでは、R から LuckyTemplates にオブジェクトをインポートする方法についても説明します。

最初の N 営業日の再考 – DAX コーディング言語ソリューション

最初の N 営業日の再考 – DAX コーディング言語ソリューション

この DAX コーディング言語チュートリアルでは、GENERATE 関数の使用方法とメジャー タイトルを動的に変更する方法を学びます。

LuckyTemplates のマルチスレッド動的ビジュアル手法を使用したインサイトのショーケース

LuckyTemplates のマルチスレッド動的ビジュアル手法を使用したインサイトのショーケース

このチュートリアルでは、マルチスレッド動的ビジュアル手法を使用して、レポート内の動的データ視覚化から洞察を作成する方法について説明します。

LuckyTemplates のフィルター コンテキストの概要

LuckyTemplates のフィルター コンテキストの概要

この記事では、フィルター コンテキストについて説明します。フィルター コンテキストは、LuckyTemplates ユーザーが最初に学習する必要がある主要なトピックの 1 つです。

LuckyTemplates Online Service でアプリを使用する際の最良のヒント

LuckyTemplates Online Service でアプリを使用する際の最良のヒント

LuckyTemplates Apps オンライン サービスが、さまざまなソースから生成されたさまざまなレポートや分析情報の管理にどのように役立つかを示したいと思います。

時間の経過に伴う利益率の変化を分析する – LuckyTemplates と DAX を使用した分析

時間の経過に伴う利益率の変化を分析する – LuckyTemplates と DAX を使用した分析

LuckyTemplates でのメジャー分岐や DAX 数式の結合などの手法を使用して、利益率の変化を計算する方法を学びます。

DAX Studio でのデータ キャッシュのマテリアライゼーションのアイデア

DAX Studio でのデータ キャッシュのマテリアライゼーションのアイデア

このチュートリアルでは、データ キャッシュの具体化のアイデアと、それが結果を提供する際の DAX のパフォーマンスにどのように影響するかについて説明します。

LuckyTemplates を使用したビジネス レポート

LuckyTemplates を使用したビジネス レポート

これまで Excel を使用している場合は、ビジネス レポートのニーズに合わせて LuckyTemplates の使用を開始するのに最適な時期です。

LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて

LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて

LuckyTemplates ゲートウェイとは何ですか? 知っておくべきことすべて