I am producing gINT fence diagrams for a 140-km long rail alignment. I have about 600 boreholes along this alignment, and many of them are very closely spaced. The fenceposts for these boreholes overlap and are difficult to read. Is there a way to offset the overlapping boreholes with a marker that would show the original borehole location?
Elise, there are several ways to accomplish this, but none - that occur to me, anyway - that will work in a single fence report.
One method would be to have a simple graphic like a single line representing the position of the fencepost, labeled with the borehole ID, on a report where the posts are positioned in the normal way (spatially related to their perpendiculars to the baseline). A second report could then show more data for each borehole, but space the boreholes equally, with sufficient room to allow for no overlap, providing a data-friendly presentation instead of the correct spatial relationship..
I'm hoping others (Dave Kyllonen, Johnny Martel, Phil Wade?) with expertise on the subject will have other suggestions for you.
I think english units and you are metric so some of what I say may need translating to metric. Also I am sure there are spelling and gramar errors in the following discussion so ask if you do not understand what I am attempting to say.
I assume that you are plotting a profile along the length of the railroad but that some borings were drilled at or near the same station but at different offsets from the centerline so that you could develope large scale cross sections at specific stations. When you plot the profile, these borings appear on top of each other because they project to the same, or nearly the same, station. The example below shows how borings can be offset in this situation. Boring 1 and 2 are too close so they are offset left and right of the sticks that represent their actual location on the profile. Boring 3 far enough awy from all other borings so it is ploted at its actual location and no stick is shown
To do this:
The first step is to add a field to your point table called PlotOffset. This will hold a number indicating the distance (in paper units) that the boring is to be offset from it's actual position. The next step is to modify your fence template (maybe copy it to a new template name first so you can use your current template to plot cross sections without the entered offset)
For each entity on your fence post (including the boring number, descrete graphics etc.) under the configuration tab enter
@<<POINT.PlotOffset>>
for the Output Override X property. This says to move the entity at plot time in the x direction the number of cm entered into the plot offset field. Positive is right, negative is left. If zero is entered in the PlotOffset field the boring is not moved. The @ sign indicates to move it relative to the actual position not an absolute x location.
Next you need to add a graphic entity that will represent the actual boring location if it is offset. In the example above I created this by adding a graphic column with width of 0.1 (inches= 0.25 cm) Top depth expression = <<LITHOLOGY.Depth>>, Bottom depth expression = <<LITHOLOGY.bottom>>, Fill type = Tile!linevrt08 (a single vertical line in the center of the cell). I then set section top and bottom line segments in the lines tab to give me tick marks at each strata break. Finaly I do not want this stick to plot if the PlotOffset value is zero so in the Output condition property on the configuration tab I entered:
<<IIf(<<POINT.PlotOffset>>=0,False,True)>>
The hard part is to populate the PlotOffset field in your point table. Yes you can do this manualy by working your way through the profile and adjusting as needed but what fun is that with 600 borings? If you have station data associated with each point you can do the following:
In the point table sort by station and then copy the entire list of 600 stations and paste them into column A of excel. You could also copy over the boring numbers for tracking purposes but it is not neccessary.
In column B write a formula to convet the text stationining into a number. The formula below from line 2 of my spreadsheet is a simple one that assumes that all stations will always have 3 digits in front of the plus sign but you can get more complex if that is not the case.
=VALUE(LEFT(A2,3))*1000+VALUE(MID(A2,4,10))
In column C write a formula that returns a positive or negative offset value by comparing the distance between the current boring and the next boring. The formula below from line 2 of my spreadsheet addresses the case of two (and only two) close borings offseting the first one left (negative) and the second one right (positive). You can get more complicated to account for the possibility of three overlapping borings or the case when offseting a boring pushes it into the next boring as required and/or desired.
=IF(C1<0,0.5,IF((B3-B2)<500,-0.5,0))
This formula says that if the previous boring has a negative offset (ie it was to close to the this boring and was offset to the left) then offset this boring 0.5 cm (to the right) and if the next boring is closer than 500 meters to this boring then offset this boring -0.5 cm (to the left). Otherwise set the offset to zero.
Once you have this formula entered and copied down for all borings (except the last one since it has no lanext boring to compare to) you can copy the entire column and paste it as values in column D (this converts the formulas into values). then Copy column D and return to your point table in gINT (still sorted by station...if you change the order then what you paste back in will not match with what you copied out) and paste the values into the PlotOffset field. You wil likely find some special cases that need manual adjusting
An example of the spreadsheet apears below
There may be a better way to do this and you will have to modify the crieria for offsetting and the distance to offset to fit your data structure and fence template but I hope this gives you a starting point