Skip to content

Repository files navigation

Example

Astria

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.

Who is Astria for?

  • 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

Key Features

  • 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

Architecture

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

Getting Started

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.sh

Then open https://localhost:3000. See the Developer Guide for detailed setup, mission configuration, and troubleshooting.

Production Deployment

Deploy Astria in production using Docker containers. Set ASTRIA_PRODUCTION=true in your production env file:

./.dev/start.sh -e ./configs/missions/m2020/prod.env

This 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.

Configuration

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 configuration
  • configs/missions/ - Mission-specific configs (symlinked, gitignored)
  • .env files - Specify which configs to merge

Documentation

Contributing

We welcome contributions from the community! To get started:

  1. Read our Code of Conduct
  2. Review the Contributing Guide
  3. Check out good first issues

Development Contributions

All contributors must sign off on commits per the Developer Certificate of Origin.

Related Projects

License

Copyright © 2024 California Institute of Technology ("Caltech"). U.S. Government sponsorship acknowledged.

See LICENSE file for full license details.

Contact & Support


Developed by NASA's Jet Propulsion Laboratory, California Institute of Technology

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages