Skip to content

Commit 7583764

Browse files
Merge pull request #2 from EnguerranVidal/develop
Updating main from develop
2 parents 8f244eb + 0649cf4 commit 7583764

71 files changed

Lines changed: 8210 additions & 2350 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 48 additions & 164 deletions
Original file line numberDiff line numberDiff line change
@@ -1,181 +1,65 @@
1-
# Byte-compiled / optimized / DLL files
1+
# -----------------------
2+
# PyCharm / IntelliJ
3+
# -----------------------
4+
.idea/
5+
*.iml
6+
*.ipr
7+
*.iws
8+
9+
# Workspace-specific files
10+
.idea/workspace.xml
11+
.idea/tasks.xml
12+
.idea/dictionaries
13+
.idea/vcs.xml
14+
.idea/httpRequests/
15+
16+
# -----------------------
17+
# Python
18+
# -----------------------
219
__pycache__/
320
*.py[cod]
4-
*$py.class
5-
6-
# C extensions
21+
*.pyo
22+
*.pyd
723
*.so
824

925
# Distribution / packaging
10-
.Python
11-
build/
12-
develop-eggs/
1326
dist/
14-
downloads/
15-
eggs/
16-
.eggs/
17-
lib/
18-
lib64/
19-
parts/
20-
sdist/
21-
var/
22-
wheels/
23-
share/python-wheels/
27+
build/
2428
*.egg-info/
25-
.installed.cfg
2629
*.egg
27-
MANIFEST
28-
29-
# PyInstaller
30-
# Usually these files are written by a python script from a template
31-
# before PyInstaller builds the exe, so as to inject date/other infos into it.
32-
*.manifest
33-
*.spec
34-
35-
# Installer logs
36-
pip-log.txt
37-
pip-delete-this-directory.txt
38-
39-
# Unit test / coverage reports
40-
htmlcov/
41-
.tox/
42-
.nox/
43-
.coverage
44-
.coverage.*
45-
.cache
46-
nosetests.xml
47-
coverage.xml
48-
*.cover
49-
*.py,cover
50-
.hypothesis/
51-
.pytest_cache/
52-
cover/
53-
54-
# Translations
55-
*.mo
56-
*.pot
57-
58-
# Django stuff:
59-
*.log
60-
local_settings.py
61-
db.sqlite3
62-
db.sqlite3-journal
63-
64-
# Flask stuff:
65-
instance/
66-
.webassets-cache
67-
68-
# Scrapy stuff:
69-
.scrapy
70-
71-
# Sphinx documentation
72-
docs/_build/
73-
74-
# PyBuilder
75-
.pybuilder/
76-
target/
77-
78-
# Jupyter Notebook
79-
.ipynb_checkpoints
80-
81-
# IPython
82-
profile_default/
83-
ipython_config.py
84-
85-
# pyenv
86-
# For a library or package, you might want to ignore these files since the code is
87-
# intended to run in multiple environments; otherwise, check them in:
88-
# .python-version
8930

90-
# pipenv
91-
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
92-
# However, in case of collaboration, if having platform-specific dependencies or dependencies
93-
# having no cross-platform support, pipenv may install dependencies that don't work, or not
94-
# install all needed dependencies.
95-
#Pipfile.lock
96-
97-
# UV
98-
# Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
99-
# This is especially recommended for binary packages to ensure reproducibility, and is more
100-
# commonly ignored for libraries.
101-
#uv.lock
102-
103-
# poetry
104-
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
105-
# This is especially recommended for binary packages to ensure reproducibility, and is more
106-
# commonly ignored for libraries.
107-
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
108-
#poetry.lock
109-
110-
# pdm
111-
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
112-
#pdm.lock
113-
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
114-
# in version control.
115-
# https://pdm.fming.dev/latest/usage/project/#working-with-version-control
116-
.pdm.toml
117-
.pdm-python
118-
.pdm-build/
119-
120-
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
121-
__pypackages__/
122-
123-
# Celery stuff
124-
celerybeat-schedule
125-
celerybeat.pid
126-
127-
# SageMath parsed files
128-
*.sage.py
129-
130-
# Environments
131-
.env
132-
.venv
133-
env/
31+
# Virtual environments
13432
venv/
33+
.venv/
13534
ENV/
136-
env.bak/
137-
venv.bak/
138-
139-
# Spyder project settings
140-
.spyderproject
141-
.spyproject
142-
143-
# Rope project settings
144-
.ropeproject
145-
146-
# mkdocs documentation
147-
/site
148-
149-
# mypy
150-
.mypy_cache/
151-
.dmypy.json
152-
dmypy.json
153-
154-
# Pyre type checker
155-
.pyre/
35+
env/
36+
*.env
15637

