Regardless of the type of movement under investigation, the next stage of 
image processing entails the computation of paths or trajectories through 
Bugspace. A path or trajectory is a time-ordered set of points represented as a 
single data vector and characterized as follows: All points in a path are selected 
from an operand file consisting of centroids or having the structure of centroid 
data. The manner in which points are represented in a path is identical to the 
way they are represented in a frame of centroid data. Each path starts within a 
specific frame and its starting frame number is represented as the fourth 
attribute of the vector. Over the temporal interval during which a path is 
defined one (and only one) point is selected from each corresponding vector 
(or frame) of the operand file. Adjacent pairs of points within a path are 
selected on the basis of their spatial contiguity within adjacent frames. 
The search for paths is performed by the PATH operator whose command 
syntax is exemplified by the entry 
PATH BUGS.CE BUGS.PA nl, n2, n3, n4, n5. 
The numerical parameters “Nl” through “n5” control various details of the 
search, nl specifies the width (in Bugwatcher units) of a square mask used as a 
criterion of spatial contiguity. n2 is the maximum number of times to expand 
the mask if no contiguous point is located within the frame being searched. n3 
is the n4 minimum number of points to be accepted as a valid path. n4 is the 
minimum average displacement in Bugspace between consecutive frames for a 
set of points to be accepted as a valid path; this parameter may be used to 
“weed out” stationary artifacts (e.g., a particle of detritus). n5 is the maximum 
number of frames to “look ahead”; i.e., if no contiguous point is found in the 
current frame, then the next frame may be searched. If a point within the new 
frame qualifies, the missing point is computed by linear interpolation. 
Ideally, every path would correspond to the movement of a single point 
(associated with the outline of one individual organism) through Bugspace and 
each such movement would be represented by one path. In practice, the PATH 
operator may commit two types of errors. The operator may overlook certain 
segments of continuous movement. Such omissions may yield an abnormally 
short path, or they may result in a one-to-many (even a one-to-none) 
correspondence between real word trajectories and paths. Alternatively, the 
operator may confound certain segments of the continuous movements of two 
(or more) organisms. If there were but one organism in the field of view at any 
time, then errors of omission could be abolished by using a large mask (why 
not let it include all of Bugspace?) and allowing the program to look ahead 
several frames. But with several organisms represented within each frame there 
is clearly a tradeoff in choosing parameters so as to reduce the incidence of the 
two types of errors. The user may PLOT the paths over the centroids (or over 
262 
