phased-array-modeling 1.2.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.2.0/phased_array_modeling.egg-info → phased_array_modeling-1.3.0}/PKG-INFO +16 -2
  2. {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.0}/README.md +10 -1
  3. {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.0}/phased_array/__init__.py +71 -18
  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.2.0 → phased_array_modeling-1.3.0}/phased_array/core.py +79 -5
  7. {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.0}/phased_array/export.py +23 -0
  8. {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.0}/phased_array/geometry.py +413 -5
  9. {phased_array_modeling-1.2.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.2.0 → phased_array_modeling-1.3.0}/phased_array/utils.py +22 -0
  12. {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.0}/phased_array/visualization.py +27 -0
  13. {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.0}/phased_array/wideband.py +53 -0
  14. {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.0/phased_array_modeling.egg-info}/PKG-INFO +16 -2
  15. {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.0}/phased_array_modeling.egg-info/SOURCES.txt +4 -0
  16. {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.0}/phased_array_modeling.egg-info/requires.txt +5 -0
  17. {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.0}/pyproject.toml +7 -1
  18. {phased_array_modeling-1.2.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.2.0 → phased_array_modeling-1.3.0}/tests/test_geometry.py +113 -0
  21. {phased_array_modeling-1.2.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.2.0/phased_array/beamforming.py +0 -707
  24. {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.0}/LICENSE +0 -0
  25. {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.0}/phased_array_modeling.egg-info/dependency_links.txt +0 -0
  26. {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.0}/phased_array_modeling.egg-info/top_level.txt +0 -0
  27. {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.0}/setup.cfg +0 -0
  28. {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.0}/tests/test_core.py +0 -0
  29. {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.0}/tests/test_export.py +0 -0
  30. {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.0}/tests/test_wideband.py +0 -0
@@ -1,10 +1,11 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: phased-array-modeling
3
- Version: 1.2.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.2.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,
@@ -89,6 +93,14 @@ from .visualization import ( # 2D matplotlib plots; UV-space; 3D Plotly plots;
89
93
  plot_pattern_contour, plot_pattern_polar, plot_pattern_uv_plotly,
90
94
  plot_pattern_uv_space, plot_pattern_vs_frequency,
91
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)
92
104
  # Wideband / TTD functions
93
105
  from .wideband import (analyze_instantaneous_bandwidth, compare_steering_modes,
94
106
  compute_beam_squint, compute_pattern_vs_frequency,
@@ -143,7 +155,11 @@ __all__ = [
143
155
  "create_rectangular_subarrays",
144
156
  "compute_subarray_weights",
145
157
  "array_factor_conformal",
146
- # Beamforming
158
+ # Geometry - Overlapped subarrays
159
+ "create_overlapped_subarrays",
160
+ "overlapped_subarray_weights",
161
+ "compute_overlapped_pattern",
162
+ # Beamforming - Amplitude tapers
147
163
  "taylor_taper_1d",
148
164
  "taylor_taper_2d",
149
165
  "chebyshev_taper_1d",
@@ -161,13 +177,25 @@ __all__ = [
161
177
  "compute_taper_efficiency",
162
178
  "compute_taper_directivity_loss",
163
179
  "apply_taper_to_geometry",
180
+ # Beamforming - Null steering
164
181
  "null_steering_projection",
165
182
  "null_steering_lcmv",
166
183
  "compute_null_depth",
184
+ # Beamforming - Multi-beam
167
185
  "multi_beam_weights_superposition",
168
186
  "multi_beam_weights_orthogonal",
169
187
  "compute_beam_isolation",
170
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",
171
199
  # Impairments
172
200
  "mutual_coupling_matrix_theoretical",
173
201
  "mutual_coupling_matrix_measured",
@@ -183,6 +211,12 @@ __all__ = [
183
211
  "scan_blindness_model",
184
212
  "apply_scan_blindness",
185
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",
186
220
  # Visualization
187
221
  "plot_pattern_2d",
188
222
  "plot_pattern_polar",
@@ -222,4 +256,23 @@ __all__ = [
222
256
  "plot_pattern_vs_frequency",
223
257
  "plot_pattern_vs_frequency_plotly",
224
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",
225
278
  ]