Нурасыл Абдразакулы Нурасыл Абдразакулы

Визуализация улиц города Алматы с помощью OSM и Python

Дорожная сеть города Алматы

В этом блоге я расскажу, как использовать Python и OpenStreetMap для создания визуализации дорожной сети города. С помощью таких библиотек, как osmnx и matplotlib, можно создать детализированную карту, показывающую улицы города, и проанализировать их структуру.


Введение

Недавно я создал карту дорожной сети Алматы 🇰🇿. Эта визуализация помогает лучше понять структуру города, его развитие и особенности градостроительства. Используя osmnx (для данных OpenStreetMap) и matplotlib (для визуализации), я смог создать изображение, показывающее все улицы города.


Подготовка к задаче

Прежде чем начать, необходимо установить необходимые библиотеки:

    pip install osmnx matplotlib
          

Сбор данных

Сначала, с помощью библиотеки osmnx, мы получим данные о дорожной сети Алматы:

    import osmnx as ox
    import matplotlib.pyplot as plt
    
    # Получаем граф дорожной сети Алматы
    G = ox.graph_from_place("Almaty, Kazakhstan", network_type="drive")
    
    # Конвертируем граф в формат geodataframe
    gdf_nodes, gdf_edges = ox.graph_to_gdfs(G)
          

Визуализация данных

Теперь, когда у нас есть данные, мы можем построить карту:

    # Устанавливаем размер фигуры
    fig, ax = plt.subplots(figsize=(10, 10))
    
    # Отображаем улицы
    gdf_edges.plot(ax=ax, linewidth=0.5, color='black')
    
    # Устанавливаем заголовок карты и удаляем осевые метки
    ax.set_title("Дорожная сеть Алматы", fontsize=20)
    ax.set_xticks([])
    ax.set_yticks([])
    plt.show()
          

Анализ карты

После создания карты можно наблюдать несколько интересных особенностей:

  • Плотность в центре города: Центр города 🏙️ намного плотнее по сравнению с окраинами 🌳, что типично для большинства крупных городов, где центр обычно развивается первым и более интенсивно.
  • Прямые улицы в центре: В центре больше прямых улиц ↔️, в то время как на окраинах встречаются извилистые дороги 🌀, что отражает планировку центральных районов и адаптацию к ландшафту в новых районах.
  • Пригородные районы: Карта также показывает пригородные районы и сельские дороги 🚜, что указывает на рост города и его интеграцию с окружающими территориями.
  • Узнаваемые ориентиры: Вы легко можете определить значимые ориентиры, такие как Алматинский ипподром 🐎, озеро Сайран 🌊, кампус КазНУ 🎓 и стадион Алматы Арена 🏟️.
  • Сеточная планировка в центральных районах: Центральные районы спланированы в сеточном формате, в то время как новые районы адаптированы к ландшафту 🌄, что показывает этапы роста города.

Заключение

Эта визуализация позволяет не только увидеть текущую структуру дорожной сети Алматы, но и лучше понять её историческое развитие. Используя osmnx и matplotlib, вы можете создать аналогичные карты для любого города, что открывает широкие возможности для анализа и исследований.


Код

Полный код проекта доступен на GitHub.