Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

digest3

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.

Background

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.

References

  • 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

Upstream Repository

The original digest2 is maintained at: https://github.com/Smithsonian/digest2

What's New in digest3

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 xoroshiro config keyword
  • trackeval: Standalone tool for tracklet quality assessment
  • ADES support: Both .xml and .ades file extensions accepted

See ROADMAP.md for development plans.

Directory Structure

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

Quick Start

Build (CMake - recommended)

mkdir build && cd build
cmake ..
make

Build (Makefile - alternative)

cd src
make

Requires: gcc, libxml2-dev, cmake (for CMake method)

Run

# 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.ades

Configuration

Config 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.

Tools

digest3

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.

trackeval

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.

Development

Branch Strategy

  • main: Primary development branch

Testing

# Run against synthetic test cases
cd src
./digest3 ../tests/test_neo_fast.obs
./trackeval -s -m ../tests/*.obs

Contributing

See ROADMAP.md for planned work. Key areas:

  • Speed improvements for high-volume processing
  • Calibrated probability output
  • Population model updates

License

Public domain (inherited from digest2).

Acknowledgments

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.

About

Asteroid tracklet classification and analysis tools (fork of digest2)

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages