phased-array-modeling 1.0.0__tar.gz → 1.1.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 (23) hide show
  1. {phased_array_modeling-1.0.0/phased_array_modeling.egg-info → phased_array_modeling-1.1.0}/PKG-INFO +20 -4
  2. {phased_array_modeling-1.0.0 → phased_array_modeling-1.1.0}/README.md +19 -3
  3. {phased_array_modeling-1.0.0 → phased_array_modeling-1.1.0}/phased_array/__init__.py +62 -122
  4. {phased_array_modeling-1.0.0 → phased_array_modeling-1.1.0}/phased_array/beamforming.py +4 -2
  5. {phased_array_modeling-1.0.0 → phased_array_modeling-1.1.0}/phased_array/core.py +4 -2
  6. phased_array_modeling-1.1.0/phased_array/export.py +680 -0
  7. {phased_array_modeling-1.0.0 → phased_array_modeling-1.1.0}/phased_array/geometry.py +4 -3
  8. {phased_array_modeling-1.0.0 → phased_array_modeling-1.1.0}/phased_array/impairments.py +3 -2
  9. {phased_array_modeling-1.0.0 → phased_array_modeling-1.1.0}/phased_array/utils.py +2 -1
  10. {phased_array_modeling-1.0.0 → phased_array_modeling-1.1.0}/phased_array/visualization.py +5 -4
  11. {phased_array_modeling-1.0.0 → phased_array_modeling-1.1.0/phased_array_modeling.egg-info}/PKG-INFO +20 -4
  12. {phased_array_modeling-1.0.0 → phased_array_modeling-1.1.0}/phased_array_modeling.egg-info/SOURCES.txt +2 -0
  13. {phased_array_modeling-1.0.0 → phased_array_modeling-1.1.0}/pyproject.toml +1 -1
  14. phased_array_modeling-1.1.0/tests/test_export.py +285 -0
  15. {phased_array_modeling-1.0.0 → phased_array_modeling-1.1.0}/LICENSE +0 -0
  16. {phased_array_modeling-1.0.0 → phased_array_modeling-1.1.0}/phased_array_modeling.egg-info/dependency_links.txt +0 -0
  17. {phased_array_modeling-1.0.0 → phased_array_modeling-1.1.0}/phased_array_modeling.egg-info/requires.txt +0 -0
  18. {phased_array_modeling-1.0.0 → phased_array_modeling-1.1.0}/phased_array_modeling.egg-info/top_level.txt +0 -0
  19. {phased_array_modeling-1.0.0 → phased_array_modeling-1.1.0}/setup.cfg +0 -0
  20. {phased_array_modeling-1.0.0 → phased_array_modeling-1.1.0}/tests/test_beamforming.py +0 -0
  21. {phased_array_modeling-1.0.0 → phased_array_modeling-1.1.0}/tests/test_core.py +0 -0
  22. {phased_array_modeling-1.0.0 → phased_array_modeling-1.1.0}/tests/test_geometry.py +0 -0
  23. {phased_array_modeling-1.0.0 → phased_array_modeling-1.1.0}/tests/test_impairments.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: phased-array-modeling
3
- Version: 1.0.0
3
+ Version: 1.1.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
@@ -42,9 +42,12 @@ Dynamic: license-file
42
42
  # Phased Array Antenna Modeling
43
43
 
