2020-09-13

Running RigExpert AntScope2 on Debian Stable (buster)

RigExpert have instructions as to how to load their AntScope2 software on a Raspberry Pi.

As the Raspberry Pi runs a system based on debian, it shouldn't be too difficult to get the code running on a debian stable (buster) system.

[I apologise for some of the formatting in this post. blogger.com has foisted a predictably putrid new interface on me. It seems to have no consistent concept of what to do when one hits the ENTER key, nor how to paste text properly. Things that used to be a single click on a text button are now a process of figuring out which meaningless icon causes the menu I want to appear, and then selecting the correct text from the menu -- this is somehow supposed to be an improvement; Yet Another Reason to hate applications that don't run on the desktop, and are controlled by another entity -- they can resist the temptation to break things for users for only so long. To make matters even worse, they falsely claim that they provide a way to continue to use the old interface -- making that selection still forces one into the new atrocity. Yes, I'm ranting.]

1. Download and install the necessary packages.

sudo apt-get install qt5-default qt5-qmake libegl1-mesa libgles2-mesa libqt5serialport5-dev libusb-1.0.0-dev

The output I received (after wasting gobs of time trying to get it to format somewhat sensibly in the new interface, which scattered vast numbers of non-breaking spaces seemingly at random throughout the text):

[ZB:rbn] sudo apt-get install qt5-default qt5-qmake libegl1-mesa libgles2-mesa libqt5serialport5-dev libusb-1.0.0-dev
[sudo] password for n7dr:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'libusb-1.0-0-dev' for regex 'libusb-1.0.0-dev'
libegl1-mesa is already the newest version (18.3.6-2+deb10u1).
libegl1-mesa set to manually installed.
The following packages were automatically installed and are no longer required:
  linux-headers-4.19.0-6-amd64 linux-headers-4.19.0-6-common linux-headers-4.19.0-8-amd64 linux-headers-4.19.0-8-common linux-image-4.19.0-6-amd64 linux-image-4.19.0-8-amd64
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
  libqt5opengl5-dev libqt5serialport5 libusb-1.0-doc libvulkan-dev qt5-qmake-bin qtbase5-dev qtbase5-dev-tools
Suggested packages:
  default-libmysqlclient-dev firebird-dev libegl1-mesa-dev libpq-dev libsqlite3-dev unixodbc-dev
The following NEW packages will be installed:
  libgles2-mesa libqt5opengl5-dev libqt5serialport5 libqt5serialport5-dev libusb-1.0-0-dev libusb-1.0-doc libvulkan-dev qt5-default qt5-qmake qt5-qmake-bin qtbase5-dev qtbase5-dev-tools
0 upgraded, 12 newly installed, 0 to remove and 0 not upgraded.
Need to get 3,854 kB of archives.
After this operation, 29.9 MB of additional disk space will be used.
Do you want to continue? [Y/n]
Get:1 http://ftp.us.debian.org/debian buster/main amd64 libgles2-mesa amd64 18.3.6-2+deb10u1 [47.4 kB]
Get:2 http://ftp.us.debian.org/debian buster/main amd64 libvulkan-dev amd64 1.1.97-2 [390 kB]
Get:3 http://ftp.us.debian.org/debian buster/main amd64 qt5-qmake-bin amd64 5.11.3+dfsg1-1+deb10u3 [1,004 kB]
Get:4 http://ftp.us.debian.org/debian buster/main amd64 qt5-qmake amd64 5.11.3+dfsg1-1+deb10u3 [213 kB]
Get:5 http://ftp.us.debian.org/debian buster/main amd64 qtbase5-dev-tools amd64 5.11.3+dfsg1-1+deb10u3 [770 kB]
Get:6 http://ftp.us.debian.org/debian buster/main amd64 qtbase5-dev amd64 5.11.3+dfsg1-1+deb10u3 [1,014 kB]
Get:7 http://ftp.us.debian.org/debian buster/main amd64 libqt5opengl5-dev amd64 5.11.3+dfsg1-1+deb10u3 [63.8 kB]
Get:8 http://ftp.us.debian.org/debian buster/main amd64 libqt5serialport5 amd64 5.11.3-2 [35.0 kB]
Get:9 http://ftp.us.debian.org/debian buster/main amd64 libqt5serialport5-dev amd64 5.11.3-2 [12.8 kB]
Get:10 http://ftp.us.debian.org/debian buster/main amd64 libusb-1.0-0-dev amd64 2:1.0.22-2 [74.5 kB]
Get:11 http://ftp.us.debian.org/debian buster/main amd64 libusb-1.0-doc all 2:1.0.22-2 [182 kB]
Get:12 http://ftp.us.debian.org/debian buster/main amd64 qt5-default amd64 5.11.3+dfsg1-1+deb10u3 [48.2 kB]
Fetched 3,854 kB in 4s (946 kB/s)
Selecting previously unselected package libgles2-mesa:amd64.
(Reading database ... 371509 files and directories currently installed.)
Preparing to unpack .../00-libgles2-mesa_18.3.6-2+deb10u1_amd64.deb ...
Unpacking libgles2-mesa:amd64 (18.3.6-2+deb10u1) ...
Selecting previously unselected package libvulkan-dev:amd64.
Preparing to unpack .../01-libvulkan-dev_1.1.97-2_amd64.deb ...
Unpacking libvulkan-dev:amd64 (1.1.97-2) ...
Selecting previously unselected package qt5-qmake-bin.
Preparing to unpack .../02-qt5-qmake-bin_5.11.3+dfsg1-1+deb10u3_amd64.deb ...
Unpacking qt5-qmake-bin (5.11.3+dfsg1-1+deb10u3) ...
Selecting previously unselected package qt5-qmake:amd64.
Preparing to unpack .../03-qt5-qmake_5.11.3+dfsg1-1+deb10u3_amd64.deb ...
Unpacking qt5-qmake:amd64 (5.11.3+dfsg1-1+deb10u3) ...
Selecting previously unselected package qtbase5-dev-tools.
Preparing to unpack .../04-qtbase5-dev-tools_5.11.3+dfsg1-1+deb10u3_amd64.deb ...
Unpacking qtbase5-dev-tools (5.11.3+dfsg1-1+deb10u3) ...
Selecting previously unselected package qtbase5-dev:amd64.
Preparing to unpack .../05-qtbase5-dev_5.11.3+dfsg1-1+deb10u3_amd64.deb ...
Unpacking qtbase5-dev:amd64 (5.11.3+dfsg1-1+deb10u3) ...
Selecting previously unselected package libqt5opengl5-dev:amd64.
Preparing to unpack .../06-libqt5opengl5-dev_5.11.3+dfsg1-1+deb10u3_amd64.deb ...
Unpacking libqt5opengl5-dev:amd64 (5.11.3+dfsg1-1+deb10u3) ...
Selecting previously unselected package libqt5serialport5:amd64.
Preparing to unpack .../07-libqt5serialport5_5.11.3-2_amd64.deb ...
Unpacking libqt5serialport5:amd64 (5.11.3-2) ...
Selecting previously unselected package libqt5serialport5-dev:amd64.
Preparing to unpack .../08-libqt5serialport5-dev_5.11.3-2_amd64.deb ...
Unpacking libqt5serialport5-dev:amd64 (5.11.3-2) ...
Selecting previously unselected package libusb-1.0-0-dev:amd64.
Preparing to unpack .../09-libusb-1.0-0-dev_2%3a1.0.22-2_amd64.deb ...
Unpacking libusb-1.0-0-dev:amd64 (2:1.0.22-2) ...
Selecting previously unselected package libusb-1.0-doc.
Preparing to unpack .../10-libusb-1.0-doc_2%3a1.0.22-2_all.deb ...
Unpacking libusb-1.0-doc (2:1.0.22-2) ...
Selecting previously unselected package qt5-default:amd64.
Preparing to unpack .../11-qt5-default_5.11.3+dfsg1-1+deb10u3_amd64.deb ...
Unpacking qt5-default:amd64 (5.11.3+dfsg1-1+deb10u3) ...
Setting up libvulkan-dev:amd64 (1.1.97-2) ...
Setting up libgles2-mesa:amd64 (18.3.6-2+deb10u1) ...
Setting up libusb-1.0-doc (2:1.0.22-2) ...
Setting up libusb-1.0-0-dev:amd64 (2:1.0.22-2) ...
Setting up libqt5serialport5:amd64 (5.11.3-2) ...
Setting up qtbase5-dev-tools (5.11.3+dfsg1-1+deb10u3) ...
Setting up qt5-qmake-bin (5.11.3+dfsg1-1+deb10u3) ...
Setting up qt5-qmake:amd64 (5.11.3+dfsg1-1+deb10u3) ...
Setting up qtbase5-dev:amd64 (5.11.3+dfsg1-1+deb10u3) ...
Setting up qt5-default:amd64 (5.11.3+dfsg1-1+deb10u3) ...
Setting up libqt5opengl5-dev:amd64 (5.11.3+dfsg1-1+deb10u3) ...
Setting up libqt5serialport5-dev:amd64 (5.11.3-2) ...
Processing triggers for man-db (2.8.5-2) ...
Processing triggers for libc-bin (2.28-10) ...
[ZB:rbn]

2. The official RigExpert repository for the software is here. After downloading the software, set the working directory to Antscope2-master in the downloaded hierarchy and then:

[ZB:AntScope2-master] qmake AntScope.pro
Info: creating stash file /tmp/antscope/AntScope2-master/.qmake.stash
Project MESSAGE: AntScope2:
Project MESSAGE:        [/tmp/antscope/AntScope2-master/build/release]
Project MESSAGE:        [/tmp/antscope/AntScope2-master/build/release/.obj]
Project MESSAGE:        [/tmp/antscope/AntScope2-master/build/release/.moc]
Project MESSAGE:        [/tmp/antscope/AntScope2-master/build/release/.ui]
Project MESSAGE:        [/tmp/antscope/AntScope2-master/build/release/.rcc]
[ZB:AntScope2-master]


3. Assuming that you receive similar results, then you can make the executable:

[ZB:AntScope2-master] make                                 

This should generate many pages of output, including not a few warnings, but no errors. RigExpert say about this step: "This process will take considerable time. Caution! Warning messages may appear during compilation. This is not scary."

4. Unusually, this is not the end of the process; RigExpert requires a few more steps. After the make command completes, you should have files in a .../build/release directory. Now you must:

5. Create (manually) the directory .../build/release/Resources.

6. Download this ZIP file.

7. Put the file cables.txt from the ZIP archive in the .../Resources directory.

8. Put the remaining files from the ZIP archive in the .../release directory.

9. Allow yourself as an ordinary user to use the USB ports:

  sudo adduser $USER dialout

10. In order for step 9 to take effect, you must log out and log back in.

11. Download this file and place it in the directory /etc/udev/rules.d:

  sudo cp rigexpert-usb.rules /etc/udev/rules.d

