Skip to content

Intro project to satellite scheduling & tasking concepts. First chance to consider the technical aspects of being a tasking/scheduling engineer. Consider basic things like what the data might look like, what important things do I even need to know about satellites. etc

Notifications You must be signed in to change notification settings

rizzo-rocks/satellite-tasker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Key Concepts

  • Optimization Algorithms
    • Implements greedy and dynamic programming approaches to maximize prioritization (e.g. profit-based or urgency-based scheduling)
    • Models constraints like satellite visibility windows, ground station communication limits, and resource availability (e.g. power, memory, etc)
  • Cloud-Ready Design
    • Uses AWS Lambda (serverless) for scalable task processing and S3 for input/output storage simulation
    • Containerizes the scheduler with Docker for Kubernetes/EKA compatibility
  • Satellite-Specific Logic
    • Simulates task dependencies (e.g. download tasks requiring prior observation tasks)
    • Integrates SAR imaging constraints (e.g. pitch/roll angles, revisit rates)

Tools & Dependencies

  • Language: Python 3.10+
  • Libraries: pandas(data handling), pytest (testing), boto3(AWS integration), skyfield (orbit/visibility calculations)
  • Infrastructure: Docker, AWS Lambda (serverless), S3 (data storage)
  • Set-Up:
python -m venv venv
source venv/bin/activate # or .\venv\Scripts\Activate.ps1
pip install -r requirements.txt

Notes

  • What sort of data would I even be working with? Key objects: satellite, ground station, tasks. Create Python dataclasses for each, try to represent relevant fields (lots of guesswork here). Create fake satellite/ground station JSON's, write a task generator script for the task objects.
  • Need a way to calculate visibility windows....
  • Fun fact: TLE's exist (Two-Line Element Set). Orbital mechanic data format (inclination, RAAN, eccentricity, argument of perigee, mean anomaly, mean motion, revolution number). See skyfield-tle-sandbox branch for a crash course on TLE's (and Skyfield). For dummy satellite data, use some TLE's from https://celestrak.org/. Orbital data can still be represented by JSON or CSV irl but I like having data already made to play with. Plus it's a really good into to the relevant physical aspects to consider.

Sources

About

Intro project to satellite scheduling & tasking concepts. First chance to consider the technical aspects of being a tasking/scheduling engineer. Consider basic things like what the data might look like, what important things do I even need to know about satellites. etc

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages