Discussion What is the most efficient way to crowdsource the 3D system coordinates

I only get a 0.001 diff on the first one - The rest are fine??

With using the standard distance formula and then round to 3 digits
 
calc all distances normally.

Then round to 6 digits
Then round that to 3 digits.

Not sure how the numbers would get through that kind of mangling - but for the presented set it works.
 
calc all distances normally.

Then round to 6 digits
Then round that to 3 digits.

Not sure how the numbers would get through that kind of mangling - but for the presented set it works.

The previous one didn't work for me (with one of the coordinates that RedWizzard mentioned). This one doesn't work for at least:

Wredguia WH-Q B46-2 <-> keries

Recorded Distance from game: 131.337

Coords:
Wredguia WH-Q B46-2: -97.781250 56.875000 -49.750000
Keries: -18.90625 27.21875 12.59375

Actual calculated distance: 131.336496796
round 6: 131.336497
round 3: 131.336
 
Last edited:
Harbinger and RedWizzard. Just in case support hasn't responded to you about the ticket you iirc both created. Others can do the beneath also and ticket it. The more data supports gets, the better.

Response from support:
Hi Jan,

Would you be able to add the following 3 lines of code to the 'Network' section of your AppConfig.xml file, then grab a netlog for us should this issue happen again? You Can find your AppConfig file in the same folder that you have installed the EliteDangerous.exe to. The 3 lines you need to add are:

VerboseLogging="1"
ReportSentLetters="1"
ReportReceivedLetters="1"

If you have any issues let us know.

Thanks, Ashley

The actually meant EliteDangerous32.exe. On my system its in C:\Users\wolverine\AppData\Local\Frontier_Developments\Products\FORC-FDEV-D-1001. I've flown to a few different sytems and tried to enter WREDGUIA LW-E D11-129. Does not work.

I've added a log to my ticket. It's pretty clear from the log that something has gone wrong on the server end and it has stopped responding.

I noticed the spelling that the log uses for these generated systems:
Wredguia LW-E d11-129
Wredguia XH-Q b46-4
I'm going to adopt that pattern in my lists.
 
Here are some test coordinates, that I've found in my random testing.

