phased-array-modeling 1.1.0__tar.gz → 1.3.0__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 (30) hide show
  1. {phased_array_modeling-1.1.0/phased_array_modeling.egg-info → phased_array_modeling-1.3.0}/PKG-INFO +16 -2
  2. {phased_array_modeling-1.1.0 → phased_array_modeling-1.3.0}/README.md +10 -1
  3. {phased_array_modeling-1.1.0 → phased_array_modeling-1.3.0}/phased_array/__init__.py +96 -21
  4. phased_array_modeling-1.3.0/phased_array/beamforming.py +1435 -0
  5. phased_array_modeling-1.3.0/phased_array/coordinates.py +484 -0
  6. {phased_array_modeling-1.1.0 → phased_array_modeling-1.3.0}/phased_array/core.py +79 -5
  7. {phased_array_modeling-1.1.0 → phased_array_modeling-1.3.0}/phased_array/export.py +23 -0
  8. {phased_array_modeling-1.1.0 → phased_array_modeling-1.3.0}/phased_array/geometry.py +413 -5
  9. {phased_array_modeling-1.1.0 → phased_array_modeling-1.3.0}/phased_array/impairments.py +377 -0
  10. phased_array_modeling-1.3.0/phased_array/polarization.py +533 -0
  11. {phased_array_modeling-1.1.0 → phased_array_modeling-1.3.0}/phased_array/utils.py +22 -0
  12. {phased_array_modeling-1.1.0 → phased_array_modeling-1.3.0}/phased_array/visualization.py +241 -0
  13. phased_array_modeling-1.3.0/phased_array/wideband.py +785 -0
  14. {phased_array_modeling-1.1.0 → phased_array_modeling-1.3.0/phased_array_modeling.egg-info}/PKG-INFO +16 -2
  15. {phased_array_modeling-1.1.0 → phased_array_modeling-1.3.0}/phased_array_modeling.egg-info/SOURCES.txt +7 -1
  16. {phased_array_modeling-1.1.0 → phased_array_modeling-1.3.0}/phased_array_modeling.egg-info/requires.txt +5 -0
  17. {phased_array_modeling-1.1.0 → phased_array_modeling-1.3.0}/pyproject.toml +7 -1
  18. {phased_array_modeling-1.1.0 → phased_array_modeling-1.3.0}/tests/test_beamforming.py +169 -0
  19. phased_array_modeling-1.3.0/tests/test_coordinates.py +163 -0
  20. {phased_array_modeling-1.1.0 → phased_array_modeling-1.3.0}/tests/test_geometry.py +113 -0
  21. {phased_array_modeling-1.1.0 → phased_array_modeling-1.3.0}/tests/test_impairments.py +112 -0
  22. phased_array_modeling-1.3.0/tests/test_polarization.py +227 -0
  23. phased_array_modeling-1.3.0/tests/test_wideband.py +333 -0
  24. phased_array_modeling-1.1.0/phased_array/beamforming.py +0 -707
  25. {phased_array_modeling-1.1.0 → phased_array_modeling-1.3.0}/LICENSE +0 -0
  26. {phased_array_modeling-1.1.0 → phased_array_modeling-1.3.0}/phased_array_modeling.egg-info/dependency_links.txt +0 -0
  27. {phased_array_modeling-1.1.0 → phased_array_modeling-1.3.0}/phased_array_modeling.egg-info/top_level.txt +0 -0
  28. {phased_array_modeling-1.1.0 → phased_array_modeling-1.3.0}/setup.cfg +0 -0
  29. {phased_array_modeling-1.1.0 → phased_array_modeling-1.3.0}/tests/test_core.py +0 -0
  30. {phased_array_modeling-1.1.0 → phased_array_modeling-1.3.0}/tests/test_export.py +0 -0
@@ -1,10 +1,11 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: phased-array-modeling
3
- Version: 1.1.0
3
+ Version: 1.3.0
4
4
  Summary: Comprehensive Python library for phased array antenna modeling and visualization
