def create_np(): names_dict, label_list = points_dict() for file_tmp in os.listdir("./Data/CoordinatesInput"): if file_tmp.endswith(".txt"): str_file = file_tmp.title() str_file_pre = './Data/CoordinatesInput/%s.txt' % (str_file[:-4]) str_file_np = './Data/npData/%s' % (str_file[:-4]) with open(str_file_pre, 'r') as f: print(str_file) all_coordinates = [] for line in f: line = line.strip('\n') tmp = '' coordinates_list = [] for sign in line: if sign != '[' and sign != ']' and sign != "'" and sign != '"' and sign != ' ': if sign == ',': coordinates_list.append(tmp) tmp = '' else: tmp += sign coordinates_list.append(tmp) all_coordinates.append(coordinates_list) if len(all_coordinates) > 0: data = np.zeros([len(all_coordinates), 6]) for idx, item1 in enumerate(all_coordinates): for idy, item2 in enumerate(item1): data[idx][idy] = float(item2) tmp = data[:, :2] unique_coordinate = npi.unique(tmp) label = npi.indices(unique_coordinate, tmp) max_cluster = np.max(label) + 1 count = np.zeros(max_cluster) for i in label: count[i] += 1 temp = count idc = np.zeros(max_cluster) for i in range(max_cluster): idx = np.argmax(temp) idc[idx] = max_cluster - (i + 1) temp[idx] = 0 for idx, count_label in enumerate(idc): if count_label < max_cluster - math.floor(max_cluster * 0.1): label[np.where(label == idx)] = max_cluster j = 0 for i in range(max_cluster + 1): tmp = np.where(label == i) if len(tmp[0]) > 0: data[np.where(label == i), 5] = label_list[names_dict[str_file[:-4]]][j] j += 1 np.save(str_file_np, data)
def main(): unique_trajectories = np.load('./Data/trajectories_uniques.npy') lst_labels = [] with open('./Data/Labels/labels_uniques_%d.txt' % k1, 'r') as f: for line in f: tmp = line.strip('\n') lst_labels.append(int(tmp)) lst_labels_ls = [] str_file = './Data/clusters_trajectories/labels_%d_%d.txt' % (k1, k2) with open(str_file, 'r') as f: for line in f: tmp = line.strip('\n') lst_labels_ls.append(int(tmp)) items = [] with open('./Data/cross_validation.txt', 'r') as f: for line in f: tmp = line.strip('\n') items.append(int(tmp)) lst_labels_true = [] for label in lst_labels: lst_labels_true.append(lst_labels_ls[label]) trajectory_dict = {} for i, trajectory in enumerate(unique_trajectories): tmp = [] for stop_area in trajectory: tmp.append(int(float(stop_area))) trajectory_dict[repr(tmp)] = lst_labels_true[i] names_dict, label_list = points_dict() n = len(names_dict) results_cv = np.zeros([n, 1]) results = np.load('./Data/Results_RNN/blstm_results.npy') max_results = np.argmax(results) parameters = np.load('./Data/Results_RNN/blstm2_parameters_cv%d.npy' % max_results) for i, file_tmp in enumerate(os.listdir("./Data/Trajectories")): str_file1 = file_tmp.title() str_file1 = str_file1[:-4] with open('./Data/Trajectories/%s.txt' % (str_file1), 'r') as f: ls_testing = [] trajectories_testing = [] for line in f: lst = re.split(r'[ ]', line) lst.pop(-1) tmp = [] for stop_area in lst: tmp.append(int(float(stop_area))) trajectories_testing.append(tmp) ls_testing.append(trajectory_dict[repr(tmp)]) ls_training= [] trajectories_traininig = [] for file_tmp in os.listdir("./Data/Trajectories"): str_file2 = file_tmp.title() str_file2 = str_file2[:-4] if str_file1 != str_file2: with open('./Data/Trajectories/%s.txt' % (str_file2), 'r') as f: for line in f: lst = re.split(r'[ ]', line) lst.pop(-1) tmp = [] for stop_area in lst: tmp.append(int(float(stop_area))) trajectories_traininig.append(tmp) ls_training.append(trajectory_dict[repr(tmp)]) print('run test blstm %s %d' % (str_file1, i)) run_test(trajectories_traininig, trajectories_testing, ls_training, ls_testing, parameters, str_file1)