Version 1.0
digest3 is a customized development fork of digest2, the short-arc orbit classifier for small solar system bodies. The name change avoids confusion with the original project while enabling independent development of improvements in efficiency and practical utility.
digest2 computes probabilities that an astrometric tracklet (a short sequence of observations of a moving object) represents a member of various solar system object classes, especially Near-Earth Objects (NEOs). It is a critical tool for planetary defense, helping surveys prioritize follow-up observations.
-
Keys, S., Veres, P., Payne, M.J. et al., 2019. "The digest2 NEO Classification Code." PASP, 131:064501. arXiv:1904.09188
-
Veres, P., Cloete, R., Weryk, R. et al. "Improvement of digest2 NEO Classification Code - utilizing the Astrometry Data Exchange Standard." arXiv:2309.16407
The original digest2 is maintained at: https://github.com/Smithsonian/digest2
digest3 includes bug fixes, performance improvements, and new tools:
- Bug fix: Corrected arc-length comparison in
twoObs()(d3math.c:1044) - Performance: Sparse bin tracking reduces iteration by 50-500x
- PRNG option: xoroshiro128+ available via
xoroshiroconfig keyword - trackeval: Standalone tool for tracklet quality assessment
- ADES support: Both
.xmland.adesfile extensions accepted
See ROADMAP.md for development plans.
digest3/
├── src/ # Source code (renamed from digest2/)
│ ├── digest3.c # Main program (renamed from digest2.c)
│ ├── d3*.c, d3*.h # Support modules (renamed from d2*)
│ ├── trackeval.c # Tracklet evaluation tool
│ ├── OPERATION.md # Usage documentation
│ └── TRACKEVAL.md # trackeval documentation
├── population/ # Population model data
│ ├── digest2.model # Binary model (original name for compatibility)
│ └── MPC.config # Default configuration
├── archive/ # Historical digest2 versions (reference only)
├── tests/ # Synthetic test files
├── docs/ # Additional documentation
├── CLAUDE.md # Project context for AI assistance
└── ROADMAP.md # Development roadmap
mkdir build && cd build
cmake ..
makecd src
makeRequires: gcc, libxml2-dev, cmake (for CMake method)
# Score tracklets in MPC 80-column format
./digest3 observations.obs
# Score tracklets in ADES XML format
./digest3 observations.ades
# Evaluate tracklet quality
./trackeval -s -m observations.adesConfig file search order: digest3.config, then MPC.config.
Override with -c <config-file>.
# Key options
headings # Show column headers
rms # Show RMS residuals
xoroshiro # Use improved PRNG (default: lcg for compatibility)
See src/OPERATION.md for full documentation.
The main classifier (renamed from digest2). Reads tracklets and outputs probability scores for each configured object class (NEO, Mars Crosser, Main Belt, etc.).
Note: Data files retain their original names (digest2.model,
digest2.obscodes) for compatibility with the upstream population model.
Standalone tracklet quality assessment tool:
- Great-circle fit statistics (RMS, χ²/dof)
- Outlier detection (O, L, X, S flags)
- Curvature analysis
- Cross-track/along-track decomposition
- V-band magnitude conversion
See src/TRACKEVAL.md for documentation.
main: Primary development branch
# Run against synthetic test cases
cd src
./digest3 ../tests/test_neo_fast.obs
./trackeval -s -m ../tests/*.obsSee ROADMAP.md for planned work. Key areas:
- Speed improvements for high-volume processing
- Calibrated probability output
- Population model updates
Public domain (inherited from digest2).
digest2 was developed by the Minor Planet Center and Smithsonian Astrophysical Observatory. Key contributors to digest2 include:
- S. Keys, P. Veres, M.J. Payne et al. - Original digest2 implementation (2019)
- P. Veres, R. Cloete, R. Weryk et al. - ADES support improvements (2023)
- J. Fairlamb - Maintenance and updates (2024)
digest3 development by R. Seaman (Catalina Sky Survey) with AI assistance.