pygnss 0.3.0__cp313-cp313-musllinux_1_2_x86_64.whl → 0.4.0__cp313-cp313-musllinux_1_2_x86_64.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 pygnss might be problematic. Click here for more details.

pygnss/__init__.py CHANGED
@@ -1 +1 @@
1
- __version__ = "0.3.0"
1
+ __version__ = "0.4.0"
File without changes
pygnss/iono/gim.py ADDED
@@ -0,0 +1,54 @@
1
+ from dataclasses import dataclass
2
+ import datetime
3
+ from typing import List
4
+
5
+ import numpy as np
6
+
7
+ @dataclass
8
+ class Gim():
9
+ epoch: datetime.datetime
10
+ longitudes: List[float]
11
+ latitudes: List[float]
12
+ vtec_values: List[List[float]] # Grid of VTEC values n_latitudes (rows) x n_longitudes (columns)
13
+
14
+ def __sub__(self, other: 'Gim') -> 'Gim':
15
+ """
16
+ Subtract the VTEC values of another Gim from this Gim
17
+
18
+ :param other: The Gim to subtract.
19
+
20
+ :return: A new Gim with the resulting VTEC values.
21
+ """
22
+
23
+ return subtract(self, other)
24
+
25
+
26
+ def subtract(lhs: Gim, rhs: Gim) -> Gim:
27
+ """
28
+ Subtract the VTEC values of two GIMs (lhs - rhs)
29
+
30
+ :param lhs: Left-hand operand
31
+ :param rhs: Right-hand operand
32
+
33
+ :return: A new Gim with the resulting difference of VTEC values.
34
+
35
+ :raises ValueError: If the dimensions of the GIMs do not match.
36
+ """
37
+
38
+ if lhs.epoch != rhs.epoch:
39
+ raise ValueError(f"Epochs of both GIMs differ: {lhs.epoch} != {rhs.epoch}")
40
+
41
+ if np.array_equal(lhs.latitudes, rhs.latitudes) == False:
42
+ raise ValueError("Latitudes do not match between the two GIMs.")
43
+
44
+ if np.array_equal(lhs.longitudes, rhs.longitudes) == False:
45
+ raise ValueError("Longitude do not match between the two GIMs.")
46
+
47
+ vtec_diff = np.subtract(lhs.vtec_values, rhs.vtec_values)
48
+
49
+ return Gim(
50
+ epoch=lhs.epoch, # Keep the epoch of the first Gim
51
+ longitudes=lhs.longitudes,
52
+ latitudes=lhs.latitudes,
53
+ vtec_values=vtec_diff.tolist(),
54
+ )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pygnss
3
- Version: 0.3.0
3
+ Version: 0.4.0
4
4
  Summary: Package with utilities and tools for GNSS data processing
5
5
  Author-email: Miquel Garcia-Fernandez <miquel@mgfernan.com>
6
6
  License: MIT
@@ -1,4 +1,4 @@
1
- pygnss/__init__.py,sha256=VrXpHDu3erkzwl_WXrqINBm9xWkcyUy53IQOj042dOs,22
1
+ pygnss/__init__.py,sha256=42STGor_9nKYXumfeV5tiyD_M8VdcddX7CEexmibPBk,22
2
2
  pygnss/_c_ext.cpython-313-x86_64-linux-musl.so,sha256=zQYmQQuMQfvMynwKuIa-AxVgDo0ZIwNQ4-UlxUeqOhs,83928
3
3
  pygnss/cl.py,sha256=ISmd2RjikUMmj3nLPN0VSjvQLG5rLizp2X2ajeBkoDE,4509
4
4
  pygnss/constants.py,sha256=1hF6K92X6E6Ofo0rAuCBCgrwln9jxio26RV2a6vyURk,133
@@ -25,13 +25,15 @@ pygnss/gnss/edit.py,sha256=T1r0WbJmt8tLJpG_IIsy4Atej6cy0IStBaSGxw0S5ho,1884
25
25
  pygnss/gnss/observables.py,sha256=0x0NLkTjxf8cO9F_f_Q1b-1hEeoNjWB2x-53ecUEv0M,1656
26
26
  pygnss/gnss/residuals.py,sha256=8qKGNOYkrqxHGOSjIfH21K82PAqEh2068kf78j5usL8,1244
27
27
  pygnss/gnss/types.py,sha256=lmL15KRckRiTwVkYvGzF4c1BrojnQlegrYCXSz1hGaI,10377
28
+ pygnss/iono/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
+ pygnss/iono/gim.py,sha256=5jP-2ceH9lvdycXTALrYaRCImEydG0oq7xdw6mESsBE,1545
28
30
  pygnss/orbit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
31
  pygnss/orbit/kepler.py,sha256=QORTgg5yBtsQXxLWSzoZ1pmh-CwPiZlFdIYqhQhv1a0,1745
30
32
  pygnss/orbit/tle.py,sha256=6CIEielPgui3DXNv46XxOGlig31ROIwjH42xLGaeE5M,5905
31
33
  pygnss/parsers/rtklib/stats.py,sha256=YV6yadxMeQMQYZvsUCaSf4ZTpK8Bbv3f2xgu0l4PekA,5449
32
- pygnss-0.3.0.dist-info/METADATA,sha256=kDz5U4Y1CzGww42HgE5Fkj05KGNXZOs1SkYhuiHmPL8,1659
33
- pygnss-0.3.0.dist-info/WHEEL,sha256=pjdxSTMYLGjN0XA-uzYjjPCSzZhfidoifE5bJ9tPWu0,112
34
- pygnss-0.3.0.dist-info/entry_points.txt,sha256=mCuKrljB_wh9ZQVROiId9m68EDbTiY1oef_L1N3IDDA,262
35
- pygnss-0.3.0.dist-info/top_level.txt,sha256=oZRSR-qOv98VW2PRRMGCVNCJmewcJjyJYmxzxfeimtg,7
36
- pygnss-0.3.0.dist-info/RECORD,,
37
- pygnss-0.3.0.dist-info/licenses/LICENSE,sha256=Wwany6RAAZ9vVHjFLA9KBJ0HE77d52s2NOUA1CPAEug,1067
34
+ pygnss-0.4.0.dist-info/METADATA,sha256=BbZDA1kGKZoJqqVPSS21WH7T1ZRvK5DUbt8CKKmaI5M,1659
35
+ pygnss-0.4.0.dist-info/WHEEL,sha256=pjdxSTMYLGjN0XA-uzYjjPCSzZhfidoifE5bJ9tPWu0,112
36
+ pygnss-0.4.0.dist-info/entry_points.txt,sha256=mCuKrljB_wh9ZQVROiId9m68EDbTiY1oef_L1N3IDDA,262
37
+ pygnss-0.4.0.dist-info/top_level.txt,sha256=oZRSR-qOv98VW2PRRMGCVNCJmewcJjyJYmxzxfeimtg,7
38
+ pygnss-0.4.0.dist-info/RECORD,,
39
+ pygnss-0.4.0.dist-info/licenses/LICENSE,sha256=Wwany6RAAZ9vVHjFLA9KBJ0HE77d52s2NOUA1CPAEug,1067
File without changes