12. Finally, you can execute the software, which is in the .../build/release directory:

  ./AntScope2

13. On my systems, this causes the following to appear:


Note the large black rectangle, which flashes into and out of existence as one moves the cursor, and also the menu window at bottom left that extends beyond border of window. These appear to be bugs in the software.

2020-07-27

Cleaned and Augmented Logs for ARRL DX CW and SSB contests, 2018 to 2020

Raw logs


The raw logs for the ARRL DX CW and SSB contests are now available for 2018, 2019 and 2020 in this directory.
 

Cleaned Logs


Links to the cleaned logs may be followed here.

The cleaned logs are the result of processing the QSO: lines from the entrants' submitted Cabrillo files (as [gratuitously] modified by the ARRL) to ensure that all fields contain valid values and all the data match the column-specific standard format for this contest.

Any line containing illegal data in a field has simply been removed. Also, only the QSO: lines are retained, so that each line in the file can be processed easily. All QTH multipliers are rendered as two letters, and the power is rendered as four digits, regardless of how the submitted log recorded these two fields; this should simplify processing the logs by scripts or programs, as should the use of fixed-length records in these cleaned files.

Augmented Logs


Links to the augmented logs may be followed here.

The augmented logs for the ARRL DX contests contain the same information as the cleaned logs, but with the addition of some useful (derived) information on each line. The information added to each line comprises:
  1. The sequence of four characters that are the same for each entry in a particular log:
    •  a. letter "A" or "U" indicating "assisted" or "unassisted"
    •  b. letter "Q", "L", "H" or "U", indicating respectively QRP, low power, high power or unknown power level
    •  c. letter "S", "M", "C" or "U", indicating respectively a single-operator, multi-operator, checklog or unknown operator category 
    •  d. character "1", "2", "+" or "U", indicating respectively that the number of transmitters is one, two, unlimited or unknown
  2. A four-digit number representing the time if the contact in minutes measured from the start of the contest. (I realise that this can be calculated from the other information on the line, but it saves subsequent processors of the file considerable time to have the number readily available in the file without having to calculate it each time.)
  3. Band
  4. A set of fourteen flags, each -- apart from column k and column n -- encoded as T/F: 
    • a. QSO is confirmed by a log from the second party 
    • b. QSO is a reverse bust (i.e., the second party appears to have bust the call of the first party) 
    • c. QSO is an ordinary bust (i.e., the first party appears to have bust the call of the second party) 
    • d. the call of the second party is unique 
    • e. QSO appears to be a NIL 
    • f. QSO is with a station that did not send in a log, but who did make 20 or more QSOs in the contest 
    • g. QSO appears to be a country mult (may be T for W/VE stations only)
    • h. QSO appears to be a state/province mult (may be T for DX stations only)
    • i. QSO is an exchange bust (i.e., the received exchange appears to be a bust)
    • j. QSO is a reverse exchange bust (i.e. the second party appears to have bust the exchange of the first party)
    • k. This entry has three possible values rather than just T/F:
      • T: QSO appears to be made during a run by the first party
      • F: QSO appears not to be made during a run by the first party
      • U: the run status is unknown because insufficient frequency information is available in the first party's log
    • l. QSO is a dupe
    • m. QSO is a dupe in the second party's log
    • n. RBN information (see below)
  5. If the QSO is a reverse bust, the call logged by the second party; otherwise, the placeholder "-"
  6. If the QSO is an ordinary bust, the correct call that should have been logged by the first party; otherwise, the placeholder "-"
  7. If the QSO is a reverse exchange bust, the exchange logged by the second party; otherwise, the placeholder "-"
  8.  If the QSO is an ordinary exchange bust, the correct exchange that should have been logged by the first party; otherwise, the placeholder "-"

RBN Information


In CW contests from 2009 onwards, the RBN has been active, automatically spotting the frequency at which any station calling CQ was transmitting. To reflect possible use of RBN information, the augmented files include a fourteenth column. For the sake of uniformity, this column is present in all the augmented files, regardless of whether the RBN actually contributed useful information to a particular contest.

Each QSO has one of several characters in the fourteenth column of flags. These characters should be interpreted as follows:

'-'
  No useful RBN-derived information is available for this QSO.

'0'
  The worked station (i.e., the second call on the log line) appears to have begun to CQ on this frequency within (roughly) 60 seconds prior to the QSO.

'A' to 'Z'
  For the nth letter of the alphabet: the worked station appears to have been CQing on this frequency for (roughly) n minutes prior to the QSO.

'+'
  The worked station appears to have been CQing for more than 26 minutes on this frequency.

'<'
  Because the the RBN is distributed, and because each contest entrant station has its own clock, there is generally a skew between the reading of the clock of the station making the QSO and the timestamp from the RBN at which it believes a posting was made (indeed, it's unclear from the RBN's [lack of] documentation exactly how the timestamp on an individual RBN posting is to be interpreted). If the character '<' appears in the the RBN column, it indicates that the raw values of the clocks suggest that the QSO took place up to two minutes before the RBN reported the worked station commencing to CQ at this frequency. When this occurs, the most likely interpretation is that there is non-negligible skew between the two clocks, and the station was actually worked almost as soon as a CQ was posted by the RBN. But it might also mean that the entrant was simply lucky and found the CQing station just as it fired up on a new frequency.

