gri-plot 0.2.1__tar.gz → 0.2.3__tar.gz

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.
Files changed (73) hide show
  1. {gri_plot-0.2.1 → gri_plot-0.2.3}/.docs_other_projects.md +10 -6
  2. {gri_plot-0.2.1 → gri_plot-0.2.3}/.init_venv.sh +8 -3
  3. {gri_plot-0.2.1 → gri_plot-0.2.3}/PKG-INFO +15 -4
  4. {gri_plot-0.2.1 → gri_plot-0.2.3}/gri_plot/__init__.py +3 -0
  5. gri_plot-0.2.3/gri_plot/figure_map.py +714 -0
  6. {gri_plot-0.2.1 → gri_plot-0.2.3}/pyproject.toml +18 -3
  7. gri_plot-0.2.3/report.xml +1 -0
  8. gri_plot-0.2.3/test/test_figure_map.py +338 -0
  9. {gri_plot-0.2.1 → gri_plot-0.2.3}/uv.lock +193 -1
  10. gri_plot-0.2.1/report.xml +0 -1
  11. {gri_plot-0.2.1 → gri_plot-0.2.3}/.coveragerc +0 -0
  12. {gri_plot-0.2.1 → gri_plot-0.2.3}/.gitignore +0 -0
  13. {gri_plot-0.2.1 → gri_plot-0.2.3}/.gitlab-ci-deps.yml +0 -0
  14. {gri_plot-0.2.1 → gri_plot-0.2.3}/.gitlab-ci.yml +0 -0
  15. {gri_plot-0.2.1 → gri_plot-0.2.3}/.pre-commit-config.yaml +0 -0
  16. {gri_plot-0.2.1 → gri_plot-0.2.3}/.pre-commit-unskipped.py +0 -0
  17. {gri_plot-0.2.1 → gri_plot-0.2.3}/.python-version +0 -0
  18. {gri_plot-0.2.1 → gri_plot-0.2.3}/.ruff.toml +0 -0
  19. {gri_plot-0.2.1 → gri_plot-0.2.3}/.vscode/settings.json +0 -0
  20. {gri_plot-0.2.1 → gri_plot-0.2.3}/CONTRIBUTING.md +0 -0
  21. {gri_plot-0.2.1 → gri_plot-0.2.3}/LICENSE +0 -0
  22. {gri_plot-0.2.1 → gri_plot-0.2.3}/README.md +0 -0
  23. {gri_plot-0.2.1 → gri_plot-0.2.3}/gri_plot/figure3d.py +0 -0
  24. {gri_plot-0.2.1 → gri_plot-0.2.3}/gri_plot/frames.py +0 -0
  25. {gri_plot-0.2.1 → gri_plot-0.2.3}/gri_plot/observables/__init__.py +0 -0
  26. {gri_plot-0.2.1 → gri_plot-0.2.3}/gri_plot/observables/aoa.py +0 -0
  27. {gri_plot-0.2.1 → gri_plot-0.2.3}/gri_plot/observables/fdoa.py +0 -0
  28. {gri_plot-0.2.1 → gri_plot-0.2.3}/gri_plot/observables/los.py +0 -0
  29. {gri_plot-0.2.1 → gri_plot-0.2.3}/gri_plot/observables/range_sphere.py +0 -0
  30. {gri_plot-0.2.1 → gri_plot-0.2.3}/gri_plot/observables/tdoa.py +0 -0
  31. {gri_plot-0.2.1 → gri_plot-0.2.3}/gri_plot/observables/terrain.py +0 -0
  32. {gri_plot-0.2.1 → gri_plot-0.2.3}/gri_plot/plot_ellipse.py +0 -0
  33. {gri_plot-0.2.1 → gri_plot-0.2.3}/gri_plot/py.typed +0 -0
  34. {gri_plot-0.2.1 → gri_plot-0.2.3}/gri_plot/scatter.py +0 -0
  35. {gri_plot-0.2.1 → gri_plot-0.2.3}/gri_plot/scatter_map.py +0 -0
  36. {gri_plot-0.2.1 → gri_plot-0.2.3}/gri_plot/shapes/__init__.py +0 -0
  37. {gri_plot-0.2.1 → gri_plot-0.2.3}/gri_plot/shapes/cone.py +0 -0
  38. {gri_plot-0.2.1 → gri_plot-0.2.3}/gri_plot/shapes/cylinder.py +0 -0
  39. {gri_plot-0.2.1 → gri_plot-0.2.3}/gri_plot/shapes/ellipse.py +0 -0
  40. {gri_plot-0.2.1 → gri_plot-0.2.3}/gri_plot/shapes/ellipsoid.py +0 -0
  41. {gri_plot-0.2.1 → gri_plot-0.2.3}/gri_plot/shapes/meshgen.py +0 -0
  42. {gri_plot-0.2.1 → gri_plot-0.2.3}/gri_plot/shapes/sphere.py +0 -0
  43. {gri_plot-0.2.1 → gri_plot-0.2.3}/gri_plot/surfaces/__init__.py +0 -0
  44. {gri_plot-0.2.1 → gri_plot-0.2.3}/gri_plot/surfaces/gradients/__init__.py +0 -0
  45. {gri_plot-0.2.1 → gri_plot-0.2.3}/gri_plot/surfaces/gradients/axis.py +0 -0
  46. {gri_plot-0.2.1 → gri_plot-0.2.3}/gri_plot/surfaces/gradients/line.py +0 -0
  47. {gri_plot-0.2.1 → gri_plot-0.2.3}/gri_plot/surfaces/gradients/plane.py +0 -0
  48. {gri_plot-0.2.1 → gri_plot-0.2.3}/gri_plot/surfaces/gradients/point.py +0 -0
  49. {gri_plot-0.2.1 → gri_plot-0.2.3}/gri_plot/surfaces/intersection.py +0 -0
  50. {gri_plot-0.2.1 → gri_plot-0.2.3}/gri_plot/surfaces/mesh.py +0 -0
  51. {gri_plot-0.2.1 → gri_plot-0.2.3}/notes.txt +0 -0
  52. {gri_plot-0.2.1 → gri_plot-0.2.3}/test/__init__.py +0 -0
  53. {gri_plot-0.2.1 → gri_plot-0.2.3}/test/test_figure3d.py +0 -0
  54. {gri_plot-0.2.1 → gri_plot-0.2.3}/test/test_frames.py +0 -0
  55. {gri_plot-0.2.1 → gri_plot-0.2.3}/test/test_observables/__init__.py +0 -0
  56. {gri_plot-0.2.1 → gri_plot-0.2.3}/test/test_observables/test_aoa.py +0 -0
  57. {gri_plot-0.2.1 → gri_plot-0.2.3}/test/test_observables/test_fdoa.py +0 -0
  58. {gri_plot-0.2.1 → gri_plot-0.2.3}/test/test_observables/test_los.py +0 -0
  59. {gri_plot-0.2.1 → gri_plot-0.2.3}/test/test_observables/test_range_sphere.py +0 -0
  60. {gri_plot-0.2.1 → gri_plot-0.2.3}/test/test_observables/test_tdoa.py +0 -0
  61. {gri_plot-0.2.1 → gri_plot-0.2.3}/test/test_observables/test_terrain.py +0 -0
  62. {gri_plot-0.2.1 → gri_plot-0.2.3}/test/test_plot_ellipse.py +0 -0
  63. {gri_plot-0.2.1 → gri_plot-0.2.3}/test/test_plot_scattermap.py +0 -0
  64. {gri_plot-0.2.1 → gri_plot-0.2.3}/test/test_scatter.py +0 -0
  65. {gri_plot-0.2.1 → gri_plot-0.2.3}/test/test_shapes/__init__.py +0 -0
  66. {gri_plot-0.2.1 → gri_plot-0.2.3}/test/test_shapes/test_cone.py +0 -0
  67. {gri_plot-0.2.1 → gri_plot-0.2.3}/test/test_shapes/test_cylinder.py +0 -0
  68. {gri_plot-0.2.1 → gri_plot-0.2.3}/test/test_shapes/test_ellipse.py +0 -0
  69. {gri_plot-0.2.1 → gri_plot-0.2.3}/test/test_shapes/test_ellipsoid.py +0 -0
  70. {gri_plot-0.2.1 → gri_plot-0.2.3}/test/test_shapes/test_sphere.py +0 -0
  71. {gri_plot-0.2.1 → gri_plot-0.2.3}/test/test_surfaces/__init__.py +0 -0
  72. {gri_plot-0.2.1 → gri_plot-0.2.3}/test/test_surfaces/test_intersection.py +0 -0
  73. {gri_plot-0.2.1 → gri_plot-0.2.3}/test/test_surfaces/test_mesh.py +0 -0
