从 osmnx 中的多个位置选择建筑物 python

Selecting buildings from multiple locations in osmnx python

我是 python 以及 osmnx 包的新手。

假设我有两个地点,岛屿:Nauro 和 Lakeba Island。我想要实现的是拥有一个数据框(或地理数据框),其中将包括来自两个岛屿的建筑物。我有这段代码,但它只打印结果,但不合并它们。

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))

您可能会注意到,它只打印两个位置的结果,我想要做的是拥有一个单一的数据框(或最好是地理数据框),其中包含所有观察结果。

理想情况下,如果我能够在此数据框中添加指示每次观察的岛屿名称的列,以区分哪个建筑物属于哪个岛屿,那将是非常有益的。在此示例中,此列将只有两个唯一值(瑙鲁或莱克巴岛)。

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

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

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)