157-
# pytype static type analyzer
158-
.pytype/
38+
# Pip installer logs
39+
pip-log.txt
15940

160-
# Cython debug symbols
161-
cython_debug/
41+
# Python byte-compiled / optimized / DLL files
42+
*$py.class
16243

163-
# PyCharm
164-
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
165-
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
166-
# and can be added to the global gitignore or merged into this file. For a more nuclear
167-
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
168-
#.idea/
44+
# Jupyter Notebook checkpoints
45+
.ipynb_checkpoints/
16946

170-
# Ruff stuff:
171-
.ruff_cache/
47+
# -----------------------
48+
# OS files
49+
# -----------------------
50+
# macOS
51+
.DS_Store
52+
# Windows
53+
Thumbs.db
17254

173-
# PyPI configuration file
174-
.pypirc
55+
# -----------------------
56+
# Logs
57+
# -----------------------
58+
*.log
17559

176-
# Cursor
177-
# Cursor is an AI-powered code editor.`.cursorignore` specifies files/directories to
178-
# exclude from AI features like autocomplete and code analysis. Recommended for sensitive data
179-
# refer to https://docs.cursor.com/context/ignore-files
180-
.cursorignore
181-
.cursorindexingignore
60+
# -----------------------
61+
# Local configuration
62+
# -----------------------
63+
*.local
64+
/data/
65+
settings.json