5
5
  Author-email: John Hodge <jah70@vt.edu>
6
6
  License: MIT
7
7
  Project-URL: Homepage, https://github.com/jman4162/Phased-Array-Antenna-Model
8
+ Project-URL: Documentation, https://phased-array-antenna-model.readthedocs.io/
8
9
  Project-URL: Repository, https://github.com/jman4162/Phased-Array-Antenna-Model
9
10
  Project-URL: Issues, https://github.com/jman4162/Phased-Array-Antenna-Model/issues
10
11
  Keywords: phased array,antenna,beamforming,radar,electromagnetics,array factor,radiation pattern
@@ -37,6 +38,10 @@ Requires-Dist: pytest>=7.0.0; extra == "dev"
37
38
  Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
38
39
  Requires-Dist: plotly>=5.0.0; extra == "dev"
39
40
  Requires-Dist: seaborn>=0.11.0; extra == "dev"
41
+ Provides-Extra: docs
42
+ Requires-Dist: sphinx>=7.0.0; extra == "docs"
43
+ Requires-Dist: pydata-sphinx-theme>=0.14.0; extra == "docs"
44
+ Requires-Dist: sphinx-copybutton>=0.5.0; extra == "docs"
40
45
  Dynamic: license-file
41
46
 
42
47
  # Phased Array Antenna Modeling
@@ -48,6 +53,7 @@ Dynamic: license-file
48
53
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
49
54
  [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/jman4162/Phased-Array-Antenna-Model/blob/main/Phased_Array_Demo.ipynb)
