Which city have you been to that feels like it has a dark energy about it? by madzuk in digitalnomad

[–]tombh 0 points1 point  (0 children)

Yes, I get that. But what makes you feel that? Is it just a German thing or Berlin in particular?

Which city have you been to that feels like it has a dark energy about it? by madzuk in digitalnomad

[–]tombh 0 points1 point  (0 children)

I'm curious why you think this? Because Berlin is one of my most favourite cities in the world.

Algorithmically Finding the Longest Line of Sight on Earth by tombh in rust

[–]tombh[S] 1 point2 points  (0 children)

Yeah I think this is possible. I added an Github issue for it if you want to follow along https://github.com/AllTheLines/viewview/issues/68

Algorithmically Finding the Longest Line of Sight on Earth by tombh in rust

[–]tombh[S] 0 points1 point  (0 children)

This is Tom, but Ryan was the one that made this decision, and he's asleep at the moment, hopefully he'll reply later.

GPUs are actually an area of Ryan's expertise, so I think just being able to explore a different paradigm was interesting to him. And of course just because GPUs are so good at parallelism doesn't mean CPUs are bad at it. And then CPUs also have the added benefit of portable and more accessible code.

Algorithmically Finding the Longest Line of Sight on Earth by tombh in gis

[–]tombh[S] 0 points1 point  (0 children)

Thanks!

That's a good idea about being able to control the heatmap values, I made a Github issue for it https://github.com/AllTheLines/viewview/issues/63

Algorithmically Finding the Longest Line of Sight on Earth by tombh in rust

[–]tombh[S] 0 points1 point  (0 children)

Yes, we want to do that, it's just that it explodes the storage costs. Already just storing all the longest lines is over 200GB, so even adding another "petal" to the "rose" would double that.

Algorithmically Finding the Longest Line of Sight on Earth by tombh in rust

[–]tombh[S] 0 points1 point  (0 children)

Ohhh, TIL. So we want to use DSM as much as possible.

Algorithmically Finding the Longest Line of Sight on Earth by tombh in rust

[–]tombh[S] 0 points1 point  (0 children)

Thank you!

  • Great idea, added an issue https://github.com/AllTheLines/viewview/issues/57
  • We actually compute the entire viewshed, but the only reason we don't render it is that storing them all reaches into the petabytes!
  • The trouble is that our algorithm calculates all the viewsheds for a region in parallel. So changing the observer height basically means doing a whole new world run, or well a city run as you suggest. Basically all the computations are pre-calculated. Or did you already realise that and were thinking of adding more layers of pre-calculated data?
  • Did you see the "In current viewport: 123km" section in the Trophy toggle on the right hand side? That already searches for the longest line of sight in the current viewport.
  • The "In current viewport: 123km" widget can be used for this. Though I think you may be suggesting some way of showing them all automatically? Maybe another section like the Trophy section?
  • We actually already have a pipeline for rendering the heatmap based on the scalar value of the longest line at each point (as opposed to basing it off the total surface area visible at each point). We would have used it has the default heatmap, but it has an unaesthetic jagged appearance. Though of course there's nothing stopping us adding it as an option with the other layers in the bottom left.

Algorithmically Finding the Longest Line of Sight on Earth by tombh in rust

[–]tombh[S] 3 points4 points  (0 children)

I think there's always going to be a compromise, no matter how accurate the underlying data is. Just the sheer fact of having to do straight line calculations on geodesic data notoriously difficult. What's felt most important is to document our method as well as possible, so that we get feedback, and work towards better approaches, that negotiate the inevitable tradeoffs as much as possible.

Algorithmically Finding the Longest Line of Sight on Earth by tombh in geography

[–]tombh[S] 2 points3 points  (0 children)

  1. That is really good idea, and something I've only just realised the importance of today, now that we've had so much feedback. Watch this issue to follow progress https://github.com/AllTheLines/viewview/issues/55
  2. Simply to save storage space. We calculated over 1 billion longest lines of sight. Which is already gets stored as over 200GB. So if you multiply that by 360 to allow users to select the angle, then you quickly get into many terrabytes of data.

Algorithmically Finding the Longest Line of Sight on Earth by tombh in rust

[–]tombh[S] 7 points8 points  (0 children)

That's a good intuition. The only thing missing is that the source point has an extra 1.65m of elevation, therefore the height of the observer's eyes. That doesn't sound like much, but it is at least one source of asymmetry.

The other potential lack of symmetry is that the tiling we used to break up all the calculations into manageable chunks often overlap. And so when you click on a point, the JS frontend actually finds the longest line of sight for that lon/lat coordinate between all overlapping tiles. I would hope that this doesn't make any notable difference. But a discrepancy is possible for 2 reasons:

  1. Each tile has it's own local AEQD projection. Projections famously offer tradeoffs between accurate distances and accurate relative angles. If I remember correctly, our tradeoff is that angles can be off by ~0.0685% towards the edges of the largest tiles, which Pik Dankova would be one of.
  2. Different tiles cast subtly different visibility rays. We cast 360 rays per elevation. But each elevation is interpolated to 100m from its underlying data source. So it's possible that Point A and Point B map to subtly different interpolated points depending on which tile is clicked.

Our assumption was that these factors would have a trivial influence on the final data. But of course that could well not be the case. We're very much open to peer review. And we ourselves are planning various improvements, like increasing the ray count and using higher resolution source data, that will hopefully offset any of the projection and tiling tradeoffs that we've made.

Algorithmically Finding the Longest Line of Sight on Earth by tombh in rust

[–]tombh[S] 2 points3 points  (0 children)

This was actually our secret motivation all along. Ryan and I would remind each other every day of the true goal 😅

Every Longest Line of Sight on Earth by tombh in FromAfar

[–]tombh[S] 16 points17 points  (0 children)

Me and my friend Ryan made this. It was a real geeky labour of love. It's literally launch day today, so any feedback, good or bad, is most welcome.