@@ -16,10 +16,6 @@ Equation fitting wrapper around scipy.optimize.curve\_fit. Simplifies curve fitt
16
16
 
17
17
  Class-based memoization with full type hints and IDE integration. Provides caching decorators for performance optimization.
18
18
 
19
- ### [GRI Plot](https://gitlab.com/geosol-foss/python/gri-plot)
20
-
21
- Plotting utilities for Plotly and Matplotlib. Provides consistent styling and common plot types for geospatial visualization.
22
-
23
19
  ### [GRI Signal](https://gitlab.com/geosol-foss/python/gri-signal)
24
20
 
25
21
  Functional signal processing library with pure functions operating on numpy arrays. Includes signal generation (tones, PRN, pulsed), channel simulation (delay, AWGN, Doppler, multipath), modulation (AM/FM/PM, BPSK/QPSK/QAM), sampling (ADC), filtering (lowpass, highpass, bandpass, notch, analytic), spectral analysis (PSD, SNR, THD, time-bandwidth product), cross-correlation, and beamforming.
@@ -46,6 +42,14 @@ Solar flux and NeQuickG coefficient data pipeline for ionospheric modeling.
46
42
 
47
43
  A lot of the work we do is down to nanosecond or tens of nanosecond accuracy. We needed an object that could both handle that level of precision as well as do a lot of the string <=> time conversions for the many semi-standards formats we run into in this field.
