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.
- {phased_array_modeling-1.2.0/phased_array_modeling.egg-info → phased_array_modeling-1.3.0}/PKG-INFO +16 -2
- {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.0}/README.md +10 -1
- {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.0}/phased_array/__init__.py +71 -18
- 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.2.0 → phased_array_modeling-1.3.0}/phased_array/core.py +79 -5
- {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.0}/phased_array/export.py +23 -0
- {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.0}/phased_array/geometry.py +413 -5
- {phased_array_modeling-1.2.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.2.0 → phased_array_modeling-1.3.0}/phased_array/utils.py +22 -0
- {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.0}/phased_array/visualization.py +27 -0
- {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.0}/phased_array/wideband.py +53 -0
- {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.0/phased_array_modeling.egg-info}/PKG-INFO +16 -2
- {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.0}/phased_array_modeling.egg-info/SOURCES.txt +4 -0
- {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.0}/phased_array_modeling.egg-info/requires.txt +5 -0
- {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.0}/pyproject.toml +7 -1
- {phased_array_modeling-1.2.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.2.0 → phased_array_modeling-1.3.0}/tests/test_geometry.py +113 -0
- {phased_array_modeling-1.2.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.2.0/phased_array/beamforming.py +0 -707
- {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.0}/LICENSE +0 -0
- {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.0}/phased_array_modeling.egg-info/dependency_links.txt +0 -0
- {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.0}/phased_array_modeling.egg-info/top_level.txt +0 -0
- {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.0}/setup.cfg +0 -0
- {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.0}/tests/test_core.py +0 -0
- {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.0}/tests/test_export.py +0 -0
- {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.0}/tests/test_wideband.py +0 -0
{phased_array_modeling-1.2.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,
|
|
@@ -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
|
-
#
|
|
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
|
]
|