Visualization#
This section lists modules for creating and editing data outside AEDT.
Plot fields and data outside AEDT#
PyAEDT supports external report capabilities available with installed third-party packages like numpy, pandas, matplotlib, and pyvista.
Contains information from the |
|
Provides for creating and editing field plots. |
Plot 3D objects and fields#
ModelPlotter is a class that benefits of pyvista package and allows to generate models and 3D plots.
Manages the data to be plotted with |
Plot touchstone data outside AEDT#
TouchstoneData class is based on scikit-rf package and allows advanced touchstone post-processing. The following methods allows to read and check touchstone files.
Load the contents of a Touchstone file into an NPort. |
|
Check passivity and causality for all Touchstone files included in the folder. |
Using the above methods you are getting an object of a class TouchstoneData. The class TouchstoneData is based on scikit-rf, Additional methods are added to provide easy access to touchstone curves.
Get all insertion losses. |
|
Plot all insertion losses. |
|
Plot a list of curves. |
|
Plot all return losses. |
|
Transform network from single ended parameters to generalized mixed mode parameters. |
|
Get the list of all the Returnloss from a list of exctitations. |
|
Get the list of all the Insertion Losses from prefix. |
|
Get the list of all the Near End XTalk a list of excitation. |
|
Get the list of all the Far End XTalk from a list of exctitations and a prefix that will be used to retrieve driver and receivers names. |
|
Plot all next crosstalk curves. |
|
Plot all fext crosstalk curves. |
|
Analyze a solution data object with multiple curves and find the worst curve. |
Here an example on how to use TouchstoneData class.
from pyaedt.generic.touchstone_parser import TouchstoneData
ts1 = TouchstoneData(touchstone_file=os.path.join(test_T44_dir, "port_order_1234.s8p"))
assert ts1.get_mixed_mode_touchstone_data()
ts2 = TouchstoneData(touchstone_file=os.path.join(test_T44_dir, "port_order_1324.s8p"))
assert ts2.get_mixed_mode_touchstone_data(port_ordering="1324")
assert ts1.plot_insertion_losses(plot=False)
assert ts1.get_worst_curve(curve_list=ts1.get_return_loss_index(), plot=False)
...
Farfield#
PyAEDT offers sophisticated tools for advanced farfield post-processing.
There are two complementary classes: FfdSolutionDataExporter
and FfdSolutionData
.
FfdSolutionDataExporter: Enables efficient export and manipulation of farfield data. It allows users to convert simulation results into a standard metadata format for further analysis, or reporting.
FfdSolutionData: Focuses on the direct access and processing of farfield solution data. It supports a comprehensive set of postprocessing operations, from visualizing radiation patterns to computing key performance metrics.
Class to enable export of embedded element pattern data from HFSS. |
|
Provides antenna far-field data. |
This code shows how you can get the farfield data and perform some post-processing:
import pyaedt
from pyaedt.generic.farfield_visualization import FfdSolutionDataExporter
app = pyaedt.Hfss()
ffdata = app.get_antenna_data(frequencies=None,
setup="Setup1 : Sweep",
sphere="3D",
variations=None,
overwrite=False,
link_to_hfss=True,
export_touchstone=True)
incident_power = ffdata.incident_power
ffdata.plot_cut(primary_sweep="Theta", theta=0)
ffdata.plot_contour(polar=True)
ffdata.plot_3d(show_geometry=False)
app.release_desktop(False, False)
If you exported the farfield data previously,you can directly get the farfield data:
from pyaedt.generic.farfield_visualization import FfdSolutionData
input_file = r"path_to_ffd\pyaedt_antenna_metadata.json"
ffdata = FfdSolutionData(input_file)
incident_power = ffdata.incident_power
ffdata.plot_cut(primary_sweep="Theta", theta=0)
ffdata.plot_contour(polar=True)
ffdata.plot_3d(show_geometry=False)
app.release_desktop(False, False)
The following diagram shows both classes work. You can use them independently or from the get_antenna_data
method.
If you have existing farfield data, or you want to export it manually, you can still use FfdSolutionData class.
Heterogeneous data message#
Heterogeneous data message (HDM) is the file exported from SBR+ solver containing rays information. The following methods allows to read and plot rays information.
Parser class that loads an HDM-format export file from HFSS SBR+, interprets its header and its binary content. |
|
Manages Hdm data to be plotted with |