50
55
  [![Streamlit App](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://phased-array-antenna-model.streamlit.app/)
56
+ [![Documentation](https://readthedocs.org/projects/phased-array-antenna-model/badge/?version=latest)](https://phased-array-antenna-model.readthedocs.io/en/latest/)
51
57
 
52
58
  A comprehensive Python library for computing and visualizing phased array antenna radiation patterns. Features **125x faster** vectorized computations, multiple array geometries, advanced beamforming, and interactive 3D visualization.
53
59
 
@@ -198,7 +204,15 @@ fig.show()
198
204
 
199
205
  ## Documentation
200
206
 
201
- For comprehensive documentation, see the [demo notebook](Phased_Array_Demo.ipynb) which covers:
207
+ **[Full Documentation on ReadTheDocs](https://phased-array-antenna-model.readthedocs.io/)** includes:
208
+
209
+ - **Getting Started**: Installation, quickstart guide, core concepts
210
+ - **User Guides**: Detailed tutorials for geometry, beamforming, impairments, wideband, and visualization
211
+ - **API Reference**: Complete reference for all functions with examples
212
+ - **Cookbook**: Practical recipes for hardware engineers, systems engineers, and researchers
213
+ - **Theory Background**: Mathematical foundations for array analysis
214
+
215
+ For hands-on learning, see the [demo notebook](Phased_Array_Demo.ipynb) which covers:
202
216
 
203
217
  1. Basic array factor computation
204
218
  2. Beam steering
@@ -7,6 +7,7 @@
7
7
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
8
8
  [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/jman4162/Phased-Array-Antenna-Model/blob/main/Phased_Array_Demo.ipynb)
9
9
  [![Streamlit App](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://phased-array-antenna-model.streamlit.app/)
10
+ [![Documentation](https://readthedocs.org/projects/phased-array-antenna-model/badge/?version=latest)](https://phased-array-antenna-model.readthedocs.io/en/latest/)
10
11
 
11
12
  A comprehensive Python library for computing and visualizing phased array antenna radiation patterns. Features **125x faster** vectorized computations, multiple array geometries, advanced beamforming, and interactive 3D visualization.
12
13
 
@@ -157,7 +158,15 @@ fig.show()
157
158
 
158
159
  ## Documentation
159
160
 
160
- For comprehensive documentation, see the [demo notebook](Phased_Array_Demo.ipynb) which covers:
161
+ **[Full Documentation on ReadTheDocs](https://phased-array-antenna-model.readthedocs.io/)** includes:
162
+
163
+ - **Getting Started**: Installation, quickstart guide, core concepts
164
+ - **User Guides**: Detailed tutorials for geometry, beamforming, impairments, wideband, and visualization
165
+ - **API Reference**: Complete reference for all functions with examples
166
+ - **Cookbook**: Practical recipes for hardware engineers, systems engineers, and researchers
167
+ - **Theory Background**: Mathematical foundations for array analysis
168
+
169
+ For hands-on learning, see the [demo notebook](Phased_Array_Demo.ipynb) which covers:
161
170
 
162
171
  1. Basic array factor computation
163
172
  2. Beam steering
@@ -32,18 +32,20 @@ Example
32
32
  >>> theta, phi, pattern_dB = pa.compute_full_pattern(geom.x, geom.y, weights, k)
33
33
  """
34
34
 
35
- __version__ = "1.1.0"
35
+ __version__ = "1.3.0"
36
36
 
37
37
  # Beamforming functions
38
- from .beamforming import ( # Amplitude tapers; Null steering; Multiple beams
39
- apply_taper_to_geometry, chebyshev_taper_1d, chebyshev_taper_2d,
40
- compute_beam_isolation, compute_null_depth, compute_taper_directivity_loss,
41
- compute_taper_efficiency, cosine_on_pedestal_taper_1d,
42
- cosine_on_pedestal_taper_2d, cosine_taper_1d, cosine_taper_2d,
43
- gaussian_taper_1d, gaussian_taper_2d, hamming_taper_1d, hamming_taper_2d,
44
- hanning_taper_1d, hanning_taper_2d, monopulse_weights,
38
+ from .beamforming import ( # Amplitude tapers; Null steering; Multiple beams; Beam spoiling; Adaptive
39
+ adaptive_weights_gsc, adaptive_weights_smi, apply_taper_to_geometry,
40
+ chebyshev_taper_1d, chebyshev_taper_2d, compute_beam_isolation,
41
+ compute_null_depth, compute_sinr_improvement, compute_spoil_factor,
42
+ compute_taper_directivity_loss, compute_taper_efficiency,
43
+ cosine_on_pedestal_taper_1d, cosine_on_pedestal_taper_2d, cosine_taper_1d,
44
+ cosine_taper_2d, gaussian_taper_1d, gaussian_taper_2d, hamming_taper_1d,
45
+ hamming_taper_2d, hanning_taper_1d, hanning_taper_2d, monopulse_weights,
45
46
  multi_beam_weights_orthogonal, multi_beam_weights_superposition,
46
- null_steering_lcmv, null_steering_projection, taylor_taper_1d,
47
+ null_steering_lcmv, null_steering_projection, plot_adapted_pattern,
48
+ quadratic_phase_spoil, spoiled_beam_gain, spoiled_beamwidth, taylor_taper_1d,
47
49
  taylor_taper_2d)
48
50
  # Core computation functions
49
51
  from .core import (array_factor_fft, array_factor_uv, array_factor_vectorized,
@@ -59,21 +61,23 @@ from .export import (export_array_config_json, export_coupling_matrix_csv,
59
61
  export_weights_csv, load_pattern_npz)
60
62
  # Geometry classes and functions
61
63
  from .geometry import (ArrayGeometry, SubarrayArchitecture,
62
- array_factor_conformal, compute_subarray_weights,
63
- create_circular_array, create_concentric_rings_array,
64
- create_cylindrical_array, create_elliptical_array,
64
+ array_factor_conformal, compute_overlapped_pattern,
65
+ compute_subarray_weights, create_circular_array,
66
+ create_concentric_rings_array, create_cylindrical_array,
67
+ create_elliptical_array, create_overlapped_subarrays,
65
68
  create_rectangular_array, create_rectangular_subarrays,
66
69
  create_spherical_array, create_triangular_array,
67
- thin_array_density_tapered,
70
+ overlapped_subarray_weights, thin_array_density_tapered,
68
71
  thin_array_genetic_algorithm, thin_array_random)
69
72
  # Impairment models
70
- from .impairments import ( # Mutual coupling; Phase quantization; Element failures; Scan blindness
71
- active_element_pattern, analyze_graceful_degradation,
73
+ from .impairments import ( # Mutual coupling; Phase quantization; Element failures; Scan blindness; Active impedance
74
+ active_element_pattern, active_impedance, active_reflection_coefficient,
75
+ active_scan_impedance_matrix, analyze_graceful_degradation,
72
76
  analyze_quantization_effect, apply_mutual_coupling, apply_scan_blindness,
73
- compute_scan_loss, mutual_coupling_matrix_measured,
77
+ compute_scan_loss, mismatch_loss, mutual_coupling_matrix_measured,
74
78
  mutual_coupling_matrix_theoretical, quantization_rms_error,
75
79
  quantization_sidelobe_increase, quantize_phase, scan_blindness_model,
76
- simulate_element_failures, surface_wave_scan_angle)
80
+ simulate_element_failures, surface_wave_scan_angle, vswr_vs_scan)
77
81
  # Utility functions
78
82
  from .utils import (azel_to_thetaphi, create_theta_phi_grid, create_uv_grid,
79
83
  db_to_linear, deg2rad, frequency_to_k,
@@ -81,13 +85,28 @@ from .utils import (azel_to_thetaphi, create_theta_phi_grid, create_uv_grid,
81
85
  normalize_pattern, rad2deg, theta_phi_to_uv,
82
86
  thetaphi_to_azel, uv_to_theta_phi, wavelength_to_k)
83
87
  # Visualization functions
84
- from .visualization import ( # 2D matplotlib plots; UV-space; 3D Plotly plots; Utilities
88
+ from .visualization import ( # 2D matplotlib plots; UV-space; 3D Plotly plots; Wideband
85
89
  compute_pattern_uv_space, create_pattern_animation_plotly,
86
- plot_array_geometry, plot_array_geometry_3d_plotly,
90
+ plot_array_geometry, plot_array_geometry_3d_plotly, plot_beam_squint,
87
91
  plot_comparison_patterns, plot_pattern_2d,
88
92
  plot_pattern_3d_cartesian_plotly, plot_pattern_3d_plotly,
89
93
  plot_pattern_contour, plot_pattern_polar, plot_pattern_uv_plotly,
90
- plot_pattern_uv_space)
94
+ plot_pattern_uv_space, plot_pattern_vs_frequency,
95
+ plot_pattern_vs_frequency_plotly, plot_subarray_delays)
96
+ # Polarization functions
97
+ from .polarization import (axial_ratio, co_pol_pattern, cross_pol_discrimination,
98
+ cross_pol_pattern, jones_vector, ludwig3_decomposition,
99
+ polarization_loss_factor, stokes_parameters, tilt_angle)
100
+ # Coordinate transformation functions
101
+ from .coordinates import (antenna_to_cone, antenna_to_radar, cone_to_antenna,
102
+ radar_to_antenna, rotate_pattern, rotation_matrix_pitch,
103
+ rotation_matrix_roll, rotation_matrix_yaw)
104
+ # Wideband / TTD functions
105
+ from .wideband import (analyze_instantaneous_bandwidth, compare_steering_modes,
106
+ compute_beam_squint, compute_pattern_vs_frequency,
107
+ compute_subarray_delays_ttd,
108
+ compute_subarray_weights_hybrid, steering_delays_ttd,
109
+ steering_vector_hybrid, steering_vector_ttd)
91
110
 
92
111
  __all__ = [
93
112
  # Version
@@ -136,7 +155,11 @@ __all__ = [
136
155
  "create_rectangular_subarrays",
137
156
  "compute_subarray_weights",
138
157
  "array_factor_conformal",
139
- # Beamforming
158
+ # Geometry - Overlapped subarrays
159
+ "create_overlapped_subarrays",
160
+ "overlapped_subarray_weights",
161
+ "compute_overlapped_pattern",
162
+ # Beamforming - Amplitude tapers
140
163
  "taylor_taper_1d",
141
164
  "taylor_taper_2d",
142
165
  "chebyshev_taper_1d",
@@ -154,13 +177,25 @@ __all__ = [
154
177
  "compute_taper_efficiency",
155
178
  "compute_taper_directivity_loss",
156
179
  "apply_taper_to_geometry",
180
+ # Beamforming - Null steering
157
181
  "null_steering_projection",
158
182
  "null_steering_lcmv",
159
183
  "compute_null_depth",
184
+ # Beamforming - Multi-beam
160
185
  "multi_beam_weights_superposition",
161
186
  "multi_beam_weights_orthogonal",
162
187
  "compute_beam_isolation",
163
188
  "monopulse_weights",
189
+ # Beamforming - Beam spoiling
190
+ "quadratic_phase_spoil",
191
+ "compute_spoil_factor",
192
+ "spoiled_beam_gain",
193
+ "spoiled_beamwidth",
194
+ # Beamforming - Adaptive (SMI/GSC)
195
+ "adaptive_weights_smi",
196
+ "adaptive_weights_gsc",
197
+ "compute_sinr_improvement",
198
+ "plot_adapted_pattern",
164
199
  # Impairments
165
200
  "mutual_coupling_matrix_theoretical",
166
201
  "mutual_coupling_matrix_measured",
@@ -176,6 +211,12 @@ __all__ = [
176
211
  "scan_blindness_model",
177
212
  "apply_scan_blindness",
178
213
  "compute_scan_loss",
214
+ # Impairments - Active impedance/VSWR
215
+ "active_reflection_coefficient",
216
+ "active_impedance",
217
+ "vswr_vs_scan",
218
+ "mismatch_loss",
219
+ "active_scan_impedance_matrix",
179
220
  # Visualization
180
221
  "plot_pattern_2d",
181
222
  "plot_pattern_polar",
@@ -200,4 +241,38 @@ __all__ = [
200
241
  "load_pattern_npz",
201
242
  "export_coupling_matrix_csv",
202
243
  "export_summary_report",
244
+ # Wideband / TTD
245
+ "steering_vector_ttd",
246
+ "steering_delays_ttd",
247
+ "steering_vector_hybrid",
248
+ "compute_subarray_delays_ttd",
249
+ "compute_beam_squint",
250
+ "analyze_instantaneous_bandwidth",
251
+ "compute_pattern_vs_frequency",
252
+ "compute_subarray_weights_hybrid",
253
+ "compare_steering_modes",
254
+ # Wideband visualization
255
+ "plot_beam_squint",
256
+ "plot_pattern_vs_frequency",
257
+ "plot_pattern_vs_frequency_plotly",
258
+ "plot_subarray_delays",
259
+ # Polarization
260
+ "jones_vector",
261
+ "stokes_parameters",
262
+ "axial_ratio",
263
+ "tilt_angle",
264
+ "cross_pol_discrimination",
265
+ "polarization_loss_factor",
266
+ "co_pol_pattern",
267
+ "cross_pol_pattern",
268
+ "ludwig3_decomposition",
269
+ # Coordinates
270
+ "antenna_to_radar",
271
+ "radar_to_antenna",
272
+ "antenna_to_cone",
273
+ "cone_to_antenna",
274
+ "rotation_matrix_roll",
275
+ "rotation_matrix_pitch",
276
+ "rotation_matrix_yaw",
277
+ "rotate_pattern",
203
278
  ]