什麼是 Python 中的自我:真實世界的例子
什麼是 Python 中的自我:真實世界的例子
本教程旨在討論如何在 LuckyTemplates 中計算距離和方位,以及如何有效地使用它們進行地理空間分析。
你可以在網上找到很多距離計算。對於此演示,我將使用我需要為我的一個供應鍊網絡項目構建的解決方案的簡化示例。
我還將展示從送貨站到服務地點的直線距離的計算。
在這裡,我有一個切片器使用DAX measure選擇距離。這允許對選定距離內的客戶、流量、重量、收入和任何其他值進行動態分析。
大圓距離計算也稱為Haversine 公式,是本教程的核心度量。如果您掌握了這項技術,則可以處理任何所需的距離和方位計算。
雖然我更喜歡在 Power Query 中進行大部分計算,但當您需要根據可選距離動態分析數據時,需要使用 DAX 度量。
如果可用,實際距離可能是首選。但是,在許多情況下您不需要這樣做,因為直線距離就足夠了。
Google 或 Bing API 可用於在 Power Query 中為實際距離和直線距離添加距離。在您的地理空間工具箱中添加更多工具是一種很好的做法。但是,本教程將不討論將 API 應用於 LuckyTemplates。
目錄
了解場景
我被要求幫助將最近的企業對企業包裹儲物櫃分配給服務工程師的家庭地址。
服務工程師在可能隨時間變化的預定義工作區域工作,並在家中開始這項工作。
一夜之間,包裹儲物櫃補充了緊急備件。第二天早上,工程師會在前往工作區的路上從包裹櫃中提取備件。
通常,我使用GIS(地理信息系統)軟件來進行此類分析。但現在,我將嘗試使用 LuckyTemplates 來獲取動態分配模型。我還使用了直線距離和方位計算。
在 GIS中,方位角用於導航或方向。在此示例中,我添加了轉換為方向 ( Orientation )的方位角,因為距離本身不提供完整的解決方案。
最近的包裹儲物櫃可能位於與工作區域相反的方向。所以,我也想顯示方向。
這允許將儲物櫃分配的選擇限制為基於與工作區域對應的地理方向。
例如,工作區域在他家的北邊。因此,首選的包裹儲物櫃位置應該在同一方向。
分析距離和方位數據集
在這個簡化的示例中,數據集包含荷蘭的地址和免費包裹儲物櫃位置。
這包含Latitude和Longitude (往返)、Depot、Name、Parts 值和Demand的列。
與初始表相鄰的是計算列和 Excel 中的距離計算。首先,我計算了弧度。
然後,我使用弧度和Haversine公式創建了英里和公里的實際距離計算。
距離和方位計算:創建演示數據
軸承的計算最初產生以度為單位的十進制數。所以,我需要把它轉換成更實用的東西。
我創建了一個表列,其度數為 1-360。我還根據指南針添加了一列方向。
此外,我添加了一個SORT列,用於在 LuckyTemplates 中按順時針方向對方向進行排序。
之後,我在 Power Query 中加載了sourceNL數據集和Orientation表。
讓我們看一下sourceNL表。
添加列
首先,我添加了一個索引列。每當我在編輯器中進行轉換時,我都會添加一個索引列以供參考或排序。
然後,我將緯度和經度四捨五入到 4 位數,這在更大的數據集中很重要。通過這樣做,它將返回11 米的精度,這仍然足夠。
為了這個示例,我在單獨的計算列中添加了每個步驟以顯示地圖。我計算了緯度和經度值的弧度,就像我在 Excel 中所做的那樣。
然後,我應用Haversine公式計算以英里和公里為單位的距離。
軸承和方向
對於軸承,計算是我從網上拿來的另一個公式。我只是稍微調整了一下以適應我在這種情況下的目的。
最初,此計算以弧度為單位。這完全沒用。所以,我需要轉換它。
這是軸承前步驟。這是為了將弧度轉換為我計算的下一步。
對於下一步,我更改了負數並通過應用此計算來更正它們。
之後,我將軸承四捨五入得到一個整數。
我刪除了Bearing (rad)、Bearing pre和Bearing列。然後,我將Naar boven afronden 專欄重命名為Bearing Roundup。
我現在可以將此表中的Bearing Roundup列與Orientation表中的BEARING列合併。
通過這樣做,我將能夠獲得方向。
現在,我有了將用於下一個模型的方位角 ( Bearing Roundup ) 和方向 ( Orientation_Direction ) 列。
這是 Power Query 中的結果。
用於距離和方位計算的 R 腳本
對於這個,我將使用帶有R 腳本的解決方案。這是一個以英里和公里為單位計算距離的數據集。
我正在運行這個R 腳本,它比公式更短、更清晰。
運行R 腳本後,我現在有 3 個表。
這是輸出。我也把它四捨五入了。
可以看到,R腳本計算和Excel計算的結果是相似的。
添加地圖視覺效果
最後,我將在最終結果中添加一個視覺顯示。
為此,我在LuckyTemplates 報告中重複了這些步驟。我用 3 個位置加載了表格。我還使用排序列加載了方向表和數據集 ( selectionNL ) 。然後我合併了Orientation的列。
這樣就完成了最終模型。
地理空間分析 - LuckyTemplates 數據可視化新課程
LuckyTemplates - 工具提示中的動態地圖
LuckyTemplates 形狀地圖可視化用於空間分析
結論
在這份報告中,我選擇了展示客戶看到的方向。您可以根據自己的喜好將其反轉或在報告中顯示兩者。只需要在計算中交換起點和終點的經緯度即可。
希望本教程有助於更好地理解一般的距離和方位計算。
查看下面的鏈接以獲取更多示例和相關內容。
乾杯!
保羅
什麼是 Python 中的自我:真實世界的例子
您將學習如何在 R 中保存和加載 .rds 文件中的對象。本博客還將介紹如何將對像從 R 導入 LuckyTemplates。
在此 DAX 編碼語言教程中,了解如何使用 GENERATE 函數以及如何動態更改度量標題。
本教程將介紹如何使用多線程動態可視化技術從報告中的動態數據可視化中創建見解。
在本文中,我將貫穿過濾器上下文。篩選上下文是任何 LuckyTemplates 用戶最初應該了解的主要主題之一。
我想展示 LuckyTemplates Apps 在線服務如何幫助管理從各種來源生成的不同報告和見解。
了解如何在 LuckyTemplates 中使用度量分支和組合 DAX 公式等技術計算利潤率變化。
本教程將討論數據緩存物化的想法,以及它們如何影響 DAX 在提供結果時的性能。
如果直到現在你還在使用 Excel,那麼現在是開始使用 LuckyTemplates 來滿足你的業務報告需求的最佳時機。
什麼是 LuckyTemplates 網關?所有你必須知道的