48
44
 
45
+ ### [GRI Obs](https://gitlab.com/geosol-foss/python/gri-obs)
46
+
47
+ Typed observation objects (TDOA, FDOA, AOA, Range, PDOA) for geolocation measurements. Each observation carries measurement data, noise characterization, sensor geometry, and measurement math (predicted values, Jacobians, noise covariance) for EKF integration with Kalman filters.
48
+
49
+ ### [GRI Plot](https://gitlab.com/geosol-foss/python/gri-plot)
50
+
51
+ Plotting utilities for Plotly and Matplotlib. Provides consistent styling and common plot types for geospatial visualization.
52
+
49
53
  ### [GRI Pos](https://gitlab.com/geosol-foss/python/gri-pos)
50
54
 
51
55
  A position object that greatly simplifies handling coordinates, distances, and memory, mostly on the WGS-84 ellipsoid.
@@ -66,7 +70,7 @@ ERA5 data pipeline for downloading and processing tropospheric refractivity data
66
70
 
67
71
  ### [GRI Convolve](https://gitlab.com/geosol-foss/python/gri-convolve)
68
72
 
69
- Ellipsoid convolution with outlier detection and clustering. Combines multiple statistical position estimates into refined solutions.
73
+ Ellipsoid convolution with outlier detection and clustering, plus Kalman tracking via Interacting Multiple Model (IMM) filter. Combines multiple statistical position estimates into refined solutions. The Kalman tracker supports both ellipsoid-based and raw observable (EKF) updates, bidirectional outlier detection, and online track segmentation.
70
74
 
71
75
  ### [GRI GeoSim](https://gitlab.com/geosol-foss/python/gri-geosim)
72
76
 
