コード例 #1
0
import lib_time
from lib_timetable import Stations, Timetable
import matplotlib.pyplot as plt
import numpy as np
from rtree import index
from collections import defaultdict


def new_round(_float, _len):
    if str(_float)[-1] == '5':
        return (round(float(str(_float)[:-1] + '6'), _len))
    else:
        return (round(_float, _len))


ttt = lib_time.MeasureT()

f_stations = "/run/media/pengfei/OTHERS/Code/Data/ChinaRailway/China_Station_Location_City.xls"
stations_obj = Stations()
stations_obj.load_file(f_stations)
dict_NameLoc_stations = stations_obj.get_NameLoc_Index()

#dict_IDStations = {}  # 为车站点创建 ID与位置的映射,(其实直接用名字做映射也可以)
f_links = '/run/media/pengfei/OTHERS/OSM/OSMData/China/china-latest-rail-links.csv'
f_nodes = '/run/media/pengfei/OTHERS/OSM/OSMData/China/china-latest-rail-nodes.csv'
#G = lib_graph.createG_fromFile(f_links, source='source', target='target', attr='maxspeed')
df_links = pd.read_csv(f_links)

dict_IDLoc_nodes = lib_graph.getLocation_fromFile(f_nodes,
                                                  ID='ID',
                                                  lon='lon',
コード例 #2
0
lons = sorted(lons)
lats = sorted(lats)

Beijing = (116.3912757, 39.906217)  #  (121.4890497,31.2252985)#上海      #
lon = 0
lat = 0
for l in lons:
    if abs(l - Beijing[0]) < abs(lon - Beijing[0]):
        lon = l
for l in lats:
    if abs(l - Beijing[1]) < abs(lat - Beijing[1]):
        lat = l

###############################################################################
####################### Program start #########################################
ttt = lib_time.MeasureT()  ##### 开始计时
##### 4. 计算任意起点到可达车站的最短旅行时间
###### 选一个起点,设一个在家出来的时间


def func(str_startT):  # DataFrame的一条,只能传进来列表
    startT = strT_to_floatT(str_startT)
    list_layerAccess = []
    dict_accessed = {}  # 车站:最短旅行时间
    dict_ChildInfo = {}  # defaultdict(dict) # 车站:由N层到N+1层 所乘坐列车基本信息
    originGrid = str((lon, lat))
    carAccessHSR = list(nx.neighbors(G_HSRGrid, originGrid))  ## 1.5小时内开车到达的车站

    for s in carAccessHSR:
        arriveT = startT + G_HSRGrid[s][originGrid][
            'duration_s'] / 60 / 60  # 出发时刻+开车时间+准备时间