Я запускаю al oop, который вычисляет networkx.classes.multidigraph.MultiDiGraph
для каждой строки (окрестности) списка GeoDataFrames
(городов). Затем он вычисляет некоторую статистику для каждой строки и записывает файл на диск. Проблема в том, что l oop очень долго вычисляется, потому что график вычисляется для каждой строки. Я ищу способ ускорить l oop
Я пытался вычислить график для каждого полного GeoDataFrame
, прежде чем обрезать его до границ окрестности, но я не знаю, как обрезать Графики Networkx.
Вот мой начальный код, который занимает 95 секунд:
import osmnx as ox
import pandas as pd
import geopandas as gpd
import os
path="C:/folder/"
files=[os.path.join(path, f) for f in os.listdir(path)]
merged=[]
for i in range(0,2):
city=gpd.read_file(files[i])
circ=[]
for j in range(0,2):
graph_for_row=ox.graph_from_polygon(city.geometry[j])
#above is the long command
stat = ox.basic_stats(graph_for_row)
circ.append(stat['circuity_avg'])
circ=pd.Series(circ)
merged.append(pd.concat([city, circ], axis=1))
for k in (range(0,len(merged))):
with open(geofiles[k], 'w') as f:
f.write(merged[k].to_json())
Как я могу ускорить мой l oop?