keplemon 1.1.2__cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl → 1.2.0__cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.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.
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
@@ -270,6 +271,17 @@ class Observatory:
270
271
  """
271
272
  ...
272
273
 
274
+ @classmethod
275
+ def from_cartesian_state(cls, state: CartesianState) -> Observatory:
276
+ """
277
+ Create an observatory from a Cartesian state.
278
+
279
+ Args:
280
+ state: Cartesian state of the observatory
281
+
282
+ """
283
+ ...
284
+
273
285
  def get_horizon_access_report(
274
286
  self,
275
287
  satellite: Satellite,
@@ -299,16 +311,31 @@ class Observatory:
299
311
  sensor_direction: TopocentricElements,
300
312
  angular_threshold: float,
301
313
  sats: Constellation,
314
+ reference_frame: ReferenceFrame,
302
315
  ) -> FieldOfViewReport:
303
316
  """
304
- Calculate field of view report for a sensor at the observatory.
317
+ Calculate satellites in the field of view from a given time and direction.
305
318
 
306
319
  Args:
307
320
  epoch: UTC epoch of the report
308
321
  sensor_direction: Topocentric direction the sensor is pointing
309
322
  angular_threshold: Angular threshold in **_degrees_**
310
323
  sats: Constellation of satellites to check for being in the field of view
311
- Returns:
312
- Field of view report for the sensor at the observatory containing satellites within the field of view
324
+ reference_frame: Reference frame of the output direction elements
325
+ """
326
+ ...
327
+
328
+ def get_topocentric_to_satellite(
329
+ self,
330
+ epoch: Epoch,
331
+ sat: Satellite,
332
+ reference_frame: ReferenceFrame,
333
+ ) -> TopocentricElements:
334
+ """
335
+ Get the topocentric elements of a satellite as seen from the observatory.
336
+ Args:
337
+ epoch: UTC epoch of the observation
338
+ sat: Satellite to observe
339
+ reference_frame: Reference frame of the output direction elements
313
340
  """
314
341
  ...
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,14 +26,17 @@ 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"""
31
35
 
32
- primary_id: int
36
+ primary_id: str
33
37
  """Satellite ID of the primary body in the close approach"""
34
38
 
35
- secondary_id: int
39
+ secondary_id: str
36
40
  """Satellite ID of the secondary body in the close approach"""
37
41
 
38
42
  distance: float
