Faisal generated TULIP results for SLAC as target (134.79.18.188) and TULIP geo-located it to be in Wyoming. Screenshot here. This is obviously way off.
Dr. Les quickly explained what TULIP was doing and wanted to do a quick analysis of the same location (i.e. SLAC) using CBG with tri-lateration. So I found a target located at SLAC (134.79.18.134) in CBG list. We ran CBG with tri-lateration for this target. The results were way off. The error distance was of the order of ~3200 km.
However Dr. Les pointed out that we should be using three landmarks that have the minimum RTT values from the target. Thus we shuffled our values accordingly and re-ran the test with two different set of landmarks. This helped to verify our results. Table below shows the results:
Landmark 1 |
Landmark 2 |
Landmark 3 |
Error (km) |
Distance to nearest landmark (km) |
Area of Region (km) |
Est. Lat/Long |
Actual Lat/Long36.9899 -122.06 |
---|---|---|---|---|---|---|---|
36.9899 -122.06 (Santa Cruz) |
38.4829 -121.64 (Davis) |
37.3558 -121.954 (Santa Clara) |
25.254 |
2.5132 |
1498.5 |
37.474 -121.93 |
37.418 -122.2 |
37.4285 -122.178 (Stanford) |
37.3762 -122.183 (Palo Alto) |
37.3558 -121.954 (Santa Clara) |
2.5156 |
2.5132 |
1048.8 |
37.429 -122.18 |
37.418 -122.2 |
CBG with tri-lateration seems to be performing well.
These results prove that tri-lateration works. So the question is why is TULIP failing so miserably?
Spreadsheet here shows a comparison of error (in km) between CBG with multi-lateration and CBG with tri-lateration. The technique I've followed:
What I didn't do so far and why:
What I've tried and didn't work:
In the spreadsheet we have made various calculations in order to understand the results.
67/171 for multi-lateration and 6/171 for tri-lateration.
NaN (Not a Number) is a value of numeric data-type representing an undefined or unrepresentable value, especially in floating point calculations. MoreĀ here.
According to the CBG code NaNs represent "bad pairs that lead to no region". This means that landmarks that fail to produce intersection regions, consequently also fail to produce an estimate for the location of the target and instead give out an erroneous value. Author has handled such values with NaN (code snippet below).
if constraintType warning('Trying speed of light') constraintType = 0; % switch the constraint type and try again [locest,actual,error,regarea,distNearestLandmark,target_id,constraintType,inRegion\] = geolocate(file,extension,hullbool, constraintType, bestlineTable); return; else % find the badPairs that lead to no region, write them to stdout badPairs = analyzeNoRegion( measurements ) %error(\['No SOL intersection region for ', char(file)\]) region = \[NaN NaN\]; locest = \[NaN NaN\]; error = NaN; regarea = NaN; results = \[target_id error; distNearestLandmark regarea; locest; actual; region\]; dlmwrite(\[char(file),char(extension)\],results,' '); return; end; |
This is true for both multi-lateration and tri-lateration. And reasons could be one or more of the following:
I've inferred these from looking at the Target files.
There are 37 instances where tri-lateration performs better than multi-lateration, 26 instances where multi-lateration performs better than tri-lateration and in the rest both perform equally well. The reason as far as I understand is:
We sorted the Target files on the basis of distance between the target and landmark. This promoted those lat/long values to the top of the list which were closer to the target. Though any such sorting technique on these values doesn't affect multi-lateration results but it makes a huge impact on tri-lateration results. The reason being the way these two techniques use these values. Multi-lateration considers all values and figures out regions of intersection whereas tri-lateration simply takes three values to find an intersection region. If we have more landmarks and some of them fairly close to the target, multi-lateration will give good results. Even if some values aren't really good, it won't cause multi-lateration to behave in an entirely different way. However in case of tri-lateration, better the landmark estimates we have better the results are. Since we are only considering three values here, even a single one of those three values can make a big difference.
I'm inferring this from sorted Target files for tri-lateration. Before sorting Target files we were getting way-off results. We then tested our approach of taking RTT into account and manually re-arranged values to produce fairly accurate results. Later sorting on the basis of RTT failed as RTT isn't always directly related to distance. Our latest try involved sorting on the basis of distance instead of RTT, which proved to be quite successful.
So in short for those Target files which have both good and not-so-good landmark values, tri-lateration performs better than multi-lateration because good values are moved to the top of the list and are exploited by tri-lateration whereas multi-lateration takes into account all values.