熱點地圖產生器
- 假想我們有海量的資料 (例如:歷史交通事故資料
),每一筆資料附帶經緯度坐標,也附帶不同的權重,那我們就可以在地圖上劃分一個個的小方格,把這一筆筆的資料
(權重)
歸到每一個小方格中,計算每個小方格的加權總和,再依加權總和塗以不同的顏色。
- 這個產生器就是依上述的概念進行,在 OpenStreetMap 圖磚的基礎上,來劃分一個個的方格。當方格最小
(1x1) 時,相當於圖磚上的
1 個像素;當方格最大 (256x256) 時,相當於
1
個圖磚。圖磚所代表的實際地理區域大小,會隨地圖縮放改變,也會因經緯度不同受地圖投影方式影響。
- 我從 Open
Data 平臺 中,整理了全臺及臺北市在 2018 年 1 月到 2023 年 4 月的 A1A2 交通事故資料 (A1
指造成人員當場或 24
小時內死亡之交通事故,A2
指造成人員受傷或超過 24
小時死亡之交通事故),分別有 1,867,606 及 126,552 筆紀錄 (置放於此
)。
- 如果上面的文字表達不清的話,可以下載前述所提的資料,在餵給這個產生器所下載的資料後,只要 "經度欄位" 選擇 "經度"、"緯度欄位" 選擇
"緯度",其它選項都可以隨意調整,地圖隨意縮放移動。實際操作就更容易瞭解上面的描述了。
- 作者:mfhsieh gmail.com。
選項說明
- 經度欄位:請擇選 CSV 資料檔中代表 "經度 (longitude)" 的欄位。
- 緯度欄位:請擇選 CSV 資料檔中代表 "緯度 (latitude)" 的欄位。
- 權重欄位:請擇選 CSV 資料檔中代表 "權重 (weighting)" 的欄位。如未擇選,則每行資料的權重相同,皆設為 "1"。每行資料依其經緯度分配到各個方格,將這些資料的權重加總,就是各方格的加權總和。
- 篩選欄位:請擇選 CSV 資料檔中代表 "不納入計算" 的欄位。欄位值 (不區分大小寫) 為
"FALSE",
"F", "NO", "N", "0" (數字零)
者,則該行資料不納入計算。如未擇選,則每行資料皆納入計算。
- 方格大小:單位為像素
(pixel)。程式係以 OpenStreetMap 的圖磚為基礎運作。當方格最小
(1x1) 時,相當於圖磚上的
1 個像素;當方格最大 (256x256) 時,相當於
1
個圖磚。圖磚所代表的實際地理區域大小,會隨地圖縮放改變,也會因經緯度不同受地圖投影方式影響。
- 篩選:篩選最終繪製在地圖上的方格。以設定為 (90% ~ 100%) 為例,則只有加權總和最大的 10%
的方格繪製在地圖上。
- 對數尺度:考量各方格的加權總和大小差異可能甚大,可將加權總和取對數值 (以 10 為基底) 後再行繪製。
- 依百分位數著色:未開啟本選項時,是依各方格的加權總和來著色。若開啟本選項時,則是依各方格的百分位數
(加權總和依大小排序後,取序位值計算百分比,最小者為 0%,最大者為 100%) 來著色;亦即各個顏色的格子數量約略相等,可以避免因數值跨距太大,不易以顏色區分的問題。
- 色階漸層:擇選用以繪製方格的顏色。下方有色階 (colorscale) 漸層,最左方顏色代表的數值最低,最右方顏色代表的數值最高。(色階參考頁面
)
- 方格透明度:值為 0 時,相當於不透明;值為 100%,相當於全透明。
- 其它:CSV 資料檔的欄位名稱,請避免以
"_" 開頭,該類名稱保留用於程式運作。
相關資訊說明
- 上方統計圖:所有方格的加權總和 (x 軸,擇選對數尺度時,取 log10 值) 的相對數量分布圖 (綠色長條,左側為其 y 軸) 及累積數量分布圖 (紅色折線,右側為其 y 軸)。上方統計圖的 x 範圍由下方統計圖決定,預設為所篩選的範圍。
- 下方統計圖:上方統計圖的縮小版,該統計圖左右兩側各有一長條,可拉動以決定上方統計圖的 x 範圍。
- 色階漸層:最左方顏色代表的數值最低 (所篩選範圍的下限),最右方顏色代表的數值最高 (所篩選範圍的上限)。
- 資料筆數:CSV 資料檔的所有列數。
- 方格個數:有分配到數據的方格數量。
- 資料範圍:所有方格的加權總和的最小值及最大值。
- 篩選範圍:所篩選範圍的加權總和的下限及上限。
- 標註熱點:輸入序位 (1
表最高) 後,地圖會移動到代表該序位的方格;同時該方格會閃爍以提醒使用者;點擊該方格即可關閉閃爍。
- 滑鼠在方格上移動時,會顯示方格的基本資訊。其中的序位,表示該方格的排名 (最高為
1,依序遞增;倘有多個方格的加權總和相同,則取其排名低者);百分位數,指該方格所領先的方格數量百分比 (亦即最小為 0%;但最大為接近 100%,而非 100%)。
- 滑鼠在方格上點擊時,會顯示方格所代表的各筆紀錄的詳細資料。