Table of Contents
Introduction
A previous post in this series discussed how decoded FT8 information from a program like ft8modem can be processed to validate the locations reported in FT8 messages. It intentionally focused on a particular FT8 transmitter that was received by only three receivers because this kept the figures relatively simple and uncluttered. However, in this post I'll be presenting a couple examples that are somewhat more complex and messy.
In a departure from previous posts, this one will use azimuthal equidistant projection for maps. The center point will always be the location reported by the transmitter in question. Azimuthal projection has some interesting advantages that will become clear when we look at the visualizations.
Example #1: PY2PM Reports GG66
The first figure, below, shows the initial results of of processing the data collected for PY2PM. The goal of this initial analysis is to produce an EPDF for each pair of receivers that double-cospotted PY2PM at the same time as one or more other transmitters.
Note that there is an interesting complication during this initial analysis: for any given pair of receivers, Ra and Rb, we have raw data but we don't actually know if that data corresponds to short-path or long-path propagation! I won't go into the details here but part of the initial analysis involves trying each long/short path combination to see which produces the "best" result. Of course, the "short-path to Ra and short-path to Rb" combo almost always turns out to be best, but not always! For example, in the figure above, the data for the sixth receiver pair (EA8BFK and VE6JY) is best explained under a short/long assumption.
Once we have determined our propagation assumptions from the initial analysis, we can visualize some expectations for the outcome of subsequent analysis. The next figure, below, features six "lime green" loops each of which represents one branch of a hyperbola on Earth's spherical surface and these are our expectations, going forward. Each is based on the position of Ra and Rb, the reported location of PY2PM, and the propagation assumption for Ra and Rb. When we plot our actual observations, we should see an obvious correlation between the expecations and the observations if PY2PM has reported their location correctly.
We've seen similar expectation plots in previous posts but the big change here is that we're now plotting on an aziumuthal projection. As a result, the branches appear as continuous, unbroken loops which better illustrates the actual geometry of hyperbolas on spheres. This projection also makes it easier to visually determine which two receivers correspond to any given branch because the branches are (distorted) ellipses and the receivers are the focii of those ellipses.
In the next figure, below, the EPDFs are plotted onto the map where they appear as "fuzzy" orange loops. These are actual observations which we can compare to the lime green theoretical expectations. We see that the observations do, indeed, correspond quite well to the expectations!
In the next figure, below, the six fuzzy observations have been combined as described in a previous post. The result is a "hotspot" in the vicinity of the transmitter's reported location. It's starting to look like PY2PM really is at GG66.
The final figure, below, simply zooms in on the previous one so that we can get a closer look. At this level of zoom we can more clearly make out various features of the visualization.
A darker green ellipse provides an indication of the expected precision of the observation, based on: ① the resolution of each receiving pair at the reported location and ② the number of samples collected by each receiving pair.
A black rectangle represents GG66, the location reported by the transmitter. There are two points of special interest in this rectangle: ① the point at which the hotspot is warmest and ② the point at which the hotspot is the coolest. Note that neither of these two points are marked on the visualization, but they are used to define the next two features.
A larger red countour circumscribes the points on Earth's surface which are more likely to be the transmitter's true location, compared to GG66's coolest point. Put another way, this is the heatmap contour level that passes through GG66's coolest point.
A smaller red contour circumscribes the points on Earth's surface which are more likely to be the transmitter's true location, compared to GG66's warmest point. Put another way, this is the heatmap contour level that passes through GG66's warmest point.
A red dot indicates the most likely position of the transmitter, according to observations. I.e. the dot marks the max of the hotspot.
The following should usually be true of these diagrams: ① Each red contour (used for scoring) should have a shape and orientation similar to the dark green ellipse (the accuracy estimate) and ② The red dot (indicating the most probable transmitter location according to observations) should usually be inside the green ellipse (the accuracy estimate).
Based on the scoring contours, my code assigns a validation score of "0.9992 to 0.9998" to this example.1
Example #2: LZ2KV Reports KN33
The results of the initial processing of the data for LZ2KV appear below. The data for each of the six receiver pairs is best interpreted as having propogated along short paths.
The theoretical expectations for LZ2KV at KN33 appear below:
The observed fuzzy branches for LZ2KV appear below. Another nice match.
The observed hotspots for LZ2KV appear below. The secondary, fainter hotspot off the west coast of Mexico is not warm enough to figure into the contour/scoring.
A closeup of the primary hotspot for LZ2KV appears below.
The validation score range is "0.9999 to 1.0000" with the high end being the max possible because the hotspot's max falls within KN33 (the transmitter's reported location).
Conclusion
Well, that's just two examples but it's probably enough for one post! They all start to look more or less the same, after a while. Things will get more interesting if I can find other amateur radio operators or short wave listeners who would like to contribute data by setting up compatible OpenWebRX+ sites as described in this post. My experiments to date have used just a few SDRs listening for relatively long durations but what kind of results would we see if using more SDRs listening over relatively short durations? Would a sufficient large number of SDRs be able to verify locations after just one FT8 cycle?
On the visualization front, I hope some of you found the use of azimuthal projection for TDoA interesting. All the visualizations in this post were produced using Julia and the GeoMakie package.
73s for now!
Footnotes
Although a previous post briefly discussed scoring, it used only one contour. Since writing that post, I've switched to using two contours to produce a validation score range, which accounts for the fact that we don't actually know a transmitter's exact location within the grid it reported. It's still true that each red scoring contour has a single score based on the percentage of Earth's surface outside the contour. In this PY2PM example, 99.92% of the Earth's surface is outside the larger scoring contour meaning that we're 99.92% certain that the PY2PM is transmitting from inside that larger contour (because all points outside it are cooler on the heatmap) — this is the worst-case score. At the same time, 99.98% of the Earth's surface is outside the smaller scoring contour, meaning that we're 99.98% certain that PY2PM is transmitting from inside that smaller contour — this is the best-case score. The two scores together represent the bounds of a score range reported like "0.9992 to 0.9998".