← Back to projects

Monte Carlo Collision Simulation

Monte Carlo pipeline to estimate collision probability between two orbiting objects (satellites/debris) using Conjunction Data Message (CDM) inputs and orbital propagation.

PythonSGP4NumPyMonte Carlo

Problem

As orbital density increases in Low Earth Orbit (LEO), probabilistic conjunction assessment is essential for mission safety. Nominal miss distance alone is insufficient — state uncertainty must be incorporated to characterize collision risk.

Approach

CDM parsing: Extracts nominal state vectors, 6×6 covariance, TCA, and reference frame from standard conjunction data messages.

Uncertainty sampling: Assumes Gaussian state uncertainty. Uses Cholesky decomposition on the covariance matrix to draw samples: x_sample = x_nom + Lz where C = LL^T and z ~ N(0,I).

Propagation: Each sampled state is propagated to TCA using SGP4 (TLE-driven) or optional numerical integration. Batch-processed for efficiency.

Collision criterion: At TCA, collision if miss distance ≤ combined hard-body radius. P_collision ≈ N_hits / N_samples with binomial confidence intervals.

Tech Stack

Python, SGP4, NumPy, vectorized propagation.

How to Reproduce

python -m src.jspoc_monte \
  --cdm data/example_cdm/case1.xml \
  --samples 100000 \
  --propagator sgp4 \
  --out results/run1.json

Links