Skip to content

About

Project taken up by STAC core team members to develop AI models to upscale the images from TMC of Chandrayaan 2 to 30 cm of resolution and then prepare a high resolution lunar atlas of moon!

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Moon-Mapping

A project by the STAC core team at IIT Mandi: train super-resolution models to upscale Chandrayaan-2 TMC-2 imagery (~5 m/px) towards 30 cm/px, using LRO NAC and Chandrayaan-2 OHRC imagery as high-resolution ground truth — and from that build a high-resolution lunar atlas.

The approach is to learn the TMC→NAC mapping on aligned image pairs: TMC crops resized to 24×24 px as input, the matching NAC crops at 96×96 px as target. Two model families were tried, an SRGAN and a SwinIR transformer.

Data is not in this repository. Every image, dataset and checkpoint is fetched from its original archive by scripts/download_data.sh. Start with DATA.md.

Quick start

git clone https://github.com/STAC-IITMandi/Moon-Mapping.git
cd Moon-Mapping
pip install -r requirements.txt

scripts/download_data.sh help     # what's available
scripts/download_data.sh all      # dirs + sample NAC images + all public weights

The Chandrayaan-2 half needs a free PRADAN account — see DATA.md.

Repository layout

AI Models/                  the super-resolution models
├── Moon Mapping/             SRGAN: train, generate, cascade to 16x, evaluate
├── Transformer_Model-main/   SwinIR layers written from scratch (RSTB, STL, attention)
├── SwinIR/                   the project's working SwinIR copy + training notebooks
├── SwinIR-0.0/               earlier SwinIR snapshot, kept for comparison
├── Swin-Transformer/         vendored Swin Transformer backbone (Microsoft)
└── REFERENCES.md             papers and code provenance

DataSet/                    footprint geometry and dataset generation
├── Generator.py, Gen2.py     TMC↔OHRC footprint intersection from PDS4 labels
├── tmc_break.py              lunar-ellipsoid lat/lon → pixel mapping
├── crop.py, readOHRC.py      cropping; reading PDS4 OHRC products
├── dataset_prep*.ipynb       dataset assembly notebooks
├── TMC/coordinates.csv       3,246 TMC products, scraped with corner coordinates
└── OHRC_ShapeFiles/          ISRO-supplied OHRC footprint shapefiles

dataset-cleaning-creation-and-analysis/
├── README.md                 how the training pairs were built — read this first
├── scripts/                  NAC calibration (ISIS), coordinate maths, crop generation
└── dataset-preparation/      scraping and intersection notebooks + CSV catalogues

docs/                       ISRO data-product user guides, LTA procedure, presentations
scripts/download_data.sh    fetches all data from PRADAN / LROC
DATA.md                     data setup guide
Mid_ISRO.pdf                mid-project report

How the training data was built

The full account is in dataset-cleaning-creation-and-analysis/README.md. In short:

  1. Find NAC images fully contained within an orthorectified TMC image (855 TMC footprints × 14,026 NAC footprints, intersected in the notebooks).
  2. Calibrate the NAC EDR with the LROC-recommended ISIS pipeline (nac2png.sh).
  3. Crop the TMC image to the NAC extent (NACTMC_coords.py), then match brightness/contrast and rotate so features line up.
  4. Cut both into 96×96 px (NAC) and 24×24 px (TMC) pairs, discarding tiles that are mostly no-data (final_gen.py).

One TMC–NAC pair yields roughly 13,000 crops; two pairs were used for training.

OHRC was investigated as ground truth but largely abandoned: of ~90 OHRC images, only ~10 overlapped any TMC image.

Models

SRGAN — AI Models/Moon Mapping/. A 16-block SRResNet generator at ×4, cascaded twice for ×16 (cascade.py). srgan_config.py has a single mode switch (train / generate / evaluate) that selects the paths and hyperparameters for each stage.

SwinIR — AI Models/SwinIR/ and AI Models/Transformer_Model-main/. A shifted-window transformer, trained with L1, SSIM and perceptual losses in separate runs.

Weights and data. scripts/download_data.sh checkpoints fetches the trained SwinIR checkpoints (five files, 777 MB), training-data fetches the crops they were trained on (1.7 GB), and swinir-weights fetches the original SwinIR models the test scripts expect. No trained SRGAN generator is published, so the SRGAN needs training before its generate / evaluate modes are usable — see DATA.md § Model weights and training data.

Data sources

Please observe each archive's access terms and citation requirements. PRADAN in particular enforces session and rate limits.

About

Project taken up by STAC core team members to develop AI models to upscale the images from TMC of Chandrayaan 2 to 30 cm of resolution and then prepare a high resolution lunar atlas of moon!

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages