def changeptree(request): print('here is changeptree~~~~~~~~~~~~~~~~~~~~~') global ADRESS global ProcessTree global inputname global ConvertTree inputname = uploadview.getlogname() logadr = './media/log/input_log' ADRESS = logadr log = infra.recieve_and_convert_log.convert_log(logadr, logname, logtime, logtran, logstart, logcompl, logreso, logid, inputname[-3:]) #ptree = infra.recieve_and_convert_log.get_processtree(log) ptree = request.POST.get('ptree') #print(ptree,'here is ptree') k = 0 for i, ele in enumerate(ptree): if i < k: #print(i,k,"ik") continue if ele == "'": #print("left") for j, ele in enumerate(ptree[i + 1:]): #print(ele,"ele") if ele == "'": #print("right") k = i + j + 2 #print(k,ptree[k],"line49") break if ele == " ": #print("space") b = list(ptree) b[i + j + 1] = '$' ptree = ''.join(b) treelist = ptree.split(" ") treelist1 = [] for ele in treelist: ele1 = ele.replace('$', ' ') treelist1.append(ele1) processtree = infra.recieve_and_convert_log.convertptree( treelist1, None, 0) gviz = pt_visualizer.apply( processtree, parameters={ pt_visualizer.Variants.WO_DECORATION.value.Parameters.FORMAT: "png" }) ConvertTree = 1 ProcessTree = processtree pt_visualizer.save(gviz, "DES1/static/ptree.gv.png") window = 1 return render(request, 'processtree.html', { 'gviz': gviz, 'ptree': ProcessTree, 'window': window })
def display_process_tree(): parameters = { pt_visualizer.Variants.WO_DECORATION.value.Parameters.FORMAT: "SVG" } gviz = pt_visualizer.apply(settings.PROCESS_TREE, parameters=parameters) log_name = settings.EVENT_LOG_NAME log_name = log_name.replace(" ", "") tree_path = os.path.join(settings.TREE_PATH, f"{log_name}.SVG") pt_visualizer.save(gviz, tree_path) return tree_path
def save_vis_process_tree(tree, file_path): """ Saves the visualization of a process tree Parameters --------------- tree Process tree file_path Destination path """ format = file_path[file_path.index(".") + 1:].lower() from pm4py.visualization.process_tree import visualizer as pt_visualizer parameters = pt_visualizer.Variants.WO_DECORATION.value.Parameters gviz = pt_visualizer.apply(tree, parameters={parameters.FORMAT: format}) pt_visualizer.save(gviz, file_path)
def save_vis_process_tree(tree: ProcessTree, file_path: str): """ Saves the visualization of a process tree Parameters --------------- tree Process tree file_path Destination path """ format = os.path.splitext(file_path)[1][1:] from pm4py.visualization.process_tree import visualizer as pt_visualizer parameters = pt_visualizer.Variants.WO_DECORATION.value.Parameters gviz = pt_visualizer.apply(tree, parameters={parameters.FORMAT: format}) pt_visualizer.save(gviz, file_path)
def save_graph_file(type, gviz, path): if type == "alpha": pn_visualizer.save(gviz, path) elif type == "heuristic-heu-net": hn_visualizer.save(gviz, path) elif type == "heuristic-pet-net": pn_visualizer.save(gviz, path) elif type == "dfg-discovery-frequency": dfg_visualization.save(gviz, path) elif type == "dfg-discovery-active-time": dfg_visualization.save(gviz, path) elif type == "dfg-discovery-pet-net": pt_visualizer.save(gviz, path) elif type == "inductive-miner-tree": pt_visualizer.save(gviz, path) elif type == "inductive-miner-petri": pn_visualizer.save(gviz, path)
def processtree(request): print('here is processtree~~~~~~~~~~~~~~~~~~~~~') global ADRESS logadr = ADRESS gviz = pt_visualizer.apply( ProcessTree, parameters={ pt_visualizer.Variants.WO_DECORATION.value.Parameters.FORMAT: "png" }) Evaluation = infra.recieve_and_convert_log.gettreeinfo()[0] Loopdict = infra.recieve_and_convert_log.gettreeinfo()[1] pt_visualizer.save(gviz, "DES1/static/ptree.gv.png") window = 0 return render( request, 'processtree.html', { 'gviz': gviz, 'ptree': ProcessTree, 'evaluation': Evaluation, 'loopdict': Loopdict, 'window': window })
from pm4py.algo.discovery.inductive import algorithm as inductive_miner from pm4py.visualization.petrinet import visualizer from pm4py.algo.enhancement.decision import algorithm as decision_mining from pm4py.visualization.decisiontree import visualizer as tree_visualizer from pm4py.algo.enhancement.decision import algorithm as decision_mining import numpy as np from pm4py.objects.process_tree import pt_operator from enum import Enum log = xes_importer.apply( '/Users/jiao.shuai.1998.12.01outlook.com/code/07.01.2021/DES1/testfile/test.xes' ) ''' dataframe = log_converter.apply(log, variant=log_converter.Variants.TO_DATA_FRAME) dataframe.to_csv('/Users/jiao.shuai.1998.12.01outlook.com/code/07.01.2021/DES1/testfile/running-example.csv') ''' ''' tree = inductive_miner.apply_tree(log) gviz = pt_visualizer.apply(tree, parameters={pt_visualizer.Variants.WO_DECORATION.value.Parameters.FORMAT: "png"}) pt_visualizer.save(gviz,"/Users/jiao.shuai.1998.12.01outlook.com/code/07.01.2021/DES1/testfile/ptree.png") ''' hw_values = sna.apply(log, variant=sna.Variants.HANDOVER_LOG) gviz_hw_py = sna_visualizer.apply(hw_values, variant=sna_visualizer.Variants.PYVIS) #sna_visualizer.view(gviz_hw_py, variant=sna_visualizer.Variants.PYVIS) #sna_visualizer.save(gviz_hw_py,"/Users/jiao.shuai.1998.12.01outlook.com/code/07.01.2021/DES1/testfile/handover.png") def findlabel(tree, list): if tree.children != []: for child in tree.children: