keplemon 0.3.3__cp313-cp313-win_amd64.whl → 1.0.0__cp313-cp313-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of keplemon might be problematic. Click here for more details.

Binary file
keplemon/bodies.pyi CHANGED
@@ -17,12 +17,11 @@ class Earth:
17
17
  def get_kem() -> float: ...
18
18
 
19
19
  class Satellite:
20
- satellite_id: int
21
- """Number used to distinguish the satellite from other objects.
22
-
23
- !!! note
24
- Every attempt should be made to make this unique to support satellite methods that perform comparisons or
25
- bookkeeping.
20
+ id: str
21
+ """Unique identifier for the satellite."""
22
+
23
+ norad_id: int
24
+ """Number corresponding to the satellite's NORAD catalog ID.
26
25
  """
27
26
  name: str | None
28
27
  """Human-readable name of the satellite"""
@@ -100,7 +99,7 @@ class Constellation:
100
99
  start: Epoch,
101
100
  end: Epoch,
102
101
  step: TimeSpan,
103
- ) -> dict[int, Ephemeris]:
102
+ ) -> dict[str, Ephemeris]:
104
103
  """
105
104
  Args:
106
105
  start: UTC epoch of the start of the ephemeris
@@ -155,7 +154,7 @@ class Constellation:
155
154
  """
156
155
  ...
157
156
 
158
- def __getitem__(self, satellite_id: int) -> Satellite: ...
157
+ def __getitem__(self, satellite_id: str) -> Satellite: ...
159
158
  def get_horizon_access_report(
160
159
  self,
161
160
  site: Observatory,
keplemon/catalogs.pyi CHANGED
@@ -8,9 +8,9 @@ class TLECatalog:
8
8
  @classmethod
9
9
  def from_tle_file(cls, filename: str) -> TLECatalog: ...
10
10
  def add(self, tle: TLE) -> None: ...
11
- def get(self, satellite_id: int) -> TLE: ...
12
- def remove(self, satellite_id: int) -> None: ...
13
- def keys(self) -> list[int]: ...
11
+ def get(self, satellite_id: str) -> TLE: ...
12
+ def remove(self, satellite_id: str) -> None: ...
13
+ def keys(self) -> list[str]: ...
14
14
  def get_count(self) -> int: ...
15
15
  def clear(self) -> None: ...
16
- def __getitem__(self, satellite_id: int) -> TLE: ...
16
+ def __getitem__(self, satellite_id: str) -> TLE: ...
keplemon/elements.pyi CHANGED
@@ -90,7 +90,11 @@ class KeplerianElements:
90
90
  ) -> None: ...
91
91
 
92
92
  class TLE:
93
- satellite_id: int
93
+
94
+ norad_id: int
95
+ """NORAD catalog ID of the satellite"""
96
+
97
+ satellite_id: str
94
98
  """"""
95
99
 
96
100
  name: str
@@ -2,6 +2,7 @@ from keplemon._keplemon.saal.astro_func_interface import ( # type: ignore
2
2
  teme_to_topo,
3
3
  ra_dec_to_az_el_time,
4
4
  ra_dec_to_az_el,
5
+ mean_motion_to_sma,
5
6
  XA_TOPO_RA,
6
7
  XA_TOPO_DEC,
7
8
  XA_TOPO_AZ,
@@ -30,4 +31,5 @@ __all__ = [
30
31
  "XA_TOPO_ELDOT",
31
32
  "XA_TOPO_RANGEDOT",
32
33
  "XA_TOPO_SIZE",
34
+ "mean_motion_to_sma",
33
35
  ]
@@ -1,5 +1,17 @@
1
1
  # flake8: noqa: F401
2
2
 
3
+ def mean_motion_to_sma(mean_motion: float) -> float:
4
+ """
5
+ Convert mean motion to semi-major axis.
6
+
7
+ Args:
8
+ mean_motion: Mean motion in revolutions/day.
9
+
10
+ Returns:
11
+ Semi-major axis in kilometers.
12
+ """
13
+ ...
14
+
3
15
  def ra_dec_to_az_el(
4
16
  theta: float,
5
17
  lat: float,
@@ -0,0 +1,21 @@
1
+ Metadata-Version: 2.4
2
+ Name: keplemon
3
+ Version: 1.0.0
4
+ Requires-Dist: requests
5
+ Requires-Dist: click
6
+ Requires-Dist: maturin>=1.0,<2.0 ; extra == 'dev'
7
+ Requires-Dist: keplemon[test] ; extra == 'dev'
8
+ Requires-Dist: mkdocstrings[python] ; extra == 'dev'
9
+ Requires-Dist: mkdocs-material ; extra == 'dev'
10
+ Requires-Dist: markdown-include ; extra == 'dev'
11
+ Requires-Dist: tomli ; python_full_version < '3.11' and extra == 'dev'
12
+ Requires-Dist: pytest ; extra == 'test'
13
+ Provides-Extra: dev
14
+ Provides-Extra: test
15
+ Summary: Citra Space Corporation's Rust-accelerated astrodynamics library.
16
+ Author-email: Brandon Sexton <brandon@citra.space>
17
+ License-Expression: MIT
18
+ Requires-Python: >=3.9
19
+ Project-URL: Documentation, https://keplemon.citra.space
20
+ Project-URL: Repository, https://github.com/citra-space/keplemon.git
21
+ Project-URL: Issues, https://github.com/citra-space/keplemon/issues
@@ -1,6 +1,6 @@
1
- keplemon-0.3.3.dist-info/METADATA,sha256=ebzVnPrH-QKb08UKH8Bg2U9HnCICe_9do36rAEifJps,4249
2
- keplemon-0.3.3.dist-info/WHEEL,sha256=oXe_QNnB5QbkkMcbfZh2d88Kje6edNs5JzpWke0-klE,96
3
- keplemon-0.3.3.dist-info/entry_points.txt,sha256=eYbCkvQvWfRDQ0LzaCELov1xeLAxQEHlfdgNq-LXyb0,49
1
+ keplemon-1.0.0.dist-info/METADATA,sha256=-5xvAQVYzKt011pNsM6bT83WOZEnqkRlpMQBfy7nYdM,863
2
+ keplemon-1.0.0.dist-info/WHEEL,sha256=DfU-bXnJK60cJceeC-xy2sa_ryw_ZpNrTnTQMSW4eNA,96
3
+ keplemon-1.0.0.dist-info/entry_points.txt,sha256=eYbCkvQvWfRDQ0LzaCELov1xeLAxQEHlfdgNq-LXyb0,49
4
4
  keplemon/AstroFunc.dll,sha256=RwDLeYGuSd3MxQ3O_Ljb0maS5KoDL8HZLpAvcQhDmnQ,357376
5
5
  keplemon/AstroFunc.lib,sha256=q0Ob5NGUgbywJg6XqH48QLNmFv8T5p8NVLSx2kKkL4A,56480
6
6
  keplemon/DllMain.dll,sha256=vYgOfGAUHn2z1MrVu9wV-k_LRdtuF8RuWrbuu2xk7jk,121344
@@ -30,7 +30,7 @@ keplemon/Vcm.lib,sha256=q2FPbH_DJXjIzNIzli2f1uV2faHHBjLbffZrL3Nagpw,19404
30
30
  keplemon/__init__.py,sha256=JymfGXbJ9UJDdwRW0CXS7j5j_LPk1_P_ViKbjoTdCFU,861
31
31
  keplemon/__init__.pyi,sha256=PgtL8CNupZCJibx07RLmFf56gMkCFx7voUIxBpeADO8,1349
32
32
  keplemon/__main__.py,sha256=Bbbzny3eE3NOikVCEVFAGJiSRGooAkLzPwoSz-rpaxc,689
33
- keplemon/_keplemon.cp313-win_amd64.pyd,sha256=5lIXTAZtmxffYAqL-NtNcFkjui4hDJD54Cjla1sOcZQ,1484800
33
+ keplemon/_keplemon.cp313-win_amd64.pyd,sha256=v-479Kzbdce89blNdKJj0z-aaVhDjObLs91JnCKRgE4,1500672
34
34
  keplemon/assets/EGM-2008.GEO,sha256=K2nG8HGLATIHZYMfw3GSClYOTCuZ7rq4RdCeUNgCw5A,148770
35
35
  keplemon/assets/EGM-96.GEO,sha256=VBkILuvEMwAPuWmUHy2PeyEfULOwJ4PEJLNf5hr84mU,148770
36
36
  keplemon/assets/GEM_5-22.GEO,sha256=stemYLn1ChXa-VdLGHYfa15AXZa_xxGZQ65p4c3gffI,6852
@@ -43,11 +43,11 @@ keplemon/assets/SGP4_Open_License.txt,sha256=ThQ87DpbbXt-9K0-0U13tcZqsndte_UkaG3
43
43
  keplemon/assets/WGS84-70.GEO,sha256=ARjEC_5s2SVd0Kh9udbTy1ztBwTeuBYPOhUVJgIqit8,148510
44
44
  keplemon/assets/time_constants.dat,sha256=3nsYjFgq0QnTUHPxuQPdtMG-AqxShVbvmG2zPcZfdcA,1246208
45
45
  keplemon/bodies.py,sha256=MjdAGL25eF5pA3KHo5ipjz0DDql5EEEbBqR735M254g,217
46
- keplemon/bodies.pyi,sha256=RJ1hgKQMU37-w861rtyJwpkvdJfyJsiYPsr57VL2Nng,7443
46
+ keplemon/bodies.pyi,sha256=US0kcDcJz8Ypv75bsx0BYHjZJdPUkDfETEwoz63OhQI,7342
47
47
  keplemon/catalogs.py,sha256=AKONH7zWBOnUZI0ty0lYiYZtrdILfKivoUgk1nU3PZ8,107
48
- keplemon/catalogs.pyi,sha256=xcXEaiQY4wNvd95YdQDmqjD-nkirc_phSwL256Fejuc,540
48
+ keplemon/catalogs.pyi,sha256=0xKUNjmioF_cd5atqiGbRxaZuTUIBr2hbEJ0J0A4c-s,540
49
49
  keplemon/elements.py,sha256=AzE0xyBNDynGtBcIkpQaV7qHW-xNdA9bFkIcr5CC1oY,506
50
- keplemon/elements.pyi,sha256=k-sALyXTHhU1YDyvV4RDDsjpTuHCJBD4J8GjLLpB2Q8,9743
50
+ keplemon/elements.pyi,sha256=qbUm5uQ9FNjQP5b99K8NxeaC6xnDSSaaY8NnofoAJIg,9811
51
51
  keplemon/enums.py,sha256=5MejXeSwXPtfpIYeNuFQH3LSIRf4aTFZTK2Q1AYyaEg,325
52
52
  keplemon/enums.pyi,sha256=OSS71WesYTgzWGUSjpxaYtzj6XmoyLBXq_Zd13IBwyQ,2418
53
53
  keplemon/estimation.py,sha256=Of0rHiapW4s1wRipBCZrp4oOiIzs794w1nhqM7AVrGs,236
@@ -63,12 +63,12 @@ keplemon/propagation.pyi,sha256=ZWqjxwg4MQebRukTysK2ZyTtIxvAyZIkUybO3wsZO9Q,483
63
63
  keplemon/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
64
64
  keplemon/saal/__init__.py,sha256=JS-tjVFqN1B3ZjIG2g7v1GrmUPi9eIv0_Le1reYuQ2o,126
65
65
  keplemon/saal/__init__.pyi,sha256=7wosTC1KhEJis-zp2LlZmW7hlr8BzFO4gx0TJ9c3J80,148
66
- keplemon/saal/astro_func_interface.py,sha256=4hhtCVWBYdBBOlvQXt7XJuDJ5lWk8GbsV3iSJfkkFfc,685
67
- keplemon/saal/astro_func_interface.pyi,sha256=Dx4ryXnpDK9ZnFL6afkIvTu3rH14Wi8q3rRxeY0Qoew,2557
66
+ keplemon/saal/astro_func_interface.py,sha256=6Y26Qtpg-vf4K5pya2DRzPyv4_4vnp9vmnribbpqYyw,737
67
+ keplemon/saal/astro_func_interface.pyi,sha256=b0QKQhoeBWZ1ouuux9ZoojHpNNnHlNz_bi8kalBgSA0,2808
68
68
  keplemon/saal/obs_interface.py,sha256=ax8T4Y61pWh3VnQ4K2bCDNdrK-H6WKWr14pEDAY8WxE,257
69
69
  keplemon/saal/obs_interface.pyi,sha256=Y9PE1t2Kdz1Sne1t_M-ctOp9G4hWGKgMMkuES6v1U6Q,235
70
70
  keplemon/saal/time_func_interface.py,sha256=C18Q_PIMUFBcB0pHN6wlVj35Vrt83VQNKOEmHDHvZSA,438
71
71
  keplemon/saal/time_func_interface.pyi,sha256=3QKtsuxMoTgG--bDvbVNcJyD8vfcAUlw2n69g1m0kNM,1578
72
72
  keplemon/time.py,sha256=fa6AKPPU18lX44emrAy5ZZ5TRam-Vhm8ecsauvQ_wdg,2888
73
73
  keplemon/time.pyi,sha256=bS5UrY2loeT2mzONRFl2LTG5ZLaC3EnCXKB8fZRks4Q,6529
74
- keplemon-0.3.3.dist-info/RECORD,,
74
+ keplemon-1.0.0.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: maturin (1.9.1)
2
+ Generator: maturin (1.9.3)
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp313-cp313-win_amd64
@@ -1,114 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: keplemon
3
- Version: 0.3.3
4
- Requires-Dist: requests
5
- Requires-Dist: click
6
- Requires-Dist: maturin>=1.0,<2.0 ; extra == 'dev'
7
- Requires-Dist: keplemon[test] ; extra == 'dev'
8
- Requires-Dist: mkdocstrings[python] ; extra == 'dev'
9
- Requires-Dist: mkdocs-material ; extra == 'dev'
10
- Requires-Dist: markdown-include ; extra == 'dev'
11
- Requires-Dist: tomli ; python_full_version < '3.11' and extra == 'dev'
12
- Requires-Dist: pytest ; extra == 'test'
13
- Provides-Extra: dev
14
- Provides-Extra: test
15
- Summary: Citra Space Corporation's Rust-accelerated astrodynamics library.
16
- Author-email: Brandon Sexton <brandon@citra.space>
17
- License: MIT
18
- Requires-Python: >=3.9
19
- Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
20
- Project-URL: Documentation, https://keplemon.citra.space
21
- Project-URL: Repository, https://github.com/citra-space/keplemon.git
22
- Project-URL: Issues, https://github.com/citra-space/keplemon/issues
23
-
24
- # KepLemon
25
-
26
- [Citra Space Corporation's](https://citra.space) Rust-accelerated astrodynamics package built on the shared libraries
27
- provided by [space-track](https://space-track.org). Please visit the [documentation](https://keplemon.citra.space)
28
- page for additional details.
29
-
30
- ## Installation
31
-
32
- ### From PyPI (Preferred)
33
-
34
- KepLemon can be installed directly for any operating system from a command line using `pip install keplemon`.
35
-
36
- ### From a Local Build
37
-
38
- For python users, the **_preferred installation method is through [PyPI](https://www.pypi.org)_**; however, the package can be
39
- installed locally by following the steps below.
40
-
41
- 1. `git clone https://github.com/citra-space/keplemon.git`
42
- 2. `cargo install cargo-make`
43
- 3. `cargo make build-<os>-<architecture>` (e.g. for Linux x86 `cargo make build-linux-x86`)
44
- 4. `pip install target/wheels/*.whl`
45
-
46
- To avoid potential conflicts with system libraries, you can alternatively build the wheel using Docker.
47
-
48
- ```bash
49
- docker buildx build \
50
- --build-arg OS="${OS:-linux}" \
51
- --build-arg ARCH="${ARCH:-x86}" \
52
- --build-arg PYTHON_VERSION="${PYTHON_VERSION:-310}" \
53
- --output type=local,dest=./target .
54
- ```
55
-
56
- Then install the wheel the same way with:
57
- `pip install target/wheels/*.whl`
58
-
59
- ## Environment Settings
60
-
61
- Although not required, it is recommended to explicitly apply the settings in this section before using KepLemon to avoid
62
- unexpected behaviors and inaccurate calculations.
63
-
64
- ### CPU Limits
65
-
66
- By default, KepLemon will have access to all available cores when performing parallel functions. Limit this by calling
67
- `set_thread_count` **_before_** using other KepLemon functions.
68
-
69
- ```python
70
- from keplemon import set_thread_count, get_thread_count
71
-
72
- # Update this to the desired core count
73
- set_thread_count(4)
74
- ```
75
-
76
- ### Time Constants and Earth-Orientation Parameters (EOP)
77
-
78
- All astrodynamics packages have a strict dependence on measured changes to time and Earth's orientation. Since KepLemon
79
- uses the public Standardized Astrodynamics Algorithms Library (SAAL) at the core, the time and (EOP) data must conform
80
- to a specific format required by the underlying binaries. Rather than referencing data directly provided by the
81
- [USNO](https://maia.usno.navy.mil/), utility scripts are provided in KepLemon to request and export the relevant data.
82
-
83
- #### Global Update
84
-
85
- Use the command below from a terminal to update time constants and EOP data package-wide.
86
-
87
- ```bash
88
- keplemon --update-eop global
89
- ```
90
-
91
- #### Local Override
92
-
93
- EOP data can also be written to explicit paths for inspection or package overrides using the commands below.
94
-
95
- ```bash
96
- keplemon --update-eop custom_path.txt
97
- ```
98
-
99
- !!! note
100
- If you intend to use the data written to a local override, you must use the `load_time_constants` method at the
101
- beginning of your scripts. **_This is not needed if you maintain constants using the global method_**.
102
-
103
- ```python
104
- from keplemon.time import load_time_constants
105
-
106
- # Update this to reflect the desired override path
107
- load_time_constants("custom_path.txt")
108
- ```
109
-
110
- ## Contributing
111
-
112
- Anyone is welcome to contribute to KepLemon. Users are encouraged to start by opening issues or forking the repository.
113
- Changes directly to the baseline may be approved by contacting the owner at <brandon@citra.space>.
114
-