nrl-tracker 0.22.0__py3-none-any.whl → 0.22.1__py3-none-any.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.
- {nrl_tracker-0.22.0.dist-info → nrl_tracker-0.22.1.dist-info}/METADATA +1 -1
- nrl_tracker-0.22.1.dist-info/RECORD +150 -0
- pytcl/__init__.py +11 -9
- pytcl/assignment_algorithms/__init__.py +42 -32
- pytcl/assignment_algorithms/data_association.py +3 -7
- pytcl/assignment_algorithms/gating.py +2 -4
- pytcl/assignment_algorithms/jpda.py +2 -6
- pytcl/assignment_algorithms/three_dimensional/__init__.py +8 -6
- pytcl/assignment_algorithms/three_dimensional/assignment.py +2 -6
- pytcl/assignment_algorithms/two_dimensional/__init__.py +13 -9
- pytcl/assignment_algorithms/two_dimensional/assignment.py +2 -5
- pytcl/assignment_algorithms/two_dimensional/kbest.py +6 -8
- pytcl/astronomical/__init__.py +108 -96
- pytcl/astronomical/ephemerides.py +1 -3
- pytcl/astronomical/lambert.py +1 -2
- pytcl/astronomical/time_systems.py +1 -2
- pytcl/atmosphere/__init__.py +13 -11
- pytcl/atmosphere/models.py +2 -4
- pytcl/clustering/__init__.py +36 -28
- pytcl/clustering/dbscan.py +2 -5
- pytcl/clustering/gaussian_mixture.py +2 -6
- pytcl/clustering/hierarchical.py +2 -6
- pytcl/clustering/kmeans.py +2 -6
- pytcl/containers/__init__.py +26 -29
- pytcl/containers/cluster_set.py +2 -10
- pytcl/containers/covertree.py +2 -8
- pytcl/containers/kd_tree.py +2 -6
- pytcl/containers/measurement_set.py +2 -9
- pytcl/containers/rtree.py +2 -6
- pytcl/containers/track_list.py +13 -13
- pytcl/containers/vptree.py +2 -7
- pytcl/coordinate_systems/__init__.py +74 -69
- pytcl/coordinate_systems/conversions/__init__.py +24 -20
- pytcl/coordinate_systems/conversions/geodetic.py +2 -4
- pytcl/coordinate_systems/conversions/spherical.py +2 -4
- pytcl/coordinate_systems/jacobians/__init__.py +12 -10
- pytcl/coordinate_systems/jacobians/jacobians.py +1 -2
- pytcl/coordinate_systems/projections/__init__.py +21 -23
- pytcl/coordinate_systems/projections/projections.py +1 -3
- pytcl/coordinate_systems/rotations/__init__.py +22 -20
- pytcl/coordinate_systems/rotations/rotations.py +1 -2
- pytcl/core/__init__.py +22 -16
- pytcl/core/array_utils.py +3 -6
- pytcl/core/validation.py +2 -7
- pytcl/dynamic_estimation/__init__.py +86 -77
- pytcl/dynamic_estimation/imm.py +3 -7
- pytcl/dynamic_estimation/information_filter.py +6 -8
- pytcl/dynamic_estimation/kalman/__init__.py +48 -40
- pytcl/dynamic_estimation/kalman/extended.py +2 -4
- pytcl/dynamic_estimation/kalman/linear.py +3 -7
- pytcl/dynamic_estimation/kalman/square_root.py +2 -5
- pytcl/dynamic_estimation/kalman/unscented.py +3 -8
- pytcl/dynamic_estimation/particle_filters/__init__.py +14 -12
- pytcl/dynamic_estimation/particle_filters/bootstrap.py +2 -6
- pytcl/dynamic_estimation/smoothers.py +3 -8
- pytcl/dynamic_models/__init__.py +41 -37
- pytcl/dynamic_models/continuous_time/__init__.py +11 -11
- pytcl/dynamic_models/continuous_time/dynamics.py +2 -4
- pytcl/dynamic_models/discrete_time/__init__.py +13 -11
- pytcl/dynamic_models/process_noise/__init__.py +13 -11
- pytcl/gravity/__init__.py +65 -55
- pytcl/gravity/clenshaw.py +1 -2
- pytcl/gravity/egm.py +3 -8
- pytcl/gravity/spherical_harmonics.py +1 -2
- pytcl/gravity/tides.py +1 -2
- pytcl/magnetism/__init__.py +25 -26
- pytcl/magnetism/emm.py +1 -4
- pytcl/magnetism/igrf.py +6 -5
- pytcl/magnetism/wmm.py +1 -2
- pytcl/mathematical_functions/__init__.py +87 -69
- pytcl/mathematical_functions/basic_matrix/__init__.py +19 -25
- pytcl/mathematical_functions/basic_matrix/decompositions.py +2 -5
- pytcl/mathematical_functions/basic_matrix/special_matrices.py +1 -2
- pytcl/mathematical_functions/combinatorics/__init__.py +14 -18
- pytcl/mathematical_functions/combinatorics/combinatorics.py +1 -4
- pytcl/mathematical_functions/geometry/__init__.py +15 -15
- pytcl/mathematical_functions/geometry/geometry.py +3 -6
- pytcl/mathematical_functions/interpolation/__init__.py +12 -10
- pytcl/mathematical_functions/interpolation/interpolation.py +2 -7
- pytcl/mathematical_functions/numerical_integration/__init__.py +10 -16
- pytcl/mathematical_functions/numerical_integration/quadrature.py +2 -6
- pytcl/mathematical_functions/signal_processing/__init__.py +30 -42
- pytcl/mathematical_functions/signal_processing/detection.py +3 -6
- pytcl/mathematical_functions/signal_processing/filters.py +2 -5
- pytcl/mathematical_functions/signal_processing/matched_filter.py +3 -6
- pytcl/mathematical_functions/special_functions/__init__.py +76 -74
- pytcl/mathematical_functions/special_functions/bessel.py +1 -2
- pytcl/mathematical_functions/special_functions/debye.py +2 -4
- pytcl/mathematical_functions/special_functions/elliptic.py +1 -2
- pytcl/mathematical_functions/special_functions/error_functions.py +1 -2
- pytcl/mathematical_functions/special_functions/gamma_functions.py +1 -2
- pytcl/mathematical_functions/special_functions/hypergeometric.py +1 -2
- pytcl/mathematical_functions/special_functions/lambert_w.py +1 -2
- pytcl/mathematical_functions/special_functions/marcum_q.py +1 -2
- pytcl/mathematical_functions/statistics/__init__.py +31 -27
- pytcl/mathematical_functions/statistics/distributions.py +4 -9
- pytcl/mathematical_functions/statistics/estimators.py +1 -2
- pytcl/mathematical_functions/transforms/__init__.py +51 -45
- pytcl/mathematical_functions/transforms/fourier.py +2 -5
- pytcl/mathematical_functions/transforms/stft.py +2 -5
- pytcl/mathematical_functions/transforms/wavelets.py +2 -7
- pytcl/navigation/__init__.py +99 -89
- pytcl/navigation/geodesy.py +2 -4
- pytcl/navigation/great_circle.py +1 -3
- pytcl/navigation/ins.py +5 -11
- pytcl/navigation/ins_gnss.py +12 -17
- pytcl/navigation/rhumb.py +2 -4
- pytcl/performance_evaluation/__init__.py +25 -21
- pytcl/performance_evaluation/estimation_metrics.py +1 -3
- pytcl/performance_evaluation/track_metrics.py +1 -3
- pytcl/plotting/__init__.py +38 -30
- pytcl/plotting/coordinates.py +1 -3
- pytcl/plotting/ellipses.py +2 -5
- pytcl/plotting/metrics.py +1 -2
- pytcl/plotting/tracks.py +1 -4
- pytcl/static_estimation/__init__.py +41 -37
- pytcl/static_estimation/least_squares.py +2 -4
- pytcl/static_estimation/maximum_likelihood.py +2 -5
- pytcl/static_estimation/robust.py +2 -5
- pytcl/terrain/__init__.py +34 -28
- pytcl/terrain/dem.py +1 -4
- pytcl/terrain/loaders.py +1 -4
- pytcl/terrain/visibility.py +1 -2
- pytcl/trackers/__init__.py +14 -17
- pytcl/trackers/hypothesis.py +1 -6
- pytcl/trackers/mht.py +9 -13
- pytcl/trackers/multi_target.py +3 -8
- pytcl/trackers/single_target.py +2 -5
- nrl_tracker-0.22.0.dist-info/RECORD +0 -150
- {nrl_tracker-0.22.0.dist-info → nrl_tracker-0.22.1.dist-info}/LICENSE +0 -0
- {nrl_tracker-0.22.0.dist-info → nrl_tracker-0.22.1.dist-info}/WHEEL +0 -0
- {nrl_tracker-0.22.0.dist-info → nrl_tracker-0.22.1.dist-info}/top_level.txt +0 -0
|
@@ -5,17 +5,19 @@ This module provides process noise covariance matrices (Q) for various
|
|
|
5
5
|
motion models used in target tracking applications.
|
|
6
6
|
"""
|
|
7
7
|
|
|
8
|
-
from pytcl.dynamic_models.process_noise.coordinated_turn import
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
from pytcl.dynamic_models.process_noise.polynomial import
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
8
|
+
from pytcl.dynamic_models.process_noise.coordinated_turn import (
|
|
9
|
+
q_coord_turn_2d,
|
|
10
|
+
q_coord_turn_3d,
|
|
11
|
+
q_coord_turn_polar,
|
|
12
|
+
)
|
|
13
|
+
from pytcl.dynamic_models.process_noise.polynomial import (
|
|
14
|
+
q_constant_acceleration,
|
|
15
|
+
q_constant_velocity,
|
|
16
|
+
q_continuous_white_noise,
|
|
17
|
+
q_discrete_white_noise,
|
|
18
|
+
q_poly_kal,
|
|
19
|
+
)
|
|
20
|
+
from pytcl.dynamic_models.process_noise.singer import q_singer, q_singer_2d, q_singer_3d
|
|
19
21
|
|
|
20
22
|
__all__ = [
|
|
21
23
|
# Polynomial models
|
pytcl/gravity/__init__.py
CHANGED
|
@@ -19,61 +19,71 @@ Examples
|
|
|
19
19
|
>>> print(f"Gravity magnitude: {result.magnitude:.4f} m/s^2")
|
|
20
20
|
"""
|
|
21
21
|
|
|
22
|
-
from pytcl.gravity.clenshaw import
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
from pytcl.gravity.egm import
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
from pytcl.gravity.models import
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
from pytcl.gravity.
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
from pytcl.gravity.tides import
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
22
|
+
from pytcl.gravity.clenshaw import (
|
|
23
|
+
clenshaw_gravity,
|
|
24
|
+
clenshaw_potential,
|
|
25
|
+
clenshaw_sum_order,
|
|
26
|
+
clenshaw_sum_order_derivative,
|
|
27
|
+
)
|
|
28
|
+
from pytcl.gravity.egm import (
|
|
29
|
+
EGMCoefficients,
|
|
30
|
+
GeoidResult,
|
|
31
|
+
GravityDisturbance,
|
|
32
|
+
create_test_coefficients,
|
|
33
|
+
deflection_of_vertical,
|
|
34
|
+
geoid_height,
|
|
35
|
+
geoid_heights,
|
|
36
|
+
get_data_dir,
|
|
37
|
+
gravity_anomaly,
|
|
38
|
+
gravity_disturbance,
|
|
39
|
+
load_egm_coefficients,
|
|
40
|
+
)
|
|
41
|
+
from pytcl.gravity.models import (
|
|
42
|
+
GRS80,
|
|
43
|
+
WGS84,
|
|
44
|
+
GravityConstants,
|
|
45
|
+
GravityResult,
|
|
46
|
+
bouguer_anomaly,
|
|
47
|
+
free_air_anomaly,
|
|
48
|
+
geoid_height_j2,
|
|
49
|
+
gravitational_potential,
|
|
50
|
+
gravity_j2,
|
|
51
|
+
gravity_wgs84,
|
|
52
|
+
normal_gravity,
|
|
53
|
+
normal_gravity_somigliana,
|
|
54
|
+
)
|
|
55
|
+
from pytcl.gravity.spherical_harmonics import (
|
|
56
|
+
associated_legendre,
|
|
57
|
+
associated_legendre_derivative,
|
|
58
|
+
associated_legendre_scaled,
|
|
59
|
+
gravity_acceleration,
|
|
60
|
+
legendre_scaling_factors,
|
|
61
|
+
spherical_harmonic_sum,
|
|
62
|
+
)
|
|
63
|
+
from pytcl.gravity.tides import (
|
|
64
|
+
GRAVIMETRIC_FACTOR,
|
|
65
|
+
LOVE_H2,
|
|
66
|
+
LOVE_H3,
|
|
67
|
+
LOVE_K2,
|
|
68
|
+
LOVE_K3,
|
|
69
|
+
SHIDA_L2,
|
|
70
|
+
SHIDA_L3,
|
|
71
|
+
TIDAL_CONSTITUENTS,
|
|
72
|
+
OceanTideLoading,
|
|
73
|
+
TidalDisplacement,
|
|
74
|
+
TidalGravity,
|
|
75
|
+
atmospheric_pressure_loading,
|
|
76
|
+
fundamental_arguments,
|
|
77
|
+
julian_centuries_j2000,
|
|
78
|
+
moon_position_approximate,
|
|
79
|
+
ocean_tide_loading_displacement,
|
|
80
|
+
pole_tide_displacement,
|
|
81
|
+
solid_earth_tide_displacement,
|
|
82
|
+
solid_earth_tide_gravity,
|
|
83
|
+
sun_position_approximate,
|
|
84
|
+
tidal_gravity_correction,
|
|
85
|
+
total_tidal_displacement,
|
|
86
|
+
)
|
|
77
87
|
|
|
78
88
|
__all__ = [
|
|
79
89
|
# Spherical harmonics
|
pytcl/gravity/clenshaw.py
CHANGED
pytcl/gravity/egm.py
CHANGED
|
@@ -24,18 +24,13 @@ References
|
|
|
24
24
|
import os
|
|
25
25
|
from functools import lru_cache
|
|
26
26
|
from pathlib import Path
|
|
27
|
-
from typing import Dict
|
|
28
|
-
from typing import NamedTuple
|
|
29
|
-
from typing import Optional
|
|
30
|
-
from typing import Tuple
|
|
27
|
+
from typing import Dict, NamedTuple, Optional, Tuple
|
|
31
28
|
|
|
32
29
|
import numpy as np
|
|
33
30
|
from numpy.typing import NDArray
|
|
34
31
|
|
|
35
|
-
from .clenshaw import clenshaw_gravity
|
|
36
|
-
from .
|
|
37
|
-
from .models import WGS84
|
|
38
|
-
from .models import normal_gravity_somigliana
|
|
32
|
+
from .clenshaw import clenshaw_gravity, clenshaw_potential
|
|
33
|
+
from .models import WGS84, normal_gravity_somigliana
|
|
39
34
|
|
|
40
35
|
|
|
41
36
|
class EGMCoefficients(NamedTuple):
|
pytcl/gravity/tides.py
CHANGED
pytcl/magnetism/__init__.py
CHANGED
|
@@ -25,34 +25,33 @@ Examples
|
|
|
25
25
|
>>> coef = create_emm_test_coefficients(n_max=36)
|
|
26
26
|
"""
|
|
27
27
|
|
|
28
|
-
from pytcl.magnetism.emm import EMM_PARAMETERS
|
|
29
|
-
from pytcl.magnetism.emm import HighResCoefficients
|
|
28
|
+
from pytcl.magnetism.emm import EMM_PARAMETERS, HighResCoefficients
|
|
30
29
|
from pytcl.magnetism.emm import create_test_coefficients as create_emm_test_coefficients
|
|
31
|
-
from pytcl.magnetism.emm import emm
|
|
32
|
-
from pytcl.magnetism.emm import emm_declination
|
|
33
|
-
from pytcl.magnetism.emm import emm_inclination
|
|
34
|
-
from pytcl.magnetism.emm import emm_intensity
|
|
30
|
+
from pytcl.magnetism.emm import emm, emm_declination, emm_inclination, emm_intensity
|
|
35
31
|
from pytcl.magnetism.emm import get_data_dir as get_emm_data_dir
|
|
36
|
-
from pytcl.magnetism.emm import load_emm_coefficients
|
|
37
|
-
from pytcl.magnetism.
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
from pytcl.magnetism.wmm import
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
32
|
+
from pytcl.magnetism.emm import load_emm_coefficients, wmmhr
|
|
33
|
+
from pytcl.magnetism.igrf import (
|
|
34
|
+
IGRF13,
|
|
35
|
+
IGRFModel,
|
|
36
|
+
create_igrf13_coefficients,
|
|
37
|
+
dipole_axis,
|
|
38
|
+
dipole_moment,
|
|
39
|
+
igrf,
|
|
40
|
+
igrf_declination,
|
|
41
|
+
igrf_inclination,
|
|
42
|
+
magnetic_north_pole,
|
|
43
|
+
)
|
|
44
|
+
from pytcl.magnetism.wmm import (
|
|
45
|
+
WMM2020,
|
|
46
|
+
MagneticCoefficients,
|
|
47
|
+
MagneticResult,
|
|
48
|
+
create_wmm2020_coefficients,
|
|
49
|
+
magnetic_declination,
|
|
50
|
+
magnetic_field_intensity,
|
|
51
|
+
magnetic_field_spherical,
|
|
52
|
+
magnetic_inclination,
|
|
53
|
+
wmm,
|
|
54
|
+
)
|
|
56
55
|
|
|
57
56
|
__all__ = [
|
|
58
57
|
# Types and constants
|
pytcl/magnetism/emm.py
CHANGED
|
@@ -24,10 +24,7 @@ References
|
|
|
24
24
|
import os
|
|
25
25
|
from functools import lru_cache
|
|
26
26
|
from pathlib import Path
|
|
27
|
-
from typing import Dict
|
|
28
|
-
from typing import NamedTuple
|
|
29
|
-
from typing import Optional
|
|
30
|
-
from typing import Tuple
|
|
27
|
+
from typing import Dict, NamedTuple, Optional, Tuple
|
|
31
28
|
|
|
32
29
|
import numpy as np
|
|
33
30
|
from numpy.typing import NDArray
|
pytcl/magnetism/igrf.py
CHANGED
|
@@ -12,14 +12,15 @@ References
|
|
|
12
12
|
.. [2] https://www.ngdc.noaa.gov/IAGA/vmod/igrf.html
|
|
13
13
|
"""
|
|
14
14
|
|
|
15
|
-
from typing import NamedTuple
|
|
16
|
-
from typing import Optional
|
|
15
|
+
from typing import NamedTuple, Optional
|
|
17
16
|
|
|
18
17
|
import numpy as np
|
|
19
18
|
|
|
20
|
-
from pytcl.magnetism.wmm import
|
|
21
|
-
|
|
22
|
-
|
|
19
|
+
from pytcl.magnetism.wmm import (
|
|
20
|
+
MagneticCoefficients,
|
|
21
|
+
MagneticResult,
|
|
22
|
+
magnetic_field_spherical,
|
|
23
|
+
)
|
|
23
24
|
|
|
24
25
|
|
|
25
26
|
class IGRFModel(NamedTuple):
|
pytcl/magnetism/wmm.py
CHANGED
|
@@ -15,96 +15,114 @@ This module contains a wide variety of mathematical functions including:
|
|
|
15
15
|
"""
|
|
16
16
|
|
|
17
17
|
# Import submodules for easy access
|
|
18
|
-
from pytcl.mathematical_functions import
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
18
|
+
from pytcl.mathematical_functions import (
|
|
19
|
+
basic_matrix,
|
|
20
|
+
combinatorics,
|
|
21
|
+
geometry,
|
|
22
|
+
interpolation,
|
|
23
|
+
numerical_integration,
|
|
24
|
+
signal_processing,
|
|
25
|
+
special_functions,
|
|
26
|
+
statistics,
|
|
27
|
+
transforms,
|
|
28
|
+
)
|
|
27
29
|
|
|
28
30
|
# Basic matrix operations
|
|
29
|
-
from pytcl.mathematical_functions.basic_matrix import
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
31
|
+
from pytcl.mathematical_functions.basic_matrix import (
|
|
32
|
+
block_diag,
|
|
33
|
+
chol_semi_def,
|
|
34
|
+
kron,
|
|
35
|
+
matrix_sqrt,
|
|
36
|
+
null_space,
|
|
37
|
+
pinv_truncated,
|
|
38
|
+
range_space,
|
|
39
|
+
tria,
|
|
40
|
+
tria_sqrt,
|
|
41
|
+
unvec,
|
|
42
|
+
vec,
|
|
43
|
+
)
|
|
40
44
|
|
|
41
45
|
# Combinatorics
|
|
42
|
-
from pytcl.mathematical_functions.combinatorics import
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
46
|
+
from pytcl.mathematical_functions.combinatorics import (
|
|
47
|
+
combinations,
|
|
48
|
+
factorial,
|
|
49
|
+
n_choose_k,
|
|
50
|
+
permutation_rank,
|
|
51
|
+
permutation_unrank,
|
|
52
|
+
permutations,
|
|
53
|
+
)
|
|
48
54
|
|
|
49
55
|
# Geometry
|
|
50
|
-
from pytcl.mathematical_functions.geometry import
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
56
|
+
from pytcl.mathematical_functions.geometry import (
|
|
57
|
+
bounding_box,
|
|
58
|
+
convex_hull,
|
|
59
|
+
line_intersection,
|
|
60
|
+
point_in_polygon,
|
|
61
|
+
polygon_area,
|
|
62
|
+
)
|
|
55
63
|
|
|
56
64
|
# Interpolation
|
|
57
|
-
from pytcl.mathematical_functions.interpolation import
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
65
|
+
from pytcl.mathematical_functions.interpolation import (
|
|
66
|
+
cubic_spline,
|
|
67
|
+
interp1d,
|
|
68
|
+
interp2d,
|
|
69
|
+
linear_interp,
|
|
70
|
+
rbf_interpolate,
|
|
71
|
+
)
|
|
62
72
|
|
|
63
73
|
# Numerical integration
|
|
64
|
-
from pytcl.mathematical_functions.numerical_integration import gauss_hermite
|
|
65
|
-
from pytcl.mathematical_functions.numerical_integration import gauss_legendre
|
|
66
|
-
from pytcl.mathematical_functions.numerical_integration import quad
|
|
67
|
-
from pytcl.mathematical_functions.numerical_integration import spherical_cubature
|
|
68
74
|
from pytcl.mathematical_functions.numerical_integration import (
|
|
75
|
+
gauss_hermite,
|
|
76
|
+
gauss_legendre,
|
|
77
|
+
quad,
|
|
78
|
+
spherical_cubature,
|
|
69
79
|
unscented_transform_points,
|
|
70
80
|
)
|
|
71
81
|
|
|
72
82
|
# Signal processing
|
|
73
|
-
from pytcl.mathematical_functions.signal_processing import
|
|
74
|
-
|
|
75
|
-
|
|
83
|
+
from pytcl.mathematical_functions.signal_processing import (
|
|
84
|
+
butter_design,
|
|
85
|
+
cfar_ca,
|
|
86
|
+
matched_filter,
|
|
87
|
+
)
|
|
76
88
|
|
|
77
89
|
# Special functions
|
|
78
|
-
from pytcl.mathematical_functions.special_functions import
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
90
|
+
from pytcl.mathematical_functions.special_functions import (
|
|
91
|
+
besseli,
|
|
92
|
+
besselj,
|
|
93
|
+
besselk,
|
|
94
|
+
bessely,
|
|
95
|
+
beta,
|
|
96
|
+
betaln,
|
|
97
|
+
erf,
|
|
98
|
+
erfc,
|
|
99
|
+
erfinv,
|
|
100
|
+
gamma,
|
|
101
|
+
gammaln,
|
|
102
|
+
)
|
|
89
103
|
|
|
90
104
|
# Statistics
|
|
91
|
-
from pytcl.mathematical_functions.statistics import
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
105
|
+
from pytcl.mathematical_functions.statistics import (
|
|
106
|
+
ChiSquared,
|
|
107
|
+
Gaussian,
|
|
108
|
+
MultivariateGaussian,
|
|
109
|
+
Uniform,
|
|
110
|
+
mad,
|
|
111
|
+
nees,
|
|
112
|
+
nis,
|
|
113
|
+
weighted_cov,
|
|
114
|
+
weighted_mean,
|
|
115
|
+
)
|
|
100
116
|
|
|
101
117
|
# Transforms
|
|
102
|
-
from pytcl.mathematical_functions.transforms import
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
118
|
+
from pytcl.mathematical_functions.transforms import (
|
|
119
|
+
cwt,
|
|
120
|
+
fft,
|
|
121
|
+
ifft,
|
|
122
|
+
power_spectrum,
|
|
123
|
+
spectrogram,
|
|
124
|
+
stft,
|
|
125
|
+
)
|
|
108
126
|
|
|
109
127
|
__all__ = [
|
|
110
128
|
# Submodules
|
|
@@ -9,38 +9,32 @@ This module provides:
|
|
|
9
9
|
|
|
10
10
|
from pytcl.mathematical_functions.basic_matrix.decompositions import ( # noqa: E501
|
|
11
11
|
chol_semi_def,
|
|
12
|
+
matrix_sqrt,
|
|
13
|
+
null_space,
|
|
14
|
+
pinv_truncated,
|
|
15
|
+
range_space,
|
|
16
|
+
rank_revealing_qr,
|
|
17
|
+
tria,
|
|
18
|
+
tria_sqrt,
|
|
12
19
|
)
|
|
13
|
-
from pytcl.mathematical_functions.basic_matrix.decompositions import matrix_sqrt
|
|
14
|
-
from pytcl.mathematical_functions.basic_matrix.decompositions import null_space
|
|
15
|
-
from pytcl.mathematical_functions.basic_matrix.decompositions import pinv_truncated
|
|
16
|
-
from pytcl.mathematical_functions.basic_matrix.decompositions import range_space
|
|
17
|
-
from pytcl.mathematical_functions.basic_matrix.decompositions import rank_revealing_qr
|
|
18
|
-
from pytcl.mathematical_functions.basic_matrix.decompositions import tria
|
|
19
|
-
from pytcl.mathematical_functions.basic_matrix.decompositions import tria_sqrt
|
|
20
20
|
from pytcl.mathematical_functions.basic_matrix.special_matrices import ( # noqa: E501
|
|
21
21
|
block_diag,
|
|
22
|
-
|
|
23
|
-
from pytcl.mathematical_functions.basic_matrix.special_matrices import circulant
|
|
24
|
-
from pytcl.mathematical_functions.basic_matrix.special_matrices import (
|
|
22
|
+
circulant,
|
|
25
23
|
commutation_matrix,
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
from pytcl.mathematical_functions.basic_matrix.special_matrices import dft_matrix
|
|
29
|
-
from pytcl.mathematical_functions.basic_matrix.special_matrices import (
|
|
24
|
+
companion,
|
|
25
|
+
dft_matrix,
|
|
30
26
|
duplication_matrix,
|
|
31
|
-
)
|
|
32
|
-
from pytcl.mathematical_functions.basic_matrix.special_matrices import (
|
|
33
27
|
elimination_matrix,
|
|
28
|
+
hadamard,
|
|
29
|
+
hankel,
|
|
30
|
+
hilbert,
|
|
31
|
+
invhilbert,
|
|
32
|
+
kron,
|
|
33
|
+
toeplitz,
|
|
34
|
+
unvec,
|
|
35
|
+
vandermonde,
|
|
36
|
+
vec,
|
|
34
37
|
)
|
|
35
|
-
from pytcl.mathematical_functions.basic_matrix.special_matrices import hadamard
|
|
36
|
-
from pytcl.mathematical_functions.basic_matrix.special_matrices import hankel
|
|
37
|
-
from pytcl.mathematical_functions.basic_matrix.special_matrices import hilbert
|
|
38
|
-
from pytcl.mathematical_functions.basic_matrix.special_matrices import invhilbert
|
|
39
|
-
from pytcl.mathematical_functions.basic_matrix.special_matrices import kron
|
|
40
|
-
from pytcl.mathematical_functions.basic_matrix.special_matrices import toeplitz
|
|
41
|
-
from pytcl.mathematical_functions.basic_matrix.special_matrices import unvec
|
|
42
|
-
from pytcl.mathematical_functions.basic_matrix.special_matrices import vandermonde
|
|
43
|
-
from pytcl.mathematical_functions.basic_matrix.special_matrices import vec
|
|
44
38
|
|
|
45
39
|
__all__ = [
|
|
46
40
|
# Decompositions
|
|
@@ -5,14 +5,11 @@ This module provides matrix decomposition functions that wrap numpy/scipy
|
|
|
5
5
|
with consistent APIs matching the MATLAB TrackerComponentLibrary conventions.
|
|
6
6
|
"""
|
|
7
7
|
|
|
8
|
-
from typing import Literal
|
|
9
|
-
from typing import Optional
|
|
10
|
-
from typing import Tuple
|
|
8
|
+
from typing import Literal, Optional, Tuple
|
|
11
9
|
|
|
12
10
|
import numpy as np
|
|
13
11
|
import scipy.linalg as la
|
|
14
|
-
from numpy.typing import ArrayLike
|
|
15
|
-
from numpy.typing import NDArray
|
|
12
|
+
from numpy.typing import ArrayLike, NDArray
|
|
16
13
|
|
|
17
14
|
|
|
18
15
|
def chol_semi_def(
|
|
@@ -10,27 +10,23 @@ This module provides:
|
|
|
10
10
|
|
|
11
11
|
from pytcl.mathematical_functions.combinatorics.combinatorics import ( # noqa: E501
|
|
12
12
|
bell_number,
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
from pytcl.mathematical_functions.combinatorics.combinatorics import combinations
|
|
16
|
-
from pytcl.mathematical_functions.combinatorics.combinatorics import (
|
|
13
|
+
catalan_number,
|
|
14
|
+
combinations,
|
|
17
15
|
combinations_with_replacement,
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
from pytcl.mathematical_functions.combinatorics.combinatorics import factorial
|
|
21
|
-
from pytcl.mathematical_functions.combinatorics.combinatorics import (
|
|
16
|
+
derangements_count,
|
|
17
|
+
factorial,
|
|
22
18
|
multinomial_coefficient,
|
|
19
|
+
n_choose_k,
|
|
20
|
+
n_permute_k,
|
|
21
|
+
next_permutation,
|
|
22
|
+
partition_count,
|
|
23
|
+
partitions,
|
|
24
|
+
permutation_rank,
|
|
25
|
+
permutation_unrank,
|
|
26
|
+
permutations,
|
|
27
|
+
stirling_second,
|
|
28
|
+
subfactorial,
|
|
23
29
|
)
|
|
24
|
-
from pytcl.mathematical_functions.combinatorics.combinatorics import n_choose_k
|
|
25
|
-
from pytcl.mathematical_functions.combinatorics.combinatorics import n_permute_k
|
|
26
|
-
from pytcl.mathematical_functions.combinatorics.combinatorics import next_permutation
|
|
27
|
-
from pytcl.mathematical_functions.combinatorics.combinatorics import partition_count
|
|
28
|
-
from pytcl.mathematical_functions.combinatorics.combinatorics import partitions
|
|
29
|
-
from pytcl.mathematical_functions.combinatorics.combinatorics import permutation_rank
|
|
30
|
-
from pytcl.mathematical_functions.combinatorics.combinatorics import permutation_unrank
|
|
31
|
-
from pytcl.mathematical_functions.combinatorics.combinatorics import permutations
|
|
32
|
-
from pytcl.mathematical_functions.combinatorics.combinatorics import stirling_second
|
|
33
|
-
from pytcl.mathematical_functions.combinatorics.combinatorics import subfactorial
|
|
34
30
|
|
|
35
31
|
__all__ = [
|
|
36
32
|
"factorial",
|
|
@@ -7,10 +7,7 @@ related operations commonly used in assignment problems and data association.
|
|
|
7
7
|
|
|
8
8
|
import itertools
|
|
9
9
|
from functools import lru_cache
|
|
10
|
-
from typing import Iterator
|
|
11
|
-
from typing import List
|
|
12
|
-
from typing import Optional
|
|
13
|
-
from typing import Tuple
|
|
10
|
+
from typing import Iterator, List, Optional, Tuple
|
|
14
11
|
|
|
15
12
|
from numpy.typing import ArrayLike
|
|
16
13
|
|