天线绘图程序,用于绘制天线仿真结果
项目描述
这是一个绘制天线相关数据的程序,这些数据来自天线仿真。它可以读取由 nec2c、我的Python mininec端口 pymininec、原始Basic实现 Mininec、ASAP 以及使用单独的命令行工具从 EZNEC 生成的3D天线模式生成的文本输出。
特别值得注意的是,它可以绘制2D(方位角和仰角)和3D(作为可以旋转和缩放的3D图形)的天线远场模式。它支持本地显示程序(使用 matplotlib)和HTML输出版本,后者使用javascript显示所有内容(使用 plotly)。程序具有 --help 选项。
该程序最初是我的 pymininec 项目的伴随程序,现在是一个独立的程序。
绘图程序还可以显示 nec2c、ASAP 和 EZNEC 的输出文件,而不仅限于 pymininec。
使用Matplotlib独立绘图
默认情况下,将绘制所有可用的图形,包括交互式3D视图。此外,使用--azimuth或--elevation选项,您可以获取一个方位角图
plot-antenna --azimuth test/12-el-1deg.pout
或仰角图
plot-antenna --elevation test/12-el-1deg.pout
分别。请注意,我使用了一个1度分辨率的输出文件,用于仰角和方位角,而不是像上面示例中的5度。图案看起来更平滑,但由于点数众多,在matplotlib中查看3D视图会非常慢。使用plotly后端时不会出现这个问题。
绘图程序还有一个--help选项,可以获取更多信息。特别是可以使用--scaling-method选项选择天线图的缩放比例,该选项可以是一个额外的关键字,可以是linear、linear_db和linear_voltage之一,以及默认的arrl缩放。您可以查阅Cebik的[1]文章来解释不同的图表。选项linear_voltage未由Cebik解释,它位于linear和linear_db缩放选项之间。
最新版本接受多个绘图参数,包括--elevation、--azimuth、--plot3d、--plot-vswr和--geo,它们将绘制到一张图中。默认情况下,绘制前四个图表。使用--output选项可以直接保存图片而无需在屏幕上显示图形。请注意,不幸的是,使用--geo选项的几何显示表现不佳,因为matplotlib在3D图中对平移和缩放的支持较差。使用plotly后端时表现良好。
有一些子选项可以改变主选项的行为。对于SWR图,可以使用--swr-show-bands和--swr-show-impedance分别打开对Ham-Radio频段的着色和显示天线阻抗。一个例子可能如下所示
最新版本有用于在天线模拟频率之间滚动的快捷键。这些快捷键仅适用于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 导出功能的输出。
它也被用于可视化天线测量数据。这里有一个来自贡献的测量示例
请注意,对于测量数据,数据的单位不是 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 的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | 003403fe65ea9a156ada0c1e8f647d4201ceeaed35b230638be252b76ce77c94 |
|
MD5 | 7cc08a7adf1a9aa9fb941124e32dfa12 |
|
BLAKE2b-256 | 2c917ba15c0168e0e5363a357f34e4871c9d2d3fc4695ace67c15506e9f209a2 |
plot_antenna-2.0-py3-none-any.whl 的哈希值
算法 | 散列摘要 | |
---|---|---|
SHA256 | 81d3f19c0cef78d3056aa28323469a61158425089615e92144449b1a4409ae25 |
|
MD5 | 75202dc46d133b875234e4dee5fd804b |
|
BLAKE2b-256 | 90378dc5d8eec369859522b2d62caeebfc81d25263387700f2dd8c599c122a8f |