日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python 包介绍:osmnx

發布時間:2025/4/5 python 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 包介绍:osmnx 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1 osmnx介紹

一個Python 包,可檢索、建模、分析和可視化來自 OpenstreetMap 的街道網絡。

2 graph模塊

graph類型就是networkx 包中的graph類型。所以python庫整理:networkx 包_UQI-LIUWJ的博客-CSDN博客中G的操作這里的G都可以

2.1 graph_from_point

osmnx.graph.graph_from_point(center_point, dist=1000, dist_type='bbox', network_type='all_private', simplify=True, retain_all=False, truncate_by_edge=False, clean_periphery=True, custom_filter=None)
center_point?(tuple)?圍繞其構建圖形的經緯度坐標
dist?(int)?僅保留圖中心這么多米內的那些節點,距離根據 dist_type 參數確定
dist_type?(string {"network",?"bbox"})

如果為“bbox”,則僅保留距離參數的邊界框內的那些節點。

如果是“network”,則僅保留距最中心節點一定網絡距離內的那些節點。

network_type?(string,?{"all_private",?"all",?"bike",?"drive",?"drive_service",?"walk"})獲得什么類型的街道網絡
simplify?(bool)?如果為真,使用simple_graph 函數簡化圖拓撲
retain_all?(bool)?

如果為 True,即使未連接也返回整個圖。

否則,只保留最大的弱連通分量。

truncate_by_edge?(bool)?如果為真,如果至少一個節點的鄰居在邊界框內,則保留這個邊界框外的節點

?2.2 graph_from_place

osmnx.graph.graph_from_place(query, network_type='all_private', simplify=True, retain_all=False, truncate_by_edge=False, which_result=None, buffer_dist=None, clean_periphery=True, custom_filter=None)
query?(string?or?dict?or?list)?對地理編碼的查詢或查詢以獲取地點邊界多邊形
network_type?(string {"all_private",?"all",?"bike",?"drive",?"drive_service",?"walk"})獲得什么類型的街道網絡
simplify?(bool)?如果為真,使用simple_graph 函數簡化圖拓撲
retain_all?(bool)?

如果為 True,即使未連接也返回整個圖。

否則,只保留最大的弱連通分量。

truncate_by_edge?(bool)?如果為真,如果至少一個節點的鄰居在邊界框內,則保留這個邊界框外的節點

?

3 plot模塊

3.1 plot_graph

osmnx.plot.plot_graph(G, ax=None, figsize=(8, 8), bgcolor='#111111', node_color='w', node_size=15, node_alpha=None, node_edgecolor='none', node_zorder=1, edge_color='#999999', edge_linewidth=1, edge_alpha=None, show=True, close=False, save=False, filepath=None, dpi=300, bbox=None)
G?(networkx.MultiDiGraph)需要繪制的圖
ax?(matplotlib axis)?如果不是無,則在此預先存在的軸上繪圖
figsize?(tuple)和matplotlib的一致
bgcolor?(string)?背景顏色
node_color?(string?or?list)點的顏色
node_size?(int)點的大小,如果是0的話,不畫點
node_alpha?(float)點的透明度
node_edgecolor?(string)?點邊框的顏色
edge_color?(string?or?list)

邊的顏色

edge_linewidth?(float)?邊的寬度
edge_alpha?(float)邊的透明度
show?(bool)?如果為 True,則調用 pyplot.show() 來顯示圖形
close?(bool)如果為 True,則調用 pyplot.close() 來關閉圖形
save?(bool)?如果為 True,則將圖形保存到filepath去
filepath?(string)保存的路徑

eg

location_point = (31.20799,121.547812) G1 = ox.graph_from_point(location_point, dist=2000) fig, ax = ox.plot_graph(G1, node_color='r')

3.2 plot_graph_route?

osmnx 筆記: plot_graph_route & plot_graph_routes_UQI-LIUWJ的博客-CSDN博客

3.3?plot_graph_routes

osmnx 筆記: plot_graph_route & plot_graph_routes_UQI-LIUWJ的博客-CSDN博客

3.4?get_colors

從matplotlib顏色映射中獲取n個均勻間距的顏色。

3.4.1 基本使用方法

osmnx.plot.get_colors(n, cmap='viridis', start=0.0, stop=1.0, alpha=1.0, return_hex=False)

3.4.2 參數說明

n?(int)?劃分的顏色數
cmap?(string)

