File size: 2,079 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
37
38
39
40
41
from pm4py.util import constants, pandas_utils

from pm4py.algo.discovery.correlation_mining import algorithm as correlation_miner
from pm4py.objects.log.util import dataframe_utils
from pm4py.statistics.service_time.pandas import get as soj_time_get
from pm4py.statistics.start_activities.pandas import get as sa_get
from pm4py.statistics.end_activities.pandas import get as ea_get
from examples import examples_conf
import importlib.util


def execute_script():
    df = pandas_utils.read_csv("../tests/input_data/interval_event_log.csv")
    df = dataframe_utils.convert_timestamp_columns_in_df(df, timest_format=constants.DEFAULT_TIMESTAMP_PARSE_FORMAT)
    act_count = dict(df["concept:name"].value_counts())
    parameters = {}
    parameters[constants.PARAMETER_CONSTANT_START_TIMESTAMP_KEY] = "start_timestamp"
    parameters[constants.PARAMETER_CONSTANT_TIMESTAMP_KEY] = "time:timestamp"
    parameters["format"] = examples_conf.TARGET_IMG_FORMAT
    start_activities = sa_get.get_start_activities(df, parameters=parameters)
    end_activities = ea_get.get_end_activities(df, parameters=parameters)
    parameters["start_activities"] = start_activities
    parameters["end_activities"] = end_activities
    soj_time = soj_time_get.apply(df, parameters=parameters)
    dfg, performance_dfg = correlation_miner.apply(df, variant=correlation_miner.Variants.CLASSIC,
                                                   parameters=parameters)

    if importlib.util.find_spec("grapviz"):
        from pm4py.visualization.dfg import visualizer as dfg_vis
        gviz_freq = dfg_vis.apply(dfg, activities_count=act_count, serv_time=soj_time, variant=dfg_vis.Variants.FREQUENCY,
                                  parameters=parameters)
        dfg_vis.view(gviz_freq)
        gviz_perf = dfg_vis.apply(performance_dfg, activities_count=act_count, serv_time=soj_time,
                                  variant=dfg_vis.Variants.PERFORMANCE,
                                  parameters=parameters)
        dfg_vis.view(gviz_perf)


if __name__ == "__main__":
    execute_script()