本文为《通过深度学习了解建筑年代和风格》论文复现的第二篇——下载和预处理建筑足迹数据集,主要是下载研究区域的建筑风格和建筑年代数据,然后提取163210条阿姆斯特丹的建筑足迹数据,用于后续获取街景图像。
目录:
- 1.数据说明
- 2.数据描述
- 2.1 查看数据库(*Geopackage*)
- 3.提取阿姆斯特丹地区的建筑足迹
- 3.1 提取阿姆斯特丹的边界
- 3.2 提取阿姆斯特丹的建筑
- 3.3 制作建筑足迹图
一、获取建筑年代数据
1.数据说明
荷兰市政当局将有关建筑物和地址的基本信息记录为一个名为 Basisregistraties Adressen en Gebouwen[1] (简称为BAG,地址和建筑物的基本登记数据) 的公开数据集。它包含与建筑物中每个地址相关的建造年份、当前使用情况和注册状态。并且BAG 数据集每月更新一次。本文使用2020年5月30日编译的数据。
我们获得了预处理的3D BAG数据[2],下载BAG (EPSG:28992) Geopackage[3]包,具体见下表,其中的包括阿姆斯特丹大都市区的 182,737 个地址。每个地址都与建筑物占地面积几何形状相关联,其中 173,863 个地址包含有效的施工年份。表 1 显示了建筑年龄数据的样本,包括原始建造年份、文件日期、几何形状和唯一识别号。
BAG (EPSG:28992) Geopackage信息
数据字段 | 说明 |
---|---|
Updated | 01-10-2023 |
Map area | 50.71447164,2.35417303,55.66948102,7.5553525 |
Projection | EPSG:28992 - Amersfoort / RD New |
Filetype | 应用程序/数据包 sqlite3 |
Filesize | 6.97 Gb |
Download Link | https://service.pdok.nl/lv/bag/atom/downloads/bag-light.gpkg |
2.数据描述
2.1 查看数据库(Geopackage)
数据量有7G大小,建议用ArcGIS Pro打开并进行后续处理。我们可以先用软件进行操作,后续再通过Python的arcpy
库整合进工作流,进行批量处理。如果你想学习arcpy
的,可以看我的文章:ArcGIS Python系列[4]。
当用
Python
的geopandas
包去读取时,即使是只读取单个图层,也很难将数据一次性加载进内存中。虽然可以通过循环或者多线程来进行后续处理,但是依旧很麻烦。
此gpkg
总共有五个图层,在ArcGIS Pro中也称为要素,右键将 pand
(荷兰语pand
是建筑物的意思)添加到地图。
bag-light.gpkg的文件树
我们会使用woonplaats
的城市区域(注意是Polygon)和 pand
的建筑底面。
数据库有五种类型的数据:
- woonplaats:直译为“居住地”或“住所”。在BAG的上下文中,它指的是一个城市、村庄或其他类型的居住区。
- pand:直译为“建筑”或“房屋”。在BAG的上下文中,它指的是一个物理建筑,无论其大小或用途如何。一个“pand”可以是一个房子、办公楼、商店或任何其他类型的建筑。
- ligplaats:这个词直译为“泊位”或“停泊地点”。在BAG的上下文中,它通常指的是水上房屋或船只的固定位置。
- standplaats:直译为“站位”或“立足点”。在BAG的上下文中,它指的是没有固定建筑物的地块,但被指定为可放置移动住宅、拖车或类似的住所。
- verblijfsobject:直译为“居住对象”或“住宿对象”。在BAG的上下文中,它指的是一个可以居住或工作的空间或多个空间。这可以是一个房子、办公室、商店等。
bag-light.gpkg的main.pand图层
查看建筑足迹要素的属性表:
建筑足迹数据字段
以上字段翻译为:
代码语言:javascript复制rdf_seealso:rdf参考(这可能是一个关于RDF的参考链接或相关信息)
identificatie:标识
bouwjaar:建造年份
status:状态
gebruiksdoel:使用目的
oppervlakte_min:最小面积
oppervlakte_max:最大面积
aantal_verblijfsobjecten:住宅对象数量
geometry:几何
目前我们不需要去更改字段名,本此研究会使用到identificatie、bouwjaar、geometry。除了这些字段,其他字段也可以用来进行深入研究,但是本文不考虑。
3.提取阿姆斯特丹地区的建筑足迹
3.1 提取阿姆斯特丹的边界
上图我们定位到了研究区域——阿姆斯特丹,我们现在只对阿姆斯特丹进行研究,需要从阿姆斯特丹大都市区的BAG数据中提取出研究区域的数据,并且保存为要素类。为了提取建筑物数据需要一个边界,从woonplaats
中我们可以选出阿姆斯特丹的边界,参考论文的边界我们仅选出最主要的部分。
bag-light.gpkg的woonplaats图层
使用编辑菜单栏中的拆分[5]工具,将其导出并拆分为两个部件,然后如下图所示:
拆分为两个部件
删除其中一个:
Amsterdam_boundary_Line
最后进行面转线[6],将导出的线要素命名为Amsterdam_boundary_PL
。
Amsterdam_boundary_PL
3.2 提取阿姆斯特丹的建筑
使用成对裁剪工具[7]将建筑提取出来,命名为Amsterdam_buildings
:
成对裁剪
注意,在使用ArcGIS Pro进行裁剪操作时,会在边界处对建筑物进行分割,如图:
对建筑进行切割
我们采用空间查询方法去除掉这些被切割的建筑物:使用按位置查询工具[8]来确定那些与裁剪边界相交的建筑物。然后,将这些建筑删除。总共还剩163210行数据。
位置查询
3.3 制作建筑足迹图
Fig. 2. Building footprints in the study area—Amsterdam.
调整符号系统之后,新建布局,加载地图框、指南针和比例尺,调整大小之后的建筑足迹地图:
footprint of buildings in Amsterdam
最后导出布局。
Arcgis Pro制作的 footprint of buildings
上一篇:
Part1.论文解读:如何利用最近很火的深度学习来识别建筑年代和风格?
下一篇:Part3.获取高质量的阿姆斯特丹建筑立面图像(上)——《通过深度学习了解建筑年代和风格》[10]
额外阅读
三、Arcpy基础【ArcGIS Python系列】
写在最后
论文引用:
Maoran Sun, Fan Zhang, Fabio Duarte, Carlo Ratti,
Understanding architecture age and style through deep learning,
Cities,
Volume 128, 2022, 103787, ISSN 0264-2751,
https://doi.org/10.1016/j.cities.2022.103787.(https://www.sciencedirect.com/science/article/pii/S0264275122002268)
参考资料
[1]
Basisregistraties Adressen en Gebouwen: https://www.pdok.nl/introductie/-/article/basisregistratie-adressen-en-gebouwen-ba-1
[2]
预处理的3D BAG数据: https://service.pdok.nl/lv/bag/atom/index.xml
[3]
BAG (EPSG:28992) Geopackage: https://service.pdok.nl/lv/bag/atom/bag.xml
[4]
ArcGIS Python系列: https://cdn.renhai-lab.tech/categories/arcpy
[5]
拆分: https://pro.arcgis.com/zh-cn/pro-app/3.0/help/editing/explode-a-multipatch-feature.htm
[6]
面转线: https://pro.arcgis.com/zh-cn/pro-app/3.0/tool-reference/data-management/polygon-to-line.htm
[7]
成对裁剪工具: https://pro.arcgis.com/zh-cn/pro-app/3.0/tool-reference/analysis/pairwise-clip.htm
[8]
按位置查询工具: https://pro.arcgis.com/zh-cn/pro-app/3.0/tool-reference/data-management/select-layer-by-location.htm
[9]
Part1.论文解读:如何利用最近很火的深度学习来识别建筑年代和风格?——《通过深度学习了解建筑年代和风格》: https://cdn.renhai-lab.tech/archives/Understanding_architecture_age_and_style_through_deep_learning_part1
[10]
Part3.获取高质量的阿姆斯特丹建筑立面图像(上)——《通过深度学习了解建筑年代和风格》: https://cdn.renhai-lab.tech/archives/Understanding_architecture_age_and_style_through_deep_learning_part3-1
[11]
我的博客: https://cdn.renhai-lab.tech
[12]
阅读原文: https://cdn.renhai-lab.tech/archives/Understanding_architecture_age_and_style_through_deep_learning_part2
[13]
我的博客: https://cdn.renhai-lab.tech/
[14]
我的GITHUB: https://github.com/renhai-lab
[15]
我的GITEE: https://gitee.com/renhai-lab
[16]
我的知乎: https://www.zhihu.com/people/Ing_ideas
[17]
ArcGIS Python系列: https://cdn.renhai-lab.tech/categories/arcpy