@@ -4,6 +4,9 @@ from keplemon._keplemon.saal.astro_func_interface import ( # type: ignore
4
4
  ra_dec_to_az_el,
5
5
  mean_motion_to_sma,
6
6
  topo_date_to_equinox,
7
+ topo_equinox_to_date,
8
+ theta_teme_to_lla,
9
+ time_teme_to_lla,
7
10
  XA_TOPO_RA,
8
11
  XA_TOPO_DEC,
9
12
  XA_TOPO_AZ,
@@ -23,6 +26,8 @@ __all__ = [
23
26
  "teme_to_topo",
24
27
  "ra_dec_to_az_el_time",
25
28
  "ra_dec_to_az_el",
29
+ "theta_teme_to_lla",
30
+ "time_teme_to_lla",
26
31
  "XA_TOPO_RA",
27
32
  "XA_TOPO_DEC",
28
33
  "XA_TOPO_AZ",
@@ -38,4 +43,5 @@ __all__ = [
38
43
  "topo_date_to_equinox",
39
44
  "YROFEQNX_2000",
40
45
  "YROFEQNX_CURR",
46
+ "topo_equinox_to_date",
41
47
  ]
@@ -83,7 +83,7 @@ def topo_date_to_equinox(yr_of_equinox: int, ds50utc: float, ra: float, dec: flo
83
83
  Convert topocentric right ascension and declination to equinox coordinates for a given year of equinox.
84
84
 
85
85
  Args:
86
- yr_of_equinox: Year of the equinox (e.g., 2000 for J2000).
86
+ yr_of_equinox: Year of the equinox (using YROFEQNX_ constants).
87
87
  ds50utc: Epoch in DS50 UTC format.
88
88
  ra: Topocentric right ascension in degrees.
89
89
  dec: Topocentric declination in degrees.
@@ -93,6 +93,46 @@ def topo_date_to_equinox(yr_of_equinox: int, ds50utc: float, ra: float, dec: flo
93
93
  """
94
94
  ...
95
95
 
96
+ def topo_equinox_to_date(yr_of_equinox: int, ds50utc: float, ra: float, dec: float) -> tuple[float, float]:
97
+ """
98
+ Convert equinox right ascension and declination to topocentric coordinates for a given year of equinox.
99
+
100
+ Args:
101
+ yr_of_equinox: Year of the equinox (using YROFEQNX_ constants).
102
+ ds50utc: Epoch in DS50 UTC format.
103
+ ra: Equinox right ascension in degrees.
104
+ dec: Equinox declination in degrees.
105
+
106
+ Returns:
107
+ A tuple containing the topocentric right ascension and declination in degrees.
108
+ """
109
+ ...
110
+
111
+ def theta_teme_to_lla(theta: float, lat: float, long: float, ra: float, dec: float) -> tuple[float, float]:
112
+ """
113
+ Convert TEME coordinates to latitude, longitude, and altitude.
114
+
115
+ Args:
116
+ theta: Greenwich angle in radians.
117
+ lat: Sensor latitude in degrees.
118
+ long: Sensor longitude in degrees.
119
+ ra: TEME right ascension in degrees.
120
+ dec: TEME declination in degrees.
121
+ """
122
+ ...
123
+
124
+ def time_teme_to_lla(ds50_utc: float, lat: float, long: float, ra: float, dec: float) -> tuple[float, float]:
125
+ """
126
+ Convert TEME coordinates to latitude, longitude, and altitude.
127
+
128
+ Args:
129
+ ds50_utc: Epoch in DS50 UTC format.
130
+ lat: Sensor latitude in degrees.
131
+ long: Sensor longitude in degrees.
132
+ ra: TEME right ascension in degrees.
133
+ dec: TEME declination in degrees.
134
+ """
135
+
96
136
  XA_TOPO_AZ: int
97
137
  """Index for topocentric azimuth in degrees."""
98
138
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: keplemon
3
- Version: 1.1.2
3
+ Version: 1.2.0
4
4
  Requires-Dist: requests
5
5
  Requires-Dist: click
6
6
  Requires-Dist: maturin>=1.0,<2.0 ; extra == 'dev'
@@ -1,6 +1,6 @@
1
- keplemon-1.1.2.dist-info/METADATA,sha256=NQ7Xvq_PAIw_7hPzy-bV5PIzZMoSRBkIOeFomFxFqTQ,863
2
- keplemon-1.1.2.dist-info/WHEEL,sha256=k7Uy46Wme2d4Iy5o6NUPtkUZyYc3Sjkz-EhspAso-NE,131
3
- keplemon-1.1.2.dist-info/entry_points.txt,sha256=eYbCkvQvWfRDQ0LzaCELov1xeLAxQEHlfdgNq-LXyb0,49
1
+ keplemon-1.2.0.dist-info/METADATA,sha256=U0X9nUGwhoMBoT7kXFTgQ0dlhEvBysgJyZOCUwcE2b8,863
2
+ keplemon-1.2.0.dist-info/WHEEL,sha256=k7Uy46Wme2d4Iy5o6NUPtkUZyYc3Sjkz-EhspAso-NE,131
3
+ keplemon-1.2.0.dist-info/entry_points.txt,sha256=eYbCkvQvWfRDQ0LzaCELov1xeLAxQEHlfdgNq-LXyb0,49
4
4
  keplemon.libs/libastrofunc-d5d29f1a.so,sha256=e5roPhiI5MEQZvQ6o8SY2c2WhSThxXGHLE5HdJzP_1Y,468593
5
5
  keplemon.libs/libdllmain-83b073db.so,sha256=YD97bgzxLVt6Yip-fNxEKSOj3iYCtBmaip0d2RpBQgs,331977
6
6
  keplemon.libs/libelops-d6961cbd.so,sha256=4XTr3Ip2PWvjLVBAGe53r77_M6t5R9_L3go4KS-BKfI,331017
@@ -19,7 +19,7 @@ keplemon.libs/libvcm-460d66c8.so,sha256=yDcaK-v2FOOiFf-doyTvPcGPvRK_vuNMMEomKNac
19
19
  keplemon/__init__.py,sha256=M9q5lNYh_BE6l4xCGJ5IH5PQH9aNm4q_r67ljsNkKvM,832
20
20
  keplemon/__init__.pyi,sha256=uE60ln_KJgcfvKburVmbcKT0h_wLPgjBWuyNLgI8ETI,1295
21
21
  keplemon/__main__.py,sha256=-3GVkDOA0lV0MIqU9gPb4zbVimg2lA8HMkvdPDw1O28,669
22
- keplemon/_keplemon.cpython-313-aarch64-linux-gnu.so,sha256=cVL2Vprg8197nN36QNUz5TMkHKerKBL6e68U6d1aldo,2495249
22
+ keplemon/_keplemon.cpython-313-aarch64-linux-gnu.so,sha256=porw30nSW9CatJq8rS22RiIunv1JT5fpXln0V0VvGtU,2495249
23
23
  keplemon/assets/EGM-2008.GEO,sha256=K2nG8HGLATIHZYMfw3GSClYOTCuZ7rq4RdCeUNgCw5A,148770
24
24
  keplemon/assets/EGM-96.GEO,sha256=VBkILuvEMwAPuWmUHy2PeyEfULOwJ4PEJLNf5hr84mU,148770
25
25
  keplemon/assets/GEM_5-22.GEO,sha256=stemYLn1ChXa-VdLGHYfa15AXZa_xxGZQ65p4c3gffI,6852
@@ -32,7 +32,7 @@ keplemon/assets/SGP4_Open_License.txt,sha256=0WofOXQb5YJqnYhXWXnBdCajiTJQAT60UAk
32
32
  keplemon/assets/WGS84-70.GEO,sha256=ARjEC_5s2SVd0Kh9udbTy1ztBwTeuBYPOhUVJgIqit8,148510
33
33
  keplemon/assets/time_constants.dat,sha256=qDpJ2UrQvIDfxsBc4P2AdLS-b2lyR7RCzjqmeG4Ypl8,1226736
34
34
  keplemon/bodies.py,sha256=XnaY6XTuj8CHM3XOwOSY3E8nSo0RWwCcAY0FGxAVWa8,208
35
- keplemon/bodies.pyi,sha256=zyd0XSJnIG9Y6H7VDLE8xKFAmq8MX5td21wdPJ7flSY,9281
35
+ keplemon/bodies.pyi,sha256=kr0tR6fei2Uq4aGBX30L_bXVS3uogB0ijnG0asAxwW0,10039
36
36
  keplemon/catalogs.py,sha256=lw71NiXlVtb-z3pQR03afxtkLca4HJcnpZ6kDCcR-Lk,102
37
37
  keplemon/catalogs.pyi,sha256=NU_6Mc_JY8xTYAKXOqubtPnt91YA9ZHd1hMqMFf6onc,589
38
38
  keplemon/elements.py,sha256=P4tlpQpCUG5jkgAT_yIeL2V14AhXtekMYxRBOsPlOgc,609
@@ -42,7 +42,7 @@ keplemon/enums.pyi,sha256=s9uqkm3Zrx6HLV4dQBScRiUy0CT4QoQwFjaCLOEMW1c,2330
42
42
  keplemon/estimation.py,sha256=2K87pFhOfaFohbAtBXv2SA6m_oIN-56toJOftu350fY,228
43
43
  keplemon/estimation.pyi,sha256=zb_llx8pCx9Iv95mXXpGnXPZeJsg9Oh5GRWDLyXrMFI,5521
44
44
  keplemon/events.py,sha256=PGp-xE-eyjYSMWpugplA7bPlrYjkR1NKSHRurFMnBcE,359
45
- keplemon/events.pyi,sha256=FG1cgWnmfTx9MjK54gWv2QK63T4R0uC0P_1CO49mGg4,2905
45
+ keplemon/events.pyi,sha256=4wKWpQIVkCrE0jbRUk6KpmtXtzkksnEKJUAYY8Duw58,3043
46
46
  keplemon/exceptions.py,sha256=gTKSkN4yJ2VwR3_anpWqnIO9kQcJCO41_818NjgItiM,102
47
47
  keplemon/libastrofunc.so,sha256=1dKfGkf2KN6WSKUA25EEo7Phrik0Ey1GTy5KeHYzkuw,274897
48
48
  keplemon/libdllmain.so,sha256=g7Bz27qWLn77QgcRiSYe2eL-947wMr1S7oiQWkfWSTY,136849
@@ -66,8 +66,8 @@ keplemon/propagation.pyi,sha256=qJOCbtgYma4MOg3-aw9_r1IvBDnknwsJlMwlgaJiEZk,688
66
66
  keplemon/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
67
67
  keplemon/saal/__init__.py,sha256=aoTB13q7IvXuQ80jgGCnwXA29yjpOqLiTdrtyjyRqLE,123
68
68
  keplemon/saal/__init__.pyi,sha256=GPB5f0dcK7srvSDq2i5wvHMyi-OYZakMvlrstKdDwkk,143
69
- keplemon/saal/astro_func_interface.py,sha256=_dFUUnT86u0-yIUB7CtztCUQEvbrxT4UhXsvFp92mz4,836
70
- keplemon/saal/astro_func_interface.pyi,sha256=RZA1JRidGiazZ0TG01Zxe1AIJj9OJwWnyz4LjgXLMiY,3371
69
+ keplemon/saal/astro_func_interface.py,sha256=Z3UEbviqkGCU4OcpvgShvMoT5_WeenYZkec6A5hyDgs,984
70
+ keplemon/saal/astro_func_interface.pyi,sha256=it0olsVygZtIY4ekh_Hbu1_q_o87IvE7Ezslzr0_hZo,4782
71
71
  keplemon/saal/obs_interface.py,sha256=EtsaPKixjMWfCUpMd79SvhCs3f9sRcBaal6-ickj3Vs,248
72
72
  keplemon/saal/obs_interface.pyi,sha256=eIXbFnZSF3cX3MyXaCYLUAp0wUAbJiQ4rosqpXdf2I0,228
73
73
  keplemon/saal/sgp4_prop_interface.py,sha256=BBKlIvXdUypcZspC8GJ2rPqfFoDKy0RM7w5qsqvobrE,127
@@ -76,4 +76,4 @@ keplemon/saal/time_func_interface.py,sha256=cshqJ15p_gcenMdmVuXTIoLeij1gsgVi0tuj
76
76
  keplemon/saal/time_func_interface.pyi,sha256=GCj_EOmOceJorYQLGQQj1fE2cHxPvNrYml1DLvsaMy4,1508
77
77
  keplemon/time.py,sha256=vvHcwWQ1JXPaQSvdBfXYZrk2_-ukDw0RnXDeN5wy3nU,2792
78
78
  keplemon/time.pyi,sha256=S2Ul8fpuWnor9wKNFBxLwAiwrGrVN_LJH_xy6WSocv4,6260
79
- keplemon-1.1.2.dist-info/RECORD,,
79
+ keplemon-1.2.0.dist-info/RECORD,,