Hi there, i would want to get some advanced statistics regarding lengths in a very big cave (130km/Hirlatz). Basicly i want to supply two stations and get the following data for the shortest path: - length of shots - cumulated height for shots going upwards - cumulative depth for shots going downwards - optionally it would be cool to be able to somehow visualize the route in aven/loch, or in a therion map output Is this possible already?
On Fri, Nov 26, 2021 at 05:10:18PM +0100, Benedikt Hallinger wrote:
i would want to get some advanced statistics regarding lengths in a very big cave (130km/Hirlatz).
Basicly i want to supply two stations and get the following data for the shortest path: - length of shots - cumulated height for shots going upwards - cumulative depth for shots going downwards - optionally it would be cool to be able to somehow visualize the route in aven/loch, or in a therion map output
Is this possible already?
I don't think so. Someone was working on it, but I guess it didn't come to anything as that was 2016: https://lists.survex.com/pipermail/survex/2016-October/002082.html Cheers, Olly
Hi Benedikt and Olly, I implemented such functionality (not the visualization) a while ago as a little exercise in Python. If you know how to run a Python script, then you might find this useful. First download this file: https://raw.githubusercontent.com/speleo3/inkscape-speleo/master/extensions/... Then run this code (replace the file name and station names): filename = "smk-arge.3d" station_from = "p87" station_to = "115.commando.105" from survex import Survex3D survey = Survex3D(filename) length, p = survey.shortestpath(station_from, station_to) upwards = sum(max(0, t.z - f.z) for (f, t) in zip(p[:-1], p[1:])) downwards = sum(min(0, t.z - f.z) for (f, t) in zip(p[:-1], p[1:])) print("Shortest route length:", length / 100, "m") print("Cumulated height going upwards:", upwards / 100, "m") print("Cumulated depth going downwards:", downwards / 100, "m") Cheers, Thomas On Sat, Nov 27, 2021 at 8:25 PM Olly Betts <olly@survex.com> wrote:
On Fri, Nov 26, 2021 at 05:10:18PM +0100, Benedikt Hallinger wrote:
i would want to get some advanced statistics regarding lengths in a very big cave (130km/Hirlatz).
Basicly i want to supply two stations and get the following data for the shortest path: - length of shots - cumulated height for shots going upwards - cumulative depth for shots going downwards - optionally it would be cool to be able to somehow visualize the route in aven/loch, or in a therion map output
Is this possible already?
I don't think so.
Someone was working on it, but I guess it didn't come to anything as that was 2016:
https://lists.survex.com/pipermail/survex/2016-October/002082.html
Cheers, Olly _______________________________________________ Therion mailing list Therion@speleo.sk https://mailman.speleo.sk/listinfo/therion
I implemented such functionality (not the visualization) a while ago as a little exercise in Python. If you know how to run a Python script, then you might find this useful.
Awesome! I would love for that to be built in to Aven, so it could actually highlight the route too (you know the problem, you give someone an inch they ask for a mile). It's something I have wanted when showing someone a survey in Aven; "Show me the route I took". That is not always the shortest route, but much like with Google Maps, it would use the shortest route between control points. Instead, I end up manually copying it into an image editor, and adding a background along the route. (This is kind of off topic for Therion of course, but actually, I would love for Loch to have a lot of the features that I still rely on Aven for, such as selecting stations and splays and measuring between them. So I guess that would be needed first!)
Havin that native in some related software would be awesome. I think aven would be a good candidate for that, as well as loch. Am 2021-11-28 22:33, schrieb Tarquin Wilton-Jones via Therion:
I implemented such functionality (not the visualization) a while ago as a little exercise in Python. If you know how to run a Python script, then you might find this useful.
Awesome!
I would love for that to be built in to Aven, so it could actually highlight the route too (you know the problem, you give someone an inch they ask for a mile).
It's something I have wanted when showing someone a survey in Aven; "Show me the route I took". That is not always the shortest route, but much like with Google Maps, it would use the shortest route between control points.
Instead, I end up manually copying it into an image editor, and adding a background along the route.
(This is kind of off topic for Therion of course, but actually, I would love for Loch to have a lot of the features that I still rely on Aven for, such as selecting stations and splays and measuring between them. So I guess that would be needed first!) _______________________________________________ Therion mailing list Therion@speleo.sk https://mailman.speleo.sk/listinfo/therion
On 2021-11-28 21:33 +0000, Tarquin Wilton-Jones via Therion wrote:
I implemented such functionality (not the visualization) a while ago as a little exercise in Python. If you know how to run a Python script, then you might find this useful.
Awesome!
That is nifty. I've wanted this functionality quite often too.
I would love for that to be built in to Aven, so it could actually highlight the route too (you know the problem, you give someone an inch they ask for a mile).
It's probably not that hard to do. The UI will be more work than the routing. Of course what we really want is to apply normal routing algorithms to the cave network (the graphhopper library is my favourite as it's fast enough to make routing dragable), and include weighting metadata so we could do somthing slightly more sophisticated than 'shortest'. ('quickest', and 'least gear' are probably useful). Being able to have dragable routing with timings (and maybe tackle lists one day!) would be very nice, but relies on a lot of metadata being available sonehow that currently isn't. https://wiki.openstreetmap.org/wiki/GraphHopper Annoyingly it seems not to be packaged yet. That can be fixed. Wookey -- Principal hats: Linaro, Debian, Wookware, ARM http://wookware.org/
Some Metadata could be derived from the scraps we have in therion. That will not be 100% accurate, of course, but for ecample if a centerline shot crosses some pit, this could provide useful routing information (because we can infer that we need rope and climbing gear for this leg). Or from the passage dimensions we can deduce if that is easily walkable or we need to crouch. We could make a "routing map" as we know which stations we crossed, and put together a map containing all scraps with the stations... Am 2021-11-29 12:53, schrieb Wookey:
On 2021-11-28 21:33 +0000, Tarquin Wilton-Jones via Therion wrote:
I implemented such functionality (not the visualization) a while ago as a little exercise in Python. If you know how to run a Python script, then you might find this useful.
Awesome!
That is nifty. I've wanted this functionality quite often too.
I would love for that to be built in to Aven, so it could actually highlight the route too (you know the problem, you give someone an inch they ask for a mile).
It's probably not that hard to do. The UI will be more work than the routing. Of course what we really want is to apply normal routing algorithms to the cave network (the graphhopper library is my favourite as it's fast enough to make routing dragable), and include weighting metadata so we could do somthing slightly more sophisticated than 'shortest'. ('quickest', and 'least gear' are probably useful). Being able to have dragable routing with timings (and maybe tackle lists one day!) would be very nice, but relies on a lot of metadata being available sonehow that currently isn't.
https://wiki.openstreetmap.org/wiki/GraphHopper Annoyingly it seems not to be packaged yet. That can be fixed.
Wookey _______________________________________________ Therion mailing list Therion@speleo.sk https://mailman.speleo.sk/listinfo/therion
Hi Thomas, thank you for the snippet, I succesfully tried it :) For my convinience, I wrote a small wrapper to ease the call: - It references my fixed aven file - It has parameters 1 and 2 reference the respective stations ------snip shortestPath.py------ #!/usr/bin/python # # Wrapperskript fuer survex.py um den kuerzesten Pfad zwischen zwei Stations zu errechnen. # # Bsp: Eingang -> Brueckenhalle: $ ./shortestPath.py Hirlatzhoehle.Zubringer.1.1.0 Hirlatzhoehle.Alter_Teil.2.1.55 import sys filename = "../Hirlatzhoehle/Hirlatz.th.3d" station_from = sys.argv[1] station_to = sys.argv[2] from survex import Survex3D survey = Survex3D(filename) length, p = survey.shortestpath(station_from, station_to) upwards = sum(max(0, t.z - f.z) for (f, t) in zip(p[:-1], p[1:])) downwards = sum(min(0, t.z - f.z) for (f, t) in zip(p[:-1], p[1:])) print("Shortest route length:", length / 100, "m") print("Cumulated height going upwards:", upwards / 100, "m") print("Cumulated depth going downwards:", downwards / 100, "m") ------snip------ Example call (Entrance to the Fragezeichenbiwak): $ ./shortestPath.py Hirlatzhoehle.Zubringer.1.1.0 Hirlatzhoehle.Donnerbach.70.1.19 ('Shortest route length:', 6773.091436823018, 'm') ('Cumulated height going upwards:', 781, 'm') ('Cumulated depth going downwards:', -770, 'm') Thank you! (nonetheless it would be awesome to get some more feature rich integrated function in therion and/or aven) Am 2021-11-28 18:49, schrieb Thomas Holder:
Hi Benedikt and Olly,
I implemented such functionality (not the visualization) a while ago as a little exercise in Python. If you know how to run a Python script, then you might find this useful.
First download this file: https://raw.githubusercontent.com/speleo3/inkscape-speleo/master/extensions/...
Then run this code (replace the file name and station names):
filename = "smk-arge.3d" station_from = "p87" station_to = "115.commando.105"
from survex import Survex3D survey = Survex3D(filename) length, p = survey.shortestpath(station_from, station_to) upwards = sum(max(0, t.z - f.z) for (f, t) in zip(p[:-1], p[1:])) downwards = sum(min(0, t.z - f.z) for (f, t) in zip(p[:-1], p[1:])) print("Shortest route length:", length / 100, "m") print("Cumulated height going upwards:", upwards / 100, "m") print("Cumulated depth going downwards:", downwards / 100, "m")
Cheers, Thomas
On Sat, Nov 27, 2021 at 8:25 PM Olly Betts <olly@survex.com> wrote:
On Fri, Nov 26, 2021 at 05:10:18PM +0100, Benedikt Hallinger wrote:
i would want to get some advanced statistics regarding lengths in a very big cave (130km/Hirlatz).
Basicly i want to supply two stations and get the following data for the shortest path: - length of shots - cumulated height for shots going upwards - cumulative depth for shots going downwards - optionally it would be cool to be able to somehow visualize the route in aven/loch, or in a therion map output
Is this possible already?
I don't think so.
Someone was working on it, but I guess it didn't come to anything as that was 2016:
https://lists.survex.com/pipermail/survex/2016-October/002082.html
Cheers, Olly _______________________________________________ Therion mailing list Therion@speleo.sk https://mailman.speleo.sk/listinfo/therion
participants (5)
-
Benedikt Hallinger -
Olly Betts -
Tarquin Wilton-Jones -
Thomas Holder -
Wookey