UDST下初探pandana
1、Pandana是什么,干什么用
Pandana 是一个用于网络分析的 Python 库,它使用收缩层次结构来超快速计算,可达性指标和最短路径。数字代码在 C++ 中。
收缩层次结构:一种预先计内存的方法,可以加快模型中最短\最佳路径的计算
安装
Pandana 是一个 Python 包,其中包含用于数值运算的 C++ 扩展。
标准安装
截至 2021 年 3 月,通过 PyPI 和 Conda Forge 为 Mac、Linux 和 Windows 提供二进制安装程序。
您可以使用 Pip 安装 Pandana:
pip install pandana
或conda:
conda install pandana --channel conda-forge
Pandana 最容易在 Python 3.6 到 3.9 中安装。带有 Python 2.7 二进制文件的 Pandana 的最后一个版本是 Conda Forge 上的 v0.4.4。Python 3.5 二进制文件的最后一个版本是 Pip 上的 v0.6。
1.2编译条件
Mac 用户应首先运行以确保您拥有 Apple 的 Xcode 命令行工具,这些工具在幕后是必需的。
Windows 用户将需要Microsoft Visual C++ Build Tools。
Pandana 的构建时要求是cython、numpy和支持 C++11 标准的 C++ 编译器。此外,编译器需要支持 OpenMP 以允许 Pandana 使用多线程。
针对MAC:
建议安装途径是从 Conda Forge 获取编译器——你需要clang和llvm-openmp包。
运行 Pandana 的设置脚本将触发编译:
conda install cython numpy clang llvm-openmp
python setup.py develop
(windows可跳过)
Mac 上的默认 C++ 编译器不支持 OpenMP,这意味着 Pandana 将无法使用多线程。
您可以设置CC环境变量以指定您选择的编译器。如果需要进行额外修改,可以在本地副本中编辑编译脚本setup.py。
多线程
您可以设置CC环境变量以指定您选择的编译器。有关此问题的讨论,请参阅PR #137中的文章。如果需要进行额外修改,可以在本地副本中编辑编译脚本setup.py。
2、Pandana官方简单例子
先上链接:https://github.com/UDST/pandana/blob/dev/examples/Pandana-demo.ipynb
此例子主要用来展示Pandana library:
Pandana library是一个用于网络分析的Python包,它使用收缩层次结构来计算超快速旅行可达性指标和最短路径。
Sections
- Loading data
- Shortest paths
- Proximity
- Accessibility
- Visualization
建议在本地vscode下部署
首先导入pandana包并显示其版本
import numpy as np
import pandas as pd
import pandana
print(pandana.__version__)
设置浮点数输出格式为两位小数,更多理解详见https://blog.csdn.net/S_o_l_o_n/article/details/106418441
pd.options.display.float_format = '{:.2f}'.format
2.1 Loading data
此处所用为pandana的一个包OSMnet,用于提取OpenStreetMap(OSM)街道网络数据的工具
conda安装osmnet或pip安装osmnet
from pandana.loaders import osm
import warnings
warnings.filterwarnings('ignore')
获取San Francisco, CA的数据
network = osm.pdna_network_from_bbox(37.698, -122.517, 37.819