A version of the 1st idea mentioned in
the last blog post is now implemented in the latest version of the
TDoA code and thanks to John it is available as an option in the KiwiSDR TDoA service.
The changes in the new TDoA algorithm are the following:
(1) Sanity checks on the recorded IQ wav files
Instead of aborting processing when a single file is found to be bad, stations are now excluded. If more than 1 good station is left, the processing proceeds without the excluded stations. The following checks are performed:
 check for recent GNSS position fixes
 validity check on then GNSS timestamps
 check if IQ!=0
 check if the overlap of all wav files is long enough (>10 sec)
(2) Finding clusters in the crosscorrelation peaks
For a given pair of stations, peaks in the crosscorrelations are found as before. Then these peaks are assembles into up to four clusters using an adaptive clusterization algorithm. It starts by assuming that there are four clusters. If the four clusters are not valid, the algorithm starts again, this time assuming that there are three clusters. When all clusters are valid the algorithm terminates.
The used clusterization algorithm is iterative:
 It starts by assuming that there are N clusters and puts N+1 boundaries b_{i} at equidistant places between the minimum and maximum time of the cross correlation peaks.
 Then it recomputes the boundaries as follows: Let t_{i,i+1} be the average of the mean of the cross correlation peaks between b_{i} and b_{i+1}. The boundaries are iteratively updated as b_{i}=(t_{i1,i}+t_{i,i+1})/2 until they become constant.
 A cluster is called valid if the distribution of entries in it is not compatible with a random distribution.
 If all clusters are valid or if there is only one cluster (N=1) then the clusterization algorithm terminates.
(3) Selection of those clusters which optimally fulfill the consistency equations
 If there are three stations, crosscorrelation times of the same signal fulfill (12)(13)(23)=0.
 When there are four stations, there are more of these consistency equations, e.g., (12)(14)(24)=0, (23)(24)(34)=0 etc.
 For all combinations of clusters all consistency equation are evaluated. Each equation provides the deviation from 0 in terms of number of sigmas (nsigma) using the mean and RMS of the clusters.
 In the end the combination of clusters is selected which for all consistency equations results in the smallest nsigma

If the nsigma value in any given equation is greater than 3, stations are iteratively excluded until 3 stations are left. The combination of excluded stations which brings max(nsigma) below 3 is not used later on for making the TDoA maps.