def test_csv1documentation(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"
     import os
     from pm4py.objects.log.importer.csv import factory as csv_importer
     event_log = csv_importer.import_event_stream(
         os.path.join("input_data", "running-example.csv"))
     event_log_length = len(event_log)
     del event_log_length
     from pm4py.objects.log import transform
     log = transform.transform_event_stream_to_event_log(
         event_log, case_glue="case:concept:name")
     del log
     from pm4py.objects.log.importer.csv.versions import pandas_df_imp
     dataframe = pandas_df_imp.import_dataframe_from_path(
         os.path.join("input_data", "running-example.csv"))
     event_log = log_conv_fact.apply(dataframe,
                                     variant=log_conv_fact.TO_EVENT_STREAM)
     log = log_conv_fact.apply(event_log)
     from pm4py.objects.log.exporter.csv import factory as csv_exporter
     csv_exporter.export(event_log, "outputFile1.csv")
     os.remove("outputFile1.csv")
     from pm4py.objects.log.exporter.csv import factory as csv_exporter
     csv_exporter.export(log, "outputFile2.csv")
     os.remove("outputFile2.csv")
 def test_importExportCSVtoCSV(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"
     event_log = csv_importer.import_event_stream(
         os.path.join(INPUT_DATA_DIR, "running-example.csv"))
     event_log = sorting.sort_timestamp(event_log)
     event_log = sampling.sample(event_log)
     event_log = index_attribute.insert_event_index_as_event_attribute(
         event_log)
     log = log_conv_fact.apply(event_log)
     log = sorting.sort_timestamp(log)
     log = sampling.sample(log)
     log = index_attribute.insert_trace_index_as_event_attribute(log)
     event_log_transformed = log_conv_fact.apply(
         log, variant=log_conv_fact.TO_EVENT_STREAM)
     csv_exporter.export(
         event_log_transformed,
         os.path.join(OUTPUT_DATA_DIR, "running-example-exported.csv"))
     event_log_imported_after_export = csv_importer.import_event_stream(
         os.path.join(OUTPUT_DATA_DIR, "running-example-exported.csv"))
     log_imported_after_export = log_conv_fact.apply(
         event_log_imported_after_export)
     self.assertEqual(len(log), len(log_imported_after_export))
     os.remove(os.path.join(OUTPUT_DATA_DIR,
                            "running-example-exported.csv"))
Example #3
0
def xes_to_csv(xes_path, csv_path):
    """
    Imports .xes given the xes_path, and converts and saves it to a .csv file
    Args:
        xes_path (str) : path of .xes compliant input event log
        csv_path (str) : path of .csv output event log
    """
    log = xes_import_factory.apply(xes_path)
    csv_exporter.export(log, csv_path)
 def test_importExportXEStoCSV(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.import_log(os.path.join(INPUT_DATA_DIR, "running-example.xes"))
     event_log = log_conv_fact.apply(log, variant=log_conv_fact.TO_EVENT_STREAM)
     csv_exporter.export(event_log, os.path.join(OUTPUT_DATA_DIR, "running-example-exported.csv"))
     event_log_newimport = csv_importer.import_event_stream(
         os.path.join(OUTPUT_DATA_DIR, "running-example-exported.csv"))
     log_imported_after_export = log_conv_fact.apply(event_log_newimport)
     self.assertEqual(len(log), len(log_imported_after_export))
     os.remove(os.path.join(OUTPUT_DATA_DIR, "running-example-exported.csv"))
Example #5
0
 def test_pdimp_csvexp(self):
     log0 = csv_import_adapter.import_dataframe_from_path(
         os.path.join("input_data", "running-example.csv"))
     log = log_conv_factory.apply(log0,
                                  variant=log_conv_factory.TO_EVENT_LOG)
     stream = log_conv_factory.apply(
         log0, variant=log_conv_factory.TO_EVENT_STREAM)
     df = log_conv_factory.apply(log0,
                                 variant=log_conv_factory.TO_DATAFRAME)
     csv_exporter_factory.export(log, "ru.csv")
     csv_exporter_factory.export(stream, "ru.csv")
     csv_exporter_factory.export(df, "ru.csv")
     os.remove('ru.csv')
Example #6
0
    #set parameters

    filePath = sys.argv[1]
    k = sys.argv[2]
    t = sys.argv[3]
    anon = sys.argv[4]
    dbName = sys.argv[5]
    secure_token = sys.argv[6]
    sys.setrecursionlimit(3000)

    filePath = filePath.replace(" ", "_")
    if filePath.endswith(".xes"):
        log = xes_import_factory.apply(filePath)
        file_path_xes_csv = filePath + ".csv"
        csv_exporter.export(log, file_path_xes_csv)
    targetFilePath = file_path_xes_csv.replace(".xes.csv",
                                               "_k%s_pretsa.csv" % (k))

    #run PRETSA
    if file_path_xes_csv.endswith(".xes.csv"):
        xes_csv_file = pd.read_csv(file_path_xes_csv,
                                   delimiter=",",
                                   skipinitialspace=True,
                                   encoding="utf-8-sig",
                                   keep_default_na=False,
                                   na_values=[
                                       '-1.#IND', '1.#QNAN', '1.#IND',
                                       '-1.#QNAN', '#N/A N/A', '#N/A', 'N/A',
                                       'n/a', '', '#NA', 'NULL', 'null', 'NaN',
                                       '-NaN', 'nan', '-nan', ''
Example #7
0
    import pandas as pd
    import sqlite3
    import os
    import random
    from pm4py.objects.log.importer.xes import factory as xes_import_factory
    from pm4py.objects.log.exporter.csv import factory as csv_exporter

    #set parameters

    secure_token = sys.argv[1]

    filePath = filePath.replace(" ", "_")
    if filePath.endswith(".xes"):
        log = xes_import_factory.apply(filePath)
        filePath = filePath + ".csv"
        csv_exporter.export(log, filePath)
    targetFilePath = filePath.replace(".csv", "_columns.csv")
    #run PRETSA
    if filePath.endswith(".xes.csv"):
        xes_csv_file = pd.read_csv(filePath,
                                   delimiter=",",
                                   skipinitialspace=True,
                                   encoding="utf-8-sig")
        xes_csv_file.rename(columns={
            'concept:name': 'Activity',
            'case:concept:name': 'Case ID'
        },
                            inplace=True)
        if not 'Duration' in xes_csv_file.columns:
            xes_csv_file.loc[:, "Duration"] = 0.0
        xes_csv_file.to_csv(filePath,
Example #8
0
#Topic:
#-----------------------------
#libraries

from pm4py.algo.discovery.alpha import factory as alpha_miner
from pm4py.objects.log.importer.xes import factory as importer
from pm4py.visualization.petrinet import factory as visualizer
from pm4py.objects.log.importer.csv import factory as csv_importer
event_stream = csv_importer.import_event_stream(
    os.path.join("pmdata/", "running-example.csv"))
event_stream

event_stream_length = len(event_stream)
print(event_stream_length)
for event in event_stream:
    print(event)

from pm4py.objects.conversion.log import factory as conversion_factory

log = conversion_factory.apply(event_stream)

from pm4py.objects.log.exporter.csv import factory as csv_exporter

csv_exporter.export(event_stream, "data/outputFile1.csv")

#log = importer.apply('pmdata/running-example.xes')
net, initial_marking, final_marking = alpha_miner.apply(log)
gviz = visualizer.apply(net, initial_marking, final_marking)
visualizer.view(gviz)
    return inductive_evaluation_result

number_of_experiment_to_run = 100
results = []
for _ in range(number_of_experiment_to_run):

    # Generate a random process tree and get traces from the process tree
    tree = tree_gen_factory.apply()
    log = semantics.generate_log(tree, no_traces=1000)
    size_tree, leafs = rec_node([tree], [])
    leafs = set(leafs).union(set('τ'))
    tree = {
        'tree': str(tree),
        'tree_size': size_tree
    }
    csv_exporter.export(log, 'temp.csv')
    original_df = pd.read_csv('temp.csv')
    os.remove('temp.csv')
    log_for_eval = copy.deepcopy(log)

    # Try different level of noise
    for noise_ratio in np.arange(0, 1.01, 0.05):
        noise_ratio = round(noise_ratio,2)

        # Alter the event log
        df = original_df.copy()
        df = randomly_remove_log(df, noise_ratio)

        # The classic approach is simply to apply the inductive miner
        # on the traces that might contain truncated traces.
        result = {'type':'classic', 'noise':noise_ratio}
Example #10
0
    from pm4py.objects.log.importer.xes import factory as xes_import_factory
    from pm4py.objects.log.exporter.csv import factory as csv_exporter

    #set parameters

    filePath = sys.argv[1]
    dbName = sys.argv[2]
    secure_token = sys.argv[3]

    print("Retrieving case and event attribute names")
    filePath = filePath.replace(" ", "_")

    log = xes_import_factory.apply(filePath)
    targetFilePath = filePath.replace(".xes", "_renamed.csv")
    file_path_buffer = filePath.replace(".xes", "_buffer.csv")
    csv_exporter.export(log, file_path_buffer)
    xes_csv_file = pd.read_csv(file_path_buffer,
                               delimiter=",",
                               skipinitialspace=True,
                               encoding="utf-8-sig",
                               keep_default_na=False,
                               na_values=[
                                   '-1.#IND', '1.#QNAN', '1.#IND', '-1.#QNAN',
                                   '#N/A N/A', '#N/A', 'N/A', 'n/a', '', '#NA',
                                   'NULL', 'null', 'NaN', '-NaN', 'nan',
                                   '-nan', ''
                               ])

    #####################################################

    if not 'Activity' in xes_csv_file.columns:
from pm4py.objects.log.importer.xes import factory as xes_import_factory

path_log = "C:\personal projects\ISMFieldproject\data\Hospital_log.xes"
path_billing = "C:\personal projects\ISMFieldproject\data\Hospital Billing - Event Log.xes.gz"
path_sepsis = "C:\personal projects\ISMFieldproject\data\Sepsis Cases - Event Log.xes.gz"

# %% we read in the event docs from xes

hospital_log = xes_import_factory.apply(path_log)
hospital_billing = xes_import_factory.apply(path_billing)
sepsis_cases = xes_import_factory.apply(path_sepsis)

# %% we transform the documents into csv files

from pm4py.objects.log.exporter.csv import factory as csv_exporter

csv_exporter.export(hospital_log, "hospital_log.csv")
csv_exporter.export(hospital_billing, "hospital_billing.csv")
csv_exporter.export(sepsis_cases, "sepsis_cases.csv")
Example #12
0
#log = xes_import_factory.apply(r"C:\Gamal Elkoumy\PhD\OneDrive - Tartu Ülikool\Secure MPC\Business Process Mining SourceCode\Datasets\BPIC15_1.xes")
#
#csv_exporter.export(log, r"C:\Gamal Elkoumy\PhD\OneDrive - Tartu Ülikool\Secure MPC\Business Process Mining SourceCode\Datasets\BPIC15_1.csv")
#
#print("2")
#log = xes_import_factory.apply(r"C:\Gamal Elkoumy\PhD\OneDrive - Tartu Ülikool\Secure MPC\Business Process Mining SourceCode\Datasets\BPIC15_2.xes")
#
#csv_exporter.export(log, r"C:\Gamal Elkoumy\PhD\OneDrive - Tartu Ülikool\Secure MPC\Business Process Mining SourceCode\Datasets\BPIC15_2.csv")
#
#
#print("3")
#log = xes_import_factory.apply(r"C:\Gamal Elkoumy\PhD\OneDrive - Tartu Ülikool\Secure MPC\Business Process Mining SourceCode\Datasets\BPIC15_3.xes")
#
#csv_exporter.export(log, r"C:\Gamal Elkoumy\PhD\OneDrive - Tartu Ülikool\Secure MPC\Business Process Mining SourceCode\Datasets\BPIC15_3.csv")
#
#
#print("4")
#log = xes_import_factory.apply(r"C:\Gamal Elkoumy\PhD\OneDrive - Tartu Ülikool\Secure MPC\Business Process Mining SourceCode\Datasets\BPIC15_4.xes")
#
#csv_exporter.export(log, r"C:\Gamal Elkoumy\PhD\OneDrive - Tartu Ülikool\Secure MPC\Business Process Mining SourceCode\Datasets\BPIC15_4.csv")

print("5")
log = xes_import_factory.apply(
    r"C:\Gamal Elkoumy\PhD\OneDrive - Tartu Ülikool\Secure MPC\Business Process Mining SourceCode\Datasets\Sepsis Cases - Event Log (1).xes"
)

csv_exporter.export(
    log,
    r"C:\Gamal Elkoumy\PhD\OneDrive - Tartu Ülikool\Secure MPC\Business Process Mining SourceCode\Datasets\Sepsis Cases - Event Log.csv"
)
    case_id, pred, rel_scores = grm_model.predict(trace)
    if len(rel_scores) > 1:
        most_relevant = max(rel_scores.items(), key=operator.itemgetter(1))[0]
        log_trace = attributes_filter.apply_events(
            log, [case_id],
            parameters={
                attributes_filter.PARAMETER_CONSTANT_ATTRIBUTE_KEY:
                name_of_case_id,
                "positive": True
            })

        trace_without_most = attributes_filter.apply_events(
            log_trace, [most_relevant],
            parameters={
                attributes_filter.PARAMETER_CONSTANT_ATTRIBUTE_KEY:
                "concept:name",
                "positive": False
            })

        trace_without_most = trace_without_most[0]

        filtered_log._list.append(trace_without_most)

log = conversion_factory.apply(filtered_log)
csv_exporter.export(log, "sp2020_without_most_relevant.csv")

run_experiment(log,
               hyper_params=hyper_params,
               k=k,
               ml_flow_run_name_prefix=logfile)
Example #14
0
log = conversion_factory.apply(event_stream)

from pm4py.algo.discovery.alpha import factory as alpha_miner

net, initial_marking, final_marking = alpha_miner.apply(log)




from pm4py.objects.log.importer.xes import factory as xes_import_factory
xes_path = 'C:/Users/vince_000/Documents/BPI Challenge 2019/INV after GR - with SRM/01_01_01_Service/'
xes_file = '01_01_01_Invoice_after_GR_with_SRM_Service.xes'

log = xes_import_factory.apply(xes_path + xes_file)

log[0]

from pm4py.objects.log.exporter.csv import factory as csv_exporter

csv_exporter.export(log, "C:/Users/vince_000/Documents/BPI Challenge 2019/test/outputFile1.csv")

from pm4py.algo.discovery.alpha import factory as alpha_miner

net, initial_marking, final_marking = alpha_miner.apply(log)

from pm4py.visualization.petrinet import factory as pn_vis_factory

gviz = pn_vis_factory.apply(net, initial_marking, final_marking)
pn_vis_factory.view(gviz)

log[0]
def load(file_path):
    csv_path = file_path + ".csv"
    if not os.path.isfile(csv_path):
        log = xes_importer.apply(file_path)
        csv_exporter.export(log, csv_path)
    return pd.read_csv(csv_path)