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.
- {phased_array_modeling-1.1.0/phased_array_modeling.egg-info → phased_array_modeling-1.3.0}/PKG-INFO +16 -2
- {phased_array_modeling-1.1.0 → phased_array_modeling-1.3.0}/README.md +10 -1
- {phased_array_modeling-1.1.0 → phased_array_modeling-1.3.0}/phased_array/__init__.py +96 -21
- phased_array_modeling-1.3.0/phased_array/beamforming.py +1435 -0
- phased_array_modeling-1.3.0/phased_array/coordinates.py +484 -0
- {phased_array_modeling-1.1.0 → phased_array_modeling-1.3.0}/phased_array/core.py +79 -5
- {phased_array_modeling-1.1.0 → phased_array_modeling-1.3.0}/phased_array/export.py +23 -0
- {phased_array_modeling-1.1.0 → phased_array_modeling-1.3.0}/phased_array/geometry.py +413 -5
- {phased_array_modeling-1.1.0 → phased_array_modeling-1.3.0}/phased_array/impairments.py +377 -0
- phased_array_modeling-1.3.0/phased_array/polarization.py +533 -0
- {phased_array_modeling-1.1.0 → phased_array_modeling-1.3.0}/phased_array/utils.py +22 -0
- {phased_array_modeling-1.1.0 → phased_array_modeling-1.3.0}/phased_array/visualization.py +241 -0
- phased_array_modeling-1.3.0/phased_array/wideband.py +785 -0
- {phased_array_modeling-1.1.0 → phased_array_modeling-1.3.0/phased_array_modeling.egg-info}/PKG-INFO +16 -2
- {phased_array_modeling-1.1.0 → phased_array_modeling-1.3.0}/phased_array_modeling.egg-info/SOURCES.txt +7 -1
- {phased_array_modeling-1.1.0 → phased_array_modeling-1.3.0}/phased_array_modeling.egg-info/requires.txt +5 -0
- {phased_array_modeling-1.1.0 → phased_array_modeling-1.3.0}/pyproject.toml +7 -1
- {phased_array_modeling-1.1.0 → phased_array_modeling-1.3.0}/tests/test_beamforming.py +169 -0
- phased_array_modeling-1.3.0/tests/test_coordinates.py +163 -0
- {phased_array_modeling-1.1.0 → phased_array_modeling-1.3.0}/tests/test_geometry.py +113 -0
- {phased_array_modeling-1.1.0 → phased_array_modeling-1.3.0}/tests/test_impairments.py +112 -0
- phased_array_modeling-1.3.0/tests/test_polarization.py +227 -0
- phased_array_modeling-1.3.0/tests/test_wideband.py +333 -0
- phased_array_modeling-1.1.0/phased_array/beamforming.py +0 -707
- {phased_array_modeling-1.1.0 → phased_array_modeling-1.3.0}/LICENSE +0 -0
- {phased_array_modeling-1.1.0 → phased_array_modeling-1.3.0}/phased_array_modeling.egg-info/dependency_links.txt +0 -0
- {phased_array_modeling-1.1.0 → phased_array_modeling-1.3.0}/phased_array_modeling.egg-info/top_level.txt +0 -0
- {phased_array_modeling-1.1.0 → phased_array_modeling-1.3.0}/setup.cfg +0 -0
- {phased_array_modeling-1.1.0 → phased_array_modeling-1.3.0}/tests/test_core.py +0 -0
- {phased_array_modeling-1.1.0 → phased_array_modeling-1.3.0}/tests/test_export.py +0 -0
{phased_array_modeling-1.1.0/phased_array_modeling.egg-info → phased_array_modeling-1.3.0}/PKG-INFO
RENAMED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: phased-array-modeling
|
|
3
|
-
Version: 1.
|
|
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
|
[](https://opensource.org/licenses/MIT)
|
|
49
54
|
[](https://colab.research.google.com/github/jman4162/Phased-Array-Antenna-Model/blob/main/Phased_Array_Demo.ipynb)
|
|
50
55
|
[](https://phased-array-antenna-model.streamlit.app/)
|
|
56
|
+
[](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
|
-
|
|
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
|
[](https://opensource.org/licenses/MIT)
|
|
8
8
|
[](https://colab.research.google.com/github/jman4162/Phased-Array-Antenna-Model/blob/main/Phased_Array_Demo.ipynb)
|
|
9
9
|
[](https://phased-array-antenna-model.streamlit.app/)
|
|
10
|
+
[](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
|
-
|
|
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.
|
|
35
|
+
__version__ = "1.3.0"
|
|
36
36
|
|
|
37
37
|
# Beamforming functions
|
|
38
|
-
from .beamforming import ( # Amplitude tapers; Null steering; Multiple beams
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
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,
|
|
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,
|
|
63
|
-
|
|
64
|
-
|
|
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,
|
|
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;
|
|
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
|
-
#
|
|
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
|
]
|