import glob def get_feature_map(dataset): feature_file = open(f'list.txt', 'r') feature_list = [] for ft in feature_file: feature_list.append(ft.strip()) return feature_list # graph is 'fully-connect' def get_fc_graph_struc(dataset): feature_file = open(f'list.txt', 'r') struc_map = {} feature_list = [] for ft in feature_file: feature_list.append(ft.strip()) for ft in feature_list: if ft not in struc_map: struc_map[ft] = [] for other_ft in feature_list: if other_ft is not ft: struc_map[ft].append(other_ft) return struc_map def get_prior_graph_struc(dataset): feature_file = open(f'./data/{dataset}/features.txt', 'r') struc_map = {} feature_list = [] for ft in feature_file: feature_list.append(ft.strip()) for ft in feature_list: if ft not in struc_map: struc_map[ft] = [] for other_ft in feature_list: if dataset == 'wadi' or dataset == 'wadi2': # same group, 1_xxx, 2A_xxx, 2_xxx if other_ft is not ft and other_ft[0] == ft[0]: struc_map[ft].append(other_ft) elif dataset == 'swat': # FIT101, PV101 if other_ft is not ft and other_ft[-3] == ft[-3]: struc_map[ft].append(other_ft) return struc_map if __name__ == '__main__': get_graph_struc()