跳转到主要内容

天线绘图程序,用于绘制天线仿真结果

项目描述

作者:

Ralf Schlatterbeck <rsc@runtux.com>

这是一个绘制天线相关数据的程序,这些数据来自天线仿真。它可以读取由 nec2c、我的Python mininec端口 pymininec、原始Basic实现 MininecASAP 以及使用单独的命令行工具从 EZNEC 生成的3D天线模式生成的文本输出。

特别值得注意的是,它可以绘制2D(方位角和仰角)和3D(作为可以旋转和缩放的3D图形)的天线远场模式。它支持本地显示程序(使用 matplotlib)和HTML输出版本,后者使用javascript显示所有内容(使用 plotly)。程序具有 --help 选项。

该程序最初是我的 pymininec 项目的伴随程序,现在是一个独立的程序。

绘图程序还可以显示 nec2cASAPEZNEC 的输出文件,而不仅限于 pymininec

使用Matplotlib独立绘图

默认情况下,将绘制所有可用的图形,包括交互式3D视图。此外,使用--azimuth--elevation选项,您可以获取一个方位角图

plot-antenna --azimuth test/12-el-1deg.pout
https://raw.githubusercontent.com/schlatterbeck/plot-antenna/master/test/12-el-azimuth.png

或仰角图

plot-antenna --elevation test/12-el-1deg.pout
https://raw.githubusercontent.com/schlatterbeck/plot-antenna/master/test/12-el-elevation.png

分别。请注意,我使用了一个1度分辨率的输出文件,用于仰角和方位角,而不是像上面示例中的5度。图案看起来更平滑,但由于点数众多,在matplotlib中查看3D视图会非常慢。使用plotly后端时不会出现这个问题。

绘图程序还有一个--help选项,可以获取更多信息。特别是可以使用--scaling-method选项选择天线图的缩放比例,该选项可以是一个额外的关键字,可以是linearlinear_dblinear_voltage之一,以及默认的arrl缩放。您可以查阅Cebik的[1]文章来解释不同的图表。选项linear_voltage未由Cebik解释,它位于linearlinear_db缩放选项之间。

最新版本接受多个绘图参数,包括--elevation--azimuth--plot3d--plot-vswr--geo,它们将绘制到一张图中。默认情况下,绘制前四个图表。使用--output选项可以直接保存图片而无需在屏幕上显示图形。请注意,不幸的是,使用--geo选项的几何显示表现不佳,因为matplotlib在3D图中对平移和缩放的支持较差。使用plotly后端时表现良好。

有一些子选项可以改变主选项的行为。对于SWR图,可以使用--swr-show-bands--swr-show-impedance分别打开对Ham-Radio频段的着色和显示天线阻抗。一个例子可能如下所示

https://raw.githubusercontent.com/schlatterbeck/plot-antenna/master/test/pics/M.3.6.3.swr_band_range.png

最新版本有用于在天线模拟频率之间滚动的快捷键。这些快捷键仅适用于matplotlib后端。如果您有一个包含多个频率模拟的输出文件,可以通过键入+来显示下一个频率的图表,通过键入-来显示上一个频率的图表。对于matplotlib的新版本,您可以使用--with-slider选项显示频率的滚动条。

其他快捷键用于切换天线图的缩放比例,a切换到arrl缩放,l切换到线性缩放,d切换到线性dB缩放,而v切换到线性电压缩放。

最后,w键可以切换3D图从/到线框显示的显示。请注意,线框显示可能不支持所有版本的matplotlib和/或显卡。

使用Plotly在浏览器中进行绘图

所有由 matplotlib 支持的绘图在 plotly 中也得到支持。这些包括 --elevation(仰角)、--azimuth(方位角)、--plot3d(三维绘图)、--plot-vswr(VSWR 绘图)和 --geo(地理绘图)。这些绘图可以通过 -H--export-html 选项(可以指定额外的文件名)导出为 .html 文件,或者使用 -S--show-in-browser 选项注入到正在运行的浏览器中。

matplotlib 不同,使用选项选择的每个绘图要么在浏览器中单独的窗口中显示,要么导出到单独的文件。如果导出到文件,可以使用 --html-export-option 设置选择额外的输出选项。默认情况下,文件包含所有 JavaScript,这会增加大约 3MB 的文件大小。使用 --html-export-option=directory 时,JavaScript 不会被包含,并且预期在导出文件的同目录下有 plotly.min.js 文件。这个文件包含在 plotly 发行版中。导出到文件时,将绘图名称附加到给定的文件名,这允许在单个程序调用中导出多个不同的绘图。

使用 --scaling-method 选项选择的缩放变体目前不能使用 plotly 绘图在运行时更改。与 matplotlib 一样,默认缩放是 arrl 缩放。当使用 dB 缩放时,可以通过 --scaling-mindb 选项指定最小 dB 值。

matplotlib 一样,存在子选项可以改变主选项的行为。对于 SWR 绘图,可以使用 --swr-show-bands--swr-show-impedance 分别开启 Ham-Radio 波段的着色和天线阻抗的显示。

所有绘图都是交互式的。对于远场模式绘图(方位角、仰角、三维),可以在绘图右侧的图例中选择频率。当鼠标悬停时,可以看到当前角度(对于二维绘图是仰角或方位角,对于三维绘图则是两者)以及该点的增益。对于二维变体,可以选定多个频率进行绘图。这允许在不同频率之间比较模式。对于三维绘图,图例中的频率像单选按钮一样工作,一次只能选择一个。

使用 --geo 选项可以查看天线几何形状。不幸的是,plotly 在缩放深度上似乎有限制,所以对于大型天线,无法看到详细的绘图。截至本文写作时,并非所有几何细节都显示出来。特别是,NEC 中的二维补丁和 NEC 中的传输线没有显示。

