Skip to content

Commit c45241a

Browse files
Merge remote-tracking branch 'upstream/hotfixes' into release
2 parents 46ac3fd + 4059ebe commit c45241a

File tree

1 file changed

+49
-30
lines changed
  • pm4py/visualization/ocel/ocdfg/variants

1 file changed

+49
-30
lines changed

pm4py/visualization/ocel/ocdfg/variants/elkjs.py

Lines changed: 49 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ class Parameters(Enum):
3838
ANNOTATION = "annotation"
3939
ACT_METRIC = "act_metric"
4040
EDGE_METRIC = "edge_metric"
41+
ACT_THRESHOLD = "act_threshold"
42+
EDGE_THRESHOLD = "edge_threshold"
4143

4244

4345
def wrap_text(text: str, max_length: int = 15) -> str:
@@ -135,6 +137,12 @@ def apply(
135137
annotation = exec_utils.get_param_value(
136138
Parameters.ANNOTATION, parameters, "frequency"
137139
)
140+
act_threshold = exec_utils.get_param_value(
141+
Parameters.ACT_THRESHOLD, parameters, 0
142+
)
143+
edge_threshold = exec_utils.get_param_value(
144+
Parameters.EDGE_THRESHOLD, parameters, 0
145+
)
138146

139147
pref_act = (
140148
" E="
@@ -148,11 +156,14 @@ def apply(
148156
)
149157

150158
data = {"objectTypes": [], "overallActivityStats": {}}
159+
added_activities = set()
151160

152161
for act, ent in ocdfg["activities_indep"][act_key].items():
153-
data["overallActivityStats"][wrap_text(act)] = {
154-
"totalFrequency": pref_act + str(len(ent))
155-
}
162+
if len(ent) >= act_threshold:
163+
data["overallActivityStats"][wrap_text(act)] = {
164+
"totalFrequency": pref_act + str(len(ent))
165+
}
166+
added_activities.add(act)
156167

157168
counter = 0
158169

@@ -163,9 +174,10 @@ def apply(
163174
list_item["headerLabel"] = wrap_text(ot)
164175
list_item["activities"] = []
165176
for act, ent in content.items():
166-
list_item["activities"].append(
167-
{"name": wrap_text(act), "frequency": pref_act + str(len(ent))}
168-
)
177+
if act in added_activities:
178+
list_item["activities"].append(
179+
{"name": wrap_text(act), "frequency": pref_act + str(len(ent))}
180+
)
169181

170182
content2 = ocdfg["edges"][edge_key][ot]
171183
content3 = ocdfg["edges_performance"][edge_key][ot]
@@ -185,34 +197,41 @@ def apply(
185197
perf = sum(perf)
186198
else:
187199
perf = mean(perf)
188-
list_edges.append(
189-
{
190-
"source": wrap_text(tup[0]),
191-
"target": wrap_text(tup[1]),
192-
"frequency": pref_edge + str(len(ent)),
193-
"performance": vis_utils.human_readable_stat(perf),
194-
}
195-
)
200+
201+
if tup[0] in added_activities and tup[1] in added_activities:
202+
if len(ent) >= edge_threshold:
203+
list_edges.append(
204+
{
205+
"source": wrap_text(tup[0]),
206+
"target": wrap_text(tup[1]),
207+
"frequency": pref_edge + str(len(ent)),
208+
"performance": vis_utils.human_readable_stat(perf),
209+
}
210+
)
196211

197212
for act, ent in content4.items():
198-
list_edges.append(
199-
{
200-
"source": "Start",
201-
"target": wrap_text(act),
202-
"frequency": pref_edge + str(len(ent)),
203-
"performance": vis_utils.human_readable_stat(0.0),
204-
}
205-
)
213+
if act in added_activities:
214+
if len(ent) >= edge_threshold:
215+
list_edges.append(
216+
{
217+
"source": "Start",
218+
"target": wrap_text(act),
219+
"frequency": pref_edge + str(len(ent)),
220+
"performance": vis_utils.human_readable_stat(0.0),
221+
}
222+
)
206223

207224
for act, ent in content5.items():
208-
list_edges.append(
209-
{
210-
"source": wrap_text(act),
211-
"target": "End",
212-
"frequency": pref_edge + str(len(ent)),
213-
"performance": vis_utils.human_readable_stat(0.0),
214-
}
215-
)
225+
if act in added_activities:
226+
if len(ent) >= edge_threshold:
227+
list_edges.append(
228+
{
229+
"source": wrap_text(act),
230+
"target": "End",
231+
"frequency": pref_edge + str(len(ent)),
232+
"performance": vis_utils.human_readable_stat(0.0),
233+
}
234+
)
216235

217236
list_item["edges"] = list_edges
218237

0 commit comments

Comments
 (0)