start?(float)?顏色空間的起始位置
stop?(float)?顏色空間的結束位置
alpha?(float)?透明度
return_hex?(bool)

如果為True,將RGBa顏色轉換為類似html的十六進制RGB字符串。

如果為False,返回(R, G, B, alpha)元組的顏色。

?3.4.3 使用舉例

ox.plot.get_colors(10,cmap='Greens') ''' [(0.9686274509803922, 0.9882352941176471, 0.9607843137254902, 1.0),(0.9066205305651672, 0.9641214917339485, 0.8884429065743944, 1.0),(0.8089965397923875, 0.9251672433679354, 0.7834525182622069, 1.0),(0.681045751633987, 0.8718954248366013, 0.6562091503267974, 1.0),(0.5351787773933102, 0.8060899653979239, 0.5287504805843906, 1.0),(0.36392156862745095, 0.7240292195309497, 0.4181468665897732, 1.0),(0.21568627450980393, 0.6287581699346405, 0.3333333333333333, 1.0),(0.10388312187620147, 0.5164936562860438, 0.2467512495194156, 1.0),(0.0, 0.4079046520569012, 0.16444444444444445, 1.0),(0.0, 0.26666666666666666, 0.10588235294117647, 1.0)] '''ox.plot.get_colors(10,cmap='Greens',return_hex=True) ''' ['#f7fcf5','#e7f6e3','#ceecc8','#aedea7','#88ce87','#5db96b','#37a055','#1a843f','#00682a','#00441b'] '''

?3.5??get_edge_colors_by_attr &get_node_colors_by_attr

osmnx 補充筆記:get_edge_colors_by_attr &get_node_colors_by_attr_UQI-LIUWJ的博客-CSDN博客

?4 simplification模塊

4.1 _is_endpoint

節點是邊的真正端點嗎?

如果節點是網絡中邊的“真實”端點,則返回 True,否則返回 False。

OSM 數據包括許多僅作為點存在的節點,以幫助街道繞曲線彎曲。

osmnx.simplification._is_endpoint(G, node, strict=True)

G-圖,node-需要判斷的點

G1=ox.graph_from_place('Pudong,Shanghai,China',network_type='drive') nc = ['white' if ox.simplification._is_endpoint(G1, node) else 'black' for node in G1.nodes()] ox.plot_graph(G1,figsize=(20,20),node_color=nc)

4.2 simplify_graph

osmnx.simplification.simplify_graph(G, strict=True, remove_rings=True)

通過移除間隙節點來簡化圖的拓撲。?

通過刪除所有非交點或終端的節點來簡化圖拓撲。

在封裝它們的端點之間直接創建一條邊,但保留原始邊的幾何形狀,并保存為新邊上的新幾何屬性。

注意,只有簡化的邊才能接收幾何屬性。一些合并后的邊可能包含多種OSM方式,如果是這樣,它們的多個屬性值將存儲為一個列表。

注:如果之前在比如ox.graph_from_point的地方,沒有設置 'simplify=False',那么這里會報錯:

Exception: This graph has already been simplified, cannot simplify it again.

eg,這是沒有簡化的圖:

location_point = (31.20799,121.547812) G1 = ox.graph_from_point(location_point, dist=2000,simplify=False) fig, ax = ox.plot_graph(G1, node_color='r')

這是簡化了之后的圖:

G2=ox.simplification.simplify_graph(G1) ox.plot_graph(G2)

?5 io模塊

5.1?load_graphml

osmnx.io.load_graphml(filepath, node_dtypes=None, edge_dtypes=None, graph_dtypes=None)

5.1.1 參數說明

filepath?(string?or?pathlib.Path)GraphML文件的路徑
node_dtypes?(dict)?點級別屬性名字的字典
edge_dtypes?(dict)邊級別屬性名字的字典
graph_dtypes?(dict)?圖級別屬性名字的字典

5.1.2 用法說明?

從磁盤加載osmnx保存的GraphML文件。

這將節點、邊和圖形級屬性(序列化為字符串)轉換為相應的數據類型。

可以根據需要通過傳入提供類型或自定義轉換器函數的dtypes參數來定制這些參數。

例如,如果想將某些屬性的值轉換為bool類型,可以考慮使用內置的ox.io._convert_bool_string函數:

ox.load_graphml(fp, node_dtypes={my_attr: ox.io._convert_bool_string})

如果你手工設置了’all_oneway=True‘,那么你需要將邊的oneway屬性設置為str

