一、数据集简介
关于数据集的介绍,这篇博文谷歌发布并开源18亿个建筑物足迹数据集已经介绍的很清楚了,本文就不再啰嗦了。需要了解更多信息请参考技术文档【2】和Google开放建筑数据集网址【1】
二、数据集下载
网站上提供了多种下载方式且有较为详情的说明,这里也不展开叙述。直接转到https://sites.research.google/open-buildings/多种方式任君选择。
三、数据格式
数据集由三部分组成:构建多边形、构建点和分数阈值。
构建多边形和点
建筑物多边形和点存储在空间分片的 CSV 中,每个 4 级S2 单元格 一个 CSV文件。CSV 中的每一行代表一个建筑物多边形或点,并具有以下列:
name | details |
---|---|
latitude | 建筑物多边形质心的纬度 |
longitude | 建筑物多边形质心的经度 |
area_in_meters | 多边形的面积(以平方米为单位) |
confidence | 模型指定的置信度得分 [0.65;1.0] |
Geometry | 模WKT 格式的建筑物多边形(POLYGON 或 MULTIPOLYGON)。此功能仅存在于多边形数据中 |
full_plus_code | 建筑物多边形质心处的完整 Plus 代码 |
分数阈值
估计分数阈值存储为一个 CSV。CSV 中的每一行代表一个4 级S2 单元格信息存储 ,并具有以下列:
name | details |
---|---|
s2_token | 4 级S2 单元格单元令牌(索引) |
geometry | S2 单元格存储空间的WKT格式的几何 |
confidence_threshold_80%_ precision** **confidence_threshold_85%_ precision confidence_threshold_90%_ precision | 估计的置信度分数阈值,以获得在此 S2 单元中构建多边形的特定精度 |
Building_count | 此 S2 单元存储空间中的建筑物多边形数量 |
num_samples | 用于生成分数阈值的样本数。此功能从 v2 版本就开始存在了 |
四、数据处理
最经典的需求就是转Shapefile格式,转Geojson等格式也是同理。
下面就是简单的处理思路,以供参考。
1.下载并解压压缩包会得到一个CSV格式的文件。具体如下表,即在数据格式上介绍的信息。
2.导入需要的第三方包/库。
# 若缺失以下库的,请通过pip或conda命令安装.安装过程遇到问题自行搜索
pip install pandas
pip install geopandas
pip install shapely
# 导入第三方库
import pandas as pd
import geopandas as gpd
from shapely import wkt
3.使用Pandas
对CSV文件进行读取。
# 使用pandas库对数据进行读取
csv_path = r"C:\Users\1\Desktop\....\2cd_buildings.csv"
df = pd.read_csv(csv_path)
df.head(10) #打印前10行
4.使用shapely库的WKT.loads
方法将将表格的“Geometry”列进行转换。
# 将表格的“Geometry”列通过wkt.loads文本 (WKT) 格式加载/转储几何图形
df['geometry'] = df['geometry'].apply(wkt.loads)
5.通过geopandas
的GeoDataFrame()
类方法进行地理处理。
gdf = gpd.GeoDataFrame(df, geometry='geometry', crs='EPSG:4326')
gdf.head(10)
6.最后通过geopandas
的to_file( )
方法转存为shp文件。
shp_path = r"C:\Users\1\Desktop\光谱分析\2cd_buildings1.shp"
gdf.to_file(shp_path)
完整代码
'''
@File : 用于Google open-building data(CSV) 转为Shp格式
@Time : 2023/8/9
@Author : Endless_chaohuo
@Mail : 460958592@qq.com
@Version : 1.0
'''
import pandas as pd
import geopandas as gpd
from shapely import wkt
# CVS转Shp
def csv_shp_file(csv_path,shp_path):
"""
:param csv_path: 输入的从google下载的存储了geometry的csv文件
:param shp_path: 转换后输入的shp路径
:return:
"""
df = pd.read_csv(csv_path)
df['geometry'] = df['geometry'].apply(wkt.loads)
# 转换为shp
gdf = gpd.GeoDataFrame(df, geometry='geometry', crs='EPSG:4326')
gdf.to_file(shp_path)
if __name__ == '__main__':
csv_path = r"C:\Users\1\Desktop\光谱分析\2cd_buildings.csv"
shp_path = r"C:\Users\1\Desktop\光谱分析\2cd_buildings1.shp"
csv_shp_file(csv_path, shp_path)
五、后记
关于建筑Shapefile
对应的谷歌底图,需要大家自行利用专业版的谷歌地球的历史影像功能查询。
关注微信公众号“吃口白日梦”回复关键词[Google-buildings]获取完整的Google_BuildingsV3数据集百度网盘下载链接!!!
参考:
[1]https://sites.research.google/open-buildings/
[2] https://arxiv.org/abs/2107.12283
[2] https://maps.google.com/pluscodes/
[3] https://arxiv.org/abs/2107.12283
[3] https://s2geometry.io/