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)
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)))
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
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
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)
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 }
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)
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)