示例#1
0
def cve2lines(cvedirn, station_conv, llfn):

    railstation_fn = os.path.join(cvedirn, 'railstation_master.txt')

    # railstation -> 路線 - 駅名リスト
    # {(cve路線ID, cve路線名): ジョルダン駅名, ...}
    railstation_data = mk_railstation_data(railstation_fn, station_conv)

    # Lines instance
    lines = Lines()
    for lineID, linename, *stations_j in railstation_data:
        chk = lines.add_line(lineID, linename, stations_j)
        if type(chk) is int and chk < 0:
            print('railstation err: {0}: {1} {2}'.format(
                chk, lineID, linename))
            sys.exit()

    # 路線リスト
    lines_list = lines.line_list()
    with open(llfn, 'w', encoding='utf-8') as f:
        f.write(''.join(['\t'.join(l) + '\n' for l in lines_list]))

    return lines
示例#2
0
    # ジョルダン -> 所定 路線対応リスト取得 1:多
    # {(ジョルダン路線名, ジョルダン方面名): [(cve路線ID, cve路線名), ...], ...}
    line_conv = mk_line_conv(lineconv_fn)

    # cve -> ジョルダン 駅名対応リスト取得 多:1
    # {cve駅名: ジョルダン駅名}
    station_conv = mk_station_conv(stalinedirec_fn)

    # railstation -> 路線 - 駅名リスト
    # {(cve路線ID, cve路線名): ジョルダン駅名, ...}
    railstation_data = mk_railstation_data(railstation_fn, station_conv)

    # Lines instance
    lines = Lines()
    for (lineID, linename), stations in railstation_data.items():
        chk = lines.add_line(lineID, linename, stations)
        if chk < 0:
            print('railstation err: {0}: {1} {2}'.format(
                chk, lineID, linename))
            sys.exit()

    # 運行表データを全部読み、長いデータ順に
    all_data = read_data_and_sort(rt_dirn)

    ok_data, osng_data, pas_data, err_data = [], [], [], []
    vehicles = {}

    # 1列車ずつ
    for l in all_data:

        written = False