Hi folks, I am surveying a cave that could be best described as an insanity of hidden routes. When you go through the cave, it feels easy. You follow the obvious route. When drawing up the survey, there are loads of alternative routes all crossing over each other and hiding underneath the floor. This means that the survey is harder to navigate than the cave itself. I was wondering what the general ideas were that people use to counteract this situation. These are what I could come up with: 1. Fail to draw all the passages (GAH!). 2. Draw the walls of the main route with different line types? like subtype "underlying" and "overlying" instead of regular walls (useless if you are trying to use "subtype blocks" which is my specific problem; the passage is a mess of boulders and ceiling steps creating false walls). 3. Arrows. But does anyone have a dedicated, better approach? Some way of shading the main route differently? A dedicated symbol? Cheers, Tarquin
Not tried this myself and it would not be ideal. Could you use carefully selected scraps and maps then use colour to make the main route obvious. Could either be subtle or very distinct. Also would allow easy turning off if all the side passages, so an extract of just the main route could be published. No idea how hard this is to do in practice. Andrew -- Sent with K-9 Mail On 13 June 2021 08:49:44 BST, Tarquin Wilton-Jones via Therion <therion@speleo.sk> wrote:
Hi folks,
I am surveying a cave that could be best described as an insanity of hidden routes.
When you go through the cave, it feels easy. You follow the obvious route.
When drawing up the survey, there are loads of alternative routes all crossing over each other and hiding underneath the floor. This means that the survey is harder to navigate than the cave itself.
I was wondering what the general ideas were that people use to counteract this situation. These are what I could come up with:
1. Fail to draw all the passages (GAH!).
2. Draw the walls of the main route with different line types? like subtype "underlying" and "overlying" instead of regular walls (useless if you are trying to use "subtype blocks" which is my specific problem; the passage is a mess of boulders and ceiling steps creating false walls).
3. Arrows.
But does anyone have a dedicated, better approach? Some way of shading the main route differently? A dedicated symbol?
Cheers,
Tarquin _______________________________________________ Therion mailing list Therion@speleo.sk https://mailman.speleo.sk/listinfo/therion
Thanks for the replies. Axel's line sounds a lot like my arrow. It was my preference.Shading scraps is not impossible for simpler cases. A pain for complex ones like this. The biggest issue is you can't then colour by altitude, which is a major limitation.But being able to shade scraps differently based on an attr would be amazing. Say 50% opacity for attr minor.I could do a a_u_major with some prominent shading., which would allow darkening of part of a scrap. -------- Original message --------From: Andrew Atkinson <andrew@wotcc.org.uk> Date: 13/06/2021 09:47 (GMT+00:00) To: Tarquin Wilton-Jones via Therion <therion@speleo.sk>, Therion <therion@speleo.sk> Subject: Re: [Therion] Main route through a cave Not tried this myself and it would not be ideal. Could you use carefully selected scraps and maps then use colour to make the main route obvious. Could either be subtle or very distinct. Also would allow easy turning off if all the side passages, so an extract of just the main route could be published.No idea how hard this is to do in practice.Andrew-- Sent with K-9 MailOn 13 June 2021 08:49:44 BST, Tarquin Wilton-Jones via Therion <therion@speleo.sk> wrote:>Hi folks,>>I am surveying a cave that could be best described as an insanity of>hidden routes.>>When you go through the cave, it feels easy. You follow the obvious route.>>When drawing up the survey, there are loads of alternative routes all>crossing over each other and hiding underneath the floor. This means>that the survey is harder to navigate than the cave itself.>>I was wondering what the general ideas were that people use to>counteract this situation. These are what I could come up with:>>1. Fail to draw all the passages (GAH!).>>2. Draw the walls of the main route with different line types? like>subtype "underlying" and "overlying" instead of regular walls (useless>if you are trying to use "subtype blocks" which is my specific problem;>the passage is a mess of boulders and ceiling steps creating false walls).>>3. Arrows.>>But does anyone have a dedicated, better approach? Some way of shading>the main route differently? A dedicated symbol?>>Cheers,>>Tarquin>_______________________________________________>Therion mailing list>Therion@speleo.sk>https://mailman.speleo.sk/listinfo/therion__________________________________... mailing listTherion@speleo.skhttps://mailman.speleo.sk/listinfo/therion
Hi, We might also differentiate the route finding symbols into two line types: one for the main junctions and one for the route in between. This way we can select if we just want to show the main junctions or all the route. Is there a way of defining custom symbol groups? This way we might create our own to really hide all the routing symbols at once.
Am 13.06.2021 um 10:28 schrieb Axel <dropstone@gmx.de>:
Morning,
we experiment with a custom line (bold, dashed line in purple). It gives the advantage that the complete mainroute can be hidden easily (if the issue with context line:u is solved, labels can be assignet to it as well -eg for time of travell between camps). But discussion is on if we use it all the way or just at main junctions. All the way makes it easier to use the map in the cave as it draws ones attention directly to the route (+ u can show where the path is in big chambers and it looks coherent in the survey). However it looks odd in long galleries with no junctions... To have the lines/arrows just at junctions also looks odd in the survey (at least that's my impression) but I wanted to experiment with the pencile-pressure lines which where posted here a while ago and see if that looks better... (has one of u used them so far?)
cheers, Axel
Gesendet: Sonntag, 13. Juni 2021 um 09:49 Uhr Von: "Tarquin Wilton-Jones via Therion" <therion@speleo.sk> An: "Therion" <therion@speleo.sk> Cc: "Tarquin Wilton-Jones" <tarquin.wilton-jones@ntlworld.com> Betreff: [Therion] Main route through a cave Hi folks,
I am surveying a cave that could be best described as an insanity of hidden routes.
When you go through the cave, it feels easy. You follow the obvious route.
When drawing up the survey, there are loads of alternative routes all crossing over each other and hiding underneath the floor. This means that the survey is harder to navigate than the cave itself.
I was wondering what the general ideas were that people use to counteract this situation. These are what I could come up with:
1. Fail to draw all the passages (GAH!).
2. Draw the walls of the main route with different line types? like subtype "underlying" and "overlying" instead of regular walls (useless if you are trying to use "subtype blocks" which is my specific problem; the passage is a mess of boulders and ceiling steps creating false walls).
3. Arrows.
But does anyone have a dedicated, better approach? Some way of shading the main route differently? A dedicated symbol?
Cheers,
Tarquin _______________________________________________ Therion mailing list Therion@speleo.sk https://mailman.speleo.sk/listinfo/therion _______________________________________________ Therion mailing list Therion@speleo.sk https://mailman.speleo.sk/listinfo/therion
I am surveying a cave that could be best described as an insanity of hidden routes. When you go through the cave, it feels easy. You follow the obvious route... This means that the survey is harder to navigate than the cave itself.
Welcome to my world. Have not solved the problem yet but it is one I will need to come back to when we finish surveying. Where there are multiple levels it is relatively easy just by having a map per level and offsetting them. Maybe preview above/below the secondary passages to maintain context. Where there is frequent interconnection of say 5 levels, as we have in a few places, it becomes a nightmare. Especially when there are no blank places to offset the passages to. Andrew's suggestion of a 'main route map' is what we have considered, but have not figured out how to do this without either duplicating map structures or rebuilding our entire map structure. Neither sounds like fun. Axel's suggestion of a special line type for plotting the track you take through the cave is a partial solution, where the offsetting is not too complex. I have a least one example where I think our map will still be unintelligible. That perhaps points to my choice of map subdivision being suboptimal I suppose. Bruce
On 13/06/2021 12:17, Axel wrote:
an additional thought just occoured to me: If u draw a mainroute-line wouldn't it be possible for the coding-gurus to get the length and maybe the altitude difference of that line type?
I would have thought the easier way would be a "flags" switch that could do it for you. "flags mainroute". It wouldn't even be an estimate. Maybe some of the Survex folks on this list could shed some light on how feasible that would be. Might require a Survex modification though.
I would have thought the easier way would be a "flags" switch that could do it for you. "flags mainroute". It wouldn't even be an estimate. Maybe some of the Survex folks on this list could shed some light on how feasible that would be. Might require a Survex modification though.
How about as a concept? route <name> <ordered station list> where you can define one or more named routes in the survey network by setting a name then a list of two or more stations that Therion then consecutively finds the cumulative shortest surveyed route between. Maybe it could tack on to the loop detection routine. Therion could then export these as a table in cave-list or survey-list, or it could be its own 'route-list'. Statistics could include total length, altitude gain and loss, altitude range, altitude difference. A debug option could enumerate every survey station along the route Therion has chosen. For visualising would need to highlight the route Therion has chosen in Aven or in Loch. Bruce
Another idea would be to have an -constraint option, that can appear multiple times let therion avoid certain passages for the route calculation, like passage height or crossing of a pit; much like avoiding toll roads in a car navigation unit
Am 13.06.2021 um 21:49 schrieb Bruce Mutton <bruce@tomo.co.nz>:
I would have thought the easier way would be a "flags" switch that could do it for you. "flags mainroute". It wouldn't even be an estimate. Maybe some of the Survex folks on this list could shed some light on how feasible that would be. Might require a Survex modification though.
_______________________________________________
How about as a concept?
route <name> <ordered station list>
where you can define one or more named routes in the survey network by setting a name then a list of two or more stations that Therion then consecutively finds the cumulative shortest surveyed route between. Maybe it could tack on to the loop detection routine.
Therion could then export these as a table in cave-list or survey-list, or it could be its own 'route-list'. Statistics could include total length, altitude gain and loss, altitude range, altitude difference. A debug option could enumerate every survey station along the route Therion has chosen. For visualising would need to highlight the route Therion has chosen in Aven or in Loch.
Bruce
_______________________________________________ Therion mailing list Therion@speleo.sk https://mailman.speleo.sk/listinfo/therion
For cave-diving purposes, we added a custom line type to represent the dive line with the cave. We can then change the properties of this if we want to turn it on/off or change the style in one place. Added this code to layout : def l_u_caveline (expr P) = T:=identity; pickup PenB; thdraw P withcolor (1, 0.5, 0); enddef; initsymbol("l_u_caveline"); We then drew the line on in each relevant scrap. Generally, it followed the centre-line but it can be drawn in the centre of the passage instead. example pdf here, the cave line is orange : https://www.dropbox.com/s/watp4mkphcsd1zj/St_Georges_1-1000_v1.4.pdf?dl=0 We also used custom areas to represent the water, using invisible borders where necessary. You could maybe colour areas on the main route. Steve Clark On 13/06/2021 19:47, Tarquin Wilton-Jones via Therion wrote:
On 13/06/2021 12:17, Axel wrote:
an additional thought just occoured to me: If u draw a mainroute-line wouldn't it be possible for the coding-gurus to get the length and maybe the altitude difference of that line type? I would have thought the easier way would be a "flags" switch that could do it for you. "flags mainroute". It wouldn't even be an estimate. Maybe some of the Survex folks on this list could shed some light on how feasible that would be. Might require a Survex modification though.
Therion mailing list Therion@speleo.sk https://mailman.speleo.sk/listinfo/therion
Have not solved the problem yet
Well at least I am not alone. But that's a shame in this case ;) A problem shared is a problem where everyone is scratching their heads.
Where there are multiple levels it is relatively easy just by having a map per level and offsetting them.
Absolutely. This would be my go-to. But sadly here, it's (mostly) not multiple levels. It's a collapsed zone where there are several ways through, with one of them being the most obvious. The walls of each of them are often the walls of another one; you're just looking at the same peeled off boulder from opposite sides. Hard to explain, even harder to represent. I have played with the idea of shading parts of the passage, to highlight the main way. This could be done by fading out the lesser passages (making them closer to the background colour) or emboldening the main passage (eg. making it darker). The approach I am trying is this: area u:fadeout then this metapost: #translucent white, matching background colour of page def_transparent_rgb(a_u_fadeout_fill, 1, 1, 1) def a_u_fadeout (expr p) = T:=identity; thfill p withtransparentcolor a_u_fadeout_fill; enddef; (I notice that "area u -subtype foo" doesn't seem to work but u:foo does, so I cannot supply "-subtype foo" as an option for the area - a bug I assume ... ?) Anyway, the idea "works" but it has some ugly side effects. It acts like a big boulder. It adds an extra layer on top of the passage colour, so any passages behind it are doubly obscured, and get really hard to see. And you lose the ability to clearly see depths, so I don't really like it. Being able to tint a scrap background colour might work, but this idea does not. Not in practice anyway. So I am playing with a purple dashed line (thanks Axel!) and it looks almost great. Almost. I would like it more if I could make it translucent, but I think "withtransparentcolor" only works for fills. For lines, it seems to act like a regular withcolor. Is there a way to draw translucent lines with Therion's MetaPost? (Obviously I can recreate the line using a series of filled dots, or two parallel lines that get filled in between, but those are messy approaches.)
So I am playing with a purple dashed line (thanks Axel!) and it looks almost great. Almost. I would like it more if I could make it translucent, but I think "withtransparentcolor" only works for fills. For lines, it seems to act like a regular withcolor. Is there a way to draw translucent lines with Therion's MetaPost? (Obviously I can recreate the line using a series of filled dots, or two parallel lines that get filled in between, but those are messy approaches.)
I will repeat my question of "can I draw a translucent line?" because it would still be nicer, and hopefully someone here knows a way. And it would still be very useful to be able to tint scraps somehow, eg. make them half way between their depth colour, and the background colour, without having to layer a different colour over the top (which ruins opacity). Anyway, I have done it with a dotted line. It sounded so simple; "dashed evenly", but that puts the dots at regular spacing based on the line width, without taking care of the line ends. Sometimes it ends half way through a dot. And at the edges of a scrap, it gets cut off horribly, and does not line up with the dot pattern of the next scrap's line. Short lines across a scrap don't get any dots at all. You can use a single line over multiple scraps and tell it not to clip, but then it overlays all your other symbols. Urgh! There is a solution, it is neat enough that some of you might want it for your own projects; The solution was to create a custom dashpattern, where each "dash" (a dot) has half a gap width at each end of it. That means the line starts with a gap, not a dot, and there is no overlap. To make sure it also ends with a gap, it counts how many dots it can fit in the line length, rounds it to the nearest integer (minimum of 1 dot), then works out how much space should be devoted to each dot. It subtracts the width of a dot's actual length (the minimum line length that can be drawn), and then divides the remaining space by 2, and uses that as the "off" dash length at either side of the dot's "on" width. I believe the built-in adjust-step macro can offer something similar. The end result looks good to me, and will always have half a gap at each end - with gap lengths adjusted to fit perfectly - so lines that start and end at the same coordinate as each other will always get a whole gap between their dots. (I would love to understand why arclength / width gives eg. 5, but it will actually have enough space for 5 dots and 5 gaps, which should be 10 times the width, not 5. Is arclength half the actual length?) Basic code: def l_u_route (expr P)= begingroup; save scale, linewidth, len, steps, dotgap, dotwidth; T:=identity; linewidth:=u; % If you make the dotwidth too small, MetaPost cannot perform the % dashpattern calculations, and it gets the spacing wrong % minimum limit is 0.0002 dotwidth:=0.001; % the drawn length of the line is twice its arclength, % so dot + gap makes exactly steps number of dots len:=arclength P; % short lines still need a dot steps:=max(round(len / linewidth), 1); dotgap:=len / steps; pickup PenA scaled linewidth; thdraw P dashed dashpattern(off (dotgap-dotwidth)/2 on dotwidth off (dotgap-dotwidth)/2) withcolor (0.9,0,1); endgroup; enddef; initsymbol("l_u_route");
(I would love to understand why arclength / width gives eg. 5, but it will actually have enough space for 5 dots and 5 gaps, which should be 10 times the width, not 5. Is arclength half the actual length?)
Because "PenA scaled" is a multiplication factor, not an actual size. And pen sizes change with the scale/basescale, so my formula worked only by chance at the specific scale I was using. Oops. This code should work correctly, by measuring the pen: def l_u_route (expr P)= begingroup; save scale, multiplier, linewidth, dotwidth, len, steps, dotgap; T:=identity; multiplier:=5; linewidth:=((xpart (lrcorner PenA)) - (xpart (llcorner PenA))) * multiplier; % If you make the dotwidth too small, MetaPost cannot perform the % dashpattern calculations, and it gets the spacing wrong % minimum limit is 0.0002 dotwidth:=0.001; len:=arclength P; % each dot needs space for the dot, and a gap at each end half % as wide as the dot, so a total space of twice the line width % short lines still need a dot steps:=max(round(len / (2 * linewidth)), 1); % the total amount of gap (with the wasted space for the dot % removed) which will be split into a before half and after half dotgap:=(len / steps) - dotwidth; pickup PenA scaled multiplier; thdraw P dashed dashpattern(off dotgap/2 on dotwidth off dotgap/2) withcolor (0.9,0,1); endgroup; enddef; initsymbol("l_u_route"); This uses the same basic approach as adjust_step, but uses rounding and will always return at least 1 step, while adjust_step uses flooring and will return at least 2 steps. It could be made to use adjust_step, and risk overlaps for very short lines: dotgap:=adjust_step(len, 2 * linewidth) - dotwidth;
participants (6)
-
Andrew Atkinson -
Axel -
Benedikt Hallinger -
Bruce Mutton -
Steve Clark -
Tarquin Wilton-Jones