技術干貨 | 百度慧眼位置評估功能提取目標區域數據流程(二)

時間:2019-05-30
技術干貨 | 百度慧眼位置評估功能提取目標區域數據流程(二)

百度慧眼位置評估功能提取目標區域數據流程(二)

上一期的教程中介紹了社區邊界頂點坐標提取的流程,主要通過ArcGIS的Feature Vertices to Points工具,將地塊邊界由線轉為點,再獲取所有點的坐標。本期將繼續介紹其余3個主要步驟:數據匯總處理、邊界頂點稀釋和數據報告獲取。


2.   數據匯總處理

百度慧眼對上傳坐標的格式要求如下圖,本例中各社區邊界為多邊形,需要按照圖1中第三條的格式進行,即以“3|”開頭,合并各社區邊界頂點的經緯度。


圖 1百度慧眼上傳文件格式要求

圖 2百度慧眼上傳文件內容格式要求,即上圖所說的demo.xlsx

用Excel打開上一步輸出的屬性表,即“鹽田區特征點.txt”,在文本導入向導第2步的分隔符號中選擇逗號,單擊“完成”,即可在Excel中以表格的形式顯示該屬性表。

圖 3Excel文本導入向導第2步

如下圖所示,屬性表中顯示的為各頂點經緯度,按照百度慧眼上傳數據的要求,是要將同一社區的所有頂點匯總在一個表格內。鹽田區22個人口統計小區2500多個頂點,靠手動整理過于復雜,因此利用Excel公式在此對數據進行匯總和篩選。

圖 4在Excel中打開的屬性表

首先在H列將F列與G列的經緯度匯總,并在經緯度之間加入英文格式逗號,在H2單元格輸入公式“=F2&”,”&G2”回車,再填充整列,結果如下圖。

圖 5匯總屬性表經緯度

接下來需要將H列的坐標按照社區名稱分別匯總。第一步,復制H2列的數據粘貼到I2單元格;第二步,在I3單元格輸入公式“=IF(C3=C2, I2&”,”&H3, H3)”,該公式是通過判斷社區名稱是否相同來決定是否匯總數據,如果社區名稱相同則在上一行匯總好的經緯度后加入本行的經緯度,如果社區名稱不同則僅顯示本行的經緯度,結果如下圖所示。

圖 6匯總社區邊界所有頂點的經緯度

最后提取每個社區在I列中最長的一行即為該社區頂點坐標集。為了快速找出每個社區的頂點坐標集,在J2單元格輸入“=IF(ISNUMBER(FIND(I2, I3)), 1, 0)”回車,填充整列。該公式判斷本行內容是否包含在下一行中,若包含則結果為1,不包含則結果為0。結果如下圖所示。

圖 7找出各社區所有頂點經緯度

最后對此列進行篩選,選出所有結果為0的行即為鹽田區所有人口統計小區的邊界頂點集合。

圖 8鹽田區所有人口統計小區的邊界頂點集合


3.   邊界頂點稀釋

受限于百度慧眼平臺,上傳平臺數據中,每個區域的頂點最好不要超過120個(這個數字并不是一定的,有時130個頂點也可以通過,但是沒有確切的原因),因此在這一步需要對頂點數量超過120個的社區進行頂點稀釋。

在上一步驟的Excel文件中針對C列即名稱列插入數據透視表,在數據透視表設置中勾選名稱項,并將其拖動到“值”選項下,可以看到數據透視表中統計的各社區頂點數量。

圖 9設置數據透視表

圖 10各社區頂點數量

可以對各社區的頂點數量排序,以便找出所有頂點在120個以上的社區。之后回到ArcGIS中,對這些社區進行頂點稀釋工作。

在ArcGIS菜單欄Selection-Select By Attributes,在Layer處選擇圖層為鹽田區,之后在下面的文本框中依次添加各社區名稱,如圖13所示。點擊Apply-Ok即可選中所有待稀釋社區。

圖 11Select By Attributes

圖 12選擇目標圖層

圖 13選擇目標社區

圖 14藍色為選中待稀釋頂點的社區

在左側Table Of Contents中右鍵點擊鹽田區圖層,Data-ExportData輸出選中的圖層用以后續編輯。在菜單欄的Editor中選擇Start Editing,彈出的界面中選擇剛剛輸出的圖層,意即對該圖層進行修改。

圖 15開始對目標圖層進行編輯

圖 16目標圖層選為鹽田區

右鍵點擊ArcGIS菜單欄的空白處,選擇Advanced Editing,打開高級編輯工具欄。單擊工具欄右數第二項Generalize,該功能是通過社區邊界線段間的角度進行判斷,將小于一定角度的兩條線段合為一條線段,通過概化社區邊界達到減少邊界頂點的目的。在彈出界面中輸入一個角度(本例中經多次測試,0.0005°較為合適,若經此操作頂點仍然過多,可酌情增加設定角度)。稀釋后再單擊Editor,保存并關閉圖層編輯。

圖 17Advanced Editing

圖 18Generalize

圖 19設定相應角度

圖 20保存并關閉圖層編輯

之后的工作則重復步驟1,提取稀釋后社區邊界的頂點,計算經緯度坐標并輸出,在Excel中進行匯總處理。


4.   數據報告獲取

數據報告獲取需按照百度慧眼demo.xlsx文件中的格式進行上傳。新建Excel表格并分別設定字段bounds_name和bounds,第一列為社區名稱,第二列為社區頂點坐標,需要在每個社區的頂點坐標前加入“3|”,可以將匯總好的頂點坐標數據粘貼在C列,通過公式“=”3|”&B2”為該列數據統一添加該開頭(注:此處需要將結果復制后粘貼為數值,以免刪除C列后B列數據隨之丟失)。結果如下圖。

圖 21社區邊界頂點最終結果

在百度慧眼位置評估模塊中,選擇WGS84坐標,上傳該文件。經解析后得到社區分布圖,單擊“查看分析結果”。


圖 22百度慧眼數據上傳

圖 23社區邊界上傳結果

單擊右上角“下載報告”即可按需求下載各社區人口數據分析報告。

圖 24下載報告