技术干货 | 百度慧眼位置评估功能提取目标区域数据流程(二)

时间: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下载报告