gpt4 book ai didi

python - 从 0.5.1 升级到 0.8.2 后,graph_from_polygon 中出现 osmnx TypeError

转载 作者:太空宇宙 更新时间:2023-11-03 21:28:35 25 4
gpt4 key购买 nike

去年完成 osmnx 的论文工作后,我有一段时间陷入了 Python PTSD 的状态。但随着 2017 年 ACS 5 年预测的发布,我需要进行一些新的数据分析。所以我将 osmnx 更新到 0.8.2,执行了 conda update --all -c conda-forge,然后启动了我的旧笔记本。

它基本上可以工作,但我在 graph_from_polygon 函数中遇到错误。

TypeError                                 Traceback (most recent call last)
<ipython-input-60-96e1e789c1a5> in <module>()
---> 58 network, network_stats, tract_polygon = load_network(optimal_tracts, utm_crs)
59

<ipython-input-56-3036c449a01f> in load_network(opt_tracts, my_crs)
34
---> 35 net = ox.core.graph_from_polygon(projected_circle,network_type='bike')
36

/Users/tom/anaconda/lib/python2.7/site-packages/osmnx/core.pyc in
graph_from_polygon(polygon, network_type, simplify, retain_all,
truncate_by_edge, name, timeout, memory, max_query_area_size,
clean_periphery, infrastructure, custom_filter)
1741 max_query_area_size=max_query_area_size,
1742 infrastructure=infrastructure, custom_filter=custom_filter)
-> 1743 G_buffered = create_graph(response_jsons, name=name,
retain_all=True, network_type=network_type)
1744 G_buffered = truncate_graph_polygon(G_buffered,
polygon_buffered, retain_all=True, truncate_by_edge=truncate_by_edge)
1745

/Users/tom/anaconda/lib/python2.7/site-packages/osmnx/core.pyc in
create_graph(response_jsons, name, retain_all, network_type)
1358 # add length (great circle distance between nodes) attribute to each edge to
1359 # use as weight
-> 1360 if len(G.edges) > 0:
1361 G = add_edge_lengths(G)
1362

TypeError: object of type 'instancemethod' has no len()

到目前为止,这些包仍然可以很好地协同工作。 projected_circle 似乎已正确创建为 UTM 经纬度多边形(epsg:32617,测试城市北卡罗来纳州夏洛特)。这是相关代码。 (opt_tracts 是一组人口普查区的 GeoDataFrame)。

def load_network(opt_tracts,my_crs):    

tract_poly=opt_tracts.unary_union

projected_circle,projection = ox.projection.project_geometry(tract_poly,crs={'init': my_crs}, to_latlong=True)

net = ox.core.graph_from_polygon(projected_circle,network_type='bike')

net_stats = ox.stats.basic_stats(net,area=8047)

return (net, net_stats, tract_poly)

这是控制台输出:

Got all network data within polygon from API in 1 request(s) and 0.61 seconds
Creating networkx graph from downloaded OSM data...
Created graph with 11,371 nodes and 22,550 edges in 1.10 seconds

最佳答案

您安装了哪个版本的networkx?

我建议创建一个新的虚拟环境,在其中安装 OSMnx,然后从那里运行你的 jupyter 笔记本,例如:

conda create -c conda-forge -n OX python=3 osmnx notebook

另请参阅:https://osmnx.readthedocs.io/en/stable/#installation

关于python - 从 0.5.1 升级到 0.8.2 后,graph_from_polygon 中出现 osmnx TypeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53687627/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com