Git Product home page Git Product logo

pypredict's Introduction

Pypredict

GitHub tag license

This software is a real-time satellite tracker and orbit propagator. It displays any satellite's position and orbital parameters in real time. It can also simulate satellite deployments of one satellite from another with different velocities, considering the mass of the satellites. It is inspired by Gpredict and Orbitron.

Additionally, there is a class defined in AOAwithTDOA.py which replicates the method of the research paper called "A simple and accurate TDOA-AOA localization method using two stations". There are also all the simulations for a research paper submitted at Remote Sensing with the name: "A femto-satellite localization method based on TDOA and AOA using two CubeSats". More information about this at the bottom of this file.

Features

The following are some of the key features of Pypredict:

  • Updates TLE data from CelesTrak.
  • Displays the satellites in real time.
  • The user can open any TLE data from a txt file.
  • The TLE data of the displayed satellites can be saved into a new txt file.
  • The satellites' coverage can be added or removed.
  • It can show the South Atlantic Anomaly (SAA).
  • The time and date can be changed, speed up forward, backwards and paused.
  • Simulates deployments of one satellite from another and changes their TLEs according to their mass, the deployment speed and direction.
  • Displays the names, categories, position and orbital parameters in a table.
  • Day and night background images from NASA.

Dependencies

The following are the current dependencies:

Supported software

Installation

Instructions for GNU/Linux:

For Raspbian (Raspberry Pi) you may need to install this first:

sudo apt-get install python3-cairocffi
sudo apt-get install libatlas-base-dev

After this, the rest is the same for all GNU/linux based systems.

  1. Install dependencies:
sudo sh install.sh
pip3 install --upgrade pip
  1. Clone this repository:
git clone https://github.com/spel-uchile/Pypredict.git
  1. Move to the Pypredict folder:
cd Pypredict/
  1. Install Pypredict:
pip3 install . --no-binary shapely

Instructions for Windows (untested):

  1. Download and install Python.

  2. Install dependencies using a miniconda prompt:

conda install -c conda-forge proj
conda install -c conda-forge proj-data
  1. Download this repository into your computer.

  2. Open a command prompt (cmd), move to the directory of the downloaded repository and install Pypredict using pip:

pip3 install . --no-binary shapely

Instructions for macOS (untested):

  1. Install dependencies:
brew install proj geos
  1. Clone this repository:
git clone https://github.com/spel-uchile/Pypredict.git
  1. Move to the Pypredict folder:
cd Pypredict/
  1. Install Pypredict:
pip3 install . --no-binary shapely

Usage

You can search "Pypredict" on your application window, or you can run the following command:

python3 -m pypredict

Research and simulation plots

You can generate the plots of both "A simple and accurate TDOA-AOA localization method using two stations" and "A femto-satellite localization method based on TDOA and AOA using two CubeSats" using the python file called AOAwithTDOA.py. To generate different plots you just need to uncomment them. The simulation is made using the following command:

python3 AOAwithTDOA.py

Cite our research

@article{vidal2022femto,
  title={A Femto-Satellite Localization Method Based on TDOA and AOA Using Two CubeSats},
  author={Vidal-Valladares, Mat{\'\i}as G and D{\'\i}az, Marcos A},
  journal={Remote Sensing},
  volume={14},
  number={5},
  pages={1101},
  year={2022},
  publisher={MDPI}
}

Contact

pypredict's People

Contributors

carlgonz avatar matvidal avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pypredict's Issues

QDateTime Error

Hi,

Trying to run python -m pypredict gives the following error:

Traceback (most recent call last):
  File "/usr/lib/python3.10/runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/usr/local/lib/python3.10/dist-packages/pypredict/__main__.py", line 49, in <module>
    main()
  File "/usr/local/lib/python3.10/dist-packages/pypredict/__main__.py", line 44, in main
    application = ApplicationWindow(Sats=Sats)
  File "/usr/local/lib/python3.10/dist-packages/pypredict/app.py", line 78, in __init__
    self.updateTime()
  File "/usr/local/lib/python3.10/dist-packages/pypredict/app.py", line 533, in updateTime
    qdt = QtCore.QDateTime(self.date.year,self.date.month,self.date.day,
TypeError: arguments did not match any overloaded call:
  QDateTime(): too many arguments
  QDateTime(Union[QDateTime, datetime.datetime]): argument 1 has unexpected type 'int'
  QDateTime(Union[QDate, datetime.date]): argument 1 has unexpected type 'int'
  QDateTime(Union[QDate, datetime.date], Union[QTime, datetime.time], timeSpec: Qt.TimeSpec = Qt.LocalTime): argument 1 has unexpected type 'int'
  QDateTime(int, int, int, int, int, second: int = 0, msec: int = 0, timeSpec: int = 0): argument 6 has unexpected type 'float'
  QDateTime(Union[QDate, datetime.date], Union[QTime, datetime.time], Qt.TimeSpec, int): argument 1 has unexpected type 'int'
  QDateTime(Union[QDate, datetime.date], Union[QTime, datetime.time], QTimeZone): argument 1 has unexpected type 'int'

Seconds is calculated as seconds = self.date.second + self.date.microsecond*0.000001 and I guess it ends up being a float instead of an int which is the format QDateTime expects. I fixed the error by wrapping it in an int() call. FYI

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.