44
44
  [![CI](https://github.com/jman4162/Phased-Array-Antenna-Model/actions/workflows/ci.yml/badge.svg)](https://github.com/jman4162/Phased-Array-Antenna-Model/actions/workflows/ci.yml)
45
+ [![PyPI version](https://img.shields.io/pypi/v/phased-array-modeling.svg)](https://pypi.org/project/phased-array-modeling/)
46
+ [![PyPI downloads](https://img.shields.io/pypi/dm/phased-array-modeling.svg)](https://pypi.org/project/phased-array-modeling/)
45
47
  [![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)
46
48
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
47
49
  [![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
+ [![Streamlit App](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://phased-array-antenna-model.streamlit.app/)
48
51
 
49
52
  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.
50
53
 
@@ -56,23 +59,36 @@ A comprehensive Python library for computing and visualizing phased array antenn
56
59
  - **Realistic Impairments**: Mutual coupling, phase quantization, element failures, scan blindness
57
60
  - **Visualization**: 2D matplotlib, interactive 3D Plotly, UV-space representation
58
61
  - **Subarray Support**: Subarray-level beamforming with quantized phase shifters
62
+ - **Data Export**: CSV, JSON, and NumPy formats for patterns, weights, and geometry
63
+
64
+ ## Try it Online
65
+
66
+ **[Launch Interactive Web App](https://phased-array-antenna-model.streamlit.app/)** - No installation required!
67
+
68
+ The Streamlit app provides an interactive interface for:
69
+ - Designing array geometries (rectangular, triangular, circular, concentric rings, elliptical)
70
+ - Beam steering with real-time pattern visualization
71
+ - Amplitude tapering with sidelobe comparison
72
+ - Impairment simulation (phase quantization, element failures, mutual coupling)
73
+ - UV-space pattern analysis
74
+ - Export data to CSV for further analysis
59
75
 
60
76
  ## Installation
61
77
 
62
78
  ### From GitHub (recommended)
63
79
 
64
80
  ```bash
65
- pip install git+https://github.com/jman4162/Phased-Array-Antenna-Model.git
81
+ pip install phased-array-modeling
66
82
  ```
67
83
 
68
84
  ### With optional dependencies
69
85
 
70
86
  ```bash
71
87
  # Include Plotly for 3D visualization
72
- pip install "phased-array[plotting] @ git+https://github.com/jman4162/Phased-Array-Antenna-Model.git"
88
+ pip install "phased-array-modeling[plotting]"
73
89
 
74
90
  # Include all optional dependencies
75
- pip install "phased-array[full] @ git+https://github.com/jman4162/Phased-Array-Antenna-Model.git"
91
+ pip install "phased-array-modeling[full]"
76
92
  ```
77
93
 
78
94
  ### For development
@@ -1,9 +1,12 @@
1
1
  # Phased Array Antenna Modeling
2
2
 
3
3
  [![CI](https://github.com/jman4162/Phased-Array-Antenna-Model/actions/workflows/ci.yml/badge.svg)](https://github.com/jman4162/Phased-Array-Antenna-Model/actions/workflows/ci.yml)
4
+ [![PyPI version](https://img.shields.io/pypi/v/phased-array-modeling.svg)](https://pypi.org/project/phased-array-modeling/)
5
+ [![PyPI downloads](https://img.shields.io/pypi/dm/phased-array-modeling.svg)](https://pypi.org/project/phased-array-modeling/)
4
6
  [![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)
5
7
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6
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
+ [![Streamlit App](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://phased-array-antenna-model.streamlit.app/)
7
10
 
8
11
  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.
9
12
 
@@ -15,23 +18,36 @@ A comprehensive Python library for computing and visualizing phased array antenn
15
18
  - **Realistic Impairments**: Mutual coupling, phase quantization, element failures, scan blindness
16
19
  - **Visualization**: 2D matplotlib, interactive 3D Plotly, UV-space representation
17
20
  - **Subarray Support**: Subarray-level beamforming with quantized phase shifters
21
+ - **Data Export**: CSV, JSON, and NumPy formats for patterns, weights, and geometry
22
+
23
+ ## Try it Online
24
+
25
+ **[Launch Interactive Web App](https://phased-array-antenna-model.streamlit.app/)** - No installation required!
26
+
27
+ The Streamlit app provides an interactive interface for:
28
+ - Designing array geometries (rectangular, triangular, circular, concentric rings, elliptical)
29
+ - Beam steering with real-time pattern visualization
30
+ - Amplitude tapering with sidelobe comparison
31
+ - Impairment simulation (phase quantization, element failures, mutual coupling)
32
+ - UV-space pattern analysis
33
+ - Export data to CSV for further analysis
18
34
 
19
35
  ## Installation
20
36
 
21
37
  ### From GitHub (recommended)
22
38
 
23
39
  ```bash
24
- pip install git+https://github.com/jman4162/Phased-Array-Antenna-Model.git
40
+ pip install phased-array-modeling
25
41
  ```
26
42
 
27
43
  ### With optional dependencies
28
44
 
29
45
  ```bash
30
46
  # Include Plotly for 3D visualization
31
- pip install "phased-array[plotting] @ git+https://github.com/jman4162/Phased-Array-Antenna-Model.git"
47
+ pip install "phased-array-modeling[plotting]"
32
48
 
33
49
  # Include all optional dependencies
34
- pip install "phased-array[full] @ git+https://github.com/jman4162/Phased-Array-Antenna-Model.git"
50
+ pip install "phased-array-modeling[full]"
35
51
  ```
36
52
 
37
53
  ### For development
@@ -32,133 +32,62 @@ Example
32
32
  >>> theta, phi, pattern_dB = pa.compute_full_pattern(geom.x, geom.y, weights, k)
33
33
  """
34
34
 
35
- __version__ = "1.0.0"
35
+ __version__ = "1.1.0"
36
36
 
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,
45
+ multi_beam_weights_orthogonal, multi_beam_weights_superposition,
46
+ null_steering_lcmv, null_steering_projection, taylor_taper_1d,
47
+ taylor_taper_2d)
37
48
  # Core computation functions
38
- from .core import (
39
- steering_vector,
40
- array_factor_vectorized,
41
- array_factor_uv,
42
- array_factor_fft,
43
- element_pattern,
44
- element_pattern_cosine_tapered,
45
- total_pattern,
46
- compute_pattern_cuts,
47
- compute_full_pattern,
48
- compute_directivity,
49
- compute_half_power_beamwidth,
50
- )
51
-
52
- # Utility functions
53
- from .utils import (
54
- deg2rad,
55
- rad2deg,
56
- azel_to_thetaphi,
57
- thetaphi_to_azel,
58
- theta_phi_to_uv,
59
- uv_to_theta_phi,
60
- is_visible_region,
61
- wavelength_to_k,
62
- frequency_to_wavelength,
63
- frequency_to_k,
64
- db_to_linear,
65
- linear_to_db,
66
- normalize_pattern,
67
- create_theta_phi_grid,
68
- create_uv_grid,
69
- )
70
-
49
+ from .core import (array_factor_fft, array_factor_uv, array_factor_vectorized,
50
+ compute_directivity, compute_full_pattern,
51
+ compute_half_power_beamwidth, compute_pattern_cuts,
52
+ element_pattern, element_pattern_cosine_tapered,
53
+ steering_vector, total_pattern)
54
+ # Export functions
55
+ from .export import (export_array_config_json, export_coupling_matrix_csv,
56
+ export_geometry_csv, export_pattern_2d_csv,
57
+ export_pattern_csv, export_pattern_npz,
58
+ export_summary_report, export_uv_pattern_csv,
59
+ export_weights_csv, load_pattern_npz)
71
60
  # Geometry classes and functions
72
- from .geometry import (
73
- ArrayGeometry,
74
- SubarrayArchitecture,
75
- create_rectangular_array,
76
- create_triangular_array,
77
- create_elliptical_array,
78
- create_circular_array,
79
- create_concentric_rings_array,
80
- create_cylindrical_array,
81
- create_spherical_array,
82
- thin_array_random,
83
- thin_array_density_tapered,
84
- thin_array_genetic_algorithm,
85
- create_rectangular_subarrays,
86
- compute_subarray_weights,
87
- array_factor_conformal,
88
- )
89
-
90
- # Beamforming functions
91
- from .beamforming import (
92
- # Amplitude tapers
93
- taylor_taper_1d,
94
- taylor_taper_2d,
95
- chebyshev_taper_1d,
96
- chebyshev_taper_2d,
97
- hamming_taper_1d,
98
- hamming_taper_2d,
99
- hanning_taper_1d,
100
- hanning_taper_2d,
101
- cosine_taper_1d,
102
- cosine_taper_2d,
103
- cosine_on_pedestal_taper_1d,
104
- cosine_on_pedestal_taper_2d,
105
- gaussian_taper_1d,
106
- gaussian_taper_2d,
107
- compute_taper_efficiency,
108
- compute_taper_directivity_loss,
109
- apply_taper_to_geometry,
110
- # Null steering
111
- null_steering_projection,
112
- null_steering_lcmv,
113
- compute_null_depth,
114
- # Multiple beams
115
- multi_beam_weights_superposition,
116
- multi_beam_weights_orthogonal,
117
- compute_beam_isolation,
118
- monopulse_weights,
119
- )
120
-
61
+ 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,
65
+ create_rectangular_array, create_rectangular_subarrays,
66
+ create_spherical_array, create_triangular_array,
67
+ thin_array_density_tapered,
68
+ thin_array_genetic_algorithm, thin_array_random)
121
69
  # Impairment models
122
- from .impairments import (
123
- # Mutual coupling
124
- mutual_coupling_matrix_theoretical,
125
- mutual_coupling_matrix_measured,
126
- apply_mutual_coupling,
127
- active_element_pattern,
128
- # Phase quantization
129
- quantize_phase,
130
- quantization_rms_error,
131
- quantization_sidelobe_increase,
132
- analyze_quantization_effect,
133
- # Element failures
134
- simulate_element_failures,
135
- analyze_graceful_degradation,
136
- # Scan blindness
137
- surface_wave_scan_angle,
138
- scan_blindness_model,
139
- apply_scan_blindness,
140
- compute_scan_loss,
141
- )
142
-
70
+ from .impairments import ( # Mutual coupling; Phase quantization; Element failures; Scan blindness
71
+ active_element_pattern, analyze_graceful_degradation,
72
+ analyze_quantization_effect, apply_mutual_coupling, apply_scan_blindness,
73
+ compute_scan_loss, mutual_coupling_matrix_measured,
74
+ mutual_coupling_matrix_theoretical, quantization_rms_error,
75
+ quantization_sidelobe_increase, quantize_phase, scan_blindness_model,
76
+ simulate_element_failures, surface_wave_scan_angle)
77
+ # Utility functions
78
+ from .utils import (azel_to_thetaphi, create_theta_phi_grid, create_uv_grid,
79
+ db_to_linear, deg2rad, frequency_to_k,
80
+ frequency_to_wavelength, is_visible_region, linear_to_db,
81
+ normalize_pattern, rad2deg, theta_phi_to_uv,
82
+ thetaphi_to_azel, uv_to_theta_phi, wavelength_to_k)
143
83
  # Visualization functions
144
- from .visualization import (
145
- # 2D matplotlib plots
146
- plot_pattern_2d,
147
- plot_pattern_polar,
148
- plot_pattern_contour,
149
- plot_array_geometry,
150
- # UV-space
151
- compute_pattern_uv_space,
152
- plot_pattern_uv_space,
153
- # 3D Plotly plots
154
- plot_pattern_3d_plotly,
155
- plot_pattern_3d_cartesian_plotly,
156
- plot_array_geometry_3d_plotly,
157
- plot_pattern_uv_plotly,
158
- # Utilities
159
- plot_comparison_patterns,
160
- create_pattern_animation_plotly,
161
- )
84
+ from .visualization import ( # 2D matplotlib plots; UV-space; 3D Plotly plots; Utilities
85
+ compute_pattern_uv_space, create_pattern_animation_plotly,
86
+ plot_array_geometry, plot_array_geometry_3d_plotly,
87
+ plot_comparison_patterns, plot_pattern_2d,
88
+ plot_pattern_3d_cartesian_plotly, plot_pattern_3d_plotly,
89
+ plot_pattern_contour, plot_pattern_polar, plot_pattern_uv_plotly,
90
+ plot_pattern_uv_space)
162
91
 
163
92
  __all__ = [
164
93
  # Version
@@ -260,4 +189,15 @@ __all__ = [
260
189
  "plot_pattern_uv_plotly",
261
190
  "plot_comparison_patterns",
262
191
  "create_pattern_animation_plotly",
192
+ # Export
193
+ "export_pattern_csv",
194
+ "export_pattern_2d_csv",
195
+ "export_uv_pattern_csv",
196
+ "export_weights_csv",
197
+ "export_geometry_csv",
198
+ "export_array_config_json",
199
+ "export_pattern_npz",
200
+ "load_pattern_npz",
201
+ "export_coupling_matrix_csv",
202
+ "export_summary_report",
263
203
  ]
@@ -4,11 +4,13 @@ Beamforming functions for phased arrays.
4
4
  Includes amplitude tapering, null steering, and multiple simultaneous beams.
5
5
  """
6
6
 
7
+ from typing import List, Optional, Tuple, Union
8
+
7
9
  import numpy as np
8
10
  from scipy import signal
9
- from typing import Tuple, Optional, List, Union
10
- from .geometry import ArrayGeometry
11
+
11
12
  from .core import steering_vector
13
+ from .geometry import ArrayGeometry
12
14
 
13
15
  ArrayLike = Union[np.ndarray, float]
14
16
 
@@ -5,9 +5,11 @@ Includes vectorized array factor, FFT-based computation, steering vectors,
5
5
  and element patterns.
6
6
  """
7
7
 
8
+ from typing import Optional, Tuple, Union
9
+
8
10
  import numpy as np
9
- from typing import Tuple, Optional, Union
10
- from .utils import theta_phi_to_uv, create_theta_phi_grid, linear_to_db
11
+
12
+ from .utils import create_theta_phi_grid, linear_to_db, theta_phi_to_uv
11
13
 
12
14
  ArrayLike = Union[np.ndarray, float]
13
15