keplemon 1.1.3__cp313-cp313-win_amd64.whl → 1.3.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.
- keplemon/_keplemon.cp313-win_amd64.pyd +0 -0
- keplemon/bodies.pyi +23 -5
- keplemon/estimation.pyi +3 -0
- keplemon/events.pyi +4 -0
- keplemon/time.py +17 -1
- keplemon/time.pyi +17 -0
- {keplemon-1.1.3.dist-info → keplemon-1.3.0.dist-info}/METADATA +1 -1
- {keplemon-1.1.3.dist-info → keplemon-1.3.0.dist-info}/RECORD +10 -10
- {keplemon-1.1.3.dist-info → keplemon-1.3.0.dist-info}/WHEEL +0 -0
- {keplemon-1.1.3.dist-info → keplemon-1.3.0.dist-info}/entry_points.txt +0 -0
|
Binary file
|
keplemon/bodies.pyi
CHANGED
|
@@ -12,6 +12,7 @@ from keplemon.catalogs import TLECatalog
|
|
|
12
12
|
from keplemon.time import Epoch, TimeSpan
|
|
13
13
|
from keplemon.events import CloseApproach, CloseApproachReport, HorizonAccessReport, FieldOfViewReport
|
|
14
14
|
from keplemon.propagation import ForceProperties
|
|
15
|
+
from keplemon.enums import ReferenceFrame
|
|
15
16
|
|
|
16
17
|
class Earth:
|
|
17
18
|
@staticmethod
|
|
@@ -226,7 +227,9 @@ class Sensor:
|
|
|
226
227
|
angular_noise: Angular noise in **_degrees_**
|
|
227
228
|
"""
|
|
228
229
|
|
|
229
|
-
|
|
230
|
+
id: str
|
|
231
|
+
"""Unique identifier for the sensor."""
|
|
232
|
+
name: str | None
|
|
230
233
|
angular_noise: float
|
|
231
234
|
range_noise: float | None
|
|
232
235
|
"""Range noise in **_kilometers_**"""
|
|
@@ -236,7 +239,7 @@ class Sensor:
|
|
|
236
239
|
|
|
237
240
|
angular_rate_noise: float | None
|
|
238
241
|
"""Angular rate noise in **_degrees per second_**"""
|
|
239
|
-
def __init__(self,
|
|
242
|
+
def __init__(self, angular_noise: float) -> None: ...
|
|
240
243
|
|
|
241
244
|
class Observatory:
|
|
242
245
|
"""
|
|
@@ -310,16 +313,31 @@ class Observatory:
|
|
|
310
313
|
sensor_direction: TopocentricElements,
|
|
311
314
|
angular_threshold: float,
|
|
312
315
|
sats: Constellation,
|
|
316
|
+
reference_frame: ReferenceFrame,
|
|
313
317
|
) -> FieldOfViewReport:
|
|
314
318
|
"""
|
|
315
|
-
Calculate field of view
|
|
319
|
+
Calculate satellites in the field of view from a given time and direction.
|
|
316
320
|
|
|
317
321
|
Args:
|
|
318
322
|
epoch: UTC epoch of the report
|
|
319
323
|
sensor_direction: Topocentric direction the sensor is pointing
|
|
320
324
|
angular_threshold: Angular threshold in **_degrees_**
|
|
321
325
|
sats: Constellation of satellites to check for being in the field of view
|
|
322
|
-
|
|
323
|
-
|
|
326
|
+
reference_frame: Reference frame of the output direction elements
|
|
327
|
+
"""
|
|
328
|
+
...
|
|
329
|
+
|
|
330
|
+
def get_topocentric_to_satellite(
|
|
331
|
+
self,
|
|
332
|
+
epoch: Epoch,
|
|
333
|
+
sat: Satellite,
|
|
334
|
+
reference_frame: ReferenceFrame,
|
|
335
|
+
) -> TopocentricElements:
|
|
336
|
+
"""
|
|
337
|
+
Get the topocentric elements of a satellite as seen from the observatory.
|
|
338
|
+
Args:
|
|
339
|
+
epoch: UTC epoch of the observation
|
|
340
|
+
sat: Satellite to observe
|
|
341
|
+
reference_frame: Reference frame of the output direction elements
|
|
324
342
|
"""
|
|
325
343
|
...
|
keplemon/estimation.pyi
CHANGED
keplemon/events.pyi
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# flake8: noqa
|
|
2
2
|
from keplemon.time import Epoch, TimeSpan
|
|
3
3
|
from keplemon.elements import HorizonState, CartesianVector, TopocentricElements
|
|
4
|
+
from keplemon.enums import ReferenceFrame
|
|
4
5
|
|
|
5
6
|
class FieldOfViewCandidate:
|
|
6
7
|
satellite_id: str
|
|
@@ -25,6 +26,9 @@ class FieldOfViewReport:
|
|
|
25
26
|
candidates: list[FieldOfViewCandidate]
|
|
26
27
|
"""List of candidate satellites within the field of view"""
|
|
27
28
|
|
|
29
|
+
reference_frame: ReferenceFrame
|
|
30
|
+
"""Reference frame of the output direction elements"""
|
|
31
|
+
|
|
28
32
|
class CloseApproach:
|
|
29
33
|
epoch: Epoch
|
|
30
34
|
"""UTC epoch of the close approach"""
|
keplemon/time.py
CHANGED
|
@@ -4,7 +4,7 @@ from keplemon._keplemon.time import ( # type: ignore
|
|
|
4
4
|
Epoch,
|
|
5
5
|
)
|
|
6
6
|
import requests # type: ignore
|
|
7
|
-
from datetime import datetime
|
|
7
|
+
from datetime import datetime, timezone
|
|
8
8
|
from keplemon._keplemon.enums import TimeSystem # type: ignore
|
|
9
9
|
|
|
10
10
|
__all__ = [
|
|
@@ -15,6 +15,22 @@ __all__ = [
|
|
|
15
15
|
]
|
|
16
16
|
|
|
17
17
|
|
|
18
|
+
def _from_datetime(dt: datetime) -> Epoch:
|
|
19
|
+
if dt.tzinfo is None:
|
|
20
|
+
dt = dt.replace(tzinfo=timezone.utc)
|
|
21
|
+
elif dt.tzinfo != timezone.utc:
|
|
22
|
+
dt = dt.astimezone(timezone.utc)
|
|
23
|
+
return Epoch.from_iso(dt.strftime("%Y-%m-%dT%H:%M:%S.%fZ"), TimeSystem.UTC)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def _now() -> Epoch:
|
|
27
|
+
return _from_datetime(datetime.now(timezone.utc))
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
Epoch.now = staticmethod(_now)
|
|
31
|
+
Epoch.from_datetime = staticmethod(_from_datetime)
|
|
32
|
+
|
|
33
|
+
|
|
18
34
|
def request_time_constants_update(output_path: str) -> None:
|
|
19
35
|
finals = requests.get("https://maia.usno.navy.mil/ser7/finals.all").text.splitlines()
|
|
20
36
|
|
keplemon/time.pyi
CHANGED
|
@@ -3,6 +3,7 @@ from __future__ import annotations
|
|
|
3
3
|
from pathlib import Path
|
|
4
4
|
from keplemon.enums import TimeSystem
|
|
5
5
|
from typing import overload, Any
|
|
6
|
+
from datetime import datetime
|
|
6
7
|
|
|
7
8
|
def request_time_constants_update(output_path: str | Path) -> None:
|
|
8
9
|
"""
|
|
@@ -145,6 +146,22 @@ class Epoch:
|
|
|
145
146
|
day_of_year: float
|
|
146
147
|
"""Decimal day of the year (1-365.999...)"""
|
|
147
148
|
|
|
149
|
+
@classmethod
|
|
150
|
+
def from_datetime(cls, dt: datetime) -> Epoch:
|
|
151
|
+
"""
|
|
152
|
+
Args:
|
|
153
|
+
dt: Aware or naive datetime object (assumed to be UTC if naive)
|
|
154
|
+
"""
|
|
155
|
+
...
|
|
156
|
+
|
|
157
|
+
@classmethod
|
|
158
|
+
def now(cls) -> Epoch:
|
|
159
|
+
"""
|
|
160
|
+
Returns:
|
|
161
|
+
Current epoch in UTC time system
|
|
162
|
+
"""
|
|
163
|
+
...
|
|
164
|
+
|
|
148
165
|
@classmethod
|
|
149
166
|
def from_days_since_1950(cls, days: float, time_system: TimeSystem) -> Epoch:
|
|
150
167
|
"""
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
keplemon-1.
|
|
2
|
-
keplemon-1.
|
|
3
|
-
keplemon-1.
|
|
1
|
+
keplemon-1.3.0.dist-info/METADATA,sha256=3sQ1D7MO2aczJbdHH_zcbQTqM7AgkqE_Tsw28zQPcO8,863
|
|
2
|
+
keplemon-1.3.0.dist-info/WHEEL,sha256=TJQY77QRLvXq32tEs9ATmwKO6NAOtuKOAw50eyiSmWU,96
|
|
3
|
+
keplemon-1.3.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=
|
|
33
|
+
keplemon/_keplemon.cp313-win_amd64.pyd,sha256=Aq5s8lxBX_TnnkLGclWLLYcnpnAfGCJ0sM0ZX0BRk9M,1699328
|
|
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,7 +43,7 @@ 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=
|
|
46
|
+
keplemon/bodies.pyi,sha256=wTgjk63L5_GNBIotvvZCCjrJ8ZIHHJG-6kOH5dEPjjk,10434
|
|
47
47
|
keplemon/catalogs.py,sha256=AKONH7zWBOnUZI0ty0lYiYZtrdILfKivoUgk1nU3PZ8,107
|
|
48
48
|
keplemon/catalogs.pyi,sha256=UxwRVMfuySXNYOQ7KuCXtwHcu3zL3Fgo1sBP77qUKaU,606
|
|
49
49
|
keplemon/elements.py,sha256=Z0zzwjbOnqi4lXO4Iw5Nio2eZcdrlObzAJ2oLRDzyJY,640
|
|
@@ -51,9 +51,9 @@ keplemon/elements.pyi,sha256=EQEqEduwsMqhKjLPbbVS3eyGxNRQitLfzM8KhuxPDLs,10647
|
|
|
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
|
|
54
|
-
keplemon/estimation.pyi,sha256=
|
|
54
|
+
keplemon/estimation.pyi,sha256=SdjAbSmSvdSoeyO_GU0jWdRY319laCbNRa6LJQXe6As,5757
|
|
55
55
|
keplemon/events.py,sha256=gl2eqYWkTtMxLPstZziIbNbeVHJzEiMPyhrFaC-gcmA,376
|
|
56
|
-
keplemon/events.pyi,sha256=
|
|
56
|
+
keplemon/events.pyi,sha256=TBE_hK4iummmhL0ERaJu9uzHz4LV4rZAF5LQZmFbD0U,3146
|
|
57
57
|
keplemon/exceptions.py,sha256=kdFwToNBHfbpzj311wHfTDztdgwRg2-OM3sHYhmd3AI,107
|
|
58
58
|
keplemon/libifcoremd.dll,sha256=x8iFLCgtUCJjWdfdmQycUx9BlXcNCW-Q3MeGpcIN12k,1885224
|
|
59
59
|
keplemon/libiomp5md.dll,sha256=C2O3Lj2yJYPGTyH0Z1c4FSrflnSzxHARp6y0dE3H2ZI,2030632
|
|
@@ -71,6 +71,6 @@ keplemon/saal/sgp4_prop_interface.py,sha256=biuhXWIsauR4BO8chsWILfb8-E8OdRNWT5cS
|
|
|
71
71
|
keplemon/saal/sgp4_prop_interface.pyi,sha256=9NpOUhf03VQYVEyq1Kutqp6J6bZ3x0NCFSBlVY-Nb9s,244
|
|
72
72
|
keplemon/saal/time_func_interface.py,sha256=C18Q_PIMUFBcB0pHN6wlVj35Vrt83VQNKOEmHDHvZSA,438
|
|
73
73
|
keplemon/saal/time_func_interface.pyi,sha256=3QKtsuxMoTgG--bDvbVNcJyD8vfcAUlw2n69g1m0kNM,1578
|
|
74
|
-
keplemon/time.py,sha256=
|
|
75
|
-
keplemon/time.pyi,sha256=
|
|
76
|
-
keplemon-1.
|
|
74
|
+
keplemon/time.py,sha256=21gJUjG6ijI34j6Q5NwDisFZN3jXLcBIxoXeQ48D9Ak,3348
|
|
75
|
+
keplemon/time.pyi,sha256=TD60TgcCnAbgo0hnQlD5iMhOmQR57kKs05fGv32oVNY,6914
|
|
76
|
+
keplemon-1.3.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|