Saturday, December 24, 2022

CARC 2022 WSPR Competition

Stewart Bryant G3YSX

Following on from the successful WSPR competition we ran in 2017 and in memory of Peter Head, G4FYY, who sadly passed away earlier this year, CARC decided that we would run another WSPR event this year. 

Peter was a major force in introducing the club to two things: small practical loop antennas, and Hans Summer (G0UPL) WSPR transmitters. Peter took the teachings of club member Mike G3LHZ on small loops and encouraging many club members to build the simple coax based loop that used the Decca Navigator surplus 75R 10mm coax as both the loop itself and the loop capacitor. More details of this can be found here. A number of club members built this design earlier this year.


Peter's original loop as published in the Crawley Newsletter in 2008 is shown here.











There was also, at Peter's behest, a CARC club project to build the keenly priced WSPR beacon kits that Hans, G0UPL produces and sells through QRP-Labs. The author's WSPR beacons are shown below. To the left is one of the early QRP-labs beacon transmitters integrated in a case to a design put together by Peter and Adrian, G3VJM, and to the right is a QRP-labs Ultimate3S Transmitter. The author used neither of these devices in this year's test.



It was the completion of these kits as club projects that caused us to run the first WSPR contest in 2017.

Rules for 2022

The following rules were initially proposed for 2022:

The completion will run for the calendar month of November with the results announced at the CARC December dinner.

The only band used will be 40m.

Power is limited to 5 watts

You may use a separate antenna for transmit and receive or a single antenna, BUT all parts of the antenna system must be contained within in a notional cube 2m on each side resting on the ground.

A point will be awarded for each DXCC county worked and a point will be awarded for each unique station worked. The score will be the product of countries and unique stations.

There will be three entry classes:
  1. Transmit and receive.
  2. Transmit only
  3. Receive only

In the case of transmit and receive the point is scored if the entrant hears a station and that station hears them within within the same hour (ie. 1600 to 1659 is a point but 1559 and 1600 is not).

The adjudicators will allocate an entrant to all classes in which they are eligible, but entrants will only be eligible to win one class.

There will be a small prize for the winner of each class.

Entrants must notify the committee that they have entered before 00.00 GMT on 1st December so that their results can be extracted from the WSPR online database. Early notification of callsign would be appreciated by the adjudicators so that the scoring software can be checked.

After running the event for a while to was noted that we only had one entrant for Transmit and Receive and one for receive only, and so we added an extra class for transmit and receive with no antenna restrictions. When it came to adjudication, I ran out of time to implement the sliding window QSO code and so implemented a more liberal definition of a QSO.

The Entrants and their Stations

The following club members entered:

Callsign Section
2E0XDZ Open
M0IJP Open
M0TZZ Open
M0WID Restricted Transmit and Receive using G4FYY loop
M5SB Restricted Receive only using Wellbrook Loop
M6DPW Restricted Transmit and Receive using new loop design
G0UPL Open
GX3WSC Open
G3YSX Open
G3YSX/1 Open - doing an antenna test but eventually merged with G3YSX
G4PEO Open

As you can see only M0WID, who ran a parallel station later in the event using his foundation callsign M6DPW, and G3YSX using his club call M5SB were in the original restricted antenna entry class. All other entrants were in the open section and were mainly using wire antennas except G3YSX who initially used his 80 dipole, but then, like GX3WSC used a Steppir 40m folded dipole.










The above two pictures show the G4FYY loop used by M0WID and a loop made using 28mm copper pi made by M0WID and operated under the callsign M6DPW. David reported that the G4FYY loop was very temperature dependent with regard to tuning. This makes it OK for short interactive QSOs, but casts doubt on its suitability for long term events such as this.












The picture above shows the Wellbrook loop on an insulated adapter supported by the satellite dish mount both acquired by the author from the recent G0EID SK sale. The plan is to relocate the stand further house and to use it for QO100 work. However I am so impressed with the performance of the loop that I will make space for it on the base when I move it to its new location further from the house. 

The Adjudication Process

As most readers will know the WSPR reports from those that receive WSPR transmisisons are aggregated on the WSPRnet web site. Here in the downloads section you can find a zip file with all of the month's reports. When I last ran the adjudication process for a CARC WSPR competition in 2017 the file size was approximately 2.5GB and contained 30M entries. By the end of November 2022, the monthly size had grown to 10.3GB with 119M entries putting a strain on the rather simple minded Python2 code that I resurrected for this task.

The first thing that I did was to exclude all lines with a callsign that started with 0, 1 or Q in either the call or the reporter field. These calls are used by the ballon experimenters that are using WSPR to report the position and state of their balloons. This reduced the size of the file to be analysed  to 104M, but importantly it reduced the chance of these non-amateur callsigns affecting the results.

I then inspected the WSPR reports file and found all singly reported callsign-locator pairs on the assumption that these were reported in error as a result of a false decode due to local noise.  I thank M0WID for determining that this was occurring and inflating some of the results.

I then scrubbed the WSPR reports file of the following:

  • Any activity not on the 40m band
  • GM1MSS reports from locator QD24 which I believe was falsely reporting their locator and affecting the distance analysis
  • R1CBW in ED10 which again I think was misreporting their locator and affecting the distance analysis
  • All records not involving transmission or reception by a member
  • All records that had a singly reported reporter locator pair
  • All records where a member was not at their reported location
This reduced the number of reports to be analysed  to a more manageable 1.3M.

