建怎样的网站挣钱快,网站怎么做微博认证吗,wordpress排版,芜湖网站建设价格hello 大家好#xff01;最近遇到一堆关于街道数据分析的问题#xff0c;又不想去使用百度和高德的API#xff0c;有的功能还是得付费#xff0c;为了学习不想掏钱#xff0c;那么有什么办法么#xff1f;答#xff1a; 有#xff01;必须有#xff01;今天给大家分享…hello 大家好最近遇到一堆关于街道数据分析的问题又不想去使用百度和高德的API有的功能还是得付费为了学习不想掏钱那么有什么办法么答 有必须有今天给大家分享一个很旧的python 库--osmnx首先一段简介OSMNx 是一个下载街道数据、建模、可视化、分析街道数据的通过OpenSteetMap API抓去街道数据还能下载POI建筑海拔等等。需要的依赖库包括geopandasnetworkxmatplotlib。1. 安装那么我们第一步应该做什么呢当然是先安装python。可能有很多和我一样的小伙伴最开始的时候安装完了就被劝退了。 最直接的方式就是去python官网。Welcome to Python.org 很多小伙伴们喜欢使用anaconda其实都差不多。anaconda的环境配置可能会有些蛋疼因为以后安装其他库的时候不会有不兼容的情况反复删除和修改库的配置会是个很麻烦的事情。安装成功了以后cmd或者terminal输入python就会出现上面的状况。那么恭喜安装成功一般也不会失败这里记住一个事情一定要add to path一定要add to path一定要add to path否则以后调用库就会出问题如何add to path如图在系统变量中添加python安装的路径中的scripts文件夹然后保存就可以了。接下来就是安装osmnx库。pip3 install osmnx如果一切正常的话那么恭喜你顺利安装成功了。如果不顺利不用灰心。可能出现错误的是fiona和gdal 出现问题那么请移步到这个网站 https://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml 搜索对应版本的库例如下载对应python版本的独立的库然后pip3 install wheelwheel是一个python自带的安装whl文件的安装器。接下来就到下载路径中安装刚下好的包以fiona为例我的python版本是3.8 64位系统那么对应的fiona就是红色的部分。pip3 install Fiona-1.8.17-cp38-cp38-win_amd64.whl这样就安装好了只要等待一下就安装好了。依次类推找到哪些无法自动安装的库然后自行下载。为了避免麻烦python3.8之后 出现了一个新的状态可以这样操作比如pip3 install osmnx --use-feature2020-resolver这样这个库的依赖库就都可以是最合适的版本。还是减少了一些时间成本。上述步骤无论是Windows mac或者linux 都可以这样操作 当库都安装好了以后就可以进入正题了我们来体验一下osmnx到底能干啥2. 开始使用使用之前不知道小伙伴们都用什么ide个人推荐新手使用jupyter notebook/lab。这两个工具的特点就是轻量化import networkx as nx
import osmnx as ox
import requests
import matplotlib.cm as cm
import matplotlib.colors as colors
%matplotlib inline
ox.config(use_cacheTrue, log_consoleTrue)
ox.__version__这个就是调试一下osmnx并调用其他一些库接下来我们来看看如何爬取城市的街道数据# get a graph for some city
G ox.graph_from_place(Shenyang, Liaoning, China, network_typedrive)
fig, ax ox.plot_graph(G)以沈阳为例等待时间取决于电脑的网速等其它客观因素然后voala 我们就这样直接爬出了路网国内城市也可以爬取基本上就是城市省份国家这样的顺序。接下来还可以计算城市路网基本特征# some basic stats about the network
ox.basic_stats(G_proj, areagraph_area_m, clean_intersectsTrue, circuity_disteuclidean)还可以借助networkx 库来计算城市道路网络的一些复杂网络特征ox.basic_stats(G_proj, areagraph_area_m, clean_intersectsTrue, circuity_disteuclidean)接下来看点酷炫的--中心性可视化临近中心性越高的地方越黄。# convert graph to line graph so edges become nodes and vice versa
edge_centrality nx.closeness_centrality(nx.line_graph(G))
nx.set_edge_attributes(G, edge_centrality, edge_centrality)# color edges in original graph with closeness centralities from line graph
ec ox.plot.get_edge_colors_by_attr(G, edge_centrality, cmapinferno)
fig, ax ox.plot_graph(G, edge_colorec, edge_linewidth2, node_size0)今天先给大家介绍到这里如果大家喜欢后续会继续分享更多osmnx 的内容