输入源

如前所述,plot-antenna 可以接收由几款天线仿真工具产生的输入。最初是为我的 Mininec 重实现而编写的,pymininec,它也可以使用用 Basic 编写的原始 Mininec 的输出,从 nec2c,以及天线散射分析程序 ASAP。它会自动检测输入的格式,并相应地处理。

此外,还有一个独立的命令行工具 plot-eznec,可以用来可视化 EZNEC 导出功能的输出。

它也被用于可视化天线测量数据。这里有一个来自贡献的测量示例

https://raw.githubusercontent.com/schlatterbeck/plot-antenna/master/test/pics/M.3.6.3.measurement_full.png

请注意,对于测量数据,数据的单位不是 dBi,而是 dBm(因为它已测量,未校准到 dBi)。测量值分别针对水平和垂直极化。

发布说明

v2.0:更多输入格式

  • EZNEC 导入导出模式数据

  • 从天线散射分析程序 ASAP 导入

  • 从古老的用 Basic 编写的 Mininec 版本导入

  • 添加 --maxgain 选项以标准化外环的增益

  • 当单极化不是“sum”时,在 plotly 中显示极化

  • 为 geo、3d 和 swr 图添加标题

  • 添加更多测试

  • 测试:现在使用显式存储的图片而不是仅图片哈希:如果我们可以将生成的图片与预期的图片进行比较,那就容易多了。

  • 许多错误修正

v1.8:允许绘制测量数据

  • 处理用于绘图值的稀疏矩阵

  • Phi(方位)方向上的测量值插值

  • 添加3d模式 STL 输出,可选库

  • 允许设置 dB 单位(例如,dBm 用于测量)

  • 允许按极化绘制

  • 版本计算已更改,允许从 git url 安装

注意:matplotlib 中的 Smith 图需要我的 修改过的 pySmithPlot 库。您可以使用以下方式安装此库:

python -m pip install pysmithplot@git+https://github.com/schlatterbeck/pySmithPlot.git

v1.7:添加 Smith 图,可选在 VSWR 图中显示阻抗和频段

本版本及之前几个版本的许多更改是由 Rob Banfield,DM1CM 提出的:向 VSWR 图中添加频段和阻抗是他的想法,同样添加 Smith 图也是他的想法。由于他对细节的关注,这次发布纠正了先前版本中许多粗糙的边缘。感谢 Rob!

  • 现在 3D plotly 图的纵横比是正确的。它以前在 X 方向上略微过宽

  • 添加 Smith 图显示

  • 在 VSWR 图中添加阻抗(可以是实/虚或 |Z|/phi(Z))的选项

  • 在 VSWR 图中显示业余无线电频段的选项

  • 在 geo 图中显示负载和激励(s),在 geo 图中添加地面

  • plotly 3D 图的默认边距现在更宽,可以通过选项进行配置

  • 现在可以配置 plotly 3D 颜色条中增益的显示样式,以节省空间(可以是相对或绝对增益,dB 或 dBi,默认为两者都有)

  • 当 3D 图只有一个频率时,移除频率图例

  • 添加 LICENSE 文件和 pyproject.toml 以支持 Python 中的新安装机制

  • 为 plotly 输出添加测试

  • 使用 ppm 图像进行测试,之前使用的 png 图像包含 matplotlib 版本信息,因此每个版本都不同 - ppm 图像没有这个问题,但与不同版本的 matplotlib 仍然存在许多差异

v1.6: SWR 图表有更多变化

  • 使 SWR-plot 垂直线颜色可配置

  • 将高度角和方位角选项重命名为 angle-elevation 和 angle-azimuth,这样我们就可以再次使用缩短的选项(如 --ele--azi)请求高度/方位角图

  • 按字典顺序对 --help 下的选项进行排序

v1.5: 允许在 VSWR 图中指定目标 SWR 频率

  • 添加命令行选项 --target-swr-frequency

  • 用红色绘制用户指定的目标频率,最佳(最小)SWR 用灰色绘制

v1.4: 重置按钮和 VSWR-Plot 改进

  • 在 VSWR 图中添加网格和最小-SWR 垂直线

  • 在鼠标悬停时(在极坐标图和 3D 图中)不显示频率

  • 使极坐标重置按钮重置更多参数

v1.3: 为 plotly 极坐标图添加重置按钮

  • 极坐标图,当放大时,只能通过双击重置到未放大视图。所有其他图表都拥有重置按钮,也为极坐标图添加一个。

v1.2: 允许在 plotly 版本中指定标题(图例)字体大小

  • 对于某些应用(例如,当在 html iframe 中使用 plotly 图形时),图形的标题(或我们可能称之为图例)可能与图形本身冲突。现在我们可以使用 --title-font-size 指定字体大小。此选项目前仅适用于 plotly 图形。

v1.1: 指定方位角/高度角

  • 现在我们可以指定高度图的方位角和方位图的仰角。

  • 计算最大增益方位方向的错误修复:如果最大增益在 theta 方向上上升或下降,则由于在该 theta 角度上的所有增益值对所有方位角都是相同的,因此计算方位角将是不正确的。

  • 排序选项:由于有些选项仅在安装某些包时存在,所以我们按字典顺序排序选项,而不是试图按正确的顺序添加它们。

v1.0: 首次发布

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装软件包 的信息。

源分布

plot_antenna-2.0.tar.gz (41.8 kB 查看散列值)

上传日期

构建分布

plot_antenna-2.0-py3-none-any.whl (33.8 kB 查看散列值)

上传日期 Python 3

由以下提供支持