неполная визуализация следов зданий - пакет osmnx (пример gboeing № 10) - PullRequest
0 голосов
/ 14 марта 2019

Я изучаю пакет OSMNX, следуя примерам, доступным в git Джеффа Боинга ( введите описание ссылки здесь ), и я многому учусь.Однако в примере 10 (создание элементов footprint) у меня возникла проблема (у меня нет вывода элементов footprint, как показано на рисунке ниже).

enter image description here

Коды генерируют уличные сети запрошенных городских пространств, но не генерируют следы (как и должно быть, как показано на рисунке ниже)оранжевым).

enter image description here

Ps.Я не изменяю коды, доступные в github, просто даю «Kernel-restart & clearOutput» для их рефакторинга, когда я читаю их.

Ps.Как и в этом случае, он не возвращает ошибку (возвращает виды улиц, но не следы перекрывающихся зданий). Я не смог найти решение, когда дал Google.

import osmnx as ox
from IPython.display import Image
%matplotlib inline
ox.config(log_console=True, use_cache=True)

import os
os.environ["PROJ_LIB"] = "C:/Users/My/Anaconda3/Library/share"

img_folder = 'images'
extension = 'png'
size = 240

gdf = ox.buildings_from_place(place='Piedmont, California, USA')
gdf_proj = ox.project_gdf(gdf)
fig, ax = ox.plot_buildings(gdf_proj, bgcolor='#333333', color='w', 
                        save=True, show=False, close=True, filename='piedmont_bldgs', dpi=40)
Image('{}/{}.{}'.format(img_folder, 'piedmont_bldgs', extension), height=size, width=size)
gdf_save = gdf.drop(labels='nodes', axis=1)
gdf_save.to_file('data/piedmont_bldgs')
areas = gdf_proj.area
areas.head()
sum(areas)
place = ox.gdf_from_place('Piedmont, California, USA')
place_proj = ox.project_gdf(place)
place_proj.area.iloc[0]
sum(areas) / place_proj.area.iloc[0]

point = (48.873446, 2.294255)
dist = 612
gdf = ox.buildings_from_point(point=point, distance=dist)
gdf_proj = ox.project_gdf(gdf)
bbox = ox.bbox_from_point(point=point, distance=dist, project_utm=True)
fig, ax = ox.plot_buildings(gdf_proj, bgcolor='#333333', color='w', figsize=(4,4), bbox=bbox,
                        save=True, show=False, close=True, filename='paris_bldgs', dpi=90)
Image('{}/{}.{}'.format(img_folder, 'paris_bldgs', extension), height=size, width=size)

# until that moment everything happened according to the tutorial

def make_plot(place, point, network_type='drive', bldg_color='orange', dpi=40,
          dist=805, default_width=4, street_widths=None):
gdf = ox.buildings_from_point(point=point, distance=dist)
gdf_proj = ox.project_gdf(gdf)
fig, ax = ox.plot_figure_ground(point=point, dist=dist, network_type=network_type, default_width=default_width,
                                street_widths=street_widths, save=False, show=False, close=True)
fig, ax = ox.plot_buildings(gdf_proj, fig=fig, ax=ax, color=bldg_color, set_bounds=False,
                            save=True, show=False, close=True, filename=place, dpi=dpi)

place = 'portland_buildings'
point = (45.517309, -122.682138)
make_plot(place, point)
Image('{}/{}.{}'.format(img_folder, place, extension), height=size, width=size)
# here is the problem

Я получаю только как выводсеть улиц, без следов зданий (как показано на первом изображении выше).

Информация:

Conda version: 4.6.8

version conda-build: 3.17.8

python version: 3.6.7.final.0

platform: win-64

user-agent: conda / 4.6.8 requests / 2.21.0 CPython / 3.6.7 Windows / 10 Windows / 10.0.17134

nx .__ version__ = '0.9'

Я был бы рад, если бы вы могли мне помочь.

Заранее большое спасибо.

Ответы [ 2 ]

0 голосов
/ 15 марта 2019

Работает, когда вы не используете project_gdf в качестве первого параметра в функции plot_buildings.Кроме того, я использую модуль footprints вместо устаревшего.

def make_plot(place, point, network_type='drive', bldg_color='orange', dpi=dpi,
          dist=805, default_width=4, street_widths=None):
gdf = ox.footprints.footprints_from_point(point=point, distance=dist)
fig, ax = ox.plot_figure_ground(point=point, dist=dist, network_type=network_type, default_width=default_width, street_widths=street_widths, save=False, show=False, close=True)
fig, ax = ox.footprints.plot_footprints(gdf, fig=fig, ax=ax, color=bldg_color, set_bounds=False, save=True, show=False, close=True, filename=place, dpi=dpi)

edit: просто откройте запрос на извлечение с этим улучшением: введите описание ссылки здесь

0 голосов
/ 15 марта 2019

Вы проецируете следы, но не сеть улиц, поэтому они не совпадают на графике.Не проецируйте следы, и он должен работать нормально.

Пример на GitHub необходимо обновить, поскольку он восходит к более ранней версии OSMnx, которая автоматически проецировала диаграмму фигуры уличной сети.

...