Theodolite Tracking Software

Welcome to Pythagoras. Pythagoras is a theodolite program designed to assist researchers in collecting, managing, and analyzing data. The program interfaces with a digital theodolite and provides a dynamic and user-friendly interface. It was developed to assist researchers in collecting, managing, and analyzing data for theodolite-based research. The system collects, manages and analyzes theodolite data and calculates distance, bearing, and location information in real-time.  It was designed to store theodolite station information (such as the observation height, geographical position of the station, and reference azimuth) for multiple stations. Pythagoras allows researchers to define their “fix type” objects, such as dolphins, whales, and boats, and the behaviors associated with each defined object.  Environmental and other data not related to the position of the object (“Non-Fix data”) are also user-defined. Options for focal behavioral data collection were incorporated to allow researchers to record behavioral events of a specified object. Tide height is also included due to its effects on distance estimation.

Pythagoras provides various optional components to assist researchers to efficiently collect and observe newly entered data. The user can select options to include data collection on group dispersion, focal behavior, and observer roles. Tide height data can be imported a priori or post-hoc to be included in the distance calculations.  GIS digital line maps (vector) of the researcher’s study area can be imported in Arc Info (ungenerated), Surfer, Map Info, and Surfer file formats to be used in the real time display of objects location.  Data can also be exported to various GIS and popular database management programs.

For detailed information about Pythagoras, please download Pythagoras' manual (Pythagoras Manual).

If you have any inquiries or feedback about Pythagoras, please feel free to contact Glenn Gailey.

Theodolites, Computers & Cetacean Research

A theodolite is a surveyor's instrument which placed on an elevated shore-based vantage point, can be successfully used as a research tool to obtain data on cetacean movement, behavior, distribution, and habitat use.  These data are collected in a non-invasive manner, as described by  Würsig et al. (1991). Both cetaceans and other objects, for instance boats, can be tracked, and interactions between them can be continually monitored.  Theodolites allow researchers to determine "fixed" positions by measuring horizontal angles from some arbitrary reference point and vertical angles relative to a gravity-referenced level vector. Although this technique has been used for more than 20 years, and despite the increase in digital theodolite use for cetacean studies, relatively few computer-based theodolite programs exist to assist researchers in collecting, managing, and analyzing theodolite data. A computer-based system benefits theodolite-based studies in many ways. Vertical and horizontal angles to an object  can be recorded accurately and efficiently. Real-time calculations of distance and location can be performed, and trackline can be visually displayed, allowing for rapid corrections of possible tracking errors. Once data are collected, a computer-based system reduces time to manage and analyze data.

Supported Theodolites

Most digital theodolites communicate via a RS-232 cable that is connected to the computer’s serial port. Currently, Pythagoras supports models of two manufacture types of theodolites: Topcon™ and Sokkia™.  If the researcher does not have a digital theodolite or cannot successfully connect it to the computer, the data can be manually entered into the computer. In this case, the user must select “None” as the theodolite manufacturer. This option can also be used to analyze previously collected data.

Collecting Data

Distance, Bearing, & Geographic Positions of Objects

Pythagoras registers the vertical and horizontal angles reading from connected theodolite to the objects being tracked, to perform real-time distance, bearing, and location calculations.  Distance calculation based on the approximation proposed by Lerczak and Hobbs (1998) and allows for hemisphere specification.  Pythagoras stores date, time, fix type, group, behavior, vertical and horizontal angles, geographic position, and current station parameters for each fix.

Environmental Data

Researcher usually want  to record the environmental conditions during observation (i.e. beaufort, swell, wind speed, etc).  Pythagoras allows you to define up to 10 environmental variables.  Due to its effect on observation height, tide height is automatically included and used for distance calculations .  Tide height data can be imported or manually entered into the program.  The date, time, tide height value, and defined environmental values are stored upon each environmental entry.  An environmental check interval is also provided to remind the researcher to record environmental conditions at specified time intervals.

Non-Fix Data

The researcher can define “non-fix” variables (data not related to the position of the fix type) to be recorded. Some examples of non-fix data are species, group size, number of calves, number of adults, etc.  The data for non-fix variables are usually entered only once for each object being tracked.  The date, time, fix type, group, and defined non-fixed variables are stored for each non-fix entry.

Comment Data

Textual comments can also be stored.  Date, time, and comment information are stored in Pythagoras' database.

Focal Behavior

Behavioral events, i.e. "tail slap" and "whale blow", can be recorded with Pythagoras' focal behavior data collection program.  The researcher can define up to 28 different behavioral events for a specified category (i.e. respiration category).  Individual categories (i.e. adults, juvenile, calves, vessel type 1, vessel type 2) can also be recorded with the behavioral event.  The date, time, fix type, group, category, behavioral event, and individual category are recorded for each entry.

Group Dispersion

Group dispersion data can be estimated by measuring the distance along two axes of the area occupied by the group.   The area is estimated in the shape of a quadrilateral. Although the area occupied by cetacean schools is often other than a quadrilateral, estimating it with only four fixes saves the user valuable time in the field. This is an important aspect if we consider that the fixes used to estimate group dispersion should be taken in the shortest possible time, especially for groups that move quickly. However, those users who are interested in obtaining more accurate estimates of group dispersion can do so by quickly fixing as many points on the edge of the school as possible, and displaying a track of these points.