Notes:
  • The encoding of some of the flags requires subjective decisions to be made as to whether the flag should be true or false; consequently, and because the ARRL has yet to understand the importance of making the scoring code public, the value of a flag for a specific QSO line in some circumstances might not match the value that the ARRL has assigned. (Also, the ARRL has additional, non-public, data available.)
  • I made no attempt to deduce or infer the run status of a QSO in the second party's log (if such exists), regardless of the status in the first party's log. This allows one cleanly to perform correct statistical analyses anent the number of QSOs made by running stations merely by excluding QSOs marked with a U in column k.
  • No attempt is made to detect the case in which both participants of a QSO bust the other station's call. This is a problematic situation because of the relatively high probability of a false positive unless both stations log the frequency as opposed to the band. (Also, on bands on which split-frequency QSOs are common, the absence of both transmit and receive frequency is a problem.) Because of the likelihood of false positives, it seems better, given the presumed rarity of double-bust QSOs, that no attempt be made to mark them.
  • The entries for the exchanges in the case of exchange or reverse exchange busts are normalised to two-letter or four-digit values in the same manner as described above for the exchanges in the cleaned logs.

2020-07-03

Reverse NILs in CQ WW: 2019; 2010 to 2019

The basic notion of reverse NILs (rNILs; or, I suppose, RNILs) is described here, along with a description of a simple script for calculating rNILs for CQ WW contests and the result of applying that code to the contests for 2005. See also the comments at the end of that post.

We can also look at the results for periods of ten years at a time; the only difference in the way that these decadal tables are calculated is that the minimum number of rQSOs is raised from 50 to 250 for tables pertaining to all QSOs and from 25 to 125 for those pertaining to intra-W QSOs. (That is, the value of the variable MIN_QSOs is changed from 50 to 250.)

Here, without further comment, are the results for 2019 and for the period from 2010 to 2019:

2019 SSB:

Callsign Total rQSOs Total rNILs
EA2DMH 1628 1607
NP3LY 852 831
UT1UL 521 483
EA8DDS 391 387
OE5CWO/P 336 335
N9SE 352 315
EF8R 12106 234
D4C 10856 229
CN3A 9784 213
PJ4K 8171 193


Callsign Total rQSOs Total rNILs % rNILs
OE5CWO/P 336 335 99.7
EA8DDS 391 387 99.0
EA2DMH 1628 1607 98.7
KB9RDS 139 137 98.6
NP3LY 852 831 97.5
G0AKF 50 48 96.0
PY2BN 94 89 94.7
UT1UL 521 483 92.7
N9SE 352 315 89.5
WP4QHW 125 101 80.8


Callsign Total rQSOs with Ws rNILs against Ws
KV0Q 56 37
N7DD 62 36
K3LR 475 13
K5TR 236 11
W3LPL 369 9
K3EST 104 8
NV9L 135 7
W3PP 51 5
N2IC 37 5
K5GN 248 5


Callsign Total rQSOs with Ws Total rNILs against Ws % rNILs against Ws
KV0Q 56 37 66.1
N7DD 62 36 58.1
N2IC 37 5 13.5
AA9A 25 3 12.0
W3PP 51 5 9.8
W3UA 45 4 8.9
KJ4QHL 50 4 8.0
K3PP 26 2 7.7
K3EST 104 8 7.7
K1KI 26 2 7.7

2019 CW:

Callsign Total rQSOs Total rNILs
RC3W 1464 591
IK2FIR 704 339
MW2I 928 260
EF8R 14340 243
CN3A 11697 235
D4C 7870 203
FR4SC 1042 197
PZ5W 7634 183
TI7W 8734 179
PJ4K 10048 178


Callsign Total rQSOs Total rNILs % rNILs
DK1MIR 142 134 94.4
F5PHY 179 137 76.5
JF2WXS 61 43 70.5
UR4QR 131 92 70.2
RZ9A 227 126 55.5
HL3AMO 257 131 51.0
KO8Z 130 63 48.5
IK2FIR 704 339 48.2
JH2KKW 87 41 47.1
KG9N 112 52 46.4


Callsign Total rQSOs with Ws rNILs against Ws
N7DD 61 45
K0RF 256 25
K3LR 376 11
K1MT 27 11
W3LPL 398 10
KC1XX 180 9
K5TR 202 9
N6RO 292 7
W2FU 75 7
K8AZ 51 7


Callsign Total rQSOs with Ws Total rNILs against Ws % rNILs against Ws
N7DD 61 45 73.8
K1MT 27 11 40.7
AA9A 26 5 19.2
KV2K 33 6 18.2
K8AZ 51 7 13.7
K2QMF 44 6 13.6
K1GU 40 5 12.5
K8CX 25 3 12.0
N3RS 37 4 10.8
N2SR 38 4 10.5

2010 to 2019 SSB:

Callsign Total rQSOs Total rNILs
CN3A 90064 1808
JT5DX 17781 1701
OK1KZ 2268 1657
OT5A 71017 1653
EA2DMH 3034 1622
JR4GPA 3752 1531
LZ9W 87001 1474
A73A 67220 1409
D4C 60004 1406
PJ2T 73306 1387


Callsign Total rQSOs Total rNILs % rNILs
UT1ML 265 264 99.6
IR1I 578 575 99.5
KP4ROS 657 653 99.4
YL2014W 1105 1098 99.4
VU2SWS 261 259 99.2
YY4HAH 493 489 99.2
CU4AT 274 270 98.5
ZZ5Z 297 292 98.3
XE2WWW 302 293 97.0
EE5W 349 338 96.8


Callsign Total rQSOs with Ws rNILs against Ws
N7DD 592 347
KV0Q 629 310
N9RV 781 139
K3LR 4668 111
NR5M 750 103
N2IC 745 97
W3LPL 3039 89
W4QNW 165 76
W0AIH 1699 60
K5TR 2064 57


Callsign Total rQSOs with Ws Total rNILs against Ws % rNILs against Ws
N7DD 592 347 58.6
KV0Q 629 310 49.3
W4QNW 165 76 46.1
N9RV 781 139 17.8
NR5M 750 103 13.7
N2IC 745 97 13.0
K7ZSD 199 24 12.1
WA2HIP 145 17 11.7
N3AD 171 20 11.7
AB4B 164 19 11.6

CW 2010 to 2019:

Callsign Total rQSOs Total rNILs
OK1KZ 2699 2248
PJ2T 96418 1518
LZ9W 100972 1444
D4C 65535 1429
9A1A 106176 1392
JR4GPA 6639 1374
P33W 86049 1224
PJ4A 72237 1189
UA1CEC 5234 1172
8P5A 42282 1143


Callsign Total rQSOs Total rNILs % rNILs
I1XSG 534 527 98.7
OK1KZ 2699 2248 83.3
WB0CFF 432 313 72.5
TM0T 983 632 64.3
RA3ATE 1547 911 58.9
RA9KY 801 461 57.6
N2VM 391 225 57.5
AB3UM 276 153 55.4
XF1IM 702 385 54.8
RW9JD 1689 888 52.6


Callsign Total rQSOs with Ws rNILs against Ws
NR5M 1834 244
N7DD 365 165
N9RV 612 129
K0RF 2060 120
KV0Q 246 78
N0NI 1091 77
W3LPL 3023 75
KV2K 283 75
NR4M 1919 69
N7AT 1505 61


Callsign Total rQSOs with Ws Total rNILs against Ws % rNILs against Ws
N7DD 365 165 45.2
KV0Q 246 78 31.7
KZ5D 175 47 26.9
KV2K 283 75 26.5
NE3F 230 53 23.0
N9RV 612 129 21.1
NR5M 1834 244 13.3
W1WEF 300 33 11.0
KU2C 126 13 10.3
W0QQG 301 31 10.3

2020-07-02

Reverse NILs in CQ WW: 2018; 2009 to 2018

The basic notion of reverse NILs (rNILs; or, I suppose, RNILs) is described here, along with a description of a simple script for calculating rNILs for CQ WW contests and the result of applying that code to the contests for 2005. See also the comments at the end of that post.

We can also look at the results for periods of ten years at a time; the only difference in the way that these decadal tables are calculated is that the minimum number of rQSOs is raised from 50 to 250 for tables pertaining to all QSOs and from 25 to 125 for those pertaining to intra-W QSOs. (That is, the value of the variable MIN_QSOs is changed from 50 to 250.)

Here, without further comment, are the results for 2018 and for the period from 2009 to 2018:

2018 SSB:

Callsign Total rQSOs Total rNILs
B7P 909 756
UX7MR 728 727
M0SNB 610 236
PU2WDX 222 220
CO6HZ 245 212
IU8DSP 214 211
CN3A 9684 209
T42W 628 207
R6LHD 198 196
IS0NHT 245 172


Callsign Total rQSOs Total rNILs % rNILs
UX7MR 728 727 99.9
PU2WDX 222 220 99.1
R6LHD 198 196 99.0
NR4CW 87 86 98.9
IU8DSP 214 211 98.6
II3BVV 126 115 91.3
EA1FEB 85 77 90.6
MD0GLK 190 169 88.9
CO6HZ 245 212 86.5
B7P 909 756 83.2


Callsign Total rQSOs with Ws rNILs against Ws
N7DD 82 75
KV0Q 125 38
N3AD 98 14
W1NA 120 13
K1TTT 220 12
K3LR 498 11
AB4B 45 10
W0AIH 181 9
K5CD 122 9
K5TR 415 9


Callsign Total rQSOs with Ws Total rNILs against Ws % rNILs against Ws
N7DD 82 75 91.5
KV0Q 125 38 30.4
WB9Z 27 6 22.2
AB4B 45 10 22.2
W1WEF 30 5 16.7
K3UL 31 5 16.1
N3AD 98 14 14.3
W1NA 120 13 10.8
K0MD 50 5 10.0
K2LE 68 6 8.8

2018 CW:

Callsign Total rQSOs Total rNILs
UT4UB 256 252
D41CV 7608 241
UA4NCI 238 233
6V7A 6155 206
CN3A 11878 190
BA2BI 183 181
EF8R 12328 172
P33W 10871 168
TI7W 7634 168
SM6CPY 1263 159


Callsign Total rQSOs Total rNILs % rNILs
UR3VKC 156 155 99.4
BA2BI 183 181 98.9
K6AAM 64 63 98.4
UT4UB 256 252 98.4
BG1VFD 58 57 98.3
UA4NCI 238 233 97.9
SM5Q 86 82 95.3
HL3AMO 95 78 82.1
OM0ATP 168 125 74.4
JL1UTS 142 76 53.5


Callsign Total rQSOs with Ws rNILs against Ws
N7DD 70 37
K0RF 280 29
NR5M 365 19
N6WM 301 15
K1TTT 132 11
N9RV 88 9
K7RL 253 8
N4WW 124 8
W3LPL 371 7
NR4M 250 7


Callsign Total rQSOs with Ws Total rNILs against Ws % rNILs against Ws
N7DD 70 37 52.9
KB7ABJ 26 6 23.1
WO2T 32 7 21.9
W7WA 36 5 13.9
N7WA 37 5 13.5
K9RS 25 3 12.0
W4WHF 27 3 11.1
N0IJ 37 4 10.8
K0RF 280 29 10.4
W1UE 39 4 10.3

2009 to 2018 SSB:

Callsign Total rQSOs Total rNILs
OK1KZ 2635 1960
OT5A 71712 1899
CN3A 85535 1780
JT5DX 15006 1635
LZ9W 85524 1555
JR4GPA 4126 1537
A73A 63886 1397
PJ2T 72253 1368
OG5B 3380 1229
CR3A 52919 1211


Callsign Total rQSOs Total rNILs % rNILs
UT1ML 265 264 99.6
IR1I 578 575 99.5
KP4ROS 657 653 99.4
YL2014W 1105 1098 99.4
YY4HAH 493 489 99.2
CU4AT 274 270 98.5
EE5W 349 338 96.8
YU1IZ 283 266 94.0
RW4PK 274 225 82.1
RL2A 325 255 78.5


Callsign Total rQSOs with Ws rNILs against Ws
N7DD 552 315
KV0Q 591 286
NR5M 1189 148
N9RV 782 139
K3LR 4501 115
N2IC 793 96
W3LPL 2896 92
W4QNW 167 77
AA4V/VP9 4409 71
W0AIH 1855 62


Callsign Total rQSOs with Ws Total rNILs against Ws % rNILs against Ws
N7DD 552 315 57.1
KV0Q 591 286 48.4
W4QNW 167 77 46.1
N9RV 782 139 17.8
N7BT 138 22 15.9
K7ZSD 312 41 13.1
NR5M 1189 148 12.4
N2IC 793 96 12.1
WA2HIP 143 17 11.9
AB4B 161 19 11.8

2009 to 2018 CW:

Callsign Total rQSOs Total rNILs
OK1KZ 3201 2650
VU2PAI 6816 1561
PJ2T 91831 1513
JR4GPA 6765 1466
LZ9W 97049 1434
9A1A 99765 1365
D4C 57676 1226
PJ4A 70532 1209
P33W 83785 1198
UA1CEC 6183 1179


Callsign Total rQSOs Total rNILs % rNILs
OK1KZ 3201 2650 82.8
WB0CFF 432 313 72.5
TM0T 984 632 64.2
RA3ATE 1547 911 58.9
N2VM 561 328 58.5
RA9KY 801 461 57.6
AB3UM 276 153 55.4
XF1IM 702 385 54.8
RW9JD 1689 888 52.6
RW6BD 250 131 52.4


Callsign Total rQSOs with Ws rNILs against Ws
NR5M 2179 283
N7DD 408 134
N9RV 535 126
K0RF 2104 122
KV0Q 285 116
N0NI 1144 76
W3LPL 2862 73
NR4M 1808 73
KV2K 250 69
W2FU 1836 60


Callsign Total rQSOs with Ws Total rNILs against Ws % rNILs against Ws
KV0Q 285 116 40.7
N7DD 408 134 32.8
KZ5D 171 49 28.7
KV2K 250 69 27.6
NE3F 191 49 25.7
N9RV 535 126 23.6
W0ZA 130 23 17.7
WR7Q 131 18 13.7
NR5M 2179 283 13.0
AD4ES 139 17 12.2

2020-07-01

Reverse NILs in CQ WW: 2017; 2008 to 2017

The basic notion of reverse NILs (rNILs; or, I suppose, RNILs) is described here, along with a description of a simple script for calculating rNILs for CQ WW contests and the result of applying that code to the contests for 2005. See also the comments at the end of that post.

We can also look at the results for periods of ten years at a time; the only difference in the way that these decadal tables are calculated is that the minimum number of rQSOs is raised from 50 to 250 for tables pertaining to all QSOs and from 25 to 125 for those pertaining to intra-W QSOs. (That is, the value of the variable MIN_QSOs is changed from 50 to 250.)

Here, without further comment, are the results for 2015 and for the period from 2008 to 2017:

2017 SSB:

Callsign Total rQSOs Total rNILs
MI0M 1074 1052
YO6GUU 461 460
9A7A 6722 378
CU4AT 274 270
CO2SG 300 232
K2JMY 553 226
CN3A 10402 201
WP3E 198 184
EF8R 9135 183
F5JY 177 175


Callsign Total rQSOs Total rNILs % rNILs
YO6GUU 461 460 99.8
F5JY 177 175 98.9
YL2GP 168 166 98.8
CU4AT 274 270 98.5
MI0M 1074 1052 98.0
DV7DYH 90 88 97.8
F8KGH 145 141 97.2
IU2EFB 108 103 95.4
WP3E 198 184 92.9
JA2YCK 64 56 87.5


Callsign Total rQSOs with Ws rNILs against Ws
N7DD 88 67
KV0Q 90 54
W4QNW 36 22
N2IC 90 21
K3LR 560 13
K1XM 112 12
N9RV 81 9
N7AT 341 8
N4WW 136 8
K5TR 282 7


Callsign Total rQSOs with Ws Total rNILs against Ws % rNILs against Ws
N7DD 88 67 76.1
W4QNW 36 22 61.1
KV0Q 90 54 60.0
N2IC 90 21 23.3
N0IJ 25 4 16.0
N9RV 81 9 11.1
K1XM 112 12 10.7
K3EST 48 5 10.4
K2LE 62 6 9.7
K3UL 26 2 7.7

2017 CW:

Callsign Total rQSOs Total rNILs
YT9A 1222 758
GU4CHY 1119 472
XF1IM 702 385
KW2J 312 264
CN2R 9134 232
W0QQG 236 232
P33W 8938 157
PJ2T 9740 150
LZ9W 9342 149
TI7W 7773 148


Callsign Total rQSOs Total rNILs % rNILs
W0QQG 236 232 98.3
WP3E 60 58 96.7
RM6G 152 146 96.1
KW2J 312 264 84.6
DL1SXB 60 41 68.3
UY8QQ 148 99 66.9
YT9A 1222 758 62.0
PT8CW 170 105 61.8
OK2EW 121 73 60.3
XF1IM 702 385 54.8


Callsign Total rQSOs with Ws rNILs against Ws
WJ9B 83 42
W0QQG 28 28
NR5M 394 20
N7DD 31 20
KV2K 44 17
NA6O 329 15
N7AT 256 12
N0NI 163 11
K3LR 358 10
K1TTT 243 10


Callsign Total rQSOs with Ws Total rNILs against Ws % rNILs against Ws
W0QQG 28 28 100.0
N7DD 31 20 64.5
WJ9B 83 42 50.6
KV2K 44 17 38.6
K5TU 25 7 28.0
KA3NUV 25 7 28.0
W1WEF 30 7 23.3
N2MM 30 4 13.3
N5CR 26 3 11.5
N2NT 53 6 11.3

2008 to 2017 SSB:

Callsign Total rQSOs Total rNILs
OK1KZ 3002 2286
OT5A 72000 2072
CN3A 80388 1751
JT5DX 15006 1635
LZ9W 83051 1594
JR4GPA 4332 1573
A73A 61116 1416
PJ2T 70118 1370
D4C 45591 1286
DF0HQ 79887 1276


Callsign Total rQSOs Total rNILs % rNILs
YO6GUU 461 460 99.8
UT1ML 265 264 99.6
SM0GYX 469 467 99.6
IR1I 578 575 99.5
KP4ROS 657 653 99.4
YL2014W 1105 1098 99.4
YY4HAH 493 489 99.2
CU4AT 274 270 98.5
EE5W 349 338 96.8
YU1IZ 283 266 94.0


Callsign Total rQSOs with Ws rNILs against Ws
N7DD 545 286
KV0Q 485 260
NR5M 1421 221
N9RV 699 134
K3LR 4244 116
N2IC 849 112
W3LPL 2717 90
K7ZSD 431 80
W4QNW 171 80
AA4V/VP9 4409 71


Callsign Total rQSOs with Ws Total rNILs against Ws % rNILs against Ws
KV0Q 485 260 53.6
N7DD 545 286 52.5
W4QNW 171 80 46.8
N9RV 699 134 19.2
K7ZSD 431 80 18.6
N7BT 138 22 15.9
NR5M 1421 221 15.6
W1DX 164 22 13.4
K9RS 165 22 13.3
N2IC 849 112 13.2

2008 to 2017 CW:

Callsign Total rQSOs Total rNILs
OK1KZ 3625 3012
VU2PAI 7476 2214
JR4GPA 6959 1636
PJ2T 88231 1489
D4C 65421 1453
LZ9W 93667 1411
8P5A 44160 1233
9A1A 89188 1233
PJ4A 69307 1223
UA1CEC 7035 1191


Callsign Total rQSOs Total rNILs % rNILs
RV9MZ 530 529 99.8
UA3WT 385 384 99.7
RN4LL 280 279 99.6
RZ0SO 256 255 99.6
OK1KZ 3625 3012 83.1
KP2BH 296 212 71.6
WB0CFF 443 313 70.7
YY5EBV 252 165 65.5
TM0T 984 632 64.2
RA3ATE 1547 911 58.9


Callsign Total rQSOs with Ws rNILs against Ws
NR5M 2055 305
KV0Q 315 136
N9RV 447 117
N7DD 350 102
K0RF 1977 100
N0NI 1100 98
W3LPL 2666 75
KV2K 227 72
NR4M 1713 70
NQ4I 1715 66


Callsign Total rQSOs with Ws Total rNILs against Ws % rNILs against Ws
KV0Q 315 136 43.2
KZ5D 169 56 33.1
KV2K 227 72 31.7
N7DD 350 102 29.1
N9RV 447 117 26.2
NE3F 196 50 25.5
N7UA 187 30 16.0
K9RS 144 23 16.0
NR5M 2055 305 14.8
WR7Q 132 18 13.6

2020-06-30

Reverse NILs in CQ WW: 2016; 2007 to 2016

The basic notion of reverse NILs (rNILs; or, I suppose, RNILs) is described here, along with a description of a simple script for calculating rNILs for CQ WW contests and the result of applying that code to the contests for 2005. See also the comments at the end of that post.

We can also look at the results for periods of ten years at a time; the only difference in the way that these decadal tables are calculated is that the minimum number of rQSOs is raised from 50 to 250 for tables pertaining to all QSOs and from 25 to 125 for those pertaining to intra-W QSOs. (That is, the value of the variable MIN_QSOs is changed from 50 to 250.)

Here, without further comment, are the results for 2016 and for the period from 2007 to 2016:

2016 SSB:

Callsign Total rQSOs Total rNILs
HK1X 2135 642
6W1RY 5016 174
TM5X 359 174
CN3A 8779 154
LZ9W 8142 150
OK1HFP 187 145
EF8R 7779 144
YB1CYD 147 144
9A1A 8240 139
IW0GTA 332 138


