Astria is a powerful web-based application for planetary image browsing and analysis, developed by NASA's Jet Propulsion Laboratory (JPL) Multimission Instrument Processing Lab (MIPL). Originally designed for Mars mission imagery (Mars 2020, MSL, etc.), Astria provides scientists and mission teams with tools to efficiently search, visualize, annotate, and analyze large-scale planetary image datasets.
- Planetary Scientists - Analyze Mars surface imagery and make scientific annotations
- Mission Operations Teams - Review tactical and strategic imaging products
- Data Analysts - Search and export image datasets for further processing
- Researchers - Access and study multi-mission planetary image archives
- Efficient viewing of very large images
- DN value access
- Fast facet based search
- Image metadata display
- Image markup
- Scientific feature annotation
- Custom image upload
- Image export
- Image scale and measurement
- RDR overlay
- Tactical target overlay
- Image stretch
- URL permalinking
- Orbital footprint visualization on context map
Astria is built as a modern, scalable web application:
- Frontend: React 18 + Redux for state management, built with Vite
- Backend: Node.js Express server with Docker-native deployment
- Image Serving: Astria Image Tile Service provides efficient tiling of large images
- DN Sampling: Astria Image Sampler Service provides pixel value access
- Authentication: CSSO (JPL's Central Single Sign-On) integration for secure access
- Visualization: OpenSeadragon for high-performance image viewing, Leaflet for map context
→ Developer Guide - Complete setup and development instructions.
Prerequisites: Node.js 20+, Docker, and mkcert.
Quick start:
git clone https://github.com/NASA-AMMOS/astria_ui.git
cd astria_ui
npm install
./.dev/start.shThen open https://localhost:3000. See the Developer Guide for detailed setup, mission configuration, and troubleshooting.
Deploy Astria in production using Docker containers. Set ASTRIA_PRODUCTION=true in your production env file:
./.dev/start.sh -e ./configs/missions/m2020/prod.envThis builds and deploys both frontend and backend containers using docker-compose.yml. The same command works for dev and production - the env file determines the mode. See the Developer Guide - Production Deployment for complete instructions.
Astria uses a flexible configuration system that merges multiple JSON files at build time. See the Developer Guide for details on how to set up mission-specific configurations.
Key files:
configs/config.common.json- Base configurationconfigs/missions/- Mission-specific configs (symlinked, gitignored).envfiles - Specify which configs to merge
- Developer Guide - Setup, workflow, production deployment, and technical details
- Configuration Guide - Configuration system reference
- Contributing Guide - How to contribute
We welcome contributions from the community! To get started:
- Read our Code of Conduct
- Review the Contributing Guide
- Check out good first issues
- Report bugs via GitHub Issues
- Propose features via GitHub Discussions
- Submit pull requests following our PR guidelines
- Improve documentation
All contributors must sign off on commits per the Developer Certificate of Origin.
- Astria Tile Service - High-performance image tiling service
- Astria Sampler Service - Image DN value sampling service
Copyright © 2024 California Institute of Technology ("Caltech"). U.S. Government sponsorship acknowledged.
See LICENSE file for full license details.
- Project Lead: Contact via GitHub Issues
- Bug Reports: GitHub Issues
Developed by NASA's Jet Propulsion Laboratory, California Institute of Technology
