Unified ML Pipeline for Lunar Terrain Age Determination
CompleteAn end-to-end ML pipeline that classifies and clusters 1.3M+ lunar impact craters into age-based clusters.
Goal
Lunar terrain age is traditionally estimated by manually counting impact craters — a slow, labor-intensive process. This project builds a scalable, automated alternative: a two-stage machine learning pipeline that first identifies genuine primary craters from a large, noisy catalog, then groups them into age-based clusters.
Approach
- Classification — a ResNet-18-based supervised model separates true primary impact craters from secondary craters and catalog noise across a dataset of 1.3M+ candidate craters, reaching 95.6% validation accuracy and isolating roughly 1.06M primary craters.
- Clustering — the confirmed primary craters are grouped into age-based clusters using an ensemble of unsupervised methods — k-means, DBSCAN, HDBSCAN, and Gaussian Mixture Models — combined by majority voting for robustness against any single algorithm's assumptions, producing 4 age-based groups.
- Validation — results are checked against known, named lunar terrains with independently established ages, including Mare Imbrium and Mare Frigoris.
Results
The pipeline's age groupings align with the known relative ages of validated lunar terrains, supporting it as a scalable, reproducible alternative to manual crater-counting for large-scale lunar surface analysis.

The four age-based clusters plotted across the full lunar surface, -180° to 180° longitude and -90° to 90° latitude.