keplemon 1.0.6__cp312-cp312-win_amd64.whl → 1.1.1__cp312-cp312-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
@@ -1,8 +1,16 @@
1
1
  # flake8: noqa
2
- from keplemon.elements import TLE, CartesianState, Ephemeris, KeplerianState, GeodeticPosition, OrbitPlotData
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:
@@ -261,3 +269,23 @@ class Observatory:
261
269
  Horizon access report for the satellite from the observatory
262
270
  """
263
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/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__ = ["CloseApproach", "CloseApproachReport", "HorizonAccess", "HorizonAccessReport"]
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,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: keplemon
3
- Version: 1.0.6
3
+ Version: 1.1.1
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.0.6.dist-info/METADATA,sha256=N2FoAuRlTq2QklipfVMJvGTMfbVhn_N91oIbe8WaLpg,863
2
- keplemon-1.0.6.dist-info/WHEEL,sha256=4hYCffp0RsSVQAuv2PMtXQ9QS7YSHeZi4PrSg-wi2q0,96
3
- keplemon-1.0.6.dist-info/entry_points.txt,sha256=eYbCkvQvWfRDQ0LzaCELov1xeLAxQEHlfdgNq-LXyb0,49
1
+ keplemon-1.1.1.dist-info/METADATA,sha256=uYVoCOkt9AffNNbAJkp3WIkgNd76kEWsoNyvT-Dvkcs,863
2
+ keplemon-1.1.1.dist-info/WHEEL,sha256=Vushk_AfQsqwYbIXsl4S77IMWqfvHn15JAMZT_B7E3Y,96
3
+ keplemon-1.1.1.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.cp312-win_amd64.pyd,sha256=5jIMRr0rfWbHRjgtjdAPueq2G373WNz18YyF_3Ikc7U,1618432
33
+ keplemon/_keplemon.cp312-win_amd64.pyd,sha256=XCB8a5Ogb8Zf5AhfGirsDxj3CdvkE92c30MvyFUDj-c,1658368
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=fnwSde5vqtiTSZDyRVEg8YQjF_uTHPkLtcTABw9NcBM,7899
46
+ keplemon/bodies.pyi,sha256=ANgociClcS9hhzvA-g57HHDQfExED3z0QvOxBWWWCiM,8733
47
47
  keplemon/catalogs.py,sha256=AKONH7zWBOnUZI0ty0lYiYZtrdILfKivoUgk1nU3PZ8,107
48
48
  keplemon/catalogs.pyi,sha256=UxwRVMfuySXNYOQ7KuCXtwHcu3zL3Fgo1sBP77qUKaU,606
49
49
  keplemon/elements.py,sha256=Z0zzwjbOnqi4lXO4Iw5Nio2eZcdrlObzAJ2oLRDzyJY,640
@@ -52,8 +52,8 @@ keplemon/enums.py,sha256=5MejXeSwXPtfpIYeNuFQH3LSIRf4aTFZTK2Q1AYyaEg,325
52
52
  keplemon/enums.pyi,sha256=OSS71WesYTgzWGUSjpxaYtzj6XmoyLBXq_Zd13IBwyQ,2418
53
53
  keplemon/estimation.py,sha256=Of0rHiapW4s1wRipBCZrp4oOiIzs794w1nhqM7AVrGs,236
54
54
  keplemon/estimation.pyi,sha256=kH-erT5qhxKVpHm9NehHsZbHbe96FP3aDX6GgwdntAs,5693
55
- keplemon/events.py,sha256=MNf_CCxbTr-MoUoFAbB78rSqKNAT0_EmRjhWFvaGGKI,246
56
- keplemon/events.pyi,sha256=bncrIlvZbPFEZZf0HIPkDvRqOLIViU0W4_UJdh-pcTo,2098
55
+ keplemon/events.py,sha256=gl2eqYWkTtMxLPstZziIbNbeVHJzEiMPyhrFaC-gcmA,376
56
+ keplemon/events.pyi,sha256=o24TRnO4pZ2gh0aeJvxFsLj_SrBV3s3SvPrAdx0TmxU,2909
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
@@ -63,8 +63,8 @@ keplemon/propagation.pyi,sha256=BjBIlp_8fdEb5gii5OsvLtXfIzV_Mo2pLlX75bZ1SDo,715
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=6Y26Qtpg-vf4K5pya2DRzPyv4_4vnp9vmnribbpqYyw,737
67
- keplemon/saal/astro_func_interface.pyi,sha256=b0QKQhoeBWZ1ouuux9ZoojHpNNnHlNz_bi8kalBgSA0,2808
66
+ keplemon/saal/astro_func_interface.py,sha256=ZiGQm-ysZbH0ocLFzYHgLVGWuNabO5obLMVuv6nSTPQ,877
67
+ keplemon/saal/astro_func_interface.pyi,sha256=cwsPQlowxLr3tj8EKP1wJhd_qOLpk4yRef-PyGCnAxU,3504
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/sgp4_prop_interface.py,sha256=biuhXWIsauR4BO8chsWILfb8-E8OdRNWT5cSL3OYsVQ,134
@@ -73,4 +73,4 @@ keplemon/saal/time_func_interface.py,sha256=C18Q_PIMUFBcB0pHN6wlVj35Vrt83VQNKOEm
73
73
  keplemon/saal/time_func_interface.pyi,sha256=3QKtsuxMoTgG--bDvbVNcJyD8vfcAUlw2n69g1m0kNM,1578
74
74
  keplemon/time.py,sha256=fa6AKPPU18lX44emrAy5ZZ5TRam-Vhm8ecsauvQ_wdg,2888
75
75
  keplemon/time.pyi,sha256=bS5UrY2loeT2mzONRFl2LTG5ZLaC3EnCXKB8fZRks4Q,6529
76
- keplemon-1.0.6.dist-info/RECORD,,
76
+ keplemon-1.1.1.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: maturin (1.9.4)
2
+ Generator: maturin (1.9.5)
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp312-cp312-win_amd64