pygnss 0.7.0__cp313-cp313-musllinux_1_2_x86_64.whl → 1.1.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 +1 -1
- pygnss/_c_ext.cpython-313-x86_64-linux-musl.so +0 -0
- pygnss/geodetic.py +11 -3
- pygnss/iono/chapman.py +35 -0
- {pygnss-0.7.0.dist-info → pygnss-1.1.0.dist-info}/METADATA +1 -1
- {pygnss-0.7.0.dist-info → pygnss-1.1.0.dist-info}/RECORD +10 -9
- {pygnss-0.7.0.dist-info → pygnss-1.1.0.dist-info}/WHEEL +1 -1
- {pygnss-0.7.0.dist-info → pygnss-1.1.0.dist-info}/entry_points.txt +0 -0
- {pygnss-0.7.0.dist-info → pygnss-1.1.0.dist-info}/licenses/LICENSE +0 -0
- {pygnss-0.7.0.dist-info → pygnss-1.1.0.dist-info}/top_level.txt +0 -0
pygnss/__init__.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = "
|
|
1
|
+
__version__ = "1.1.0"
|
|
Binary file
|
pygnss/geodetic.py
CHANGED
|
@@ -969,15 +969,23 @@ def haversine(lon1_deg, lat1_deg, lon2_deg, lat2_deg, r=6371):
|
|
|
969
969
|
|
|
970
970
|
>>> haversine(-86.67, 36.12, -118.40, 33.94, r=6371.8)
|
|
971
971
|
2886.8068907353736
|
|
972
|
+
|
|
973
|
+
Arrays can also be used (for a vectorized computation)
|
|
974
|
+
>>> haversine([2, 2, 2], [89, 40, 0], [3, 3, 3], [89, 40, 0])
|
|
975
|
+
array([ 1.94059443, 85.17980895, 111.19492664])
|
|
972
976
|
"""
|
|
973
977
|
# convert decimal degrees to radians
|
|
974
|
-
lon1, lat1, lon2, lat2 = map(
|
|
978
|
+
lon1, lat1, lon2, lat2 = map(np.radians, [lon1_deg, lat1_deg, lon2_deg, lat2_deg])
|
|
975
979
|
|
|
976
980
|
# haversine formula
|
|
977
981
|
dlon = lon2 - lon1
|
|
978
982
|
dlat = lat2 - lat1
|
|
979
|
-
a =
|
|
980
|
-
c = 2 *
|
|
983
|
+
a = np.sin(dlat / 2) ** 2 + np.cos(lat1) * np.cos(lat2) * np.sin(dlon / 2) ** 2
|
|
984
|
+
c = 2 * np.arcsin(np.sqrt(a))
|
|
985
|
+
|
|
986
|
+
# Return a float if input is a single float (to avoid test failures due to numpy float64)
|
|
987
|
+
if np.ndim(lon1_deg) == 0:
|
|
988
|
+
c = float(c)
|
|
981
989
|
|
|
982
990
|
return c * r
|
|
983
991
|
|
pygnss/iono/chapman.py
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Module to compute the Chapman ionospheric model.
|
|
3
|
+
|
|
4
|
+
This module provides functions to compute the Chapman ionospheric model,
|
|
5
|
+
which is used to estimate the electron density in the ionosphere based on
|
|
6
|
+
solar zenith angle and other parameters.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
import numpy as np
|
|
10
|
+
|
|
11
|
+
HEIGHTS_KM = np.arange(60, 1000, 10)
|
|
12
|
+
|
|
13
|
+
def compute_profile(hmF2_km: float, NmF2: float, H_km: float, zenith_angle_deg: float, heights_km: float | np.ndarray =HEIGHTS_KM) -> float | np.ndarray:
|
|
14
|
+
"""
|
|
15
|
+
Compute the Chapman ionospheric model.
|
|
16
|
+
|
|
17
|
+
Parameters:
|
|
18
|
+
zenith_angle (float or np.ndarray): Solar zenith angle, the angle between the vertical and the direction to the Sun.
|
|
19
|
+
hmF2_km (float): Height of the F2 layer in kilometers.
|
|
20
|
+
NmF2 (float): Peak electron density at hmF2 in electrons/m^3.
|
|
21
|
+
H_km (float): Scale height in kilometers (typical values between 30 and 50 km).
|
|
22
|
+
heights_km (np.ndarray, optional): Heights at which to compute the electron density.
|
|
23
|
+
If None, defaults to a range from 0 to 100 km.
|
|
24
|
+
|
|
25
|
+
Returns:
|
|
26
|
+
float or np.ndarray: Computed electron density based on the Chapman model.
|
|
27
|
+
"""
|
|
28
|
+
# Convert zenith angle from degrees to radians
|
|
29
|
+
zenith_angle_rad = np.radians(zenith_angle_deg)
|
|
30
|
+
|
|
31
|
+
# Include scale height
|
|
32
|
+
z = (heights_km - hmF2_km) / H_km
|
|
33
|
+
|
|
34
|
+
# Compute the Chapman function
|
|
35
|
+
return NmF2 * np.exp( 0.5 * (1 - z - np.exp(-z) / np.cos(zenith_angle_rad)))
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
pygnss/__init__.py,sha256=
|
|
2
|
-
pygnss/_c_ext.cpython-313-x86_64-linux-musl.so,sha256=
|
|
1
|
+
pygnss/__init__.py,sha256=LGVQyDsWifdACo7qztwb8RWWHds1E7uQ-ZqD8SAjyw4,22
|
|
2
|
+
pygnss/_c_ext.cpython-313-x86_64-linux-musl.so,sha256=D5vq9YT6semduCYRwrKJ1MbINv99kLI3u61aeV9qf_g,83920
|
|
3
3
|
pygnss/cl.py,sha256=ISmd2RjikUMmj3nLPN0VSjvQLG5rLizp2X2ajeBkoDE,4509
|
|
4
4
|
pygnss/constants.py,sha256=1hF6K92X6E6Ofo0rAuCBCgrwln9jxio26RV2a6vyURk,133
|
|
5
5
|
pygnss/decorator.py,sha256=qB-0jl2GTEHJdvmDruNll5X3RrdySssv94u9Hok5-lA,1438
|
|
6
6
|
pygnss/file.py,sha256=kkMBWjoTPkxJD1UgH0mXJT2fxnhU8u7_l2Ph5Xz2-hY,933
|
|
7
|
-
pygnss/geodetic.py,sha256=
|
|
7
|
+
pygnss/geodetic.py,sha256=RCXD4_RlzQR2DxNIFGS4iODwZZcnxklMsCw9mohYcBg,33948
|
|
8
8
|
pygnss/hatanaka.py,sha256=P9XG6bZwUzfAPYn--6-DXfFQIEefeimE7fMJm_DF5zE,1951
|
|
9
9
|
pygnss/ionex.py,sha256=WcY6PVwjzATjqyC0Htc5Jh_cv2a7yz4TZIcD723TpsY,14325
|
|
10
10
|
pygnss/logger.py,sha256=4kvcTWXPoiG-MlyP6B330l4Fu7MfCuDjuIlIiLA8f1Y,1479
|
|
@@ -27,14 +27,15 @@ pygnss/gnss/observables.py,sha256=0x0NLkTjxf8cO9F_f_Q1b-1hEeoNjWB2x-53ecUEv0M,16
|
|
|
27
27
|
pygnss/gnss/residuals.py,sha256=8qKGNOYkrqxHGOSjIfH21K82PAqEh2068kf78j5usL8,1244
|
|
28
28
|
pygnss/gnss/types.py,sha256=lmL15KRckRiTwVkYvGzF4c1BrojnQlegrYCXSz1hGaI,10377
|
|
29
29
|
pygnss/iono/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
30
|
+
pygnss/iono/chapman.py,sha256=eyq2RaCkLpQJRzuHt_DSNaLjto1w_W1PdT_ys8A3Bjc,1388
|
|
30
31
|
pygnss/iono/gim.py,sha256=khKzClxLf46mVO6BCDk9u9DgS_50d-sbWEyoUQu7Jng,3543
|
|
31
32
|
pygnss/orbit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
32
33
|
pygnss/orbit/kepler.py,sha256=QORTgg5yBtsQXxLWSzoZ1pmh-CwPiZlFdIYqhQhv1a0,1745
|
|
33
34
|
pygnss/orbit/tle.py,sha256=6CIEielPgui3DXNv46XxOGlig31ROIwjH42xLGaeE5M,5905
|
|
34
35
|
pygnss/parsers/rtklib/stats.py,sha256=YV6yadxMeQMQYZvsUCaSf4ZTpK8Bbv3f2xgu0l4PekA,5449
|
|
35
|
-
pygnss-
|
|
36
|
-
pygnss-
|
|
37
|
-
pygnss-
|
|
38
|
-
pygnss-
|
|
39
|
-
pygnss-
|
|
40
|
-
pygnss-
|
|
36
|
+
pygnss-1.1.0.dist-info/METADATA,sha256=ddxRfkulzB_nsS6xbvrsLHzqzRmjNBiFZHtBoo6g0dk,1666
|
|
37
|
+
pygnss-1.1.0.dist-info/WHEEL,sha256=4VbEOkf4fdBUBHdV24POjoH-zuik_eIDLSImZZCAQpQ,112
|
|
38
|
+
pygnss-1.1.0.dist-info/entry_points.txt,sha256=awWUCMfX3uMIAPPZqZfSUuw7Kd7defip8L7GtthKqgg,292
|
|
39
|
+
pygnss-1.1.0.dist-info/top_level.txt,sha256=oZRSR-qOv98VW2PRRMGCVNCJmewcJjyJYmxzxfeimtg,7
|
|
40
|
+
pygnss-1.1.0.dist-info/RECORD,,
|
|
41
|
+
pygnss-1.1.0.dist-info/licenses/LICENSE,sha256=Wwany6RAAZ9vVHjFLA9KBJ0HE77d52s2NOUA1CPAEug,1067
|
|
File without changes
|
|
File without changes
|
|
File without changes
|