第四章 實驗結果與分析
4.1 資料處理與 GeoJSON 輸出
國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
37
根據第三章的系統架構與方法設計,本章針對GeoJSON 資料壓縮進行以下實驗 與分析,以驗證本研究的GeoJSON 資料壓縮能有效的增進網路資料傳輸效能,並且 兼具完整與正確的資料傳輸品質。首先於4.1 節說明,實驗的資料來源處理流程,以 及如何建立GeoJSON 作為資料的傳輸格式;4.2 節將本研究設計的 GeoJSON 壓縮技 術兩種函式-「差分編碼」與「浮點式編碼」,分別進行GeoJSON 資料壓縮實驗,
並整合兩者來觀察相互影響的程度;4.3 節將 GeoJSON 壓縮技術與 HTTP 壓縮,作 比較與結合的實驗,除了觀察資料傳遞的效率外,並考量空間資料的多樣化,從資料 的類別了觀察對壓縮程度的影響;最後引入雜湊函數法進行資料驗證,同時評估此一 程序對本研究提昇效能是否相互影響。
4.1 資料處理與 GeoJSON 輸出
本實驗資料來源,是根據不同的資料型態搜集(點、線、面),由於每種資料型態 對於壓縮能力可能會產生不同的結果與影響,因此本研究期望能透過多樣的資料型態 與大量的資料量,來滿足壓縮實驗的需求,以得到多面向的分析結果。本節共分成三 個部份說明,一為「實驗資料來源」介紹,二為「資料轉換與匯入」,三為「GeoJSON 格式輸出」。
1. 實驗資料來源
(1) 台灣行政區域檔案:
台灣行政區域檔案地理資料型態分類中屬「面」(Polygon)的資料,此檔案 是經由美國環境系統研究所公司(ESRI)的 ArcGIS 軟體匯出成 Shapefile(shp) 檔案,shp 檔為 ESRI 公司開發的一種空間資料格式,該文件格式已經成為 了地理資料軟體界的一個開放標準。由於shp 為一種向量圖形格式,如下 圖所示,因此若要保存其資料屬性至資料庫,必須經由資料轉換工具成資
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
38
料庫可以讀取的-結構化查詢語言(Structured Query Language,SQL)。
圖4.1:台灣行政區域 shp 檔案
(2) 商業活動座標點資料:
商業活動座標點資料是從PostgreSQL 資料庫直接匯出的備份檔案,共包含
「點」(Point)與「線」(LineString)兩種資料型態。商業活動座標點資料依屬 性分成商業、居住、交通、生活、觀光,搜集不同的型態,只是為了營造 不同層次的資料量,透過不同的檔案大小來測試是否對壓縮產生影響。
2. 資料轉換與匯入
為讓不同類型資料可以在各大資料庫互通,因此資料庫都必須要有基本格式的 轉換功能,以本研究PostgreSQL 資料庫,即提供 shp 格式轉換工具,且不需要 另外下載特殊軟體處理。詳細的轉換與匯入資料庫的說明如下:
(1) shp 檔案轉換:
PostgreSQL 提供的轉換工具,需要開啟微軟提供的命令列工具,透過命令
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
39
列執行轉換工具名為shp2pgsql.exe,並且輸入轉換的條件參數。
為使用 shp2pgsql 轉換程式,
代表指定空間座標為WGS84,
代表建立空間資料 索引號,
代表需要轉的的shp 檔案完整路徑,
代表要存入資料庫的資 料表名稱,
>符號為匯出,整句代表匯出一個 twn_country.sql 的檔案,語 法範例與截圖如下,完成轉換後他會列印象資料型態,圖4.2 所示,代表這 份shp 檔案為面(Polygon)的資料。圖4.2:台灣行政區域 shp 檔案轉換 (2)匯入 PostgreSQL 資料庫:
匯入資料庫的方式有兩種,一為開啟上述指令轉出的文件,並複製文件中的 SQL 語法,貼入資料庫的「SQL 編輯器」執行語法即可,如圖 4.3 所示;二 則是,經由PostgreSQL 轉出的格式,可以在指定的資料庫,按滑鼠右鍵選擇
「備份回存」,如圖4.4 所示。所有資料成功匯入後,從圖 4.5 中框線的區域,
可以看到所有的資料表與內容。
圖4.3:匯入 SQL 至資料庫
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
40
圖4.4:備份回存至資料庫
圖4.5:己匯入的資料表
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
41
3. GeoJSON 格式輸出
根據3.2 節的 GeoJSON 語法如下,即可輸出圖 4.6 所示的 GeoJSON 格式,從 GeoJSON 格式中,可以看到物件名稱「coordinates」,經由 PHP 程式取出 coordinates 中的陣列值[[120.03661,23.08909],[120.03688,23.08907]……],最後使 用遞迴方式,逐一將每組座標值進行壓縮演算,
SELECT ST_AsGeoJSON(1,(the_geom)) FROM TABLE;
{'format': 'geojson','size':'','data':'{type:MultiPoint,coordinates:
[[120.03661,23.08909],[120.03688,23.08907],[120.03768,23.102 79],[120.03773,23.10308],[120.03799,23.07901],[120.03879,23.0 79],[120.03914,23.08006],[120.03924,23.07883],[120.03924,23.0 8139],[120.04006,23.10783],[120.04071,23.07903],[120.04206,2 3.07798],[120.04211,23.08153],[120.04212,23.07905],[120.0421 4,23.07821],[120.04295,23.08304],[120.04476,23.0791],[120.045 74,23.10606],[120.04608,23.1072],[120.04649,23.10919],[120.04
圖4.6:GeoJSON 格式 4.2 GeoJSON 資料壓縮技術實驗結果
本節根據第三章GeoJSON 壓縮技術設計,進行 GeoJSON 格式壓縮的成果測試,
分成「差分編碼與浮點式編碼對檔案壓縮的影響」以及「進制參數對浮點式壓縮資料 的影響」兩大部份。
1. 差分編碼與浮點式編碼對檔案壓縮的影響
本研究從收集的資料來源中,選擇資料量較大的-北台灣診所位置資料,共 計有二萬餘筆的鄉鎮座標資料,由於同一地區內的座標內容非常相似,因此適合 應用GeoJSON 壓縮技術進行資料壓縮處理。GeoJSON 壓縮技術簡單流程為,先 經由「差分編碼」儲存座標的差異值,再利用「浮點式編碼」簡化差異值含括的 大量前置零,因此本實驗的觀察重點,即為「浮點式編碼」可以為傳統的「差分 編碼」改善多少成果。
由於資料樣本數為二萬餘筆,為避免因資料筆數的不同而影響壓縮效果的測
‧
定,本研究以5,000 筆資料為級距,分別從資料中擷取 5,000、10,000、15,000、
20,000 四種規模的資料量,進行差分編碼與浮點式編碼的壓縮實驗,分別計算其 壓縮率。壓縮率(R)的定義如下,Z 為壓縮後檔案的大小;O 為原始檔案的大小,
計算出的壓縮率(R)將介於 0~100%之間,其中(R)值愈大或愈接近 100%,代表壓 縮效果愈佳。
5,000 831,256 739,712 384,712
10,000 1,662,456 1,477,064 775,064 15,000 2,493,312 2,213,35 1,162,472 20,000 3,324,200 2,949,528 1,549,584
100%Ο 1 Ζ
(R) 壓縮率
‧
74,23.10606],[120.04608,23.1072],[120.04649,23.10919],[120.04圖4.7:原始 5000 筆座標 GeoJSON 內容 {'format': 'geojson','size':'','data':'{type:MultiPoint,coordinates:
[[120.03661,23.08909],[0.00027,-0.00002]
,[0.00080,0.01372],
[0.00005,0.00029],[0.00026,-0.02407],[0.00080,-0.00001], [0.00035,0.00106],[0.00010,-0.00123], [0.00000,0.00256], [0.00082,0.02644],[0.00065,-0.02880],[0.00135,-0.00105], [0.00005,0.00355],[0.00001,-0.00248],[0.00002,-0.00084], [0.00081,0.00483],[0.00181,-0.00394], [0.00098,0.02696],
圖4.8:差分編碼後 5000 筆座標 GeoJSON 內容
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
44
{'format': 'geojson', 'size': '', 'data': '{ type: MultiPoint,coordinates:
[[120.03661,23.08909],[5r,A2],[48,5m8],[55,5t],[5q,ACP],[48,A1]
,[5z,51I],[41,A1Z],[00,548],[51k,5GE],[513,z4E],[52b,A1H],[55,55 J],[51,A40],[52,A1m],[51j,57N],[52V,A6m],[51A,5Hu],[5y,51Q],[
5F,53d],[51R,AsU],[5i,AH3],[52C,5TW],[51,5jh],[5D,z1O],[4c,5ln]
,[5M,ASU],[5h,51t],[5D,5QS],[5l,AlI],[5j,A1bh],[59,00],[52t,51iL], [52a,ACL],[511,5tU],[5M,At3],[53,Ah],[5x,42v],[41,5a9],[5s,5lH],[
42,Az],[519,Ae7],[45,AsJ],[5K,APo],[5f,5R],[5e,A2a],[53,5cs],....
圖4.9:差分編碼加浮點式編碼後 5000 筆座標 GeoJSON 內容
2. 不同地理範圍的座標對壓縮成果的影響
第一項實驗針對大量筆數的座標進行差分與浮點式壓縮,由於都是相鄰範 圍的座標,所得到的差分值結果皆為小於1 的浮點數,將座標定義在非相 同地理範圍,所圖4.10 所示,座標值分別為 A:[42.65254,28.38867] 、B:
[85.99024,52.82226]、C:[116.72449,25.29189] 、D:[120.27181,24.4133]。
表8:非同地理範圍之檔案大小及壓縮率(以括號表示)
原始GeoJON 資料 差分編碼 差分編碼+浮點式壓縮
1592 bit 1584 bit (0.5%)
1464 bit (8.0%)
圖4.10:非同地理範圍之座標範例
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
45
從表8 的結果發現,當 GeoJSON 壓縮方法套用在不同的地理範圍座標集時,
因座標值差距過大,即使套用差分編碼,對字串長度改變不大,因此壓縮成果並 不佳,不過在套用浮點式壓縮後,事實上仍有補足差分編碼壓縮後的缺陷。
3. 進制參數對浮點式壓縮資料的影響
在本研究設計的GeoJSON 壓縮技術中,編碼數值需轉換成字串,以符合純 文字的GeoJSON 格式,為避免字串在轉換過程中產生特殊符號的可能性,如「引 號」、「亂碼(無法辨識字元)」等,造成判讀上的錯誤,故需定義字串轉換的進制 參數。常用的進制轉換參數有26、36 及 62 三種(26,將數字轉換為 a-z 共 26 個 字母;36,將數字轉換為 a-z、0-9 共 36 個字母;62,將數字轉換為 a-z、0-9、
A-Z 共 62 個字母,參考第三章表 3 中 62 進制轉換對照表) ,本研究將根據不同 進制參數,進行字串壓縮的實驗,以探討設定不同進制參數的壓縮效果。
以62 進制為例,從 0~61 分別對應 62 個不同的字母,其轉換方式為將量值 除以進制參數所得的餘數,至上表中找出相對應的字串結果,若除後的商大於 62,則再重覆進行上述步驟,直到商小於 62 為止。圖 4.11 範例即是說明如何將 差分編碼後的字串(0.00037895)透過 62 進制進行字串轉換,以及流程說明如下:
1. 指定進制參數為62。
2. 經差分編碼後,座標值為0.00037985,字串長度為 10Bytes。
3. 編碼前置處理,將浮點數正規化表示成( -10 ×37985 × 10-(8) ) 4. 將數值切分成符號(S)為 0、指數(E)為 8 及量值(M)為 37985。
5. 將正負符號及指數包裝成單一數值08 後,再做進制轉換,表示為(8)62。 6. 將量值經進制轉換成字元”9SF”。
7. 將兩者字元合併其結果為”89SF”。
‧
89SF (字串長度是4 Bytes) 0.00037985 法皆為GeoJSON 壓縮技術,分別就 5,000 筆、10,000 筆、15,000 筆、20,000 筆 四種資料筆數,以及26、36、62 三種進制參數,共 12 次不同實驗的結果,分別 計算壓縮後之檔案大小及壓縮率,並彙整如表9 所示。
‧
5,000 831,256 403,080(51.5%)
391,976 (52.8%)
384,784 (53.7%) 10,000 1,662,456 816,296
(50.9%)
790,536 (52.4%)
775,136 (53.4%) 15,000 2,493,312 1,228,736
(50.7%)
1,189,080 (52.3%)
1,162,544 (53.4%) 20,000 3,324,200 1,639,504
(50.7%)
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
48
始檔案經GeoJSON 壓縮」、「原始檔案經 GeoJSON 壓縮及 HTTP 壓縮」。
1. 傳輸效能與資料壓縮分析:
傳輸資料的實驗樣本,採用全台灣分佈資料較龐大的座標作為實驗對象,包括各 級學校分佈以及全省便利商店。網路使用中華電信ADSL,下載時間約為 3.63 Mbps,
上傳時間697 Kbps;檔案大小單位為位元(bit),傳輸時間單位使用毫秒(ms)。
如表10 與表 11 的資料壓縮與傳輸時間結果,從結果觀察,透過經由座標壓縮後,
全台各級學校原始檔案大小129,024 bit,傳輸時間花費 36 毫秒,經由 GeoJSON 加上 HTTP 壓縮後得到最佳的結果,檔案縮小為 28,400 bit,傳輸時間為 7 毫秒。而全台 便利商店最佳的結果同樣使用GeoJSON 加上 HTTP 壓縮,檔案大小從 1,351,680 bit 縮小為297,376 bit,時間也從 372 毫秒,縮減至 82 毫秒。
因此以下實驗結果, GeoJSON 壓縮節省約原始資料 30%的資料量與傳輸時間,
加上HTTP 壓縮的補助,則可讓傳輸時間縮短約原始時間的 80%,得到最佳的資料 傳輸效能與壓縮成果。
表10:全台各級學校分佈資料壓縮與傳輸時間結果
樣本來源 原始檔案 GeoJSON 壓縮 HTTP 壓縮 HTTP+GeoJSON 全台灣
各級學校 129,024 bit/ 36ms 85,496 bit/22ms 38,712 bit/ 11ms 28,400 bit/ 7ms
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
49
表11:全台便利商店分佈資料壓縮與傳輸時間結果
樣本來源 原始檔案 GeoJSON 壓縮 HTTP 壓縮 HTTP+GeoJSON 全台灣
便利商店
1,351,680 bit / 372 ms
811,040 bit / 220 ms
405,504 bit / 111 ms
297,376 bit / 82ms
2. 不同類型資料壓縮分析:
地理資料可能是連續型或非連續型,舉例來說,連續型如鄉鎮市地理區界、河川、
道路路網等;而非連續型如便利商店、加油站的分佈等。理論上,透過差分編碼法可 以將座標資料簡化,而連續型的座標資料差異值較小,因而可達到資料減量的目的;
但非連續型的座標資料分佈較為離散,故透過差分編碼可能效果較差。
為驗證上述說法,本研究擬將資料區分為連續型及非連續型兩類,非連續型採用 北台灣地區15 種點位座標樣本,而連續型則採用台灣地區 22 個縣市界的線段座標作 為樣本,分別透過「原始檔案經HTTP 壓縮」、「原始檔案經 GeoJSON 壓縮」、「原始 檔案經GeoJSON 壓縮及 HTTP 壓縮」等三種壓縮組合計算其壓縮率。下表 12 及圖 4.13 為非連續型座標資料的壓縮結果,表 12 及圖 4.7 則表示連續型座標資料的壓縮 結果。
‧
‧
HTTP壓縮 GeoJSON壓縮 GeoJSON+HTTP壓縮
HTTP壓縮 GeoJSON壓縮 GeoJSON+HTTP壓縮