【数据获取】建筑轮廓数据的N种获取方法(三:图像二值化)
在之前的文章【数据获取】建筑轮廓数据的N种获取方法(一:数据简介与OSM网站的建筑轮廓数据获取)与【数据获取】建筑轮廓数据的N种获取方法(二:mapflow网站识别)里,我们已经介绍了建筑轮廓数据,并详细讲解了如何从OSM和mapflow网站上获取建筑轮廓数据。
其实对于目前来说,我们使用的建筑轮廓数据普遍来源于百度、高德这样的地图平台。当我们在使用这些地图并将它们放大到一定级别后,就可以很清楚地看到建筑物的轮廓,将这一个个轮廓获取并保存为shp数据后,一个基于地图平台的建筑轮廓数据就产生了。
百度地图建筑
高德地图建筑今天,我们就一起来看看如何在ArcGIS里用图像二值化的方法获取到百度建筑轮廓数据吧!
1.打开百度个性化地图编辑器(https://lbsyun.baidu.com/index.php?title=open/custom),进入编辑器后,首先点击右上角的'新建'按钮。
2.进入后点击左下角详细样式编辑器,将地图放大到18级直到可以看到建筑为止。
3.将左侧地图背景、道路、兴趣点和行政标注当中的所有文本、标注等无关要素的按钮都关闭掉。(需要手动一一关闭,只保留建筑轮廓和道路)
4.而后,在地图背景中将建筑物中的顶面填充颜色改为黑色,如下图所示。
5.将地图移动至所需区域,进行截图。如果有没被填充为黑色的建筑,我们还需要在PS中处理一下。最后得到一张建筑物与周边环境区分明显的图片,如下图所示。
6.打开ArcGIS,将获取到的jpg图片加载到ArcGIS中,同时需要加载该区域带坐标位置的卫星图(也可以用带坐标系的街道图)。以道路的交叉点为基准,通过地理配准,赋予图片坐标信息。
7.在赋予图片坐标信息之后,我们下一步就是将建筑轮廓提取出来。我们需要将黑色的建筑物轮廓归为一类,其它像素值归为一类。我们将建筑图片的Band_1单独加载至ArcGIS中,在它的符号系统中选择已分类(如果有弹窗提示不能分类,可以先点击唯一值再点已分类)。将类别设置为两类,确保建筑在一类里,点击确定。
此时建筑与周边环境区别更加明显,如下图所示。
8.在ArcGIS中新建一个空白的shp线数据和一个shp面数据,打开编辑器中的开始编辑。而后点击打开ArcScan中的矢量化,勾选显示预览,选择矢量化设置,在弹出的窗口中选择样式为轮廓。
而后,点击矢量化设置里的应用,我们可以看到建筑轮廓都被被识别了出来。
9.点击生成要素,会在新建的空白面图层里生成出所有的建筑轮廓面。
是不是很神奇呢?但是这一次截图的范围有限,如果想一次获取较大范围的建筑轮廓该怎么办呢?其实,只要我们在保证精度的情况下获取的建筑栅格图片范围足够大就可以了。
这里我们可以采用snagit软件通过截屏拼接的方式获取,也可以通过刘俊环的百度地图截获器(http://junhuanliu.ys168.com/)直接获取无标注的百度地图建筑轮廓栅格图。后续的方法同上述一样。如果碰到转矢量后的边呈现锯齿状,可以通过转矢量时的平滑权重、用ArcGIS的简化建筑物工具的简化容差进行调节。
小黄鸭用百度地图截获器和上述方法获取到的上海市部分建筑物轮廓如下图所示:
此外,也有文章提到用ArcGIS对卫星影像图进行二值化操作,直接提取大范围建筑轮廓的方法。文章链接放在下方,感兴趣的小伙伴可以按照教程进行尝试:https://mp.weixin.qq.com/s/I0xyJQCjlWgfAW_ke2oPEQ
当然,这些方法最终获取到的建筑轮廓数据都是没有高度与楼层信息的。如果想要获取到带高度或楼层信息的建筑轮廓数据,就相对较为困难了。一般小黄鸭都会推荐大家去淘宝购买,简单直接。此外,网上有一份流传很广的全国62个城市建筑物轮廓数据,需要的小伙伴可以点击这篇文章直接获取到:https://www.sohu.com/a/324288814_100020239好的,那么本篇推文到这里就结束了。