Skip to content

A web app for visualizing Earth Observation System (EOS) satellite trajectories on an interactive 3D Earth globe.

Notifications You must be signed in to change notification settings

carlosfab/eos-globe-tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

EOS Globe Tracker

Banner

Note: This project is currently a work in progress.

A web app for visualizing Earth Observation System (EOS) satellite trajectories on an interactive 3D Earth globe, built with Django, React, and react-globe.gl.

Overview

This project tracks Earth Resources satellites (e.g., SCD 1, TECHSAT 1B, DLR-TUBSAT) using Two-Line Element (TLE) data from Celestrak. The backend fetches and processes satellite positions, while the frontend (to be implemented) will display these satellites on a 3D globe with their orbits and trailing trajectories.

Current Status

  • Backend: Fully implemented using Django and Django REST Framework.
    • Fetches TLE data from Celestrak (GROUP=resource).
    • Computes satellite positions, orbits, and trails using Skyfield.
    • Exposes an API endpoint at /api/satellites/.
  • Frontend: Not yet implemented (planned for React with react-globe.gl).

Project Structure

  • backend/: Django backend for fetching and processing satellite data.
    • pyproject.toml: Poetry configuration for dependencies.
    • eos_tracker/: Django project directory.
    • satellites/: Django app for satellite tracking API.
  • frontend/: React frontend (to be implemented).
  • README.md: Project documentation.

Setup

Prerequisites

  • Python 3.13
  • Node.js 18+
  • Poetry (for Python dependency management)

Backend Setup

  1. Navigate to the backend directory:
    cd backend
  2. Install dependencies using Poetry:
    poetry install
  3. Activate the virtual environment:
    poetry shell
  4. Apply Django migrations:
    python manage.py migrate
  5. Run the Django development server:
    python manage.py runserver
  6. Access the API at http://localhost:8000/api/satellites/.

Frontend Setup

The frontend is not yet implemented. See the roadmap.md for next steps.

API Endpoints

  • GET /api/satellites/: Returns a list of Earth Resources satellites with their positions, orbits, and trails.
    • Example Response:
      {
        "satellites": [
          {
            "name": "SCD 1",
            "latitude": 10.234,
            "longitude": -50.678,
            "altitude": 750.2,
            "velocity": 7.3,
            "orbit": [[10.234, -50.678], ...],
            "trail": [[10.200, -50.650], ...]
          },
          ...
        ]
      }

Dependencies

  • Backend:
    • Django 5.0
    • Django REST Framework 3.15
    • Requests 2.31
    • Skyfield 1.48
    • Django CORS Headers (for frontend-backend communication)

License

MIT License (see LICENSE file for details).

Author

Carlos Melo carlos@sigmoidal.ai

About

A web app for visualizing Earth Observation System (EOS) satellite trajectories on an interactive 3D Earth globe.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages