Please report bugs and suggestions. My set of antenna files is
limited resulting in equally limited testing. Thanks.
Mike Markowski, mike.ab3ap@gmail.com
Here is a small python program (latest 30 Mar 2023) to view slices stored in an NSMA antenna pattern file as described by Antenna Systems – Standard Format for Digitized Antenna Patterns WG16.99.050. The program's main goal is to quickly and easily view the cuts. A supplementary function, gain(), calculates gain based on azimuth and elevation of an RF ray. This function can be called from your programs and an example follows the plots. The gain function is used in link budget program rfl, Radio Frequency Link.
The NSMA document linked to includes a sample antenna pattern which I saved to a file named ant.adf. The first step is to find frequencies, cuts and polarizations in the pattern file:
$ nsma.py -s ant.adf
ABC Antenna Company 800A-065-25-4N
E-tilt: 4.0 deg.
851 MHz (-f 851):
EL V/V (-p V/V)
AZ V/V (-p V/V)
The -s summary shows us that there is a single frequency and polarization pair. Slices can be viewed in 3d and note that the 4 degree electrical downtilt is apparent:
$ nsma.py -f 851 -p v/v -3 ant.adf
or in a traditional 2d manner using the command:
$ nsma.py -f 851 -p v/v -2 ant.adf
To find gain, the -a az and -e el arguments are used. We see in the elevation cut above that there is a deep null at elevation 34 degrees. To find how deep:
$ nsma.py -f 851 -p v/v -a 0 -e 34 ant.adf gain(az=0.0, el=34.0) = -21.4 dBi
Note that mid-band gain units from the file were added to the dBr pattern, resulting in dBi gain 16.8 dB (in plot title) greater than the -38.2 read from the dBr plot.
On occasion it can be useful to view the text file itself. To do so with indentation to more easily see what groups with what, use the -t text option:
$ nsma.py -t ant.adf
revnum: NSMA WG16.99.050
revdat: 19990520
comnt1: This is a sample file for 1 frequency and 2 cuts
antman: ABC Antenna Company
modnum: 800A-065-25-4N
descr1: 800 Mhz 65 deg AZ BW 2.5meter 4 deg E-tilt base station antenna
dtdata: 19971216
lowfrq: 806.0
hghfrq: 896.0
gunits: ['DBI', 'DBR']
mdgain: [16.8 0.5]
azwidt: [65. 0.]
elwidt: [7. 0.]
contyp: n connector
atvswr: 1.4
frtoba: 30.0
eltilt: [4. 0.5]
maxpow: 500.0
antlen: 2.367
antwid: 0.366
antdep: 0.178
antwgt: 19.0
pattyp: typical
patfre:
851 MHz
patcut:
EL:
polari: V/V
fstlst: [-180. 178.]
pattern:
-180.000, -29.799, 0.000
-178.000, -28.912, 0.000
...
176.000, -34.614, 0.000
178.000, -31.966, 0.000
AZ:
polari: V/V
fstlst: [-180. 178.]
pattern:
-180.000, -32.219, 0.000
-178.000, -32.353, 0.000
...
176.000, -32.275, 0.000
178.000, -31.982, 0.000
$