keplemon 1.0.5__cp312-cp312-macosx_11_0_arm64.whl → 1.1.0__cp312-cp312-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.
- keplemon/_keplemon.cpython-312-darwin.so +0 -0
- keplemon/bodies.pyi +36 -2
- keplemon/catalogs.pyi +2 -1
- keplemon/elements.py +6 -0
- keplemon/elements.pyi +33 -0
- keplemon/events.py +10 -1
- keplemon/events.pyi +24 -1
- keplemon/saal/astro_func_interface.py +6 -0
- keplemon/saal/astro_func_interface.pyi +21 -0
- keplemon/saal/sgp4_prop_interface.py +7 -0
- keplemon/saal/sgp4_prop_interface.pyi +9 -0
- {keplemon-1.0.5.dist-info → keplemon-1.1.0.dist-info}/METADATA +1 -1
- {keplemon-1.0.5.dist-info → keplemon-1.1.0.dist-info}/RECORD +15 -13
- {keplemon-1.0.5.dist-info → keplemon-1.1.0.dist-info}/WHEEL +1 -1
- {keplemon-1.0.5.dist-info → keplemon-1.1.0.dist-info}/entry_points.txt +0 -0
|
Binary file
|
keplemon/bodies.pyi
CHANGED
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
# flake8: noqa
|
|
2
|
-
from keplemon.elements import
|
|
2
|
+
from keplemon.elements import (
|
|
3
|
+
TLE,
|
|
4
|
+
CartesianState,
|
|
5
|
+
Ephemeris,
|
|
6
|
+
KeplerianState,
|
|
7
|
+
GeodeticPosition,
|
|
8
|
+
OrbitPlotData,
|
|
9
|
+
TopocentricElements,
|
|
10
|
+
)
|
|
3
11
|
from keplemon.catalogs import TLECatalog
|
|
4
12
|
from keplemon.time import Epoch, TimeSpan
|
|
5
|
-
from keplemon.events import CloseApproach, CloseApproachReport, HorizonAccessReport
|
|
13
|
+
from keplemon.events import CloseApproach, CloseApproachReport, HorizonAccessReport, FieldOfViewReport
|
|
6
14
|
from keplemon.propagation import ForceProperties
|
|
7
15
|
|
|
8
16
|
class Earth:
|
|
@@ -35,6 +43,9 @@ class Satellite:
|
|
|
35
43
|
keplerian_state: KeplerianState | None
|
|
36
44
|
"""Keplerian state of the satellite at the epoch of the TLE, if available"""
|
|
37
45
|
|
|
46
|
+
geodetic_position: GeodeticPosition | None
|
|
47
|
+
"""Geodetic position of the satellite at the epoch of the TLE, if available"""
|
|
48
|
+
|
|
38
49
|
def __init__(self) -> None: ...
|
|
39
50
|
@classmethod
|
|
40
51
|
def from_tle(cls, tle: TLE) -> Satellite:
|
|
@@ -68,6 +79,8 @@ class Satellite:
|
|
|
68
79
|
"""
|
|
69
80
|
...
|
|
70
81
|
|
|
82
|
+
def get_plot_data(self, start: Epoch, end: Epoch, step: TimeSpan) -> OrbitPlotData | None: ...
|
|
83
|
+
|
|
71
84
|
class Constellation:
|
|
72
85
|
|
|
73
86
|
count: int
|
|
@@ -77,6 +90,7 @@ class Constellation:
|
|
|
77
90
|
"""Human-readable name of the constellation"""
|
|
78
91
|
|
|
79
92
|
def __init__(self) -> None: ...
|
|
93
|
+
def get_plot_data(self, start: Epoch, end: Epoch, step: TimeSpan) -> dict[str, OrbitPlotData]: ...
|
|
80
94
|
@classmethod
|
|
81
95
|
def from_tle_catalog(cls, tle_catalog: TLECatalog) -> Constellation:
|
|
82
96
|
"""
|
|
@@ -255,3 +269,23 @@ class Observatory:
|
|
|
255
269
|
Horizon access report for the satellite from the observatory
|
|
256
270
|
"""
|
|
257
271
|
...
|
|
272
|
+
|
|
273
|
+
def get_field_of_view_report(
|
|
274
|
+
self,
|
|
275
|
+
epoch: Epoch,
|
|
276
|
+
sensor_direction: TopocentricElements,
|
|
277
|
+
angular_threshold: float,
|
|
278
|
+
sats: Constellation,
|
|
279
|
+
) -> FieldOfViewReport:
|
|
280
|
+
"""
|
|
281
|
+
Calculate field of view report for a sensor at the observatory.
|
|
282
|
+
|
|
283
|
+
Args:
|
|
284
|
+
epoch: UTC epoch of the report
|
|
285
|
+
sensor_direction: Topocentric direction the sensor is pointing
|
|
286
|
+
angular_threshold: Angular threshold in **_degrees_**
|
|
287
|
+
sats: Constellation of satellites to check for being in the field of view
|
|
288
|
+
Returns:
|
|
289
|
+
Field of view report for the sensor at the observatory containing satellites within the field of view
|
|
290
|
+
"""
|
|
291
|
+
...
|
keplemon/catalogs.pyi
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# flake8: noqa
|
|
2
|
-
from keplemon.elements import TLE
|
|
2
|
+
from keplemon.elements import TLE, OrbitPlotData
|
|
3
3
|
|
|
4
4
|
class TLECatalog:
|
|
5
5
|
count: int
|
|
@@ -14,3 +14,4 @@ class TLECatalog:
|
|
|
14
14
|
def get_count(self) -> int: ...
|
|
15
15
|
def clear(self) -> None: ...
|
|
16
16
|
def __getitem__(self, satellite_id: str) -> TLE: ...
|
|
17
|
+
def get_plot_data(self) -> OrbitPlotData: ...
|
keplemon/elements.py
CHANGED
|
@@ -9,6 +9,9 @@ from keplemon._keplemon.elements import ( # type: ignore
|
|
|
9
9
|
TopocentricElements,
|
|
10
10
|
HorizonState,
|
|
11
11
|
HorizonElements,
|
|
12
|
+
GeodeticPosition,
|
|
13
|
+
OrbitPlotData,
|
|
14
|
+
OrbitPlotState,
|
|
12
15
|
)
|
|
13
16
|
|
|
14
17
|
__all__ = [
|
|
@@ -22,4 +25,7 @@ __all__ = [
|
|
|
22
25
|
"TopocentricElements",
|
|
23
26
|
"HorizonState",
|
|
24
27
|
"HorizonElements",
|
|
28
|
+
"GeodeticPosition",
|
|
29
|
+
"OrbitPlotData",
|
|
30
|
+
"OrbitPlotState",
|
|
25
31
|
]
|
keplemon/elements.pyi
CHANGED
|
@@ -4,6 +4,39 @@ from keplemon.time import Epoch
|
|
|
4
4
|
from keplemon.enums import Classification, KeplerianType, ReferenceFrame
|
|
5
5
|
from keplemon.events import CloseApproach
|
|
6
6
|
|
|
7
|
+
class OrbitPlotData:
|
|
8
|
+
satellite_id: str
|
|
9
|
+
epochs: list[str]
|
|
10
|
+
semi_major_axes: list[float]
|
|
11
|
+
eccentricities: list[float]
|
|
12
|
+
inclinations: list[float]
|
|
13
|
+
raans: list[float]
|
|
14
|
+
radii: list[float]
|
|
15
|
+
apogee_radii: list[float]
|
|
16
|
+
perigee_radii: list[float]
|
|
17
|
+
latitudes: list[float]
|
|
18
|
+
longitudes: list[float]
|
|
19
|
+
altitudes: list[float]
|
|
20
|
+
|
|
21
|
+
class GeodeticPosition:
|
|
22
|
+
"""
|
|
23
|
+
Args:
|
|
24
|
+
latitude: Latitude in **_degrees_**
|
|
25
|
+
longitude: Longitude in **_degrees_**
|
|
26
|
+
altitude: Altitude in **_kilometers_**
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
latitude: float
|
|
30
|
+
"""Latitude in **_degrees_**"""
|
|
31
|
+
|
|
32
|
+
longitude: float
|
|
33
|
+
"""Longitude in **_degrees_**"""
|
|
34
|
+
|
|
35
|
+
altitude: float
|
|
36
|
+
"""Altitude in **_kilometers_**"""
|
|
37
|
+
|
|
38
|
+
def __init__(self, latitude: float, longitude: float, altitude: float) -> None: ...
|
|
39
|
+
|
|
7
40
|
class HorizonElements:
|
|
8
41
|
"""
|
|
9
42
|
Args:
|
keplemon/events.py
CHANGED
|
@@ -3,6 +3,15 @@ from keplemon._keplemon.events import ( # type: ignore
|
|
|
3
3
|
CloseApproachReport,
|
|
4
4
|
HorizonAccess,
|
|
5
5
|
HorizonAccessReport,
|
|
6
|
+
FieldOfViewCandidate,
|
|
7
|
+
FieldOfViewReport,
|
|
6
8
|
)
|
|
7
9
|
|
|
8
|
-
__all__ = [
|
|
10
|
+
__all__ = [
|
|
11
|
+
"CloseApproach",
|
|
12
|
+
"CloseApproachReport",
|
|
13
|
+
"HorizonAccess",
|
|
14
|
+
"HorizonAccessReport",
|
|
15
|
+
"FieldOfViewCandidate",
|
|
16
|
+
"FieldOfViewReport",
|
|
17
|
+
]
|
keplemon/events.pyi
CHANGED
|
@@ -1,6 +1,29 @@
|
|
|
1
1
|
# flake8: noqa
|
|
2
2
|
from keplemon.time import Epoch, TimeSpan
|
|
3
|
-
from keplemon.elements import HorizonState
|
|
3
|
+
from keplemon.elements import HorizonState, CartesianVector, TopocentricElements
|
|
4
|
+
|
|
5
|
+
class FieldOfViewCandidate:
|
|
6
|
+
satellite_id: str
|
|
7
|
+
"""ID of the candidate satellite"""
|
|
8
|
+
|
|
9
|
+
direction: TopocentricElements
|
|
10
|
+
"""Measured direction to the candidate satellite in the sensor's topocentric frame"""
|
|
11
|
+
|
|
12
|
+
class FieldOfViewReport:
|
|
13
|
+
epoch: Epoch
|
|
14
|
+
"""UTC epoch of the field of view report"""
|
|
15
|
+
|
|
16
|
+
sensor_position: CartesianVector
|
|
17
|
+
"""TEME position of the sensor in the observatory's topocentric frame in **_kilometers_**"""
|
|
18
|
+
|
|
19
|
+
sensor_direction: TopocentricElements
|
|
20
|
+
"""Direction of the sensor in the observatory's topocentric frame"""
|
|
21
|
+
|
|
22
|
+
fov_angle: float
|
|
23
|
+
"""Field of view angle of the sensor in **_degrees_**"""
|
|
24
|
+
|
|
25
|
+
candidates: list[FieldOfViewCandidate]
|
|
26
|
+
"""List of candidate satellites within the field of view"""
|
|
4
27
|
|
|
5
28
|
class CloseApproach:
|
|
6
29
|
epoch: Epoch
|
|
@@ -3,6 +3,7 @@ from keplemon._keplemon.saal.astro_func_interface import ( # type: ignore
|
|
|
3
3
|
ra_dec_to_az_el_time,
|
|
4
4
|
ra_dec_to_az_el,
|
|
5
5
|
mean_motion_to_sma,
|
|
6
|
+
topo_date_to_equinox,
|
|
6
7
|
XA_TOPO_RA,
|
|
7
8
|
XA_TOPO_DEC,
|
|
8
9
|
XA_TOPO_AZ,
|
|
@@ -14,6 +15,8 @@ from keplemon._keplemon.saal.astro_func_interface import ( # type: ignore
|
|
|
14
15
|
XA_TOPO_ELDOT,
|
|
15
16
|
XA_TOPO_RANGEDOT,
|
|
16
17
|
XA_TOPO_SIZE,
|
|
18
|
+
YROFEQNX_2000,
|
|
19
|
+
YROFEQNX_CURR,
|
|
17
20
|
)
|
|
18
21
|
|
|
19
22
|
__all__ = [
|
|
@@ -32,4 +35,7 @@ __all__ = [
|
|
|
32
35
|
"XA_TOPO_RANGEDOT",
|
|
33
36
|
"XA_TOPO_SIZE",
|
|
34
37
|
"mean_motion_to_sma",
|
|
38
|
+
"topo_date_to_equinox",
|
|
39
|
+
"YROFEQNX_2000",
|
|
40
|
+
"YROFEQNX_CURR",
|
|
35
41
|
]
|
|
@@ -78,6 +78,21 @@ def teme_to_topo(
|
|
|
78
78
|
"""
|
|
79
79
|
...
|
|
80
80
|
|
|
81
|
+
def topo_date_to_equinox(yr_of_equinox: int, ds50utc: float, ra: float, dec: float) -> tuple[float, float]:
|
|
82
|
+
"""
|
|
83
|
+
Convert topocentric right ascension and declination to equinox coordinates for a given year of equinox.
|
|
84
|
+
|
|
85
|
+
Args:
|
|
86
|
+
yr_of_equinox: Year of the equinox (e.g., 2000 for J2000).
|
|
87
|
+
ds50utc: Epoch in DS50 UTC format.
|
|
88
|
+
ra: Topocentric right ascension in degrees.
|
|
89
|
+
dec: Topocentric declination in degrees.
|
|
90
|
+
|
|
91
|
+
Returns:
|
|
92
|
+
A tuple containing the equinox right ascension and declination in degrees.
|
|
93
|
+
"""
|
|
94
|
+
...
|
|
95
|
+
|
|
81
96
|
XA_TOPO_AZ: int
|
|
82
97
|
"""Index for topocentric azimuth in degrees."""
|
|
83
98
|
|
|
@@ -110,3 +125,9 @@ XA_TOPO_DEC: int
|
|
|
110
125
|
|
|
111
126
|
XA_TOPO_SIZE: int
|
|
112
127
|
"""Size of XA_TOPO_ array"""
|
|
128
|
+
|
|
129
|
+
YROFEQNX_2000: int
|
|
130
|
+
"""Year of equinox 2000 constant"""
|
|
131
|
+
|
|
132
|
+
YROFEQNX_CURR: int
|
|
133
|
+
"""Year of current equinox constant"""
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
keplemon-1.0.
|
|
2
|
-
keplemon-1.0.
|
|
3
|
-
keplemon-1.0.
|
|
1
|
+
keplemon-1.1.0.dist-info/METADATA,sha256=8Ob7y_2GYYtVzAUssxxuo4Mj4HH7eR-sPjzOvE7eaWU,863
|
|
2
|
+
keplemon-1.1.0.dist-info/WHEEL,sha256=qPmdr8fB5VyzHuEe_BZYkwViBC6_YLDjr40IyuSix7k,104
|
|
3
|
+
keplemon-1.1.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-312-darwin.so,sha256=
|
|
7
|
+
keplemon/_keplemon.cpython-312-darwin.so,sha256=gAGVxt7QPtkavYTcMEhHOat9ZpZ0eX9Q0Nj2yad3WiA,1987472
|
|
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,17 +17,17 @@ 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=
|
|
20
|
+
keplemon/bodies.pyi,sha256=VfG0cH5EsDGAbrViB4pSjJjvBJ03AXdxDWjYxiy152U,8442
|
|
21
21
|
keplemon/catalogs.py,sha256=lw71NiXlVtb-z3pQR03afxtkLca4HJcnpZ6kDCcR-Lk,102
|
|
22
|
-
keplemon/catalogs.pyi,sha256=
|
|
23
|
-
keplemon/elements.py,sha256=
|
|
24
|
-
keplemon/elements.pyi,sha256=
|
|
22
|
+
keplemon/catalogs.pyi,sha256=NU_6Mc_JY8xTYAKXOqubtPnt91YA9ZHd1hMqMFf6onc,589
|
|
23
|
+
keplemon/elements.py,sha256=P4tlpQpCUG5jkgAT_yIeL2V14AhXtekMYxRBOsPlOgc,609
|
|
24
|
+
keplemon/elements.pyi,sha256=L5s_2AJz6HYYIncKmpkbYcejMVht09WWVrXRqo-ZV-Y,10240
|
|
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
|
|
28
28
|
keplemon/estimation.pyi,sha256=zb_llx8pCx9Iv95mXXpGnXPZeJsg9Oh5GRWDLyXrMFI,5521
|
|
29
|
-
keplemon/events.py,sha256=
|
|
30
|
-
keplemon/events.pyi,sha256=
|
|
29
|
+
keplemon/events.py,sha256=PGp-xE-eyjYSMWpugplA7bPlrYjkR1NKSHRurFMnBcE,359
|
|
30
|
+
keplemon/events.pyi,sha256=_5pqLG1wrzC9CD5KQtFuu8VSF8KtbY_FyqvLqgJCqx8,2813
|
|
31
31
|
keplemon/exceptions.py,sha256=gTKSkN4yJ2VwR3_anpWqnIO9kQcJCO41_818NjgItiM,102
|
|
32
32
|
keplemon/libastrofunc.dylib,sha256=guF0v4MRjoz8Ine-1nLxXYTktvlwHfQHUSa-GKjJZw0,241840
|
|
33
33
|
keplemon/libdllmain.dylib,sha256=eyJQawgeOfDj4lAf2-YSJcvbdJ6abehX5nTChIOOLbs,112144
|
|
@@ -51,12 +51,14 @@ keplemon/propagation.pyi,sha256=qJOCbtgYma4MOg3-aw9_r1IvBDnknwsJlMwlgaJiEZk,688
|
|
|
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=
|
|
55
|
-
keplemon/saal/astro_func_interface.pyi,sha256=
|
|
54
|
+
keplemon/saal/astro_func_interface.py,sha256=_dFUUnT86u0-yIUB7CtztCUQEvbrxT4UhXsvFp92mz4,836
|
|
55
|
+
keplemon/saal/astro_func_interface.pyi,sha256=RZA1JRidGiazZ0TG01Zxe1AIJj9OJwWnyz4LjgXLMiY,3371
|
|
56
56
|
keplemon/saal/obs_interface.py,sha256=EtsaPKixjMWfCUpMd79SvhCs3f9sRcBaal6-ickj3Vs,248
|
|
57
57
|
keplemon/saal/obs_interface.pyi,sha256=eIXbFnZSF3cX3MyXaCYLUAp0wUAbJiQ4rosqpXdf2I0,228
|
|
58
|
+
keplemon/saal/sgp4_prop_interface.py,sha256=BBKlIvXdUypcZspC8GJ2rPqfFoDKy0RM7w5qsqvobrE,127
|
|
59
|
+
keplemon/saal/sgp4_prop_interface.pyi,sha256=Fv41UrqSPuITtYy_CcbyMxhysqtN3oeY38Ov4t81hvw,235
|
|
58
60
|
keplemon/saal/time_func_interface.py,sha256=cshqJ15p_gcenMdmVuXTIoLeij1gsgVi0tujRQ4O6kA,421
|
|
59
61
|
keplemon/saal/time_func_interface.pyi,sha256=GCj_EOmOceJorYQLGQQj1fE2cHxPvNrYml1DLvsaMy4,1508
|
|
60
62
|
keplemon/time.py,sha256=vvHcwWQ1JXPaQSvdBfXYZrk2_-ukDw0RnXDeN5wy3nU,2792
|
|
61
63
|
keplemon/time.pyi,sha256=S2Ul8fpuWnor9wKNFBxLwAiwrGrVN_LJH_xy6WSocv4,6260
|
|
62
|
-
keplemon-1.0.
|
|
64
|
+
keplemon-1.1.0.dist-info/RECORD,,
|
|
File without changes
|