Skip to content

Releases: GizzZmo/satellite-tracker

Release list

satellite-tracker

satellite-tracker Pre-release
Pre-release

Choose a tag to compare

@GizzZmo GizzZmo released this 08 Jul 06:17
6654a60

Satellittsporing og Visualiseringssystem
Dette prosjektet er et komplett system for sanntidssporing og 3D-visualisering av satellitter i bane rundt jorden. Det er bygget på en tre-lags arkitektur som beskrevet i den tekniske blåpausen.

Arkitekturoversikt
Backend: En Python-applikasjon bygget med FastAPI.

Datainnhentingstjeneste: En planlagt prosess (scheduler) som henter satellittkatalog (SATCAT) og banedata (OMM) fra Space-Track.org.

Propagerings- og API-tjeneste: En FastAPI-server som:

Leser de siste banedataene fra en lokal database.

Bruker sgp4-biblioteket til å beregne satellittenes nåværende posisjon.

Strømmer posisjonsdata i sanntid til frontend-klienter via WebSockets.

Tilbyr et REST API for å hente beregnede banespor.

Frontend: En web-applikasjon bygget med ren HTML, CSS og JavaScript.

Bruker CesiumJS for å rendere en interaktiv 3D-globus.

Kobler til backend via WebSockets for å motta og visualisere satellittposisjoner i sanntid.

Implementerer brukergrensesnitt for søk, filtrering og visning av detaljert informasjon.

Oppsett og Kjøring
Forutsetninger
Python 3.8+

En konto på Space-Track.org for å få tilgang til API-et.

En gratis Cesium Ion-tilgangsnøkkel fra cesium.com for høyoppløselige kartlag.

  1. Backend Oppsett
    a. Naviger til backend-mappen:

cd backend

b. Opprett et virtuelt miljø og aktiver det:

python -m venv venv
source venv/bin/activate # På Windows: venv\Scripts\activate

c. Installer avhengigheter:

pip install -r requirements.txt

d. Konfigurer miljøvariabler:
Opprett en .env-fil i backend-mappen og legg til din Space-Track-legitimasjon. IKKE hardkode dette i koden.

SPACETRACK_USERNAME="ditt-brukernavn"
SPACETRACK_PASSWORD="ditt-passord"

Merk: main.py er satt opp for å laste disse, men for produksjon bør en sikrere metode som HashiCorp Vault eller en skytjeneste for hemmeligheter brukes.

e. Initialiser databasen:
Første gang du kjører applikasjonen, vil databasen (database.db) bli opprettet.

f. Kjør datainnhenteren (Scheduler):
Denne prosessen må kjøres separat for å kontinuerlig hente data. Den vil først kjøre en full henting og deretter følge den planlagte timeplanen.

python run_scheduler.py

g. Kjør API-serveren:
Åpne en ny terminal, aktiver det virtuelle miljøet, og start FastAPI-serveren.

uvicorn app.main:app --reload

Serveren vil nå kjøre på http://127.0.0.1:8000.

  1. Frontend Oppsett
    a. Legg inn din Cesium Ion-nøkkel:
    Åpne frontend/main.js og erstatt 'DIN_CESIUM_ION_NØKKEL_HER' med din faktiske nøkkel.

b. Åpne index.html i en nettleser:
Du kan enten åpne filen direkte, eller for best resultat, serve den via en enkel lokal webserver. Hvis du har Python installert:

cd frontend
python -m http.server

Gå deretter til http://localhost:8000 i nettleseren din.

Funksjonalitet
Sanntidsvisualisering: Se satellitter bevege seg over 3D-globusen.

Søk og Filtrer: Bruk søkefeltet til å filtrere satellitter etter navn eller NORAD ID.

Interaktiv InfoBox: Klikk på en satellitt for å se detaljert informasjon.

Dynamiske Banespor: Når du klikker på en satellitt, hentes og vises dens fremtidige bane for de neste 90 minuttene.