Skip to content
This repository was archived by the owner on Feb 22, 2025. It is now read-only.

code-lab-org/cvis-propagate

Repository files navigation

Constellation Visualization and Propagation (cvis-propagate)

This application propagates and visualizes the orbits of satellites in a constellation. It uses the Orekit flight dynamics library to perform orbital propagation and the CesiumJS library to provide visualization.

CVIS is structured as a service-oriented architecture with frontend and backend components. The frontend component is a HTML/JavaScript webpage that provides a browser-based Graphical User Interface (GUI). It interacts with the backend component via RESTful HTTP requests. The backend component is a Python web server that serves the frontend component and performs the orbital propagation calculations.

Getting Started

CVIS visualization capabilities require a personal Cesium ion API key specified in the environment variable CESIUM_API_KEY, conveniently included as a line in the .env configuration file. You can register to receive a free API token at Cesium ion.

Additionally, the application is configured to use the free "Blue Marble Next Generation July, 2004" imagery, rather than the default Bing Maps imagery, which has severe access restrictions without a Bing maps API key. To enable this imagery:

  • Sign in to your Cesium account
  • Navigate to the "Asset Depot" tab
  • Search for "Blue Marble Next Generation July, 2004"
  • Click the "+" icon to add it to your Asset Depot

Running as a Standalone Application

To run CVIS as a standalone application you will need a compatible environment with Python (to run the application) and Node.js (to build the application). Python bindings for Orekit are distributed via conda which is the preferred package management system. An environment.yml file has been provided and can be activated from the project root as follows:

conda env create -f environment.yml
conda activate cvis-propagate

To install NPM dependencies and build the frontend application, run:

npm install
npm run build

To start the application, launch the Python server from the project root as follows:

npm start

the resulting service will be accessible at http://localhost:5001. Application configuration options are available in the .env file:

CVIS_HOST=0.0.0.0
CVIS_PORT=5001
CESIUM_API_KEY=your_cesium_api_key_here

Running as a Docker Container

To facilitate the deployment, a Dockerfile has also been provided, and can be run from the project root as follows:

docker build --tag cvis-propagate .
docker run --publish 80:5001 cvis-propagate

where the flag --publish 80:5001 redirects traffic on port 80 to the container's port 5001. The resulting service will be accessible at http://localhost:80. Application configuration options are available in the .env file:

CVIS_HOST=0.0.0.0
CVIS_PORT=5001
CESIUM_API_KEY=your_cesium_api_key_here

About

Constellation Visualization

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •