コード例 #1
0
 def test_case_statistics(self):
     from pm4py.statistics.traces.log import case_statistics
     log = self.get_log()
     case_statistics.get_kde_caseduration(log)
     case_statistics.get_events(log, "N77802")
     case_statistics.get_variant_statistics(log)
     case_statistics.get_cases_description(log)
     case_statistics.get_all_casedurations(log)
     case_statistics.get_first_quartile_caseduration(log)
     case_statistics.get_median_caseduration(log)
コード例 #2
0
def execute_script():
    log = pm4py.read_xes("../tests/input_data/running-example.xes")
    dfg, sa, ea = pm4py.discover_dfg(log)
    tree = pm4py.discover_process_tree_inductive(log)
    heu_net = pm4py.discover_heuristics_net(log)
    net, im, fm = pm4py.discover_petri_net_alpha(log)
    bpmn = pm4py.convert_to_bpmn(tree)
    ts = ts_discovery.apply(log)
    x_cases, y_cases = case_statistics.get_kde_caseduration(log)

    gviz1 = dfg_visualizer.apply(dfg)
    gviz2 = tree_visualizer.apply(tree)
    gviz3 = hn_visualizer.apply(heu_net)
    gviz4 = pn_visualizer.apply(net, im, fm)
    gviz5 = bpmn_visualizer.apply(bpmn)
    gviz6 = ts_visualizer.apply(ts)
    gviz7 = graphs_visualizer.apply(x_cases, y_cases, variant=graphs_visualizer.Variants.CASES,
                                          parameters={graphs_visualizer.Variants.CASES.value.Parameters.FORMAT: "svg"})

    print("1", len(dfg_visualizer.serialize_dot(gviz1)))
    print("1", len(dfg_visualizer.serialize(gviz1)))
    print("2", len(tree_visualizer.serialize_dot(gviz2)))
    print("2", len(tree_visualizer.serialize(gviz2)))
    print("3", len(hn_visualizer.serialize(gviz3)))
    print("4", len(pn_visualizer.serialize_dot(gviz4)))
    print("4", len(pn_visualizer.serialize(gviz4)))
    print("5", len(bpmn_visualizer.serialize_dot(gviz5)))
    print("5", len(bpmn_visualizer.serialize(gviz5)))
    print("6", len(ts_visualizer.serialize_dot(gviz6)))
    print("6", len(ts_visualizer.serialize(gviz6)))
    print("7", len(graphs_visualizer.serialize(gviz7)))
コード例 #3
0
ファイル: case_duration.py プロジェクト: zhengyuxin/pm4py-ws
def get_case_duration_svg(log, parameters=None):
    """
    Gets the SVG of the case duration graph

    Parameters
    -------------
    log
        Log
    parameters
        Possible parameters of the algorithm

    Returns
    -------------
    graph
        Case duration graph
    """
    if parameters is None:
        parameters = {}

    x, y = case_statistics.get_kde_caseduration(log, parameters)
    gviz = graphs_factory.apply_plot(x, y, variant="cases", parameters={"format": "svg"})

    gviz_base64 = base64.b64encode(str(gviz).encode('utf-8'))

    ret = []
    for i in range(len(x)):
        ret.append((x[i], y[i]))

    return get_base64_from_file(gviz), gviz_base64, ret
コード例 #4
0
    def test_logCaseDurationPlotSemiLogx(self):
        # to avoid static method warnings in tests,
        # that by construction of the unittest package have to be expressed in such way
        self.dummy_variable = "dummy_value"

        log = xes_importer.apply(os.path.join("input_data", "receipt.xes"))
        x, y = log_case_statistics.get_kde_caseduration(log)
        json = log_case_statistics.get_kde_caseduration_json(log)
        del json
コード例 #5
0
def execute_script():
    log = xes_importer.apply(os.path.join("..", "tests", "input_data", "receipt.xes"))

    # visualize case duration graph
    x_cases, y_cases = case_statistics.get_kde_caseduration(log)
    graph_cases = graphs_factory.apply(x_cases, y_cases, variant="cases", parameters={"format": "svg"})
    graphs_factory.view(graph_cases)

    # visualize events over time graph
    x_dates, y_dates = attributes_filter.get_kde_date_attribute(log)
    graph_dates = graphs_factory.apply(x_dates, y_dates, variant="dates", parameters={"format": "svg"})
    graphs_factory.view(graph_dates)
コード例 #6
0
def describe_log(chat_id):
    log = get_current_log(chat_id)
    filename = None
    filename2 = None
    # case duration
    try:
        x, y = case_statistics.get_kde_caseduration(
            log,
            parameters={
                constants.PARAMETER_CONSTANT_TIMESTAMP_KEY: "time:timestamp"
            })
        gviz = graphs_vis_factory.apply_plot(x, y, variant="cases")
        new_file, filename = tempfile.mkstemp(suffix="png")
        graphs_vis_factory.save(gviz, filename)
    except OSError:
        pass

    # events over time
    try:
        x, y = attributes_filter.get_kde_date_attribute(
            log, attribute="time:timestamp")
        gviz2 = graphs_vis_factory.apply_plot(x, y, variant="dates")
        new_file2, filename2 = tempfile.mkstemp(suffix="png")
        graphs_vis_factory.save(gviz2, filename2)
    except OSError:
        pass

    return {
        "traces":
        len(log),
        "acts_freq":
        pm4py.objects.log.util.log.get_event_labels_counted(
            log, "concept:name"),
        "case_duration":
        filename,
        "events_over_time":
        filename2
    }