Callsign Total rQSOs Total rNILs % rNILs
YB1CYD 147 144 98.0
OK1HFP 187 145 77.5
4F9HKZ 149 115 77.2
IW0SAF 90 65 72.2
HB9YC 188 129 68.6
TM5X 359 174 48.5
YC1LS 71 33 46.5
RG7K 98 44 44.9
M0YKS 66 29 43.9
IW0GTA 332 138 41.6


Callsign Total rQSOs with Ws rNILs against Ws
KV0Q 58 40
N7DD 39 20
K2LE 56 19
WE3C 437 13
K3LR 490 13
W4RM 147 8
K5TR 286 7
K1VR 51 7
NV9L 93 6
KC1XX 221 6


Callsign Total rQSOs with Ws Total rNILs against Ws % rNILs against Ws
KV0Q 58 40 69.0
N7DD 39 20 51.3
K2LE 56 19 33.9
K3UL 34 5 14.7
K1VR 51 7 13.7
K3EST 35 4 11.4
N5CR 28 3 10.7
NE3F 39 4 10.3
N2MM 40 4 10.0
WA3EKL 31 3 9.7

2016 CW:

Callsign Total rQSOs Total rNILs
YV8AD 572 559
CN2R 9856 287
HK1NA 10346 231
8P5A 6620 231
YN2SX 2007 192
PJ2T 9622 174
LZ9W 9153 157
P33W 8702 157
VP2VI 4666 155
TM1A 5481 155


Callsign Total rQSOs Total rNILs % rNILs
YV8AD 572 559 97.7
W6SJ 81 51 63.0
PP5BLU 274 147 53.6
RT2F 214 110 51.4
JH1UBK 123 60 48.8
EA7GSU 209 85 40.7
AA3TT 143 57 39.9
UA9MLT 341 119 34.9
UN7QF 52 15 28.8
SP9PGE 55 14 25.5


Callsign Total rQSOs with Ws rNILs against Ws
N9RV 104 43
KV0Q 109 24
N7DD 32 24
W3W 36 16
NR5M 172 14
NR4M 298 13
W3LPL 416 12
KV2K 38 12
WE3C 488 11
N6WM 268 8


Callsign Total rQSOs with Ws Total rNILs against Ws % rNILs against Ws
N7DD 32 24 75.0
W3W 36 16 44.4
N9RV 104 43 41.3
KV2K 38 12 31.6
KV0Q 109 24 22.0
K2LE 44 7 15.9
K7LFY 26 4 15.4
WB9Z 31 4 12.9
AB3CX 33 4 12.1
K6ND 38 4 10.5

2007 to 2016 SSB:

Callsign Total rQSOs Total rNILs
OK1KZ 3526 2718
OT5L 2560 2516
OT5A 71792 2290
CN3A 74717 1723
LZ9W 80689 1668
JR4GPA 4444 1581
JT5DX 9897 1559
PJ2T 67095 1380
DF0HQ 79026 1371
P33W 65445 1351


Callsign Total rQSOs Total rNILs % rNILs
SM0GYX 469 467 99.6
IR1I 578 575 99.5
KP4ROS 657 653 99.4
YL2014W 1105 1098 99.4
YY4HAH 493 489 99.2
OT5L 2560 2516 98.3
EE5W 349 338 96.8
YU1IZ 302 284 94.0
IR8Z 349 277 79.4
RL2A 323 255 78.9


Callsign Total rQSOs with Ws rNILs against Ws
N7DD 548 300
NR5M 1415 221
KV0Q 407 211
K3LR 4036 131
N9RV 618 125
N2IC 851 122
K7ZSD 510 114
W3LPL 2533 96
NQ4I 2534 75
AA4V/VP9 4409 71


Callsign Total rQSOs with Ws Total rNILs against Ws % rNILs against Ws
N7DD 548 300 54.7
KV0Q 407 211 51.8
W4QNW 135 58 43.0
AC5O 140 41 29.3
K7ZSD 510 114 22.4
N9RV 618 125 20.2
N7BT 138 22 15.9
NR5M 1415 221 15.6
N2IC 851 122 14.3
W1DX 161 22 13.7

2007 to 2016 CW:

Callsign Total rQSOs Total rNILs
LT1F 35278 4950
OK1KZ 4105 3377
VU2PAI 8312 2214
SV1ENG 17771 1744
D4C 71981 1700
JR4GPA 7043 1653
PJ2T 84480 1503
LZ9W 92189 1435
8P5A 48687 1386
PJ4A 72972 1345


Callsign Total rQSOs Total rNILs % rNILs
RV9MZ 530 529 99.8
UA3WT 385 384 99.7
RN4LL 280 279 99.6
RZ0SO 256 255 99.6
RA2FW 363 360 99.2
IH9U 879 826 94.0
W1CDX 253 212 83.8
OK1KZ 4105 3377 82.3
KP2BH 296 212 71.6
YY5EBV 252 165 65.5


Callsign Total rQSOs with Ws rNILs against Ws
NR5M 1661 285
K0RF 1921 156
KV0Q 268 134
N9RV 446 117
N0NI 1004 90
N7DD 337 82
NQ4I 1907 76
W3LPL 2524 71
NR4M 1613 67
W2FU 1768 66


Callsign Total rQSOs with Ws Total rNILs against Ws % rNILs against Ws
KV0Q 268 134 50.0
N6JRL 126 47 37.3
KZ5D 148 49 33.1
KV2K 183 55 30.1
N9RV 446 117 26.2
N7DD 337 82 24.3
NE3F 203 49 24.1
N7UA 212 48 22.6
NR5M 1661 285 17.2
K9RS 135 23 17.0