← All projects

Unified ML Pipeline for Lunar Terrain Age Determination

Complete

An end-to-end ML pipeline that classifies and clusters 1.3M+ lunar impact craters into age-based clusters.

Computer VisionUnsupervised LearningCNNPlanetary Science

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

  1. 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.
  2. 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.
  3. 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.

Full lunar surface map showing the four age-based crater clusters

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