File size: 1,584 Bytes
8097001
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import os

from pm4py.algo.discovery.inductive import algorithm as inductive_miner
from pm4py.objects.log.importer.xes import importer as xes_importer
from pm4py.objects.conversion.process_tree import converter as process_tree_converter
from examples import examples_conf
import importlib.util


def execute_script():
    # import the log
    log_path = os.path.join("..", "tests", "input_data", "receipt.xes")
    log = xes_importer.apply(log_path)
    # apply Inductive Miner
    process_tree = inductive_miner.apply(log)
    net, initial_marking, final_marking = process_tree_converter.apply(process_tree)

    if importlib.util.find_spec("graphviz"):
        from pm4py.visualization.petri_net import visualizer as pn_vis
        # get visualization
        variant = pn_vis.Variants.PERFORMANCE
        parameters_viz = {pn_vis.Variants.PERFORMANCE.value.Parameters.AGGREGATION_MEASURE: "mean", pn_vis.Variants.PERFORMANCE.value.Parameters.FORMAT: examples_conf.TARGET_IMG_FORMAT}
        gviz = pn_vis.apply(net, initial_marking, final_marking, log=log, variant=variant,
                            parameters=parameters_viz)
        pn_vis.view(gviz)
        # do another visualization with frequency
        variant = pn_vis.Variants.FREQUENCY
        parameters_viz = {pn_vis.Variants.FREQUENCY.value.Parameters.FORMAT: examples_conf.TARGET_IMG_FORMAT}
        gviz = pn_vis.apply(net, initial_marking, final_marking, log=log, variant=variant,
                            parameters=parameters_viz)
        pn_vis.view(gviz)


if __name__ == "__main__":
    execute_script()