Currently my program does not catch these and reports a wrong p0 value (working on fixing that somehow - Lots still to try - So I'm hopeful :D)

Code:
p0	-134.625	33.21875	-38.0625	0.000
p1	-101.09375	11	-24.09375	42.581
p2	-33.5625	33.125	13.46875	113.442
p3	-12.125	26	22.875	137.010
p4	-17.71875	19.125	19.59375	131.110
p5	-21.34375	22.375	16.25	126.096
My algorithm found the solution within 420000 "steps". Normal for a "well specified" star is under 1000, and I usually let it run for 60000 before giving up.

But it did eventually only find a single grid-aligned point within the candidate region, which matched the p0 coordinate you gave.

This is likely due to a very long, narrow, needle-like candidate region. Or possibly a very flat region. Basically, the region has a very large surface area, but very little actual volume, meaning it's spread out very thin in at least 1 dimension. Thin enough that it manages to squeeze between the grid points without encompassing them (except for the 1 true coordinate)

p0 -134.625 33.21875 -38.0625 0.000
p1 -60.84375 23.84375 -50.75 75.449
p2 -19 22.5625 -28.21875 116.532
p3 -18.21875 26.5625 -6.34375 120.834
p4 -21.96875 29.09375 -1.71875 118.445
p5 -29.4375 34.46875 21.53125 120.902

150000 steps for this one. But it still found the coordinate

p0 -74.09375 36.5625 -40.1875 0.000
p1 -113.25 16.78125 -28.34375 45.440
p2 -92.59375 15.1875 -9.15625 41.977
p3 -22 36 1 66.411
p4 -7.5625 42.59375 0.6875 78.317
p5 0.125 41.46875 11.96875 90.845

Only 20000 steps for this one.

p0 -118.75 14.40625 -21.40625 0.000
p1 -84.6875 50.21875 -6.40625 51.651
p2 -1.6875 29.65625 2.03125 120.356
p3 -7.90625 34.71875 2.125 115.120
p4 -21.96875 29.09375 -1.71875 99.850
p5 -43.78125 62.4375 -0.25 91.514

130000 steps for this one

p0 -76.6875 11.09375 -10.8125 0.000
p1 -38.46875 39.25 5.40625 50.165
p2 -19.75 41.78125 -3.1875 65.129
p3 -13.34375 53.78125 12.5625 79.881
p4 -21.65625 32.21875 -16.21875 59.194
p5 -3.4375 51.59375 2.03125 84.680

240000 steps for this one

p0 -88.625 38.09375 -13.65625 0.000
p1 -88.03125 47.1875 -6.15625 11.802
p2 -36.71875 41.6875 14.125 58.983
p3 -33.21875 37.34375 12.75 61.382
p4 -18.90625 27.21875 12.59375 75.286
p5 -18.3125 18.1875 4.90625 75.397
Only ~15000 steps for this one

p0 -123.59375 25.875 -33.25 0.000
p1 -74.875 31.75 -5.96875 56.145
p2 -39.84375 29.5625 -3.90625 88.818
p3 -32.3125 26.1875 -12.4375 93.624
p4 -60.625 35.125 3.21875 73.353
p5 -14.78125 33.46875 -0.40625 113.915

370000 steps for this one

p0 -134.625 33.21875 -38.0625 0.000
p1 -69.28125 32.25 -13.90625 69.673
p2 -64 24 -41 71.285
p3 2.65625 27.09375 -9.9375 140.266
p4 -60.625 35.125 3.21875 84.757
p5 -32.875 36.15625 15.5 115.024

110000 steps for this one.

So, I was able to find the correct coordinate in all cases if I let it run long enough, although in most cases I would have normally given up and just got more data for that star.

And when I say "steps", that is a measure of the number of grid-aligned points that my algorithm evaluated while trying to map out the candidate region. Basically, it's a measure of the size of the candidate region.
 
Here are some test coordinates, that I've found in my random testing.

Currently my program does not catch these and reports a wrong p0 value (working on fixing that somehow - Lots still to try - So I'm hopeful :D)

I would be interested in hearing if the rest of you catch these.
If not - It's some good test cases to tweak your program with.
If yes: Would be interested in hearing how you catch them

Let me know how it works out for you.

All caught: all of them produce p0 estimates which show significant errors.

There is something to consider here though. All of this data is good data that your tool would throw away. Three of those sets of distances are for the same star and while each set can't locate the star by itself it is very easy to locate the star using all 15 references. I only had to add one distance from the 2nd set to the first set to correctly locate it. I think it's worth considering whether discarding the data in these cases is the right option.
 
So, I was able to find the correct coordinate in all cases if I let it run long enough, although in most cases I would have normally given up and just got more data for that star.

And when I say "steps", that is a measure of the number of grid-aligned points that my algorithm evaluated while trying to map out the candidate region. Basically, it's a measure of the size of the candidate region.

Impressive. My Sag A* search is basically the lazy man's version of your algorithm: I get a reasonable approximation via trilateration and then search nearby. Your search is much more efficient because it's only searching the true candidate area. Bet it was a lot harder to write though!

In the case of Sag A* the shape of the overlap of the shells is basically a plane in the xy axes. The z coordinate is quite constrained. Eye-balling it puts it at about (25.25, -21, 25900) so even the trilateration result (25.46875, -20.90625, 25899.96875) seems pretty close. But I can't find an exact match in 10x10x10 Ly cube around that point. So I suspect that the ED distance bug is occurring here too.
 
My algorithm found the solution within 420000 "steps". Normal for a "well specified" star is under 1000, and I usually let it run for 60000 before giving up.

But it did eventually only find a single grid-aligned point within the candidate region, which matched the p0 coordinate you gave.

This is likely due to a very long, narrow, needle-like candidate region. Or possibly a very flat region. Basically, the region has a very large surface area, but very little actual volume, meaning it's spread out very thin in at least 1 dimension. Thin enough that it manages to squeeze between the grid points without encompassing them (except for the 1 true coordinate)

http://jsfiddle.net/8kom5mj4/

Sorta seems to fit what you are saying.
Although I'd think that p1(black) would minimize the area by a good bit, as that sphere should get close to orthogonally cut the spheres of p2(green) and p3 (orange).
Kinda hard to eyeball though ;)

But it's interesting to see that the coords gave your algorithm a rather good workout :D


PS : The fiddle: It's easy to copy/paste more points in there (and change the axis etc) - I've had the whole pill in there - Just for the heck of it :p
 
All caught: all of them produce p0 estimates which show significant errors.
You caught them - Super.

There is something to consider here though. All of this data is good data that your tool would throw away. <snip> I think it's worth considering whether discarding the data in these cases is the right option.

I'm approaching it from the viewpoint of a public facing app - that is *bound* to get some vandals at one time or another - or someone just monkey-typing away to see what happens.

From that point of view the distances are not to be trusted - unless they actually yield valid (and accurate) p0 coords.

Granted, someone could *still* do the math and enter a bunch of stars that don't even exist (by doing the reverse distance, just like we do to test).
That is however usually above the "effort threshold" of most vandals and the like.
But even in that event I'll be able to roll back (full log etc).
 
You must have a typo somewhere, it's definitely 131.336.

Code:
x: [-97.781250,  56.875000,  -49.750000]
y: [-18.90625,   27.21875,      12.59375]

x.subtract(y).length() = 104.82128578263577

The coords are copy pasted directly from the post so....
Dunno what coords the rest of you are using to get 131:S
 
Michael Brookes: I think there's just over 600 systems in the bubble - 607 if I remember correctly.

Hence, we still need 30-36 star systems ;-(

I don't think that's possible. I've flown around a fair bit today and not found any. I'm only using the navigation panel to check and I know there are some systems which don't always show up on that list (WREDGUIA XH-Q B46-*, WREDGUIA LW-E D11-*), so I can believe we might be missing a few. But I can't believe we're missing 5%. I think Michael's misremembered and I'm fairly confident that 570 is actually correct and we've got them all.
 
Impressive. My Sag A* search is basically the lazy man's version of your algorithm: I get a reasonable approximation via trilateration and then search nearby. Your search is much more efficient because it's only searching the true candidate area. Bet it was a lot harder to write though!

In the case of Sag A* the shape of the overlap of the shells is basically a plane in the xy axes. The z coordinate is quite constrained. Eye-balling it puts it at about (25.25, -21, 25900) so even the trilateration result (25.46875, -20.90625, 25899.96875) seems pretty close. But I can't find an exact match in 10x10x10 Ly cube around that point. So I suspect that the ED distance bug is occurring here too.

Yeah, I tried letting my algorithm run for Sag A* for a while. It wasn't showing any signs of finishing any time soon :)
 
I'm approaching it from the viewpoint of a public facing app - that is *bound* to get some vandals at one time or another - or someone just monkey-typing away to see what happens.

From that point of view the distances are not to be trusted - unless they actually yield valid (and accurate) p0 coords.

Granted, someone could *still* do the math and enter a bunch of stars that don't even exist (by doing the reverse distance, just like we do to test).
That is however usually above the "effort threshold" of most vandals and the like.
But even in that event I'll be able to roll back (full log etc).

Your app doesn't provide feedback so it's relatively hard to find fake points, but with mine you can do a simple iterative refinement on your distances and no math is required. For example, it took me all of 30 seconds to generate this set:
Sol: 39.993
Wolf 497: 19.201
Huokang: 29.87
Demeter: 39.142
Clotti: 73.004
Someone could use mine to make that set and then enter it into yours and yours would accept it. And it think relying on the idea that generating fake points is too hard is unwise - someone will do it just to see if they can. So you can't use the validity of the trilateration to validate the input, which is why you require the star to be entered 5 times before really accepting it (though I could still get bad data in by simply generating more distances from the point I've found, it would take me another two or three minutes to generate 20 matching distances). The only fool-proof way to verify input is for someone trusted to check them in game.

Anyway that "independent confirmation" process (data entered 5 times) can easily be performed on individual distances too. So input validity isn't really a good reason to reject individual distances.

Incidentally, would it be possible to extend your API so we could fetch the input (distance) data? Fetching a list of stars is nice but it'd be much more useful if I could also fetch the distance data to confirm them.
 
Code:
x: [-97.781250,  56.875000,  -49.750000]
y: [-18.90625,   27.21875,      12.59375]

x.subtract(y).length() = 104.82128578263577

The coords are copy pasted directly from the post so....
Dunno what coords the rest of you are using to get 131:S

Your first line of coordinates is for Wredguia UR-Q b46-2. The problem star is Wredguia WH-Q b46-2 at (-132.6875, 26.46875, -53).
 
You are absolutely correct, that anyone determined enough can easily mess things up - and there's not a thing I can do about it.

Except roll back.

Which is of course a pain in the back (and worse).

That's how I've chosen to roll though - I'll take my chances and see what happens.
If it turns out that someone has gotten mad enough at me for some reason, and constantly wrecks the DB with bad data - Then I'll have to change my policy, or go offline completely (not worth the effort etc).

But until that happens (and I'm totally not ruling out that it *could* happen), I'm crossing my fingers and hoping for the best

----

Distance data API - np.
The data is there, so it's pretty much a copy/paste job of the other API.

Will be tomorrow though - about to go to bed now (*way* overdue :D).
 
Your first line of coordinates is for Wredguia UR-Q b46-2. The problem star is Wredguia WH-Q b46-2 at (-132.6875, 26.46875, -53).

heh - well it was the coordinates listed next to the starname in the original post so that's what I went with :D

The previous one didn't work for me (with one of the coordinates that RedWizzard mentioned). This one doesn't work for at least:

Wredguia WH-Q B46-2 <-> keries

Recorded Distance from game: 131.337

Coords:
Wredguia WH-Q B46-2: -97.781250 56.875000 -49.750000
Keries: -18.90625 27.21875 12.59375

Actual calculated distance: 131.336496796
round 6: 131.336497
round 3: 131.336
 
http://jsfiddle.net/8kom5mj4/

PS : The fiddle: It's easy to copy/paste more points in there (and change the axis etc) - I've had the whole pill in there - Just for the heck of it :p

That's very good! Visualisation is where I want to go next with this stuff and that looks like an interesting avenue to explore. Can you change the size of the dots? I'm looking for a quick way to visualise which parts of the pill I've searched so I'd like to load all the stars and then change the one's I've checked to 20 Ly radius so I can see which regions I've missed.
 
I can highly recommend HighCharts - It's and awesome library.

And it's so damn customizable.

Takes a bit of poking around in the documentation etc at times - But their website has ooooooodles of examples - and they are all linked directly to fiddle so you can play around right away.


I would be surprised if you couldn't change the dots to dogs if you wanted :D
But again, requires digging around in the docs a bit.

I wouldn't know off-hand how to do it.

Oh and keep in mind - HighCharts isnt really a 3d-viewing thingy. I've simply (mis)used their 3D-scatter plot is all
 
Last edited:
Back
Top Bottom