https://news.ycombinator.com/item?id=43305920
I don't know enough about the subject to have any useful suggestions, but I'd be interested in your take on how a project like yours would work differently if you were to choose a different solution.
Calculating a 2d isovist is (relatively) simple, for 3d it seems much more complex. Is this simplified by the fact that it's dealing with a height map?
> Basically, for any given region, we find its highest point and assume that there is a perfectly placed sibling peak of the same height that is mutually visible.
Shouldn't you always add 335km to the horizon distance to account for the possibility of Everest (i.e. a taller sibling peak) being on the other side of the horizon?
This seems poorly explained, but I think the author was in a hurry to get to the main algorithm, and sped through the intro.
I _think_ your suggestion is covered by the fact that I'm basing the size of the tile on the single highest point that it contains. The steps are:
1. Take any point and calculate the furthest theoretical distance it could see if there were another point at just the perfect distance away for mutual visibility. Note how there could of course be an Everest, but I don't check because step 2 should solve that.
2. Based on that furthest theoretical distance I create a tile of that exact width around the point and then check to see what the new highest point is within that tile _and_ its surroundings. "Surroundings" here means a border region around the tile of the same width as the tile itself. These surroundings don't get viewsheds calculated for them, they're just auxiliary data.
3. If a higher point is found, then increase the width based on that new highest point and repeat step 2. If no higher point is found then the tile is ready.Will it allow to determine the farthest point theorically visible from the top of the Eiffel Tower?
I don't know if that's related to what you're thinking about?
Putting the typical airplane cruise altitude (10km) into the distance to horizon calculator https://www.ringbell.co.uk/info/hdist.htm results in a "reverse" distance of 357km to the horizon. So that's how far typical airplanes can be seen when standing at sea level!
For ice cream shops specifically, Kraków? https://overpass-turbo.eu/?Q=%5Bout%3Ajson%5D%3B%0Anode%28%7...
My code was relatively unoptimized, it ran for 95 days on an 8-core 16-thread AMD Ryzen 5750G to crunch all the data. I have never published my code or results. I should really do it...
I downloaded a digital earth model of about 30 gigabytes from http://www.viewfinderpanoramas.org/Coverage%20map%20viewfind... which had a resolution of 3 seconds, so I had the elevation of each 90x90 meters "tile" of land. I wrote a simple algo in C that: finds potential viewpoints (mountain peaks or plateaus above a minimum ), calculates the longest sightline 360° around you, taking into account an atmospheric refraction coefficient (I used 0.13 which seems to be a default used by some panorama tools like https://www.udeuschle.de). It's really basic trigonometry: look one tile ahead of you, and the next one, etc, until you find the one with the highest vertical angle of view. Stop one sightline exploration when reaching a certain maximum distance (750 km in my implementation) when it becomes mathematically impossible to find a visible tile beyond this distance. And I found the longest sightline:
In Kyrgyzstan from Pik Dankova (41.059167,77.683333) which is at 5977.5 meters (in my DEM data), you can see 538.1 km into China if you look toward bearing 169.7° (roughly south) as you see some distant minor peak at 36.295364,78.75593 which is 6444.0 meters high. However this sightline is already known. But it's only theoretical. No one ever encountered good enough atmospheric clear-sky conditions to observe it from Pik Dankova. Using the panorama tool maintained by this cool German guy, you can verify it: https://www.udeuschle.de/panoramas/panqueryfull.aspx?mode=ne...
However one notable finding my tool gave me was it discovered the second longest sightline that is competely unknown up until this day AFAIK:
In Colombia, from Pico Cristóbal Colón (10.838333,-73.687500) which is at 5668.5 meters (in my DEM data), you can see 502.6 km over the plains of the Caribbean region all the way to the Colombian Andes if you look toward bearing 206.2° (roughly south-south-west) as you see some distant peak at 6.777286,-75.692304 which is 3347.0 meters high. Here you can verify it here: https://www.udeuschle.de/panoramas/panqueryfull.aspx?mode=ne...
I am not sure if this Comlombian sighline has ever been observed.
As I said I should really publish my code and results. And at some point I would like to optimize it and re-run it using a higher-precision DEM with 30x30 meters tiles instead of 90x90 meters. I think there are a few 30-meter DEMs available but I need to find the highest-quality one.
I'd love to geek out with you about your journey and thoughts if you're up for it?
Is there such a chance? I'm struggling to think what this could look like. If the furthest point you can see is in a bowl or a valley, why can't you see all the way to the far side of the valley? I think we can rule out topographic ridiculousness like a mountain with a hole in it that you can see through.
OK, instead of a peak or a plateau, perhaps the longest line could be from a ridge in a saddle. So it's a peak when approached from one orientation (say north/south) but a trough when looking east-west. You can't see the higher ground to the east and west because it's hidden behind some other mountain.
Does it help imagining this on a tennis ball? Let's say we make 2 pyramid-like blobs of plasticine and put them on opposing sides of the tennis ball. Now we slowly move them closer to each other until they can both just see other. Is it not possible to form the pyramids in such a way, that the first point of visibility is the pyramids' bases, and not their peaks?
For me it comes down to the fact that although it might seem obvious what a peak is when you see one, I don't think there's any meaningful way to geographically define one. They're always just _locally_ higher points.
BTW this is exactly why I wrote the post, it's a fairly unique problem, and I'm sure I've made some problematic assumptions.
Similar in reverse, if the pyramid had a false peak (a inflection place where topology changes from steep to less steep), it could obscure line of sight between the real peak, if the angle formed by the line of sight between the two distant peaks tries to intersect the intermediate inflection point
For the hole example, we know there aren't any holes 500 km deep. For the pyramids, we know the line of sight is very close to flat (it's at least 500 km long and less than 10 km in elevation change). If a false peak prevents you from seeing the real peak, the angle of the mountain above the false peak is shallow enough that you can call it a plateau.
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.
I'm the author of the post. Do you have any knowledge about how refraction can vary? I was wondering about calculating the world twice, once with a lower refraction bound and then again with an upper.
"resolution of 3 arc-seconds (~100m²)"
This resolution is equivalent to tiles of 8500 m² not 100 m². I think the author confused tile edge length (92 meters exactly) with tile area.
A full GIS tool isn't needed for this, with Blender and three.js there are all of the tools needed.
The first one somehow looked like something violent going on. Limbs? Bodies?
I doubt if this factor would impact your findings for the longest sight lines on Earth, but perhaps for some local findings.
Also, applying the same concept to other planets has some surprising results. The tallest mountain in the solar system, Olympus Mons, has very gentle slopes. So gentle that from the peak all you can see is Olympus Mons itself.
Each tile is sized so that the viewshed size (in square metres) of every point within the tile can be found just from elevation data within the tile itself?
But that doesn't seem right from the example you gave, because along the edge at the mouth of the river, the viewshed presumably includes the rest of the river outside of the tile as well?
greggsy•4mo ago
https://www.reddit.com/r/sydney/comments/1lzke5t/the_actual_...
Google Earth map: https://earth.google.com/web/@-32.84964163,149.89452785,590....
SpicyUme•4mo ago
https://beyondrange.wordpress.com/2016/08/03/pic-de-finestre...
That's a cool thing to track, I've been surprised by the places I've seen the Seattle skyline reflected on the water near sundown. No crazy distances, but there's a small time period where it flashes into view.
lloeki•4mo ago
Quite a bit shorter in distance (between 200 and 300km depending on where you sit) but visually stunning.
I seem to recall in older times there used to be some light semaphore infrastructure to communicate over these distances.
https://web.archive.org/web/20251008080738mp_/https://i72.se...
https://www.vosgesmatin.fr/environnement/2023/12/19/quand-le...
https://www.vosgesmatin.fr/environnement/2022/11/12/quand-le...
† Which I hiked this year, unfortunately only had a phone so all I get is the memory of seeing the Mont Blanc from there.
DiggyJohnson•4mo ago
SpicyUme•4mo ago
7373737373•4mo ago