5.1.3 使用舉例

G = ox.io.load_graphml("./graph.graphml") fig, ax = ox.plot_graph(G, node_size=0, edge_color='w', edge_linewidth=0.25)

5.2??save_graphml

osmnx.io.save_graphml(G, filepath=None, gephi=False, encoding='utf-8')

將G保存成graphml格式的文件?

6 utils_graph模塊?

6.1?graph_to_gdfs

osmnx.utils_graph.graph_to_gdfs(G, nodes=True, edges=True, node_geometry=True, fill_edge_geometry=True)

?Convert a MultiDiGraph to node and/or edge GeoDataFrames.

返回:geopandas.GeoDataFrame

參數:

G?(networkx.MultiDiGraph)?輸入的圖
nodes?(bool)?如果是True,那么將圖的節點轉化成GeoDataFrame
edges?(bool)?如果是True,那么將圖的邊轉化成GeoDataFrame
node_geometry?(bool)?如果為True,從節點x和y屬性創建一個幾何列
fill_edge_geometry?(bool)如果為True,使用節點u和v填充缺失的邊幾何字段

????????Gdf_nodes或gdf_edges或元組(Gdf_nodes, gdf_edges).gdf_nodes由osmid索引.

????????gdf_edges由u, v, key按照正常的multidiggraph結構進行多重索引。

總結

以上是生活随笔為你收集整理的python 包介绍:osmnx的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 清纯唯美亚洲色图 | 蜜臀av在线观看 | 一级视频片 | 麻豆国产精品一区 | 91av视频网| 热久久影院 | 超碰在线国产97 | www亚洲成人 | 秋霞视频一区二区 | 一区二区三区福利视频 | 欧美成人精品欧美一级乱黄 | 亚洲欧美日韩第一页 | 国产一二三区免费视频 | 爱爱激情网 | av色资源| 国产精品一区二区人人爽 | 琪琪色在线观看 | 欧美搞逼视频 | 在线视频欧美一区 | 天堂福利在线 | 天堂在线观看视频 | 瑟瑟视频在线观看 | 亚洲精品男人天堂 | 欧美三级a | 天天想你在线观看完整版高清 | xxx日本少妇 | 亚洲国产精一区二区三区性色 | 五月婷婷开心 | 亚洲射吧 | av狠狠 | 欧美456 | 白嫩情侣偷拍呻吟刺激 | 日韩大尺度在线观看 | 亚洲国产精品久 | 涩涩片影院 | 高清一区二区三区视频 | 神马午夜视频 | 久久字幕| 久久澡 | 日韩在线一区二区 | 久久久久久久亚洲av无码 | 日本黄页网站 | 99这里只有精品视频 | 久久青青草原亚洲av无码麻豆 | 国产在线观看免费高清 | 99小视频| 放荡的美妇在线播放 | 久久久久久av无码免费网站 | 最新亚洲精品 | 在线免费观看日韩视频 | 午夜宅男网 | 久久久久一区二区三区 | 香蕉久久精品日日躁夜夜躁 | 麻豆md0077饥渴少妇 | 日韩激情免费 | 亚洲天堂第一区 | 亚洲精品美女 | 久久人成 | 强乱中文字幕av一区乱码 | 国产成人av免费看 | 成人性做爰片免费视频 | 国产精品一区二区欧美 | 影音先锋中文在线 | 亚洲丝袜在线观看 | 久久国产精品精品国产 | 无码人妻精品一区二区三区66 | 在线欧美| 播色屋 | 久久亚洲无码视频 | 一区二区免费在线观看 | 河北彩花中文字幕 | 97人人澡| 五月婷婷中文 | 日韩免费观看视频 | 国产理论 | 精品人伦一区二区三区蜜桃免费 | 亚洲久久影院 | 日本欧美在线观看 | 男插女青青影院 | 欧美综合成人 | 欧美精品久久久久久久自慰 | 长河落日电视连续剧免费观看01 | 人与动物黄色片 | 久久露脸 | 国产欧美日本 | 岛国一区| mm131美女视频 | 99精品久久久久久中文字幕 | 91精品人妻一区二区 | 被黑人啪到哭的番号922在线 | 亚洲区免费 | 色性网| 欧美尹人 | 欧美高清免费 | 国产午夜精品久久久 | 色婷婷亚洲 | 欧美日韩精品在线观看 | 中日黄色片 | 麻豆传媒一区二区三区 |