multiplesections

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
multiplesections [2019/12/08 00:23] – Fix link tarquinwjmultiplesections [2020/08/02 23:49] (current) – Borders done with tex-map tarquinwj
Line 5: Line 5:
 To see how to draw a single cross section, see the Therion tutorial chapter on [[tbe:wiki3#Cross sections|Cross sections]], and [[http://wscc.darkgem.com/footleg/therion/Therion%20Tutorial%2015thMar2016.pdf|Footleg's tutorial]] "Lesson x: Adding X­Sections". To see how to draw a single cross section, see the Therion tutorial chapter on [[tbe:wiki3#Cross sections|Cross sections]], and [[http://wscc.darkgem.com/footleg/therion/Therion%20Tutorial%2015thMar2016.pdf|Footleg's tutorial]] "Lesson x: Adding X­Sections".
  
-If you are just looking for "give me the best solution", follow method 5.+If you are just looking for "give me the best solution", follow method 7.
  
 ====Method 1; a single passage's cross section==== ====Method 1; a single passage's cross section====
Line 40: Line 40:
   * If a passage is made up from multiple cross sections (such as a pitch, or a ledge route above a floor route), the separate sections cannot be joined neatly to each other, and ugly gaps are likely   * If a passage is made up from multiple cross sections (such as a pitch, or a ledge route above a floor route), the separate sections cannot be joined neatly to each other, and ugly gaps are likely
  
-====Methods 3-5; using a projected elevation====+====Methods 3-6; using a projected elevation====
  
 For a more complete and accurate approach, read on. For a more complete and accurate approach, read on.
Line 52: Line 52:
 Work out what bearing your cross section will be facing. For example, a cross section through passages all running approximately north-to-south on a bearing of 355 degrees, would probably have its cross section facing 355 degrees, while its cross section line would be drawn east-to-west on a bearing of 85 degrees. 355 is the important number here. Work out what bearing your cross section will be facing. For example, a cross section through passages all running approximately north-to-south on a bearing of 355 degrees, would probably have its cross section facing 355 degrees, while its cross section line would be drawn east-to-west on a bearing of 85 degrees. 355 is the important number here.
  
-===Rendering an XVI with just those stations===+===Rendering an XVI with just selected stations===
  
-This is the laborious bit. A significantly easier approach would be for it to be possible to [[https://github.com/therion/therion/issues/156|name groups, so that they can be selected like surveys]]. This would massively simplify this section. However, without that, we can achieve the same results with much more messy subsurveys.+Many of these following techniques need you to be able to see and identify stations on a projected elevation. For horizontal caves, this can get very messy, with many stations in similar positions all jumbled into one place. A significantly easier approach would be for it to be possible to [[https://github.com/therion/therion/issues/156|name groups, so that they can be selected like surveys]]. This would massively simplify this section. However, without that, we can achieve the same results with much more messy subsurveys.
  
-If your cave is extremely simple (then why are you doing this sort of cross section?!) you might just be able to render the entire survey on a projection, and be able to visually identify the stations and splays you are interested in. However, it is quite likely that there will be too many stations and splays to identify the right one, so this section assumes that you will need to render just the relevant stations and splays.+If your cave is extremely simple (then why are you doing this sort of cross section?!) you might just be able to render the entire survey (or subsurvey, depending on what approach you are using) to XVI on a projection, and be able to visually identify the stations and splays you are interested in. However, it is quite likely that there will be too many stations and splays to identify the right one, so this section assumes that you will need to render just the relevant stations and splays.
  
-Most often, by the time you want to draw multiple cross sections at once, you are dealing with data in multiple separate survey files. That is OK, and it doesn't really change the approach. You could create an overall .th file that will represent all the subsections at once, but it is perhaps more useful to keep it all in the same file as where the centreline data is defined for each of the passage sections, just to make it more easy to find.+Most often, by the time you want to draw multiple cross sections at once, you are dealing with data in multiple separate survey files. That is OK, and it doesn't really change the approach. You could create an overall .th file that will represent all the subsections at once, but it is perhaps more useful to keep it all in the same file as where the centreline data is defined for each of the passage sections, just to make it more easy to find. Each subsurvey can have its relevant sections within it.
  
-Create a new subsurvey within the existing survey file which will contain stations representing only those stations within the cross section you are working on. Give it a "survey somename" that you will use to reference it, which must not clash with the existing surveys, such as "survey sectiona". Give that subsurvey a centreline, which must have a date (eg. matching its parent survey) if you want to avoid getting warnings. +Create a new subsurvey within the existing survey file which will contain stations representing only those stations within the cross section you are working on. Give it a "survey somename" that you will use to reference it, which must not clash with the existing surveys, such as "survey sectiona". Give that subsurvey a centreline, which must have a date (eg. matching its parent survey). Within the centreline, add "data nosurvey from to".
- +
-The next step depends on which method you will use: +
- +
-===Method 3; using the projected elevation to position cross sections=== +
- +
-This is basically method 2, but more accurate.  +
- +
-In the subsurvey'centreline sectionuse "data nosurvey from to".+
  
 For the survey stations that will appear in the cross section, add a line with a leg going from that station to itself, such as "5 5". This creates a station within that survey that can be exported, to avoid getting a warning that you are using "equate" to create a new station. Then for each station, add an "equate" command in the parent survey, equating the point in the subsurvey to its corresponding point in the parent survey, such as "equate 5@sectiona 5". For the survey stations that will appear in the cross section, add a line with a leg going from that station to itself, such as "5 5". This creates a station within that survey that can be exported, to avoid getting a warning that you are using "equate" to create a new station. Then for each station, add an "equate" command in the parent survey, equating the point in the subsurvey to its corresponding point in the parent survey, such as "equate 5@sectiona 5".
  
-Repeat this for any other surveys that contain stations that will be in the cross section. For simplicity, use the same "sectiona" name for all of them. +Create a new "thconfig" file, which will project the new survey data on the correct bearing - 355 for the demonstration. Use the "select" command to select any of the new sub-surveys that you need to export. These can be in multiple surveys if needed; just use a select statement for each of them in turn.
- +
-Create a new "thconfig" file, which will project the new survey data on the correct bearing - 355 for the demonstration. Use the "select" command to select all of the relevant sections from all surveys that will be in the cross section. These can be in multiple surveys; just use a select statement for each of them in turn.+
  
 <code> <code>
Line 83: Line 73:
 </code> </code>
  
-Run it to export the XVI file.+===Method 3; using the projected elevation to position cross sections on a plan survey=== 
 + 
 +This is basically method 2, but more accurate. It positions everything perfectly, and uses the plan position of stations to adjust the horizontal positions of cross sections. 
 + 
 +In the subsurvey's centreline section, use "data nosurvey from to". 
 + 
 +For the survey stations that will appear in the cross section, add a line with a leg going from that station to itself, such as "5 5". This creates a station within that survey that can be exported, to avoid getting a warning that you are using "equate" to create a new station. Then for each station, add an "equate" command in the parent survey, equating the point in the subsurvey to its corresponding point in the parent survey, such as "equate 5@sectiona 5". 
 + 
 +Repeat this for any other surveys that contain stations that will be in the cross section. For simplicity, use the same "sectiona" name for all of them. 
 + 
 +Export an XVI file containing all of these sub-surveys.
  
 In any of the th2 files which will be in the cross section, import this new XVI. Use it to create a new cross section scrap. Place this in a useful position in the usual way using one of the stations within it. On each of the stations within it, place a useful symbol for alignment (such as a crystal point). Think of this scrap as your alignment scrap. In any of the th2 files which will be in the cross section, import this new XVI. Use it to create a new cross section scrap. Place this in a useful position in the usual way using one of the stations within it. On each of the stations within it, place a useful symbol for alignment (such as a crystal point). Think of this scrap as your alignment scrap.
Line 105: Line 105:
   * If a passage is made up from multiple cross sections (such as a pitch, or a ledge route above a floor route), the separate sections cannot be joined neatly to each other, and ugly gaps are likely   * If a passage is made up from multiple cross sections (such as a pitch, or a ledge route above a floor route), the separate sections cannot be joined neatly to each other, and ugly gaps are likely
  
-===Methods 4-5Rendering the cross sections as scraps within the exported XVI===+===Method 4; using the projected elevation to position cross sections===
  
-For this, you need to render the splays as well as the stations. This is not easy (unless it is possible to [[https://github.com/therion/therion/issues/156|name groups]] by the time you read this, in which case do that instead).+This is a more refined variation of method 3, that renders the cross sections on a projected elevation which can be imported into any other survey. It solves the positioning limitation of method 3, and can also be used as part of a non-plan survey. 
 + 
 +Export an XVI for each (sub-)survey that will be in the cross section. Create a new .th2 file for the (sub-)survey. For each station that will have a regular cross section, create a scrap. The scrap only needs one station point in it; the survey station where the cross section has been drawn. Near that same point in the scrap, create a "section" point, which will be used to import the cross section scrap. 
 + 
 +The cross section will not be perfectly positioned yet, since the "section" points align the cross sections relative to their overall outline size, not relative to the station within them. On the station point, place a useful symbol for alignment (such as a crystal point). On the station points within the cross sections, add the same alignment symbol (crystal). 
 + 
 +Create a map in the overall survey, that uses only the scraps that belong to each cross section, with their "-projection" set to "elevation 355" (or whatever bearing you are using). 
 + 
 +Create a new "thconfig" file, which will project the new survey data on the correct bearing - 355 for the demonstration. Use the "select" command to select the map you created. Render the cave as PDF. Use the crystal positions to carefully move the cross section scraps into position, so that their alignment symbols (crystals) line up with the ones on their scraps. Remove all the alignment symbols and the alignment scrap. Done. As long as you don't change the outer dimensions of the cross section, it will move into the new position if new survey data causes the station position to shift. 
 + 
 +Your PDF is now your cross section, which can be imported into your main survey and put into position using "map-image"
 + 
 +==Pro== 
 + 
 +  * Uses existing cross section scraps 
 +  * Passage shapes are all correct 
 +  * Passages can all have the correct colours of their relevant scraps 
 +  * Passages are correctly positioned relative to each other 
 +  * When new loops are closed which alter passage positions, the passage positions update correctly to take on the new positions. 
 + 
 +==Con== 
 + 
 +  * A muddled mix of projected elevation and cross section 
 +  * A fair amount of work 
 +  * If a passage is made up from multiple cross sections (such as a pitch, or a ledge route above a floor route), the separate sections cannot be joined neatly to each other, and ugly gaps are likely 
 + 
 +===Methods 5-7; Rendering the cross sections as scraps within the exported XVI=== 
 + 
 +This allows you to draw the more complex cross sections that contain multiple stations, even stations from different surveys. It also lets you draw cross sections for simple stations where you do not have an existing cross section drawing. For this, you need to render the splays as well as the stations. This is not easy (unless it is possible to [[https://github.com/therion/therion/issues/156|name groups]] by the time you read this, in which case do that instead).
  
 It is possible to copy the survey data for the relevant stations and their splays into a new survey, with equates to link them to the existing stations. However, this requires duplication of data and configurations that affect data, which is usually unwanted (even though they will typically be only splay legs which do not affect the surveyed length). Instead, the solution presented here will use "data nosurvey" to add stations, with a few more equates to make them link to the existing stations and splays. It is possible to copy the survey data for the relevant stations and their splays into a new survey, with equates to link them to the existing stations. However, this requires duplication of data and configurations that affect data, which is usually unwanted (even though they will typically be only splay legs which do not affect the surveyed length). Instead, the solution presented here will use "data nosurvey" to add stations, with a few more equates to make them link to the existing stations and splays.
Line 187: Line 215:
 Repeat this for any other surveys that contain stations that will be in the cross section. For simplicity, use the same "sectiona" name for all of them. Repeat this for any other surveys that contain stations that will be in the cross section. For simplicity, use the same "sectiona" name for all of them.
  
-Create a new "thconfig" file, which will project the new survey data on the correct bearing - 355 for the demonstration. Use the "select" command to select all of the relevant sections from all surveys that will be in the cross section. These can be in multiple surveys; just use a select statement for each of them in turn.+Create a new "thconfig" file, which will project the new survey data on the correct bearing - 355 for the demonstration. Use the "select" command to select all of the relevant sections from all surveys that will be in the cross section (whether you need to select one section piece at a time, or one overall one, will depend on the method you are using). These can be in multiple surveys if needed; just use a select statement for each of them in turn.
  
 <code> <code>
Line 198: Line 226:
 Run it to export the XVI file. Run it to export the XVI file.
  
-===Method 4; Using the XVI to draw the cross sections===+===Method 5; Using the XVI to draw the cross sections===
  
 This is basically an accurate version of method 1, with many of the same limitations. This is basically an accurate version of method 1, with many of the same limitations.
  
-The easiest way to use the XVI file, is to create a new .th2 file for each set of cross sections that you are creating. In XTherion, open the map editor (F2). Create a new file and save it somewhere appropriate. Edit menu - Insert image, and select the XVI file that you exported. Draw your cross sections the same way as you normally would draw a single cross section, using a cross section scraps. This does mean that you will be creating new cross sections, not using an existing sketch or cross section as a drawing aid. More details about that later. Tip; you can even set the scale of your cross sections to something different than the main survey, just by setting the scrap's scale to the wrong values - eg. a 10 metre x 10 metre scale bar could have its "real scale points" set to 20x20 instead.+Export the XVI for the whole cross section at once, containing all subsurveys that will be in the cross section. The easiest way to use the XVI file, is to create a new .th2 file for each set of cross sections that you are creating. In XTherion, open the map editor (F2). Create a new file and save it somewhere appropriate. Edit menu - Insert image, and select the XVI file that you exported. Draw your cross sections the same way as you normally would draw a single cross section, using a cross section scrap. This does mean that you will be creating new cross sections, not using an existing sketch or cross section as a drawing aid. More details about that later. Tip; you can even set the scale of your cross sections to something different than the main survey, just by setting the scrap's scale to the wrong values - eg. a 10 metre x 10 metre scale bar could have its "real scale points" set to 20x20 instead.
  
 Note that Therion may become confused if cross sections do not have walls on all sides of them (eg. if some are open to the surface). If this is the case, create a wall line to close the wall loop, and set it to "-visibility off". Note that Therion may become confused if cross sections do not have walls on all sides of them (eg. if some are open to the surface). If this is the case, create a wall line to close the wall loop, and set it to "-visibility off".
Line 229: Line 257:
   * Normally requires cross sections to be recreated, rather than using existing ones   * Normally requires cross sections to be recreated, rather than using existing ones
  
-===Method 5; leaving it as a projected elevation===+===Method 6; leaving it as a projected elevation===
  
-This is the most complete approach, which solves many of the problems of the others. It is the recommended approach, if you are able to follow it, since it allows cross sections to be correctly coloured for altitude, and with passages positioned relative to each other, with accurate shapes. It can even reposition them automatically when loops are closed and station positions are changed, something that none of the other approaches can do, making this approach the only one that offers hassle-free maintenance.+This is a very complete approach, which solves many of the problems of the others. It allows cross sections to be correctly coloured for altitude, and with passages positioned relative to each other, with accurate shapes. It can even reposition them automatically when loops are closed and station positions are changed, something that very few of the other approaches can do, making this approach one that offers hassle-free maintenance.
  
-The easiest way to use the XVI file, is to create a new .th2 file for each set of cross sections that you are creating. In XTherion, open the map editor (F2). Create a new file and save it somewhere appropriate. Edit menu - Insert image, and select the XVI file that you exported.+Export an XVI file for all passages that will be in the cross section, for the whole cave at once. To use the XVI file, create a new .th2 file for each set of cross sections that you are creating. In XTherion, open the map editor (F2). Create a new file and save it somewhere appropriate. Edit menu - Insert image, and select the XVI file that you exported.
  
 For each cross section, create a scrap as you would do if this were a regular projected elevation (since it is). Set the projection to "[elevation 355]", with the correct bearing for that cross section. Create a station point on each station in the passage, and reference the station by its full reference (relative to where you plan to import the .th2 file) such as "-name 5@westwing.mycave". You can reference either the real station, or the cloned station in the cross section survey - either way the result will be the same. For each cross section, create a scrap as you would do if this were a regular projected elevation (since it is). Set the projection to "[elevation 355]", with the correct bearing for that cross section. Create a station point on each station in the passage, and reference the station by its full reference (relative to where you plan to import the .th2 file) such as "-name 5@westwing.mycave". You can reference either the real station, or the cloned station in the cross section survey - either way the result will be the same.
Line 241: Line 269:
 For cross sections of pitches and ledge routes with their own survey data, you can create multiple scraps at the different heights, so that they can have different colours at the different heights. For cross sections of pitches and ledge routes with their own survey data, you can create multiple scraps at the different heights, so that they can have different colours at the different heights.
  
-You may want to draw a border around the entire set of cross sections, to show that they are related spatially to each other. A regular "border" line with "-clip off" may be used for this purpose.+You may want to draw a border around the entire set of cross sections, to show that they are related spatially to each other. A regular "border" line with "-clip off" may be used for this purpose. Alternatively, you can include this in your layout when outputting the PDF: 
 + 
 +<code> 
 +code tex-map 
 +  \framethickness=0.5mm 
 +</code>
  
 Normally, you would want to "input" the .th2 file at the highest level of your survey, since it probably relates to multiple subsurveys spread across your entire data set, but you could just input it at whatever level will contain all of the passages involved in the cross section. Normally, you would want to "input" the .th2 file at the highest level of your survey, since it probably relates to multiple subsurveys spread across your entire data set, but you could just input it at whatever level will contain all of the passages involved in the cross section.
Line 280: Line 313:
   * Normally requires cross sections to be recreated, rather than using existing ones   * Normally requires cross sections to be recreated, rather than using existing ones
  
-====Using existing cross section drawings with methods 4 and 5====+===Method 7; combining cross section scraps and regular scraps in a projected elevation=== 
 + 
 +This is a small but significant enhancement to method 6. 
 + 
 +This is the most complete approach, which solves all of the problems of the others. It is the recommended approach, if you are able to follow it, since it allows cross sections to be correctly coloured for altitude, and with passages positioned relative to each other, with accurate shapes. It can use both existing regular cross section scraps, as well as allowing you to create new projected scraps that contain multiple stations. It can even reposition them automatically when loops are closed and station positions are changed, something that none of the other approaches can do, making this approach another one that offers hassle-free maintenance. It follows the existing documentation for projected elevations and cross sections, so most of it is not a new concept, just another way of using existing concepts. 
 + 
 +Create an XVI for each (sub-)survey that needs a new cross section. Eg. if two passages from the same survey will both have their cross sections drawn as part of the overall cross section, they can both be exported into the same XVI. If cross sections will span multiple surveys, the relevant parts of the cross section can be created in each survey and joined using "join" commands in the parent surveys. Now create the .th2 for each survey. In XTherion, open the map editor (F2). Create a new file and save it somewhere appropriate. Edit menu - Insert image, and select the XVI file that you exported. (Note that you no longer need the sub-survey with the "data nosurvey" equated stations, unless you think you will need to recreate the XVI file, so you can now delete it and put your splays back to being anonymous, if you hate the data clutter. Yay!) 
 + 
 +For each cross section, create a scrap as you would do if this were a regular projected elevation (since it is). Set the projection to "[elevation 355]", with the correct bearing for that cross section. Create a station point on each station in the passage, and reference the station by its name within the survey such as "-name 5". Draw the passage cross section walls. For cross sections of pitches and ledge routes with their own survey data, you can create multiple scraps at the different heights, so that they can have different colours at the different heights. 
 + 
 +For each station that already has an existing cross section drawing, create a scrap, and follow method 4's approach for adding the cross section to the scrap, and positioning it correctly. 
 + 
 +You may want to draw a border around the entire set of cross sections, to show that they are related spatially to each other. A regular "border" line with "-clip off" may be used for this purpose, in any of the scraps that will be rendered. Alternatively, you can include this in your layout when outputting the PDF: 
 + 
 +<code> 
 +code tex-map 
 +  \framethickness=0.5mm 
 +</code> 
 + 
 +"Input" the .th2 file into the survey. That's it. You have basically created your cross section, disguised as a projected elevation. You now need to export it as a PDF. 
 + 
 +Create a "map" in the survey, with its projection matching the scraps ("[elevation 355]"). Add all the scraps to it. In the parent survey files, create a map gathering all of the relevant maps for the cross section, in exactly the same was as if this were a regular plan or elevation survey. If you are using automatic altitude colouring (rather than a [[examples#Colour Palette Scales - Lookups|lookup]]), and you would like it to use the correct colours, create a new map at the top-most level with the projection set accordingly. Tell it to include the map of scraps. Then to make it [[tips#Making a subset of the cave take its altitude colours from a larger part of the cave|use the colours for the main survey]], tell it to include the **surveys** containing the data for the highest and lowest passages in the part of the cave that your regular plan survey will include (the survey where you want to render the cross section). Normally, this will be the complete data for the whole cave. 
 + 
 +Create a new "thconfig" file, which will project the map on the correct bearing - 355 for the demonstration. Use the "select" command to select the map. Create a layout that will hide all the survey centreline, leaving only the cross section scraps. Tell it to colour by altitude. If you would like the cross sections to display at a different scale than the main survey, use the "scale" option to change it. Use the various options to completely hide the legend, title, scale bar and north arrow. 
 + 
 +<code> 
 +layout local 
 +  scale 1 100 
 +  map-header off 
 +  symbol-hide group centreline 
 +  color map-fg altitude 
 +endlayout 
 +source "master.th" 
 +select sectiona 
 +export map -projection [elevation 355] -layout local -output "sectiona.pdf" 
 +</code> 
 + 
 +Run it to export the PDF. 
 + 
 +In your main survey's layout, use "map-image 100 50 e sectiona.pdf" to include the PDF. The cross section will now appear on the main survey. 
 + 
 +==Pro== 
 + 
 +  * Passage shapes are all correct 
 +  * Passages are correctly positioned relative to each other 
 +  * Passages can have the correct altitude colours for the passages they are taken from 
 +  * When new loops are closed which alter passage positions, the passage positions automatically update next time you export the cross section map (yay!) 
 +  * Follows existing documentation, since it is just a projected elevation, optionally with added regular cross sections 
 +  * Works with both new and existing cross sections 
 +  * Newly surveyed passages can be added to existing cross sections with ease 
 + 
 +==Con== 
 + 
 +  * Quite complex to set up initially, but relatively easy once it is working 
 + 
 +====Using existing cross section drawings with methods 5 and 6====
  
-This is not so easy.+This is not so easy. Don't do it. Just use method 7.
  
-Existing cross section drawings are in their own scraps, and these cannot be simply positioned relative to each other (but if there were a wayit could massively simplify this whole process!). Normally, any existing cross section will have been drawn in its existing .th2 file.+Existing cross section drawings are in their own scraps, and these cannot be simply positioned relative to each other, except when using methods 4 and 7. Normally, any existing cross section will have been drawn in its existing .th2 file.
  
 Use a text editor to copy the lines and points from the existing cross section's scrap, into the relevant scrap within the new .th2 multiple cross sections file (which will normally be in different .th2 files). [[tips#Moving lines and scraps within drawing area|Move the lines and points into the correct positions]] in XTherion's map editor, using the existing section's "station" and the new "station" position as references for the move-from and move-to. Use a text editor to copy the lines and points from the existing cross section's scrap, into the relevant scrap within the new .th2 multiple cross sections file (which will normally be in different .th2 files). [[tips#Moving lines and scraps within drawing area|Move the lines and points into the correct positions]] in XTherion's map editor, using the existing section's "station" and the new "station" position as references for the move-from and move-to.
  • multiplesections.txt
  • Last modified: 4 years ago
  • by tarquinwj