-
Notifications
You must be signed in to change notification settings - Fork 84
Expand file tree
/
Copy pathTrackerKeys.java
More file actions
310 lines (251 loc) · 11.1 KB
/
TrackerKeys.java
File metadata and controls
310 lines (251 loc) · 11.1 KB
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
/*-
* #%L
* TrackMate: your buddy for everyday tracking.
* %%
* Copyright (C) 2010 - 2024 TrackMate developers.
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public
* License along with this program. If not, see
* <http://www.gnu.org/licenses/gpl-3.0.html>.
* #L%
*/
package fiji.plugin.trackmate.tracking;
import java.util.HashMap;
import java.util.Map;
public class TrackerKeys
{
/*
* MARSHALLING CONSTANTS
*/
public static final String TRACKER_SETTINGS_ALLOW_EVENT_ATTNAME = "allowed";
// Alternative costs & blocking
public static final String TRACKER_SETTINGS_ALTERNATE_COST_FACTOR_ATTNAME = "alternatecostfactor";
public static final String TRACKER_SETTINGS_CUTOFF_PERCENTILE_ATTNAME = "cutoffpercentile";
public static final String TRACKER_SETTINGS_BLOCKING_VALUE_ATTNAME = "blockingvalue";
// Cutoff elements
public static final String TRACKER_SETTINGS_TIME_CUTOFF_ELEMENT = "TimeCutoff";
public static final String TRACKER_SETTINGS_TIME_CUTOFF_ATTNAME = "value";
public static final String TRACKER_SETTINGS_DISTANCE_CUTOFF_ELEMENT = "DistanceCutoff";
public static final String TRACKER_SETTINGS_DISTANCE_CUTOFF_ATTNAME = "value";
public static final String TRACKER_SETTINGS_FEATURE_ELEMENT = "FeatureCondition";
public static final String TRACKER_SETTINGS_LINKING_ELEMENT = "LinkingCondition";
public static final String TRACKER_SETTINGS_GAP_CLOSING_ELEMENT = "GapClosingCondition";
public static final String TRACKER_SETTINGS_MERGING_ELEMENT = "MergingCondition";
public static final String TRACKER_SETTINGS_SPLITTING_ELEMENT = "SplittingCondition";
/*
*
*/
/**
* The attribute name for the {@link SpotTracker} key when marshalling to or
* unmarhsalling from XML.
*/
public static final String XML_ATTRIBUTE_TRACKER_NAME = "TRACKER_NAME";
/**
* Key for the parameter specifying the maximal linking distance. The
* expected value must be a Double and should be expressed in physical
* units.
*/
public static final String KEY_LINKING_MAX_DISTANCE = "LINKING_MAX_DISTANCE";
/** A default value for the {@value #KEY_LINKING_MAX_DISTANCE} parameter. */
public static final double DEFAULT_LINKING_MAX_DISTANCE = 15.0;
/**
* Key for the parameter specifying the feature penalties when linking
* particles. Expected values should be a
* <code>Map<String, Double></code> where the map keys are spot
* feature names.
*
* @see fiji.plugin.trackmate.Spot#getFeature(String)
*/
public static final String KEY_LINKING_FEATURE_PENALTIES = "LINKING_FEATURE_PENALTIES";
/**
* A default value for the {@value #KEY_LINKING_FEATURE_PENALTIES}
* parameter.
*/
public static final Map< String, Double > DEFAULT_LINKING_FEATURE_PENALTIES = new HashMap<>();
/** Search radius for the Kalman tracker. */
public static final String KEY_KALMAN_SEARCH_RADIUS = "KALMAN_SEARCH_RADIUS";
/** A default value for the {@value #KEY_KALMAN_SEARCH_RADIUS} parameter. */
public static final double DEFAULT_KALMAN_SEARCH_RADIUS = 20.0;
/**
* Key for the parameter specifying whether we allow the detection of
* gap-closing events. Expected values are {@link Boolean}s.
*/
public static final String KEY_ALLOW_GAP_CLOSING = "ALLOW_GAP_CLOSING";
/** A default value for the {@value #KEY_ALLOW_GAP_CLOSING} parameter. */
public static final boolean DEFAULT_ALLOW_GAP_CLOSING = true;
/**
* Key for the parameter that specify the maximal number of frames to bridge
* when detecting gap closing. Expected values are {@link Integer}s greater
* than 0. A value of 1 means that a detection might be missed in 1 frame,
* and the track will not be broken. And so on.
*/
public static final String KEY_GAP_CLOSING_MAX_FRAME_GAP = "MAX_FRAME_GAP";
/**
* A default value for the {@value #KEY_GAP_CLOSING_MAX_FRAME_GAP}
* parameter.
*/
public static final int DEFAULT_GAP_CLOSING_MAX_FRAME_GAP = 2;
/**
* Key for the parameter specifying the max gap-closing distance. Expected
* values are {@link Double}s and should be expressed in physical units. If
* two spots, candidate for a gap-closing event, are found separated by a
* distance larger than this parameter value, gap-closing will not occur.
*/
public static final String KEY_GAP_CLOSING_MAX_DISTANCE = "GAP_CLOSING_MAX_DISTANCE";
/**
* A default value for the {@value #KEY_GAP_CLOSING_MAX_DISTANCE} parameter.
*/
public static final double DEFAULT_GAP_CLOSING_MAX_DISTANCE = 15.0;
/**
* Key for the parameter specifying the feature penalties when detecting
* gap-closing events. Expected values should be a
* <code>Map<String, Double></code> where the map keys are spot
* feature names.
*
* @see fiji.plugin.trackmate.Spot#getFeature(String)
*/
public static final String KEY_GAP_CLOSING_FEATURE_PENALTIES = "GAP_CLOSING_FEATURE_PENALTIES";
/**
* A default value for the {@value #KEY_GAP_CLOSING_FEATURE_PENALTIES}
* parameter.
*/
public static final Map< String, Double > DEFAULT_GAP_CLOSING_FEATURE_PENALTIES = new HashMap<>();
/**
* Key for the parameter specifying whether we allow the detection of
* merging events. Expected values are {@link Boolean}s.
*/
public static final String KEY_ALLOW_TRACK_MERGING = "ALLOW_TRACK_MERGING";
/** A default value for the {@value #KEY_ALLOW_TRACK_MERGING} parameter. */
public static final boolean DEFAULT_ALLOW_TRACK_MERGING = false;
/**
* Key for the parameter specifying the max merging distance. Expected
* values are {@link Double}s and should be expressed in physical units. If
* two spots, candidate for a merging event, are found separated by a
* distance larger than this parameter value, track merging will not occur.
*/
public static final String KEY_MERGING_MAX_DISTANCE = "MERGING_MAX_DISTANCE";
/** A default value for the {@value #KEY_MERGING_MAX_DISTANCE} parameter. */
public static final double DEFAULT_MERGING_MAX_DISTANCE = 15.0;
/**
* Key for the parameter specifying the feature penalties when dealing with
* merging events. Expected values should be a
* <code>Map<String, Double></code> where the map keys are spot
* feature names.
*
* @see fiji.plugin.trackmate.Spot#getFeature(String)
*/
public static final String KEY_MERGING_FEATURE_PENALTIES = "MERGING_FEATURE_PENALTIES";
/**
* A default value for the {@value #KEY_MERGING_FEATURE_PENALTIES}
* parameter.
*/
public static final Map< String, Double > DEFAULT_MERGING_FEATURE_PENALTIES = new HashMap<>();
/**
* Key for the parameter specifying whether we allow the detection of
* splitting events. Expected values are {@link Boolean}s.
*/
public static final String KEY_ALLOW_TRACK_SPLITTING = "ALLOW_TRACK_SPLITTING";
/**
* A default value for the {@value #KEY_ALLOW_TRACK_SPLITTING} parameter.
*/
public static final boolean DEFAULT_ALLOW_TRACK_SPLITTING = false;
/**
* Key for the parameter specifying the max splitting distance. Expected
* values are {@link Double}s and should be expressed in physical units. If
* two spots, candidate for a merging event, are found separated by a
* distance larger than this parameter value, track splitting will not
* occur.
*/
public static final String KEY_SPLITTING_MAX_DISTANCE = "SPLITTING_MAX_DISTANCE";
/**
* A default value for the {@link #KEY_SPLITTING_MAX_DISTANCE} parameter.
*/
public static final double DEFAULT_SPLITTING_MAX_DISTANCE = 15.0;
/**
* Key for the parameter specifying the feature penalties when dealing with
* splitting events. Expected values should be a
* <code>Map<String, Double></code> where the map keys are spot
* feature names.
*
* @see fiji.plugin.trackmate.Spot#getFeature(String)
*/
public static final String KEY_SPLITTING_FEATURE_PENALTIES = "SPLITTING_FEATURE_PENALTIES";
/**
* A default value for the {@value #KEY_SPLITTING_FEATURE_PENALTIES}
* parameter.
*/
public static final Map< String, Double > DEFAULT_SPLITTING_FEATURE_PENALTIES = new HashMap<>();
/**
* Key for the parameter specifying the factor used to compute alternative
* linking costs. Expected values are {@link Double}s.
*/
public static final String KEY_ALTERNATIVE_LINKING_COST_FACTOR = "ALTERNATIVE_LINKING_COST_FACTOR";
/**
* A default value for the {@value #KEY_ALTERNATIVE_LINKING_COST_FACTOR}
* parameter.
*/
public static final double DEFAULT_ALTERNATIVE_LINKING_COST_FACTOR = 1.05d;
/**
* Key for the cutoff percentile parameter. Expected values are
* {@link Double}s.
*/
public static final String KEY_CUTOFF_PERCENTILE = "CUTOFF_PERCENTILE";
/** A default value for the {@value #KEY_CUTOFF_PERCENTILE} parameter. */
public static final double DEFAULT_CUTOFF_PERCENTILE = 0.9d;
/**
* Key for the parameter that stores the blocking value: cost for
* non-physical, forbidden links. Expected values are {@link Double}s, and
* are typically very large.
*/
public static final String KEY_BLOCKING_VALUE = "BLOCKING_VALUE";
/** A default value for the {@value #KEY_BLOCKING_VALUE} parameter. */
public static final double DEFAULT_BLOCKING_VALUE = Double.POSITIVE_INFINITY;
/**
* Key for the parameter specifying the minimum linking IoU. The
* expected value must be a Double.
*/
public static final String KEY_LINKING_MIN_IOU = "LINKING_MIN_IOU";
/** A default value for the {@value #KEY_LINKING_MIN_IOU} parameter. */
public static final double DEFAULT_LINKING_MIN_IOU = 0.0;
/**
* Key for the parameter specifying the min gap-closing IoU. Expected
* values are {@link Double}s. If two spots, candidate for a gap-closing
* event, are found separated by a IoU smaller than this parameter value,
* gap-closing will not occur.
*/
public static final String KEY_GAP_CLOSING_MIN_IOU = "GAP_CLOSING_MIN_IOU";
/**
* A default value for the {@value #KEY_GAP_CLOSING_MIN_IOU} parameter.
*/
public static final double DEFAULT_GAP_CLOSING_MIN_IOU = 0.0;
/**
* Key for the parameter specifying the min merging IoU. Expected
* values are {@link Double}s. If two spots, candidate for a merging
* event, are found separated by an IoU smaller than this parameter
* value, track merging will not occur.
*/
public static final String KEY_MERGING_MIN_IOU = "MERGING_MIN_IOU";
/** A default value for the {@value #KEY_MERGING_MIN_IOU} parameter. */
public static final double DEFAULT_MERGING_MIN_IOU = 0.0;
/**
* Key for the parameter specifying the min splitting IoU. Expected
* values are {@link Double}s. If two spots, candidate for a merging event,
* are found separated by an IoU smaller than this parameter value,
* track splitting will not occur.
*/
public static final String KEY_SPLITTING_MIN_IOU = "SPLITTING_MIN_IOU";
/**
* A default value for the {@link #KEY_SPLITTING_MIN_IOU} parameter.
*/
public static final double DEFAULT_SPLITTING_MIN_IOU = 0.0;
}