Observer Data

Observer information can be recorded with an user-friendly interface with defined observer names and observer roles.  Date, time, observer names, and current role of each observer are stored upon each change in observer or observer role.

Managing Data

The database management module of Pythagoras offers an easy way of displaying and managing recorded observation.  Data can be viewed and edited with Pythagoras in an Excel-like spreadsheet format with labeled columns.  The user can choose to view all records of a data category or only a specific portion of the data set (i.e. display only data for a particular day or object tracked).  Functions for sorting and searching are available to structure and/or find data of interest.  If station settings are updated (e.g. to include tide height), distance, bearing, and location can be recalculated for a selected portion or for all fixes.  A visual display  assists in evaluating data post-hoc.

Analyzing Data


Each trackline can be evaluated for leg speed, linearity, and reorientation rate.  Leg speed is calculated by dividing the distance traveled between two consecutive fixes by the time between them.  The record for each leg displays the distance between the two fixes ( F i  –  F i + 1 ) in kilometers, the time between the two fixes (hh:mm:ss), and the leg speed (kilometers per hour).  Linearity is calculated by dividing the distance between the initial and end points of a trackline by the total sum of the distances along the track.  Linearity scores range between 0 and 1.  A linearity value close to one represents a straight trackline, while a zero represents a track with no constant direction.  Reorientation rate is a magnitude of course changes along a trackline.  Reorientation rate is calculated by summing all course changes (degrees) along the trackline divided by duration (minutes) of the trackline.

Trackline Distances

The trackline distances analysis module can evaluate both distance and course information within and/or between trackline(s).  Distance and course information can be calculated for fixed points or interpolated trackline points.  “Fixed points” option uses only those positions obtained from the actual theodolite fixes.  The “Interpolation” option will calculate positions along the trackline based on the specified time interval (e.g. one position every 30 seconds). Interpolation assumes that the object being fixed travels in a straight line, at constant speed and bearing between two consecutive theodolite fixes.  Since swimming in a straight line is not common among marine mammals, a critical time threshold should be specified to exclude from the interpolation those fixes that are separated by  long time intervals, and are therefore likely to violate the linearity assumption.

Behavior Analysis

Pythagoras allows researchers to analyze collected behavioral data for occurrence, behavioral interval (i.e. “time between blows”), interval between two behaviors (i.e. “First Surface” to “Dive” = “Surface time”), and frequency of a particular behavior within a trackline.  Both focal and fixed related behavior data can be analyzed in this module. Analyzed data can also be graphically displayed.

Saving/Exporting Data

All data collected and analyzed by Pythagoras can be exported to various GIS and database management programs for further analysis.  Vector latitude and longitude trackline information can be exported to ArcInfo, Map Info, Surfer, and Mat lab files.  Data can be saved into Microsoft Excel, Microsoft Access, or comma/space delimited text files.


Lerczak, J. A. and R. C. Hobbs. 1998. Calculating sighting distances from angular readings during shipboard,  aerial, and shore-based marine mammal surveys. Marine Mammal Science 14: 590-599.

Würsig, B., F. Cipriano and M. Würsig. 1991. Dolphin movement patterns: information from radio and theodolite tracking studies. Pages 79-112 in K. Pryor and K. S. Norris, ed. Dolphin Societies-discoveries and puzzles. University of California Press, Los Angeles, CA. 

Pythagoras Download

Pythagoras has been tested on several computers running Windows operating systems. Although we currently are unaware of any software conflicts, by downloading and installing the program you release the authors of Pythagoras from any responsibility resulting from hardware and software damage, and/or data loss.

Pythagoras is a freely-availiable program and maybe distributed to anyone interested.

Minimum Requirements

Processor: 75 MHz
Operating System: Windows 95/98/2000/ME/XP/Vista
Memory (RAM): 32 MB
Hard Drive Space: 20 MB

Recommended Requirements

Processor: 266 MHz
Memory (RAM): 64 MB
Hard Drive Space: 50 MB

Additional Software Recommendation

GIS Software (Arc Info, Surfer, MapInfo)
Microsoft Office 

Download & Setup Instructions

1) Download all setup files (1-14); hold the Shift key and click on the file if you have difficulty downloading

2) Check to ensure all downloaded files (1-14) are in the same directory. 

3) Double click on setup.exe to start the setup process (initially, Pythagoras needs a large amount – approximately 90 MB - of hard drive space to install data access components that may not be on your system. Once installed, Pythagoras should take up less the 10 MB.

4) Follow the instructions from the setup wizard. 

5) Start Pythagoras from Windows' Start Menu after installation.

6) Create a new Pythagoras Station Settings File.

7) Create a new Pythagoras data gathering database.

 Update Program Files

Once Pythagoras and program components have been installed, updates can be easily made by simply downloading the executable portion of the program with the help file.

Download Pythagoras 1.2