@@ -78,4 +82,4 @@ Some neat (small) examples and projects we've put together over time using the a
78
82
 
79
83
  ### [GRI SigSim](https://gitlab.com/geosol-foss/python/gri-sigsim)
80
84
 
81
- Object-based RF signal simulation library. Wraps gri-signal functions with chainable object-oriented classes for waveforms (chirp, OFDM, pulsed), channel modeling (delay, Doppler, multipath), receiver simulation, and observable extraction (TOA, FOA, AOA).
85
+ Object-based RF signal simulation library. Wraps gri-signal functions with chainable object-oriented classes for waveforms (pulsed, PRN, tone), channel modeling (delay, Doppler, multipath), receiver simulation, and TOA estimation.
@@ -65,10 +65,15 @@ if [ $? -ne 0 ]; then
65
65
  fi
66
66
  uv sync
67
67
 
68
- # activate and print version
68
+ # activate and print version (Scripts/ on Windows, bin/ elsewhere)
69
69
  echo "${bold}Activating environment${normal}"
70
- . $VENV/bin/activate
71
- $VENV/bin/python --version
70
+ if [[ -d "$VENV/Scripts" ]]; then
71
+ . $VENV/Scripts/activate
72
+ $VENV/Scripts/python --version
73
+ else
74
+ . $VENV/bin/activate
75
+ $VENV/bin/python --version
76
+ fi
72
77
 
73
78
  # Install pre-commit scripts
74
79
  echo "${bold}Installing git hooks${normal}"
@@ -1,12 +1,23 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gri-plot
3
- Version: 0.2.1
4
- Project-URL: repository, https://gitlab.com/geosol-foss/python/gri-plot
5
- Project-URL: homepage, https://geosolresearch.com
3
+ Version: 0.2.3
4
+ Summary: 3D geolocation visualization and 2D plotting utilities built on Plotly
5
+ Project-URL: Homepage, https://geosolresearch.com
6
+ Project-URL: Repository, https://gitlab.com/geosol-foss/python/gri-plot
7
+ Project-URL: Issues, https://gitlab.com/geosol-foss/python/gri-plot/-/issues
8
+ Project-URL: Changelog, https://gitlab.com/geosol-foss/python/gri-plot/-/releases
9
+ Author-email: GeoSol Research Inc <contact@geosolresearch.com>
6
10
  License-Expression: MIT
7
11
  License-File: LICENSE
12
+ Keywords: 3D,geolocation,matplotlib,plotly,visualization
13
+ Classifier: Development Status :: 3 - Alpha
14
+ Classifier: Intended Audience :: Science/Research
15
+ Classifier: License :: OSI Approved :: MIT License
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Topic :: Scientific/Engineering
18
+ Classifier: Topic :: Scientific/Engineering :: Visualization
8
19
  Requires-Python: >=3.12
9
- Requires-Dist: gri-utils>=0.2.0
20
+ Requires-Dist: gri-utils>=0.3.3
10
21
  Requires-Dist: numpy>=2.3.3
11
22
  Requires-Dist: plotly>=6.3.0
12
23
  Requires-Dist: scikit-image>=0.25.0
@@ -17,6 +17,7 @@ Main components:
17
17
  # 2D plotting
18
18
  # 3D plotting infrastructure
19
19
  from .figure3d import DEFAULT_COLORS, Figure3D, plot_surfaces
20
+ from .figure_map import FigureMap, MapStyle
20
21
  from .frames import Bounds, Frame, FrameTransformer
21
22
 
22
23
  # Observables
@@ -64,10 +65,12 @@ __all__ = [
64
65
  "Ellipsoid",
65
66
  "FdoaSurface",
66
67
  "Figure3D",
68
+ "FigureMap",
67
69
  "Frame",
68
70
  "FrameTransformer",
69
71
  "ImplicitShape",
70
72
  "LosSurface",
73
+ "MapStyle",
71
74
  "RangeSphere",
72
75
  "Sphere",
73
76
  "TdoaSurface",