def diff_event_type(conf): cnt = 0 for r in pcresult.results(conf): dataset_flag = False set_undirected = set() for edge in r.graph.edges(): types = [r.evmap.info(eid).type for eid in edge] if types[0] == types[1]: pass else: if not dataset_flag: print("# {0}".format(r.filename.partition("/")[-1])) dataset_flag = True if (edge[1], edge[0]) in r.graph.edges(): directed = False if (edge[1], edge[0]) in set_undirected: pass else: set_undirected.add(edge) r._print_edge(edge, directed) cnt += 1 else: directed = True r._print_edge(edge, directed) cnt += 1 print print("Edges among different event type: {0}".format(cnt))
def show_count(conf, threshold=0.005, mode="count"): l_result = pcresult.results(conf) #ef = EdgeFilter(conf) if mode == "count": ef = _ClassifierOfCount(l_result, threshold) elif mode == "count-ighost": ef = _ClassifierOfCountIgHost(l_result, threshold) #ef._th_val = threshold ef.show_all(l_result)
def _init_dict(self, conf): import pcresult l_result = pcresult.results(conf) if self.method == "count": self.clsobj = _ClassifierOfCount(l_result, self.threshold) elif self.method == "count_ighost": self.clsobj = _ClassifierOfCountIgHost(l_result, self.threshold) elif self.method == "cont": areas = pcresult.result_areas(conf) self.clsobj = _ClassifierOfContinuation(l_result, self.threshold, areas) elif self.method == "cont_ighost": areas = pcresult.result_areas(conf) self.clsobj = _ClassifierOfContinuationIgHost(l_result, self.threshold, areas)
def _init_dict(self, conf): import pcresult l_result = pcresult.results(conf) if self.method == "count": self.clsobj = _ClassifierOfCount(l_result, self.threshold) elif self.method == "count_ighost": self.clsobj = _ClassifierOfCountIgHost(l_result, self.threshold) elif self.method == "cont": areas = pcresult.result_areas(conf) self.clsobj = _ClassifierOfContinuation(l_result, self.threshold, areas) elif self.method == "cont_ighost": areas = pcresult.result_areas(conf) self.clsobj = _ClassifierOfContinuationIgHost( l_result, self.threshold, areas)
def diff_evset_edge(conf1, conf2): import eventmgr d_diff = eventmgr.diff_event_edge(conf1, conf2) for r in pcresult.results(conf1): dataset_flag = False fn = r.filename.split("/")[-1] s_evdef = d_diff[fn] for edge in r.graph.edges(): if r.evmap.info(edge[0]) in s_evdef or \ r.evmap.info(edge[1]) in s_evdef: if not dataset_flag: print("# {0}".format(r.filename.partition("/")[-1])) dataset_flag = True directed = (edge[1], edge[0]) in r.graph.edges() r._print_edge(edge, directed) print
def list_all_gid(conf): import log_db import lt_label ld = log_db.LogData(conf) ll = lt_label.init_ltlabel(conf) s_gid = set() for r in pcresult.results(conf): for edge in r.graph.edges(): for gid in [r.evmap.info(eid).gid for eid in edge]: s_gid.add(gid) for gid in s_gid: l_ltline = ld.ltg_members(gid) print( "gid {0} : {1} in {2}".format(gid, ll.get_ltg_label(gid, l_ltline)), ll.get_ltg_group(gid, l_ltline))
def related_filtered_all(conf, key="date"): import networkx as nx d_nodes = defaultdict(int) d_edges = defaultdict(int) d_filtered = defaultdict(int) for r in pcresult.results(conf): key = r.filename.split("_")[-1] d_nodes[key] += r.graph.number_of_nodes() d_edges[key] += pcresult.number_of_edges(r.graph) g = nx.Graph(r.graph) for edge in g.edges(): types = [r.evmap.info(eid).type for eid in edge] if types[0] == 0 and types[1] == 0: pass else: d_filtered[key] += 1 for k in sorted(d_nodes.keys()): print("{0} {1} {2} {3}".format(k, d_nodes[k], d_edges[k], d_filtered[k]))
def related_filtered(conf): cnt = 0 for r in pcresult.results(conf): dataset_flag = False for edge in r.graph.edges(): types = [r.evmap.info(eid).type for eid in edge] if types[0] == 0 and types[1] == 0: pass else: if not dataset_flag: print("# {0}".format(r.filename.partition("/")[-1])) dataset_flag = True if (edge[1], edge[0]) in r.graph.edges(): directed = False else: directed = True r._print_edge(edge, directed) cnt += 1 print print("Edges related to filtered event: {0}".format(cnt))
def get_edge_dict(conf, flag, ac_host): d = {} for r in pcresult.results(conf): fn = r.filename.split("/")[-1] d[fn] = set() dedges, udedges = r._separate_edges() if flag is None: edges = dedges + udedges elif flag == "directed": edges = dedges elif flag == "undirected": edges = udedges else: raise ValueError for edge in edges: cedge = tuple([r.evmap.info(eid) for eid in edge]) if ac_host and cedge[0].host == cedge[1].host: pass else: d[fn].add(cedge) return d
def test_edge_filter_cont(conf): conf.set("visual", "edge_filter_method", "cont") conf.set("visual", "edge_filter_th", "2.0") l_result = pcresult.results(conf) ef = EdgeFilter(conf) ef.show_all(l_result)
def test_edge_filter(conf): l_result = pcresult.results(conf) ef = EdgeFilter(conf) ef.show_all(l_result)
def search_gid(conf, gid): for r in pcresult.results(conf): for edge in r.graph.edges(): for temp_gid in [r.evmap.info(eid).gid for eid in edge]: if temp_gid == gid: print r.filename