コード例 #7
0
def statics(request):

    logadr = ADRESS
    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)
    #duration = infra.recieve_and_convert_log.get_duration(log)
    duration = Duration
    #deviation = infra.recieve_and_convert_log.get_deviation(duration,log)
    deviation = Deviation
    #waitingtime = infra.recieve_and_convert_log.waitingtime(log)
    waitingtime = Waitingtime
    #frequency = infra.recieve_and_convert_log.get_waitinhour(log,Waitingtime,'n',Watichange)
    #frequency = Frequency

    st = datetime.fromtimestamp(100000000)
    et = datetime.fromtimestamp(200000000)
    bh_object = BusinessHours(st, et)
    worked_time = bh_object.getseconds()

    #log_path = os.path.join("tests","input_data","receipt.xes")
    initialtrace = infra.recieve_and_convert_log.initialtrace(log)
    x, y = case_statistics.get_kde_caseduration(
        log,
        parameters={
            constants.PARAMETER_CONSTANT_TIMESTAMP_KEY: "time:timestamp"
        })
    gviz1 = graphs_visualizer.apply_plot(
        x, y, variant=graphs_visualizer.Variants.CASES)
    gviz2 = graphs_visualizer.apply_semilogx(
        x, y, variant=graphs_visualizer.Variants.CASES)
    graphs_visualizer.save(gviz1, "DES1/static/image1.gv.png")
    graphs_visualizer.save(gviz2, "DES1/static/image2.gv.png")

    x, y = attributes_filter.get_kde_date_attribute(log,
                                                    attribute="time:timestamp")
    gviz3 = graphs_visualizer.apply_plot(
        x, y, variant=graphs_visualizer.Variants.DATES)
    graphs_visualizer.save(gviz3, "DES1/static/image3.gv.png")
    '''
    x, y = attributes_filter.get_kde_numeric_attribute(log, "amount")
    gviz4 = graphs_visualizer.apply_plot(x, y, variant=graphs_visualizer.Variants.ATTRIBUTES)
    gviz5 = graphs_visualizer.apply_semilogx(x, y, variant=graphs_visualizer.Variants.ATTRIBUTES)
    graphs_visualizer.save(gviz4,"./static/image4.gv.png")
    graphs_visualizer.save(gviz5,"./static/image5.gv.png")
    '''
    numtrace = infra.recieve_and_convert_log.statics(log)[0]
    numactivity = infra.recieve_and_convert_log.statics(log)[1]
    activitylist = infra.recieve_and_convert_log.statics(log)[2]
    timeinterval = infra.recieve_and_convert_log.statics(log)[3]
    meanthoughputtime = infra.recieve_and_convert_log.statics(log)[4][0]
    deviationthoughputtime = infra.recieve_and_convert_log.statics(log)[4][1]
    arrivalratio = infra.recieve_and_convert_log.statics(log)[5]
    dispersionratio = infra.recieve_and_convert_log.statics(log)[6]
    resourcedict = infra.recieve_and_convert_log.initialresource1(log)
    initialcapacity = infra.recieve_and_convert_log.computecapacity(log)
    initiallimit = infra.recieve_and_convert_log.initiallimit(log)[0]
    initialcaplim = []
    for i in range(len(initialcapacity)):
        initialcaplim.append(
            (initialcapacity[i][0], initialcapacity[i][1], initiallimit[i][1]))
    #print(intialcapacity,"line 205")
    Actresource = roles_discovery.apply(
        log, variant=None, parameters={rpd.Parameters.RESOURCE_KEY: logreso})
    list0 = []
    infra.recieve_and_convert_log.notdoact(ptree, list0)
    handover = infra.recieve_and_convert_log.getactivityresourcecount(
        log, list0, logname, logreso)[1]

    for i, x in enumerate(duration):
        duration[i] = (x[0], round(x[1], 2), round(deviation[i][1], 2))
    for i, x in enumerate(deviation):
        deviation[i] = (x[0], round(x[1], 2))
    context = {'log':log,'ptree':ptree,'duration':duration,'deviation':deviation,\
    'worked_time':worked_time,'numtrace':numtrace,'numactivity':numactivity,'activitylist':activitylist,\
    'timeinterval':timeinterval,'meanthoughputtime':meanthoughputtime,\
    'deviationthoughputtime':deviationthoughputtime,'arrivalratio':arrivalratio,\
    'dispersionratio':dispersionratio,'resourcedict':Actresource,'handover':handover,"initialcaplim":initialcaplim,'initialtrace':initialtrace}
    return render(request, 'statics.html', context)
コード例 #8
0
ファイル: pm1.py プロジェクト: Godcomplex11/DU
st = datetime.fromtimestamp(100000000)
et = datetime.fromtimestamp(200000000)
bh_object = BusinessHours(st, et)
worked_time = bh_object.getseconds()
print(worked_time)

#Cycle Time and Waiting Time
from pm4py.objects.log.util import interval_lifecycle
enriched_log = interval_lifecycle.assign_lead_cycle_time(log)
#error


#display graphs
import os
from pm4py.objects.log.importer.xes import importer as xes_importer
log_path = os.path.join("tests","input_data","receipt.xes")
log = xes_importer.apply(log_path)

from pm4py.util import constants
from pm4py.statistics.traces.log import case_statistics
x, y = case_statistics.get_kde_caseduration(log, parameters={constants.PARAMETER_CONSTANT_TIMESTAMP_KEY: "time:timestamp"})

from pm4py.visualization.graphs import visualizer as graphs_visualizer

gviz = graphs_visualizer.apply_plot(x, y, variant=graphs_visualizer.Variants.CASES)
graphs_visualizer.view(gviz)

gviz = graphs_visualizer.apply_semilogx(x, y, variant=graphs_visualizer.Variants.CASES)
graphs_visualizer.view(gviz)