来自 gdf ​​的 Osmnx 基本统计信息

Posted

技术标签:

【中文标题】来自 gdf ​​的 Osmnx 基本统计信息【英文标题】:Osmnx basic stats from gdf 【发布时间】:2021-12-23 11:49:37 【问题描述】:

我正在尝试使用以下代码计算从 gdf ​​创建的图表的基本统计数据:

ox.utiles_graph.graph_from_gdf(n,e)

节点和边之前已被保存并产生于:

G = graph.graph_from_place(some_place_name) 
n,e = ox.graph_to_gdfs(G)
n.save_to_file(filname,driver="ESRI Shapefile")
e.save_to_file(filname,driver="ESRI Shapefile")

我可以绘制图表并从中计算旅行时间,但我无法使用基本统计功能。 我收到以下错误:

 ---> 56 ox.basic_stats(G)

~/anaconda3/envs/ox/lib/python3.9/site-packages/osmnx/stats.py in basic_stats(G, area, clean_int_tol, clean_intersects, tolerance, circuity_dist)
    346     stats["edge_length_avg"] = stats["edge_length_total"] / stats["m"]
    347     stats["streets_per_node_avg"] = streets_per_node_avg(G)
--> 348     stats["streets_per_node_counts"] = streets_per_node_counts(G)
    349     stats["streets_per_node_proportions"] = streets_per_node_proportions(G)
    350     stats["intersection_count"] = intersection_count(G)

~/anaconda3/envs/ox/lib/python3.9/site-packages/osmnx/stats.py in streets_per_node_counts(G)
     80     """
     81     spn_vals = list(streets_per_node(G).values())
---> 82     return i: spn_vals.count(i) for i in range(int(max(spn_vals)) + 1)
     83 
     84 

ValueError: max() arg is an empty sequence

有什么办法可以解决这个问题吗?

【问题讨论】:

我忘了说 G = ox.utiles_graph.graph_from_gdf(n,e) 【参考方案1】:

如果您想将图表保存到磁盘并稍后再次使用它,您应该将save it 作为 GraphML 文件。如果您出于某种原因必须将其保存为节点/边 shapefile,如果要计算基本统计信息,则需要手动计算每个节点的街道数:

import osmnx as ox
import networkx as nx

G = ox.graph_from_gdfs(some_nodes, some_edges)

spn = ox.utils_graph.count_streets_per_node(G)
nx.set_node_attributes(G, values=spn, name="street_count")
stats = ox.basic_stats(G)

请注意,如果您以这种方式手动执行此操作,由于外围效应,您的每节点街道数可能会有些不准确。如果您只是以通常的方式下载图形然后将其保存为 GraphML 文件,则不会出现此问题。

【讨论】:

感谢您的快速回答。使用 Shapefile 的原因是能够加载特定社区的数据。有什么方法可以计算多边形描述的单个邻域的统计数据? 当然。查看使用示例和文档:osmnx.readthedocs.io/en/stable/…

以上是关于来自 gdf ​​的 Osmnx 基本统计信息的主要内容,如果未能解决你的问题,请参考以下文章

python 来自nginx访问日志的HTTP状态代码统计信息

Python:来自多个统计文件的统计摘要

常用GWAS统计方法和模型简介

4 对象基本信息描述及统计

markdown 使用ArcPy为要素类中的字段生成基本摘要统计信息

做数据分析应该知道的五个统计基本概念