keplemon 0.3.3__cp311-cp311-macosx_11_0_arm64.whl → 1.0.0__cp311-cp311-macosx_11_0_arm64.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,10 +1,10 @@
1
- keplemon-0.3.3.dist-info/METADATA,sha256=ftj1MBl3mYuEDk9WgcUnibGTGChWrgMfiRECC6e04-g,4159
2
- keplemon-0.3.3.dist-info/WHEEL,sha256=4POUqOUvk-fNEqEa1NBlmMsgWQGl6FnEg9vsbsvEmNM,104
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=FQD2wNSk7QdKfwuvlrA52DGgdDYb2Xq1PtLwlu6bv-w,104
3
+ keplemon-1.0.0.dist-info/entry_points.txt,sha256=eYbCkvQvWfRDQ0LzaCELov1xeLAxQEHlfdgNq-LXyb0,49
4
4
  keplemon/__init__.py,sha256=M9q5lNYh_BE6l4xCGJ5IH5PQH9aNm4q_r67ljsNkKvM,832
5
5
  keplemon/__init__.pyi,sha256=uE60ln_KJgcfvKburVmbcKT0h_wLPgjBWuyNLgI8ETI,1295
6
6
  keplemon/__main__.py,sha256=-3GVkDOA0lV0MIqU9gPb4zbVimg2lA8HMkvdPDw1O28,669
7
- keplemon/_keplemon.cpython-311-darwin.so,sha256=DV4xxoKh6_18VM1FVITMHb30Oa-PsN__TUXAc_xc1Pg,1823232
7
+ keplemon/_keplemon.cpython-311-darwin.so,sha256=DfwiLXti-Zluxcxe9guS4xu8PGut_-n8MUk41x8AZcI,1862496
8
8
  keplemon/assets/EGM-2008.GEO,sha256=K2nG8HGLATIHZYMfw3GSClYOTCuZ7rq4RdCeUNgCw5A,148770
9
9
  keplemon/assets/EGM-96.GEO,sha256=VBkILuvEMwAPuWmUHy2PeyEfULOwJ4PEJLNf5hr84mU,148770
10
10
  keplemon/assets/GEM_5-22.GEO,sha256=stemYLn1ChXa-VdLGHYfa15AXZa_xxGZQ65p4c3gffI,6852
@@ -17,11 +17,11 @@ keplemon/assets/SGP4_Open_License.txt,sha256=0WofOXQb5YJqnYhXWXnBdCajiTJQAT60UAk
17
17
  keplemon/assets/WGS84-70.GEO,sha256=ARjEC_5s2SVd0Kh9udbTy1ztBwTeuBYPOhUVJgIqit8,148510
18
18
  keplemon/assets/time_constants.dat,sha256=qDpJ2UrQvIDfxsBc4P2AdLS-b2lyR7RCzjqmeG4Ypl8,1226736
19
19
  keplemon/bodies.py,sha256=XnaY6XTuj8CHM3XOwOSY3E8nSo0RWwCcAY0FGxAVWa8,208
20
- keplemon/bodies.pyi,sha256=2kxW_n6skCf_QuVUGM_CeZIwf1UOyXu1TKCp_Y_txDk,7189
20
+ keplemon/bodies.pyi,sha256=X6hXvrGJ4wGqc0Nbn04PvSbeo7U71jTPC5vC6xTER-U,7089
21
21
  keplemon/catalogs.py,sha256=lw71NiXlVtb-z3pQR03afxtkLca4HJcnpZ6kDCcR-Lk,102
22
- keplemon/catalogs.pyi,sha256=NlWv2E7g5JH8LZyyPCDe9Lh_Me5Fmpv3sPinnbJpLf8,524
22
+ keplemon/catalogs.pyi,sha256=ls2HTk7CMGnxutyR5XLsVtzMuB_OoB45-Vhj4BpKQEw,524
23
23
  keplemon/elements.py,sha256=QSSiUGN8cA8X85FR-CVfy8lwsNrBtrQbrw9HWr_cH3I,481
24
- keplemon/elements.pyi,sha256=kkujHEbZykzdBLmhoJW9kWYBrjpI47m9X06vei7GudY,9373
24
+ keplemon/elements.pyi,sha256=8ZbXx4euKeW4Bj5jUhP87npmNoesmD4DpND1u3JxnTs,9437
25
25
  keplemon/enums.py,sha256=Jh0tFHg_rZXnOyLUXmHjSm3MSZFbvQKTBcP0BqHXeMY,308
26
26
  keplemon/enums.pyi,sha256=s9uqkm3Zrx6HLV4dQBScRiUy0CT4QoQwFjaCLOEMW1c,2330
27
27
  keplemon/estimation.py,sha256=2K87pFhOfaFohbAtBXv2SA6m_oIN-56toJOftu350fY,228
@@ -51,12 +51,12 @@ keplemon/propagation.pyi,sha256=YSA3cBzgHLW3_dykrjMX4PbReYJmz5Z7bzfuibPaegc,464
51
51
  keplemon/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
52
52
  keplemon/saal/__init__.py,sha256=aoTB13q7IvXuQ80jgGCnwXA29yjpOqLiTdrtyjyRqLE,123
53
53
  keplemon/saal/__init__.pyi,sha256=GPB5f0dcK7srvSDq2i5wvHMyi-OYZakMvlrstKdDwkk,143
54
- keplemon/saal/astro_func_interface.py,sha256=gjXnmJuSmgxPEgLnqUZCP1_m0jHujPgmHt4YkERVcpk,652
55
- keplemon/saal/astro_func_interface.pyi,sha256=bEystOU2WG3KYeq93SJygnf30QsouHQMRcWlV3Tc0VM,2457
54
+ keplemon/saal/astro_func_interface.py,sha256=uJuJAV4beTHjk5Jr5rHzMkeBFSo-2vDiW818AnIEYPs,702
55
+ keplemon/saal/astro_func_interface.pyi,sha256=8__K4QTOYGAAwgIm5KloUADXNrR3fOrReyiN8RZcVhQ,2696
56
56
  keplemon/saal/obs_interface.py,sha256=EtsaPKixjMWfCUpMd79SvhCs3f9sRcBaal6-ickj3Vs,248
57
57
  keplemon/saal/obs_interface.pyi,sha256=eIXbFnZSF3cX3MyXaCYLUAp0wUAbJiQ4rosqpXdf2I0,228
58
58
  keplemon/saal/time_func_interface.py,sha256=cshqJ15p_gcenMdmVuXTIoLeij1gsgVi0tujRQ4O6kA,421
59
59
  keplemon/saal/time_func_interface.pyi,sha256=GCj_EOmOceJorYQLGQQj1fE2cHxPvNrYml1DLvsaMy4,1508
60
60
  keplemon/time.py,sha256=vvHcwWQ1JXPaQSvdBfXYZrk2_-ukDw0RnXDeN5wy3nU,2792
61
61
  keplemon/time.pyi,sha256=S2Ul8fpuWnor9wKNFBxLwAiwrGrVN_LJH_xy6WSocv4,6260
62
- keplemon-0.3.3.dist-info/RECORD,,
62
+ 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: cp311-cp311-macosx_11_0_arm64
@@ -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
-