在osmnx-python中从多个位置选择建筑



我是python和osmnx包的新手。

假设我有两个地方,岛屿:瑙罗岛和莱克巴岛。我想要实现的是有一个单一的数据框架(或地理数据框架(,其中包括来自两个岛屿的建筑。我有这个代码,但它只打印结果,但没有将它们合并。

import osmnx as ox
import matplotlib.pyplot as plt
import geopandas as gpd
import pandas as pd
from pyproj import CRS
place_name = ['Nauru', 'Lakeba Island']
tags = {'building': True}
for i in place_name:
print(ox.geometries_from_place(i, tags))

正如你可能注意到的,它只打印两个位置的结果,我想做的是有一个单一的数据帧(或者最好是地理数据帧(,将所有观测结果统一起来。

理想情况下,如果我能够在这个数据帧中添加一列,指示每个观测的岛屿名称,以区分哪个建筑属于哪个岛屿,那也将是非常有益的。在本例中,此列只有两个唯一值(瑙鲁或Lakeba岛(。

我希望我在这里做了一个明确的例子。如果还不够,请告诉我。

您需要加载所需的所有数据帧,存储它们,然后将它们连接在一起。

import pandas as pd
import osmnx as ox
place_name = ['Nauru', 'Lakeba Island']
tags = {'building': True}
gdfs = []
for i in place_name:
gdf = ox.geometries_from_place(i, tags)
gdf["island_name"] = i  # this adds a column with a name
gdfs.append(gdf)
gdf = pd.concat(gdfs)

最新更新