README.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# PySatTracker
2-
[![GitHub watchers](https://badgen.net/github/watchers/EnguerranVidal/PySatTracker/)](https://GitHub.com/EnguerranVidal/PySatTracker/watchers/) [![GitHub stars](https://badgen.net/github/stars/EnguerranVidal/PySatTracker)](https://GitHub.com/EnguerranVidal/PySatTracker/stargazers/)
2+
[![GitHub watchers](https://badgen.net/github/watchers/EnguerranVidal/PyStrato/)](https://GitHub.com/EnguerranVidal/PyStrato/watchers/) [![GitHub stars](https://badgen.net/github/stars/EnguerranVidal/PyStrato)](https://GitHub.com/EnguerranVidal/PyStrato/stargazers/)
33
![GitHub license](https://img.shields.io/github/license/EnguerranVidal/PySatTracker)
44

5-
[![GitHub branches](https://badgen.net/github/branches/EnguerranVidal/PySatTracker)](https://github.com/EnguerranVidal/PySatTracker/)
6-
[![GitHub commits](https://badgen.net/github/commits/EnguerranVidal/PySatTracker)](https://github.com/EnguerranVidal/PySatTracker/)
5+
[![GitHub branches](https://badgen.net/github/branches/EnguerranVidal/PyStrato)](https://github.com/EnguerranVidal/PyStrato/)
6+
[![GitHub commits](https://badgen.net/github/commits/EnguerranVidal/PyStrato)](https://github.com/EnguerranVidal/PyStrato/)
77
![GitHub last commit](https://img.shields.io/github/last-commit/EnguerranVidal/PySatTracker)
88
![Github issus open](https://img.shields.io/github/issues-raw/EnguerranVidal/PySatTracker)
99
![Github issus closed](https://img.shields.io/github/issues-closed-raw/EnguerranVidal/PySatTracker)
@@ -19,6 +19,7 @@
1919

2020
<div style="text-align: justify"> The tool uses a Two Line Elements database extracted daily from the <a href="https://celestrak.org">Celestrak</a> archive, featuring all currently active satellites in orbit around Earth. </div>
2121

22+
<div style="text-align: justify"> Some icons by <a href="https://icons8.com/">Icons8</a>. </div>
2223
## INSTALLATION
2324

2425
1. Cloning the Github Repository.
@@ -74,4 +75,5 @@ python3 main.py
7475
| Reentries Predictions | Predict satellite reentries | Planned |
7576
| Orbital Calculations Optimization | Optimize orbital calculations for GPU usage | Planned |
7677

77-
<p align="left">(<a href="#readme-top">back to top</a>)</p>
78+
Icons
79+
<p align="left">(<a href="#readme-top">back to top</a>)</p>

main.py

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,37 +5,44 @@
55
from PyQt5.QtWidgets import QApplication
66
from PyQt5.QtCore import QThread
77

8-
from src.core.tleDatabase import TLELoaderWorker
9-
from src.gui.widgets import LoadingScreen
8+
from src.core.database.general import DatabaseLoaderWorker
9+
from src.gui.common import LoadingScreen
1010
from src.gui.mainWindow import MainWindow
11+
from src.gui.utilities import configureOpenGLFormat
12+
1113

1214
def main():
1315
qdarktheme.enable_hi_dpi()
1416
app = QApplication(sys.argv)
17+
qdarktheme.setup_theme('dark', additional_qss='QToolTip {color: black;}')
1518
currentDirectory = os.path.dirname(os.path.realpath(__file__))
1619
dataDir = os.path.join(currentDirectory, 'data')
1720
splash = LoadingScreen()
1821
splash.show()
1922

2023
# LOADING WORKER THREAD
2124
thread = QThread()
22-
loader = TLELoaderWorker(dataDir)
23-
loader.moveToThread(thread)
24-
thread.started.connect(loader.run)
25-
loader.progress.connect(splash.setProgress)
26-
loader.status.connect(splash.setStatus)
25+
databaseLoader = DatabaseLoaderWorker(dataDir)
26+
databaseLoader.moveToThread(thread)
27+
thread.started.connect(databaseLoader.run)
28+
databaseLoader.progress.connect(splash.setProgress)
29+
databaseLoader.status.connect(splash.setStatus)
30+
configureOpenGLFormat()
2731

28-
def onFinished(db):
32+
def onFinished(databases):
33+
tleDatabase, starDatabase = databases
34+
splash.setToMaximumProgress()
2935
window = MainWindow(currentDirectory)
30-
window.setDatabase(db)
36+
window.setDatabases(tleDatabase, starDatabase)
3137
splash.launchMainWindow(window)
3238
thread.quit()
33-
loader.deleteLater()
39+
databaseLoader.deleteLater()
3440
thread.deleteLater()
3541

36-
loader.finished.connect(onFinished)
42+
databaseLoader.finished.connect(onFinished)
3743
thread.start()
3844
sys.exit(app.exec_())
3945

46+
4047
if __name__ == '__main__':
4148
main()

requirements.txt

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
numpy~=2.2.6
2-
pyqt5~=5.15.11
3-
matplotlib~=3.10.7
4-
imageio~=2.37.2
5-
pyqtgraph~=0.13.7
6-
pandas~=2.3.3
7-
requests~=2.32.5
8-
sgp4~=2.25
9-
pyqtdarktheme~=2.1.0
1+
numpy
2+
pyqt5
3+
matplotlib
4+
imageio
5+
pyqtgraph
6+
pandas
7+
requests
8+
sgp4
9+
pyqtdarktheme
10+
pyopengl

src/assets/icons/add-tab.png

1.13 KB
Loading

src/assets/icons/axes.png

917 Bytes
Loading

src/assets/icons/bug.png

1.44 KB
Loading
1.1 KB
Loading

src/assets/icons/close-tab.png

1.2 KB
Loading

src/assets/icons/earth-grid.png

2.13 KB
Loading

0 commit comments

Comments
 (0)