I should not the I only found the GM1MSS and R1CBW errors because they were coming up as implausible ODX reports. I am sure that the WSPR database contains other such errors, but I have not yet found a simple way to cleans the database of these reports.

One of the problems that now had to be solved was how to correctly determine the country of a QSO partner. The algorithm for mapping a callsign to a country is quite complex with all kinds of exceptions so rather than addressing this programmatically I chose to build a table of all QSO partner callsigns and their DXCC entity number. The use of the entity number approach allowed for multiple callsigns belonging to the same country (M, G, 2E for example). This meant first running an attempt at adjudicating the results and collecting the list of unrecognised QSO partner callsigns, and then editing the QSO partner file to include the callsign tagged with its entity number and an abbreviation for their country. Over the three times that we have won this event the "observer" file has grown to 5859 entries. After the time taken to design the analysis process, this was the most time consuming activity.

I then ran three programs, the first extracted the transmission results, the second extracted the receive results and the third extracted the QSO results. QSOs was considered to be any two way exchange during the month no matter what the interval between transmission  and reception. As noted above, I had originally planned to use a shorter time window but I ran out of time to write the necessary analysis code. 

For Python aficionados the software was based on Python lists in which contacts with stations and countries were uniquely appended. Thus most of the work was creating lists from a single pass of the input data and reporting was a case of counting the various list sizes. Working out the number of QSO for member m was remarkably easy using the Python set technology:

x = set(mrx[mc.index(m)]) & set(mtx[mc.index(m)])

xl = len(x)

where mrx[mc.index(m)]is a list callsigns heard by member m and mtx[mc.index(m)] is a list of callsigns that heard member m. The length of the set intersection xl is the number of two way contacts. I include this to show you why I like the power of Python in this type of data analysis. I am however interested in knowing how easy and how fast it would be to do this using database technology, but that is an investigation for the future.

I did not have time to code the countries analysis of the QSO section so I made the assumption that if a transmit and receive country was listed for a station that counted as a two way country contact. This is an approximation that I think is unlikely to significantly affect the overall result so I think it is safe to use this approach for this analysis of the results.

I plan to clean up the code and archive it on GitHub if anyone is interested.

Results

In  determining these results I think that it  is fair to combine the results of M0WID and M6DPW and the results of G3YSX and G3YSX/1 since they were the same stations using different antennas.

Restricted Antenna TX

Posn    Member  St'ss   Entity  Score  ODX     ODX c/s   mean(km)

      M0WID   1032    55      56760  16824   VK3TPM    992

M0WID as the sole entrant is therefore the winner.


Open Tx

Posn    Member  St'ss   Entity  Score  ODX     ODX c/s   mean(km)

1       G3YSX   1126    68      76568  18837   ZL4CAT    1625.0

2       M0TZZ   1123    66      74118  18997   ZL3PX     1572.0

3       G4PEO    935    65      60775  18863   ZL4CAT    1987.0

4       2E0XDZ   687    52      35724  18775   ZL2005SWL 1934.0

5       GX3WSC   213    42       8946  13553   DP0GVN/3  2235.0

6       M0IJP      7     1          7     84   M0TZZ       63.0


G3YSX is therefore the winner from runner up  M0TZZ by a small margin.


Restricted Antenna RX

Posn    Member  St'ss   Entity  Score  ODX     ODX c/s   mean(km)

1       M0WID   1181    60      70860  18996   ZL3PX   1053.0

2       M5SB    1020    55      56100  19007   ZL3PX   1042.0

M0WID is therefore the winner.


Open RX

Posn    Member  St'ss   Entity  Score  ODX     ODX c/s   mean(km)

1       G3YSX   1050    58      61364  18992   ZL3PX   1082.0

2       M0TZZ    694    52      36088  18997   ZL3PX    779.0

3       G4PEO    560    43      24080  16335   VK5ADE  1110.0

4       2E0XDZ   514    41      21074  16317   VK5ADE   994.0

5       GX3WSC   129    24       3096    931   BX6ABC  2276.0


G3YSX is therefore the winner in this section.


Restricted antenna QSO

Posn    Member   QSO  Entity Score 


1        M0WID   474    45   21330  


M0WID as the sole entrant is therefore the winner.

Open QSO

Posn    Member   QSO  Entity Score

 

1       G3YSX    442    49   21658

2       M0TZZ    379    45   17055

3       G4PEO    286    38   10868

4       2E0XDZ   213    36    7668

5       GX3WSC    22    21     462


G3YSX, again closely followed by M0TZZ, is therefore the winner.


For persistence with the spirit of the original rules, for beating everyone in the RX section with his small loops close to the ground and for almost winning the QSO section I think that it is appropriate to declare M0WID as the overall winner of the event and I hope you will join me in congratulating him on a sterling performance. 


From a technical perspective these results indicate that a small loop close to the ground is not as effective as a full-sized antenna at hight for transmission, but it does well enough if no other antenna is available, and thus those with small sites should not be discouraged. For reception however the small  loops clearly did well during this test on 40m.


The Future

There is clearly interest in this type of activity in CARC. I have one input on what we should do next in this area and I will post my thoughts in another article. Meanwhile, I hope that you enjoyed the event and I would like to hear your views on whether we should put this  type of event on in the future and what its key characteristics should be.

Raw Data

I will make the full output of the software I wrote available in another article for the entrants to study.




1 comment:

M0WID said...

Thanks for all your hard work on the scoring, Python code and this write up.

Dave M0WID