def IPv_analysis(IPv_type, exp_n, res_directory, coll, from_d, to_d, ext): input_file_path = res_directory + exp_n + '/5.split_data_for_analysis/' + IPv_type + '/' + coll + '_' + from_d + '-' + to_d + ext output_file_path = res_directory + exp_n + '/6.more_specifics_analysis/' + IPv_type + '/' + coll + '_' + from_d + '-' + to_d + '.csv' write_flag = f.overwrite_file(output_file_path) if write_flag: print "Loading " + input_file_path + "..." df = f.read_file(file_ext, input_file_path) df_sort = df.sort_values(by=['MONITOR', 'PREFIX', 'TIME']) df_sort = df_sort.reset_index(drop=True) df_sort = df_sort.drop(['Unnamed: 0'], axis=1) print "Data loaded successfully" # 1.Prefix visibility analysis print 'Getting visibility per prefix...' monitors, prefixes, visibilities_per_prefix, updates_per_prefix, ASes = prefix_visibility_analysis( df_sort, exp_n) df_prefixes_per_monitor = pd.DataFrame({ 'MONITOR': monitors, 'PREFIX': prefixes }) # 2.Clustering prefixes into more specifics, least_specifics and uniques (non-specifics) pref_types, deeps = clustering_prefixes(df_prefixes_per_monitor) df_visibility_per_prefix = pd.DataFrame({ 'MONITOR': monitors, 'PREFIX': prefixes, 'VISIBILITY': visibilities_per_prefix, 'UPDATES': updates_per_prefix, 'TYPE': pref_types, 'DEEP': deeps, 'ORIGIN': ASes }) # 3.Clustering more specifics prefixes into TOP, single level and more specifics of other more specifics df_more_specifics = df_visibility_per_prefix[ df_visibility_per_prefix['TYPE'] == 'more_specific'] df_more_specifics = df_more_specifics.reset_index(drop=True) df_more_specifics = df_more_specifics.drop(['Unnamed: 0'], axis=1) pref_types, deeps = clustering_prefixes(df_more_specifics) # Replace types for more detailed types df_more_specifics['TYPE'] = pref_types df_others = df_visibility_per_prefix[ df_visibility_per_prefix['TYPE'] != 'more_specific'] df_others = df_others.reset_index(drop=True) df_others = df_others.drop(['Unnamed: 0'], axis=1) df_visibility_per_prefix = df_more_specifics.append(df_others, ignore_index=True) output_file_path = res_directory + exp_n + '/6.more_specifics_analysis/' + IPv_type + '/' + collector + '_' + from_d + '-' + to_d + '.csv' f.save_file(df_visibility_per_prefix, ext, output_file_path)
def saveFile(self): #Get the current textbox textbox = self.getTabText() #Save the file by creating a new fill filename = tk.filedialog.asksaveasfilename() saved_text = textbox.get('1.0', tk.END) fm.save_file(filename, saved_text) #Add the file name to the title of the tab self.notebook.tab(textbox, text=filename)
step_dir = '/5.split_data_for_analysis/IPv6' exp.per_step_dir(exp_name, step_dir) input_file_path = result_directory + exp_name + '/4.concatenate_RIB_data/' + collector + '_' + from_date + '-' + to_date + file_ext output_file_path = result_directory + exp_name + step_dir + '/' + collector + '_' + from_date + '-' + to_date + file_ext write_flag = f.overwrite_file(output_file_path) if write_flag == 1: print "Loading " + input_file_path + "..." df_advises = f.read_file(file_ext, input_file_path) print "Data loaded successfully" print "Splitting {} advises...".format(len(df_advises)) df_IPv4_updates, df_IPv6_updates = separate_IPv_types(df_advises) df_IPv4_updates = df_IPv4_updates.drop(['Unnamed: 0'], axis=1) df_IPv6_updates = df_IPv6_updates.drop(['Unnamed: 0'], axis=1) step_dir = '/5.split_data_for_analysis/IPv4' output_file_path = result_directory + exp_name + step_dir + '/' + collector + '_' + from_date + '-' + to_date + file_ext f.save_file(df_IPv4_updates, file_ext, output_file_path) step_dir = '/5.split_data_for_analysis/IPv6' output_file_path = result_directory + exp_name + step_dir + '/' + collector + '_' + from_date + '-' + to_date + file_ext f.save_file(df_IPv6_updates, file_ext, output_file_path)
print('UNAVAILABLE file: ' + file_path + 'updates.' + year_str + month_str + dd_str + '.' + hh_str + mm_str) # DATA FIELDS times = [] types = [] s_IPs = [] s_AS = [] prefixes = [] AS_PATHs = [] # dump data into several lists for i in range(len(update_lines)): dump_into_lists(update_lines[i], times, types, s_IPs, s_AS, prefixes, AS_PATHs, from_time, to_time) print(' Data saved as lists!') df_update = pd.DataFrame({ 'TIME': times, 'TYPE': types, 'MONITOR': s_IPs, 'AS': s_AS, 'PREFIX': prefixes, 'AS_PATH': AS_PATHs }) print(' Data Frame created!') f.save_file(df_update, file_ext, output_file_path)
step_dir = '/7.combined_data' exp.per_step_dir(exp_name, step_dir) IP_versions = ['IPv4', 'IPv6'] collectors = [ 'rrc00', 'rrc01', 'rrc04', 'rrc05', 'rrc07', 'rrc10', 'rrc11', 'rrc12', 'rrc13' ] frames = [] for IP_v in IP_versions: output_file_path = result_directory + exp_name + '/7.combined_data/' + IP_v + '/' + from_date + '-' + to_date + '.csv' write_flag = f.overwrite_file(output_file_path) if write_flag: for coll in collectors: df = pd.read_csv(result_directory + exp_name + '/6.more_specifics_analysis/' + IP_v + '/' + coll + '_' + from_date + '-' + to_date + '.csv') df = df.drop(['Unnamed: 0'], axis=1) df['collector'] = coll df['IPv'] = IP_v frames.append(df) result = pd.concat(frames) result = result.reset_index(drop=True) output_file_path = result_directory + exp_name + step_dir + '/' + from_date + '-' + to_date + '.csv' f.save_file(result, file_ext, output_file_path)
df_time_mm = df_time_s // 60 df_time_list = df_time_mm.tolist() df_type = df['TYPE'] df_type_list = df_type.tolist() state_indexes = get_state_indexes(df_type_list) print(len(state_indexes)) df_monitor = df['MONITOR'] df_monitor_list = df_monitor.tolist() affected_messages = [] print('\nSearching affected messages...') df_clean = df affected_indexes = [] for i in reversed(state_indexes): affected_indexes += get_affected_message_indexes_per_STATE( i, df_monitor_list, df_type_list, df_time_list) df_clean = df_clean.drop(df.index[affected_indexes]) df_clean = df_clean.reset_index(drop=True) df_clean = df_clean.drop(['Unnamed: 0'], axis=1) f.save_file(df_clean, file_ext, output_file_path) print('Clean data saved')
df_RIBS = pd.DataFrame({ 'TIME': times, 'TYPE': types, 'MONITOR': s_IPs, 'AS': s_AS, 'PREFIX': prefixes, 'AS_PATH': AS_PATHs }) print(' Data Frame created!') # Load clean data input_file_path = result_directory + exp_name + '/3.data_cleaning/' + collector + '_' + from_date + '-' + to_date + file_ext output_file_path = result_directory + exp_name + step_dir + '/' + collector + '_' + from_date + '-' + to_date + file_ext write_flag = f.overwrite_file(output_file_path) print "Loading " + input_file_path + "..." df_updates = f.read_file(file_ext, input_file_path) print "Data loaded successfully" print "Concatenating RIBs to updates" list_complete = [df_RIBS, df_updates] df_complete = pd.concat(list_complete) df_complete = df_complete.drop(['Unnamed: 0'], axis=1) f.save_file(df_complete, file_ext, output_file_path)
experiments = getattr(exp, 'experiments') experiment = experiments[exp_name] from_date = experiment['initDay'] to_date = experiment['endDay'] result_directory = experiment['resultDirectory'] file_ext = experiment['resultFormat'] step_dir = '/2.sort_data_for_cleaning' exp.per_step_dir(exp_name, step_dir) input_file_path = result_directory + exp_name + '/1.load_data/' + collector + '_' + from_date + '-' + to_date + file_ext output_file_path = result_directory + exp_name + step_dir + '/' + collector + '_' + from_date + '-' + to_date + file_ext write_flag = f.overwrite_file(output_file_path) if write_flag: print('Loading ' + input_file_path + ' ...') df = f.read_file(file_ext, input_file_path) df_sort = df.sort_values(by=['MONITOR', 'TIME']) df_sort = df_sort.reset_index(drop=True) df_sort = df_sort.drop(['Unnamed: 0'], axis=1) f.save_file(df_sort, file_ext, output_file_path) check_output(input_file_path, output_file_path)