而GIS中,人口也是經常會被使用的資料
以目前政府所公布的資料來說
都已經將人口資料與發布區做結合並提供SHP
算是十分便民
但有些時候(期中期末)我們仍會需要自己動手將資料結合起來
這種將沒有空間屬性的文字資料加入SHP的動作,稱為"Join"
下面將教學如何將人口資料結合至行政區SHP當中
STEP 1
至政府公開資料平台,下載 "二級發布區圖" ,選擇目標行政區的二級發布圖
路徑:點擊--檢視資料\ 資源網址
這是內政部統計處建置的「統計區分類系統」
包括最小統計區、一級發布區及二級發布區,為一小統計區域之概念。
數個最小統計區合成一個一級發布區,數個一級發布區再合成一個二級發布區, 以此類推逐層向上建立台灣的社經資料統計發布之空間單元系統
**發布區有哪些?(由區域小至大)
最小統計區:每一最小統計區人口不超過450人
一級發布區:每一區域理想人口為450人
二級發布區:每一區域理想人口為3000人
三級發布區:鄉鎮市區層級
四級發布區:縣市層級
五級發布區:區域計畫分區
六級發布區:全國
STEP 2
至國土資訊系統(SEGIS) 社會經濟資料服務平台
下載"統計區人口統計資料" (下面教學以106年之二級發布區人口為範例)
選擇目標行政區的二級發布區人口資料
STEP 3
當然,你如果將壓縮檔解開,裡面就有已經是SHP的最小統計區圖......
將csv檔以記事本或excel或其他可開啟文字檔案的程式開啟
確認內容是否是人口資料,並且有二級發布區代碼
STEP 4
將載得的最小統計區SHP與人口csv檔於GIS軟體中開啟
STEP 5
將兩個檔案的屬性欄位表(Attribute Table)開啟
兩個都點選"Open",可同時開啟於一個視窗
STEP 6
觀察兩個欄位表的欄位差異
在"CODE2"欄位,兩張表都是"A6601-01"這樣的模式去編碼
而進行 Join 時,最重要的就是要去找到這樣相同的"直行(欄位)"
在文字或數字相同的情形下
GIS軟體可以將兩張表的資料進行結合
若沒有相同的欄位,在時間許可下,必須自行建置相同欄位讓電腦做對照
STEP 7
右鍵點擊 "二級發布區SHP",找到 JOIN的功能
--------------------------------------------------------------------------------------------------------------------------
**JOIN的想法**
JOIN是將文字資料結合的一種方式
"A需要B的資料,所以使用A的JOIN"
以上面的例子來說就是:
"台中市的二級發布區SHP "需要 "人口" 的資料,所以使用"台中市的二級發布區SHP "的JOIN
記得這樣的語句,就不會搞不清楚到底要按哪個圖層的JOIN功能
--------------------------------------------------------------------------------------------------------------------------
STEP 8
開啟 Join Data 功能
有兩個JOIN的方式可以選擇
第一個是 "from table",也就是從表格而來(csv 或 txt 或 xls之類的可以讀進來的檔案格式)
第二個是 "based on spatial join" ,也就是基於空間位置來結合,比如說我有台中市消防隊的點座標資料,我想知道他們各分布在哪些鄉鎮市區,必須是有空間位置的圖層才可使用這個
STEP 9
各個選項依序介紹
1.這張圖要跟別人JOIN的欄位是:在這裡當然是選剛剛判斷跟CSV檔相同的CODE2欄位
2.選擇要從哪個"表格Table" 加入資料:在這裡也就是選擇那個CSV
3.選擇那張表格要跟這張SHP對照的欄位:就是CODE2
4.Join時,
要留下"Keep all records"→ 留下全部由table來的資料,即使沒有找到相同欄位可以結合,也留在最後。在一些研究方法中會想留下全部資料(來源與表格皆留下),也可以檢視哪裡資料有差距
要留下"Keep only matching records"→ 只留下有相同欄位可以結合的資料其他的都捨棄。有時候表格的資料只佔了SHP資料的一部分(EX:我只有某個區的人口資料,但我有整個縣市的SHP),我並不需要那些沒有資料的部分所以捨棄。
5.當然你也可以點擊 "Validate Join" ,還不是真的將資料轉移過去,只是電腦預先測試這樣的設定是否可以進行JOIN操作成功
STEP 10
打開屬行欄位表可以看到人口資料已經結合到欄位內了
兩個 CODE2欄位也對應正確
進行JOIN後的檔案,並不是真的已經寫入,如果我們現在將二級發布區SHP關掉再打開,會發現JOIN的資料都不見了
這是JOIN表格資料的特性,只要關掉重開就可以重來一次,不會產生新的圖層
但這樣我們不能進行運算分析,因此我必須將JOIN的結果輸出成新的SHP圖層
因此,藉由 Export Data 產生新的SHP
STEP 10
但這東西真的能用嗎?
我選擇的是 "Keep only matching records",發現到行政區有些區塊不見
這些地方本身應該是河谷、港口、軍用基地等,不會有人居住或不是人口計算的範圍內
那你一定覺得,為什麼連河谷這種地方都被視為二級發布區的區劃範圍,原因很簡單,政府在畫分的時候,是利用整塊行政區去區劃,除了像大型軍事基地提前先畫為一區以外,其他都是按著可能的人口數量去預測劃分,並不預先考慮河谷等等。
所以,在研究上,遇到這樣整塊行政區有資料不見,是非常難進行分析的,因此,我們應該選擇"Keep all record"來讓行政區保持完整
STEP 11
因此,我們將二級發布區SHP重新讀入
並以 "Keep all records" 做 JOIN,就可以是完整的行政區了
當然不能忘記,還必須藉由 Export Data 產生新的SHP才算完成
在屬性欄位表中,可以觀察到許多欄位是沒有數值的"Null"
這就是剛剛以"Keep only matching records"那些消失的二級發布區
下圖藍色的部分,即是表示無資料的區域
因此,在地理研究要操作人口資料的時候,雖然一級、一級發布區這樣的尺度夠細,可以做到比鄉鎮市區人口更小的人口研究,但在資料上就會有這樣的缺陷,不可不慎!
總結
JOIN講究的是欄位的對應關係,找到完全相同的欄位才可以進行
若沒有相同欄位,則必須進行人工修改出
JOIN資料是不需要產生新的SHP,關閉圖層則資料就消失
到底該按誰的JOIN功能,"A需要B的資料,所以使用A的JOIN"
沒有留言:
張貼留言