3 ms·
It'd be a pleasure to chat about this! Hit me up by email: m at zorinaq dot com Actually, to be exact: I just checked my data and I forgot that technically the
by mrb 1y ago
It'd be a pleasure to chat about this! Hit me up by email: m at zorinaq dot com
Actually, to be exact: I just checked my data and I forgot that technically the 2nd and 3rd longest sightlines I discovered are slight variations of the Pik Dankova sightline. 7 km east of this peak is another mountain with two spots from which there are two sightlines of 521.1 and 510.49 km ending in the same mountain range in China (a few hundred km away from the end point of the 1st sightline.)
Then the 4th longest sightline I found is the one that's arguably unique: 510.45 km, fully contained within China in the Kunlun Mountains from 38.614706,75.184529 to 36.517500,80.333333. So that's an interesting find.
Then my 5th, 6th, 7th, 8th longest sightlines are again slight variations of the 1st Pik Dankova sightline.
Then my 9th longest sigthline in the one in Colombia I mentioned.
It's very possible you could find different results and new longest sightlines, so I encourage you to continue your own research.
For starters here is a limitation of my implementation: my heuristic for finding a potential viewpoint (mountain peak or ridge of a plateau) is imperfect: in the DEM, a tile is considered a potential viewpoint if it is higher than or equal to it's 8 neighbors, and if it is strictly higher than at least one neighbor. Think about a group of 3x3 tiles. They are all the same height, except one tile on the edge of the group that is slighly lower than the others. Then in this case, the central tile is a potential viewpoint because we could have a sightline standing on this central tile, looking over the one neighbor tile that is slightly lower. That would be the case when standing on the edge of a plateau right next to the start of a valley.
But I can think of at least one case where I would accidentally dismiss potential viewpoints: if, when standing on this ridge, the tile behind us is slightly higher (even if it's just by 1 meter), then my heuristic would dismiss the central tile as a potential viewpoint, because my thought was the tile that is sligthly higher is going to be selected by my heuristic as a (better) potential viewpoint instead. But, in reality, if the tile behind us is only a few meters higher, then it is not high enough to look over our initial tile, then over the start of the valley. In that case the central tile is a viewpoint but would be dismissed by my heuristic. This is a very narrow corner case that probably doesn't affect my results, but I am not 100% sure. If the height difference is about 3 or 4 meters or more, the tile behind us would definitely have a clear and longer sightline, so my heuristic isn't breaking anything.
Anyway my whole project was just a weekend thing so I didn't care to be very precise. But now seeing your effort is renewing my interest in fixing my code. Oh and I should definitely port this to GPU as this workload is 100% compute-bound, mostly, sin, cos, sqrt and divisions.