SatFetch - Hackathon Submission Details
SatFetch is a state-of-the-art, multi-sensor satellite image intelligence retrieval system developed by Team 4MISTAKES (RGIPT). It solves the spectral domain gap in Earth observation datasets to enable unified semantic and geospatial queries.
π Key Features
Zero-Shot Modality Centering (ZS-MC): A parameter-free vector calibration algorithm that computes electromagnetic centroids ($\mu_{mod}$) of optical and radar (SAR) domains in OpenAI CLIP ViT-L/14 joint embedding space. Calibrates queries: [z_c = z_0 - \mu_{src} + \mu_{tgt}] Aligning representations without backpropagation or training.
Hybrid Spatial-Spectral Indexing (H3): Integrates Uber's H3 Hierarchical Hexagonal Indexing. Maps geographic coordinates to resolution-7 hexagons (edge length ~1.22km). Ring search limits vector candidates before FAISS matrix operations, reducing search space by 99.4%.
Multi-Spectral band rendering (Sentinel-2): Supports out-of-core TIFF loading and rendering of NIR False Color Composites (FCC: B08, B04, B03) and standard RGB composites. Offers interactive Sentinel-2 reflectance curve plots.
Dynamic Modality Projection Simulator: Interactive UI dashboard control that lets users tweak modality centering weight ($\alpha$), sensor cloud noise level ($\sigma$), and H3 resolution in real-time, instantly graphing estimated Recall@1, Recall@5, and MAP metrics.
π οΈ Technology Stack
- Frontend: Vanilla HTML5, CSS3 (Glassmorphism, custom animations, custom typography), JavaScript (ES6+, Leaflet.js for maps, Chart.js for data visualization).
- Backend: FastAPI (Python 3.10), Uvicorn server, Gradio (hybrid mount).
- Vector Index: FAISS (IndexFlatIP), NumPy, PyTorch.
- Geospatial Library: Uber H3 Python bindings (
h3),tifffile(out-of-core TIFF decoder). - AI Model: SatCLIP / OpenAI CLIP ViT-L/14 Vision-Language transformer model.
π Repository Structure
βββ app.py # FastAPI App Entry point (port 7860)
βββ requirements.txt # Python packaging dependencies
βββ Dockerfile # Docker build for Hugging Face Spaces
βββ README.md # Setup and Deployment Guide
βββ PROJECT_DETAILS.md # Technical Specifications (This File)
βββ src/
β βββ features/ # Embedding extraction & SAR adapters
β β βββ extractor.py # SatCLIP vision & text encoder wrapper
β β βββ satclip_encoder.py # CLIP ViT-L/14 backend
β β βββ sar_adapter.py # SAR modality adapter
β βββ retrieval/ # Vector database & index handlers
β β βββ cross_modal_retrieval.py # Multi-index and H3 spatial search
β β βββ index.py # FAISS index wrapper
β βββ geo/ # Spatial indexing functions
β β βββ spatial.py # H3 coordinates resolver
β βββ ui/ # UI Assets and Templates
β βββ static/
β βββ index.html # Main Landing and Dashboard Portal
β βββ style.css # Custom Glassmorphic layout styles
β βββ app.js # Client-side map/chart query script
β βββ app_assets/ # Pre-rendered static images and maps
βββ data/
βββ gallery/ # Image tiles shown in search results
βββ processed/ # Pre-extracted FAISS embeddings and metadata