Ejemplo n.º 1
0
def Metastation_sort_onestation(Transport1, Transport2, Transport3, Transport4):
    Metastation_sort_onestation124_txt = os.path.join(PROJECT_ROOT, 'kesh3/Metastation_sort_onestation124.txt')
    max_station_timestamp = Station.objects.all().aggregate(Max('timestamp'))
    max_route_timestamp = Route.objects.all().aggregate(Max('timestamp'))
    max_transport_timestamp = Transport.objects.all().aggregate(Max('timestamp'))
    max_onestation_timestamp = Onestation.objects.all().aggregate(Max('timestamp'))
    max_timestamp = max(max_onestation_timestamp, max_station_timestamp, max_route_timestamp, max_transport_timestamp)
    max_timestamp = max_timestamp['timestamp__max']
    if os.path.isfile(Metastation_sort_onestation124_txt) == False:
        open(Metastation_sort_onestation124_txt, 'w')
    sm_file = os.path.getmtime(Metastation_sort_onestation124_txt)
    stat = os.stat(Metastation_sort_onestation124_txt)
    file_size = stat.st_size
    timestamp = datetime.datetime.fromtimestamp(sm_file)

    if timestamp < max_timestamp or file_size == 0:
        list_in_raduus = [[]] * 398
        metastations_stations_list = new_Metastation(Transport1, Transport2, Transport3, Transport4)
        for para in metastations_stations_list:
            a = para[0]
            b = para[1]
            para[0] = int(Station.objects.get(matrix_index=a).one_station_id)
            para[1] = int(Station.objects.get(matrix_index=b).one_station_id)
        #metastations_stations_list.sort()
        for element in range(398):
            one_list = list()
            for para in metastations_stations_list:
                if element == para[0]:
                    one_list += [para[1]]
            list_in_raduus[element] = one_list
        list_in_radius = list()
        for in_radus in list_in_raduus:
            q = list(set(in_radus))
            list_in_radius += [q]

        fp = open(Metastation_sort_onestation124_txt, "w")
        fp.write(repr(list_in_radius))
        fp.close()
    else:
        fp = open(Metastation_sort_onestation124_txt, 'r')
        read_file = fp.read()
        list_in_radius = eval(read_file)
        fp.close()

    return list_in_radius
Ejemplo n.º 2
0
def Metastation_sort(Transport1, Transport2, Transport3, Transport4):
    Metastation_sort124_txt = os.path.join(PROJECT_ROOT, 'kesh3/Metastation_sort124.txt')
    max_station_timestamp = Station.objects.all().aggregate(Max('timestamp'))
    max_route_timestamp = Route.objects.all().aggregate(Max('timestamp'))
    max_transport_timestamp = Transport.objects.all().aggregate(Max('timestamp'))
    max_onestation_timestamp = Onestation.objects.all().aggregate(Max('timestamp'))
    max_timestamp = max(max_onestation_timestamp, max_station_timestamp, max_route_timestamp, max_transport_timestamp)
    max_timestamp = max_timestamp['timestamp__max']
    if os.path.isfile(Metastation_sort124_txt) == False:
        open(Metastation_sort124_txt, 'w')
    sm_file = os.path.getmtime(Metastation_sort124_txt)
    stat = os.stat(Metastation_sort124_txt)
    file_size = stat.st_size
    timestamp = datetime.datetime.fromtimestamp(sm_file)

    if timestamp < max_timestamp or file_size == 0:
        list_in_raduus = [[]] * 866
        metastations_stations_list = new_Metastation(Transport1, Transport2, Transport3, Transport4)
        metastations_stations_list.sort()
        for element in range(866):
            one_list = list()
            for para in metastations_stations_list:
                if element == para[0]:
                    one_list += [para[1]]
            list_in_raduus[element] = one_list
        for element1 in range(866):
            next_element = element1 + 1
            if next_element < 865:
                if int(Station.objects.get(matrix_index=next_element).order) > int(Station.objects.get(matrix_index=element1).order):
                    list_in_raduus[element1] += [next_element]
            if int(Station.objects.get(matrix_index=element1).order) - 1 >= 0:
                list_in_raduus[element1] += [element1 - 1]

        fp = open(Metastation_sort124_txt, "w")
        fp.write(repr(list_in_raduus))
        fp.close()
    else:
        fp = open(Metastation_sort124_txt, 'r')
        read_file = fp.read()
        list_in_raduus = eval(read_file)
        fp.close()

    return list_in_raduus