phased-array-modeling 1.2.0__tar.gz → 1.3.1__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.1}/PKG-INFO +16 -2
- {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.1}/README.md +10 -1
- {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.1}/phased_array/__init__.py +75 -19
- phased_array_modeling-1.3.1/phased_array/beamforming.py +1436 -0
- phased_array_modeling-1.3.1/phased_array/coordinates.py +484 -0
- {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.1}/phased_array/core.py +79 -5
- {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.1}/phased_array/export.py +23 -0
- {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.1}/phased_array/geometry.py +413 -5
- {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.1}/phased_array/impairments.py +377 -0
- phased_array_modeling-1.3.1/phased_array/polarization.py +533 -0
- {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.1}/phased_array/utils.py +22 -0
- {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.1}/phased_array/visualization.py +27 -0
- {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.1}/phased_array/wideband.py +53 -0
- {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.1/phased_array_modeling.egg-info}/PKG-INFO +16 -2
- {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.1}/phased_array_modeling.egg-info/SOURCES.txt +4 -0
- {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.1}/phased_array_modeling.egg-info/requires.txt +5 -0
- {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.1}/pyproject.toml +7 -1
- {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.1}/tests/test_beamforming.py +169 -0
- phased_array_modeling-1.3.1/tests/test_coordinates.py +163 -0
- {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.1}/tests/test_geometry.py +113 -0
- {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.1}/tests/test_impairments.py +112 -0
- phased_array_modeling-1.3.1/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.1}/LICENSE +0 -0
- {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.1}/phased_array_modeling.egg-info/dependency_links.txt +0 -0
- {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.1}/phased_array_modeling.egg-info/top_level.txt +0 -0
- {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.1}/setup.cfg +0 -0
- {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.1}/tests/test_core.py +0 -0
- {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.1}/tests/test_export.py +0 -0
- {phased_array_modeling-1.2.0 → phased_array_modeling-1.3.1}/tests/test_wideband.py +0 -0
{phased_array_modeling-1.2.0/phased_array_modeling.egg-info → phased_array_modeling-1.3.1}/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.1
|
|
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,19 +32,26 @@ 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.1"
|
|
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
|
-
|
|
47
|
+
null_steering_lcmv, null_steering_projection, plot_adapted_pattern,
|
|
48
|
+
quadratic_phase_spoil, spoiled_beam_gain, spoiled_beamwidth,
|
|
49
|
+
taylor_taper_1d, taylor_taper_2d)
|
|
50
|
+
# Coordinate transformation functions
|
|
51
|
+
from .coordinates import (antenna_to_cone, antenna_to_radar, cone_to_antenna,
|
|
52
|
+
radar_to_antenna, rotate_pattern,
|
|
53
|
+
rotation_matrix_pitch, rotation_matrix_roll,
|
|
54
|
+
rotation_matrix_yaw)
|
|
48
55
|
# Core computation functions
|
|
49
56
|
from .core import (array_factor_fft, array_factor_uv, array_factor_vectorized,
|
|
50
57
|
compute_directivity, compute_full_pattern,
|
|
@@ -59,21 +66,29 @@ from .export import (export_array_config_json, export_coupling_matrix_csv,
|
|
|
59
66
|
export_weights_csv, load_pattern_npz)
|
|
60
67
|
# Geometry classes and functions
|
|
61
68
|
from .geometry import (ArrayGeometry, SubarrayArchitecture,
|
|
62
|
-
array_factor_conformal,
|
|
63
|
-
|
|
64
|
-
|
|
69
|
+
array_factor_conformal, compute_overlapped_pattern,
|
|
70
|
+
compute_subarray_weights, create_circular_array,
|
|
71
|
+
create_concentric_rings_array, create_cylindrical_array,
|
|
72
|
+
create_elliptical_array, create_overlapped_subarrays,
|
|
65
73
|
create_rectangular_array, create_rectangular_subarrays,
|
|
66
74
|
create_spherical_array, create_triangular_array,
|
|
67
|
-
thin_array_density_tapered,
|
|
75
|
+
overlapped_subarray_weights, thin_array_density_tapered,
|
|
68
76
|
thin_array_genetic_algorithm, thin_array_random)
|
|
69
77
|
# Impairment models
|
|
70
|
-
from .impairments import ( # Mutual coupling; Phase quantization; Element failures; Scan blindness
|
|
71
|
-
active_element_pattern,
|
|
78
|
+
from .impairments import ( # Mutual coupling; Phase quantization; Element failures; Scan blindness; Active impedance
|
|
79
|
+
active_element_pattern, active_impedance, active_reflection_coefficient,
|
|
80
|
+
active_scan_impedance_matrix, analyze_graceful_degradation,
|
|
72
81
|
analyze_quantization_effect, apply_mutual_coupling, apply_scan_blindness,
|
|
73
|
-
compute_scan_loss, mutual_coupling_matrix_measured,
|
|
82
|
+
compute_scan_loss, mismatch_loss, mutual_coupling_matrix_measured,
|
|
74
83
|
mutual_coupling_matrix_theoretical, quantization_rms_error,
|
|
75
84
|
quantization_sidelobe_increase, quantize_phase, scan_blindness_model,
|
|
76
|
-
simulate_element_failures, surface_wave_scan_angle)
|
|
85
|
+
simulate_element_failures, surface_wave_scan_angle, vswr_vs_scan)
|
|
86
|
+
# Polarization functions
|
|
87
|
+
from .polarization import (axial_ratio, co_pol_pattern,
|
|
88
|
+
cross_pol_discrimination, cross_pol_pattern,
|
|
89
|
+
jones_vector, ludwig3_decomposition,
|
|
90
|
+
polarization_loss_factor, stokes_parameters,
|
|
91
|
+
tilt_angle)
|
|
77
92
|
# Utility functions
|
|
78
93
|
from .utils import (azel_to_thetaphi, create_theta_phi_grid, create_uv_grid,
|
|
79
94
|
db_to_linear, deg2rad, frequency_to_k,
|
|
@@ -143,7 +158,11 @@ __all__ = [
|
|
|
143
158
|
"create_rectangular_subarrays",
|
|
144
159
|
"compute_subarray_weights",
|
|
145
160
|
"array_factor_conformal",
|
|
146
|
-
#
|
|
161
|
+
# Geometry - Overlapped subarrays
|
|
162
|
+
"create_overlapped_subarrays",
|
|
163
|
+
"overlapped_subarray_weights",
|
|
164
|
+
"compute_overlapped_pattern",
|
|
165
|
+
# Beamforming - Amplitude tapers
|
|
147
166
|
"taylor_taper_1d",
|
|
148
167
|
"taylor_taper_2d",
|
|
149
168
|
"chebyshev_taper_1d",
|
|
@@ -161,13 +180,25 @@ __all__ = [
|
|
|
161
180
|
"compute_taper_efficiency",
|
|
162
181
|
"compute_taper_directivity_loss",
|
|
163
182
|
"apply_taper_to_geometry",
|
|
183
|
+
# Beamforming - Null steering
|
|
164
184
|
"null_steering_projection",
|
|
165
185
|
"null_steering_lcmv",
|
|
166
186
|
"compute_null_depth",
|
|
187
|
+
# Beamforming - Multi-beam
|
|
167
188
|
"multi_beam_weights_superposition",
|
|
168
189
|
"multi_beam_weights_orthogonal",
|
|
169
190
|
"compute_beam_isolation",
|
|
170
191
|
"monopulse_weights",
|
|
192
|
+
# Beamforming - Beam spoiling
|
|
193
|
+
"quadratic_phase_spoil",
|
|
194
|
+
"compute_spoil_factor",
|
|
195
|
+
"spoiled_beam_gain",
|
|
196
|
+
"spoiled_beamwidth",
|
|
197
|
+
# Beamforming - Adaptive (SMI/GSC)
|
|
198
|
+
"adaptive_weights_smi",
|
|
199
|
+
"adaptive_weights_gsc",
|
|
200
|
+
"compute_sinr_improvement",
|
|
201
|
+
"plot_adapted_pattern",
|
|
171
202
|
# Impairments
|
|
172
203
|
"mutual_coupling_matrix_theoretical",
|
|
173
204
|
"mutual_coupling_matrix_measured",
|
|
@@ -183,6 +214,12 @@ __all__ = [
|
|
|
183
214
|
"scan_blindness_model",
|
|
184
215
|
"apply_scan_blindness",
|
|
185
216
|
"compute_scan_loss",
|
|
217
|
+
# Impairments - Active impedance/VSWR
|
|
218
|
+
"active_reflection_coefficient",
|
|
219
|
+
"active_impedance",
|
|
220
|
+
"vswr_vs_scan",
|
|
221
|
+
"mismatch_loss",
|
|
222
|
+
"active_scan_impedance_matrix",
|
|
186
223
|
# Visualization
|
|
187
224
|
"plot_pattern_2d",
|
|
188
225
|
"plot_pattern_polar",
|
|
@@ -222,4 +259,23 @@ __all__ = [
|
|
|
222
259
|
"plot_pattern_vs_frequency",
|
|
223
260
|
"plot_pattern_vs_frequency_plotly",
|
|
224
261
|
"plot_subarray_delays",
|
|
262
|
+
# Polarization
|
|
263
|
+
"jones_vector",
|
|
264
|
+
"stokes_parameters",
|
|
265
|
+
"axial_ratio",
|
|
266
|
+
"tilt_angle",
|
|
267
|
+
"cross_pol_discrimination",
|
|
268
|
+
"polarization_loss_factor",
|
|
269
|
+
"co_pol_pattern",
|
|
270
|
+
"cross_pol_pattern",
|
|
271
|
+
"ludwig3_decomposition",
|
|
272
|
+
# Coordinates
|
|
273
|
+
"antenna_to_radar",
|
|
274
|
+
"radar_to_antenna",
|
|
275
|
+
"antenna_to_cone",
|
|
276
|
+
"cone_to_antenna",
|
|
277
|
+
"rotation_matrix_roll",
|
|
278
|
+
"rotation_matrix_pitch",
|
|
279
|
+
"rotation_matrix_yaw",
|
|
280
|
+
"rotate_pattern",
|
|
225
281
|
]
|