Hi Martin -
I tried a few more things based on your suggestions. The first thing I had to
learn was how to get the Survey Structure and Map Structure boxes to populate.
The secret is to run the therion compiler from inside xtherion. I have been
running it straight from the command line. Since Big Cavern Ranch has no
drawings, I did not see any reason to bother with xtherion.
The attached file "selection_002.jpg" shows the survey and map structure boxes.
These both look reasonably sane to me. I have attached the thconfig and .th
file that were used to generate this.
I ran this also with a map defined in the .th file. The result was another
item in Map Structure under "plan which was the name of the map I defined. In
that map were all of the pieces that are also present the other levels under
"plan".
The thconfig file has a line "select AllieMainPlan". I changed that to "select
AllieMainPlan@all" and recompiled. No difference. The resulting map has all
four caves and no offsets. The map structure as reported by xtherion did not
change.
--
Bill Gee
On Thursday, November 14, 2019 8:33:22 AM CST Martin Sluka via Therion wrote:
>
> > 14. 11. 2019 v 14:38, Bill Gee <[email protected]>:
> >
> > I am shooting blindly in the dark here. What is the hierarchy of
> > namespaces? Do surveys contain maps, or do maps contain surveys? Can maps
> > contain maps? Can surveys contain surveys? Can a map contain a survey
> > which in turn contains a map?
>
> Any survey-endsurvey structure is a name space.
>
> Maps structure is independent from structure of surveys but it allways belong
> to a name space of enclosing survey-endsurvey.
>
> So in your file AllieSpringCave.th <http://alliespringcave.th/> there is name
> space AllieSpringCave, but map AllieMainPlan is outside it. After you input
> the file AllieSpringCave.th <http://alliespringcave.th/> into your file
> BigCavernRanch.th <http://bigcavernranch.th/> inside name space all, it
> become part of "name space all".
>
> >
> > If surveys can contain maps, and maps can contain surveys, then how do you
> > know what the top of the namespace is?
>
> Name space is each structure survey-endsurvey.
>
> > Using Allie Spring Cave as an example, it looks to me like the top of the
> > name space is a map called AllieMainPlan.
>
> This map AllieMainPlan is outside the name space "survey
> AllieSpringCave-endsurvey". It is reason you should call all subsidiary maps
> from name space AllieSpringCave by @AllieSpringCave.
>
> > This map contains seven subsidiary maps and is defined outside of a
> > survey/endsurvey block. But all of those subsidiary maps are defined
> > inside a survey/endsurvey block. So does AllieMainPlan contain the survey
> > at the second level, and the survey contains the subsidiary maps at the
> > third level? If true, then why does it not show up that way in xtherion?
>
> Any command input is only copy/paste piece of plaint text. So if you input
> ../AllieSpringCaveSurvey/AllieSpringCave.th <http://alliespringcave.th/> into
> name space "survey all-endsurvey“, map AllieMainPlan become object in this
> name space and name space "survey AllieSpringCave-endsurvey“ become enclosed
> name space.
>
> > Martin - In a different email you mentioned that MainPassages is not part
> > of AllieSpringCave. I don't understand that. AllieSpringCave is the name
> > of a survey/endsurvey block, and inside that block are seven map/endmap
> > blocks. One of those map blocks is MainPassages. It seems to me that the
> > survey/endsurvey block contains the map/endmap blocks and therefore the
> > names they define should be part of the survey namespace.
> >
> I was probably totaly wrong. Map AllieMainPlan is not part of name space
> "survey AllieSpringCave-endsurvey"
>
> What will Therion produce from your original files if you in thconfig select
> only „select AllieMainPlan@all“?
>
> Or may you try to add that select command by doubleclick on map AllieMainPlan
> in structure of maps in right side panel?
>
> May you publish screenshot of that rightside panel with structure of maps,
> please?
>
> Martin
>
>
>
>
encoding utf-8
# Bring in subsidiary files
survey TestSurvey -title "Big Cavern Ranch"
# Name the input caves
input ../AllieSpringCaveSurvey/AllieSpringCave.th
input ../MillCreekCaveSurvey/MillCreekCave.th
input ../ShiftyRockPit/ShiftyRockPit.th
input ../CascadeCaverns/CascadeCaverns.th
equate AA41a@ShiftyRockPit DR23@AllieSpringCave
equate AA51@ShiftyRockPit CC7@AllieSpringCave
endsurvey
encoding utf-8
source BigCavernRanch.th
input ../TherionMasterFiles/CustomSymbolsCode.txt
select AllieMainPlan
# This layout is for the main 2D map, all on one page
layout basics
language en_US
units imperial
scale-bar 100 feet
page-numbers on
north true
rotate 0
symbol-color group centerline [80 20 0]
symbol-color area water [0 0 100]
map-comment "The Caves of Big Cavern Ranch, Pulaski County, Missouri"
statistics explo all
legend on
map-header 3 65 w
symbol-set UIS
# Section for PDF properties
doc-author "Bill Gee"
doc-title "The Caves of Big Cavern Ranch"
doc-subject "The Caves of Big Cavern Ranch"
# Section for map photos
# Bring in the custom symbols
copy CustomSymbols
# Reassign names
symbol-assign point gradient AMER
symbol-assign point stalagmite AMER
symbol-assign point stalactite AMER
symbol-assign point pillar AMER
symbol-assign point popcorn AMER
# Set point height symbols to be enclosed in boxes
code metapost
p_label_mode_height:=6;
endcode
endlayout
# ####################################
# Main map layout, no special colorizing.
layout mainmapnocolor
copy basics
symbol-show group centerline
debug station-names
scale 1 200
color map-fg [100 86 66]
# Change the size of the legend
code metapost
tmpscale=1.8;
def draw_legend_box =
% Next line controls size of symbol in each symbol table box
currentpicture := currentpicture scaled tmpscale;
% Next line controls size of symbol table box background
clip currentpicture to unitsquare inscale xscaled tmpscale yscaled
tmpscale;
drawoptions();
pickup PenB;
% I think the next line controls the size of each symbol table box
draw unitsquare inscale xscaled tmpscale yscaled tmpscale;
enddef;
%clear the background of the larger legend boxes
def clean_legend_box =
unfill unitsquare inscale xscaled tmpscale yscaled tmpscale;
enddef;
%change the value of inscale to fill the legend boxes
def inscale =
xscaled (legend_scale*tmpscale) yscaled (0.618*legend_scale*tmpscale)
enddef;
endcode
code tex-map
\def\maplayout{
\legendbox{3}{65}{W}{
\def\txtsize{40} % Define the default text size
\legendwidth=50 cm
\legendtextsectionsize={\size[\txtsize]}
\legendtextsize={\size[\txtsize]}
\legendtextheadersize={\size[80]}
\hsize=\legendwidth
\the\legendcontent={\size[\txtsize]}
\the\legendtextsize\ Map generated at \the\time \the\currentdate\medskip
\the\legendtextsize\ Therion version \the\thversion
}
}
endcode
#end of TeX code to change legend size
endlayout
# ############################
# Main map layout with coloring based on elevation
layout mainmapwithcolor
copy basics
symbol-show group centerline
debug station-names
scale 1 200
color map-fg altitude
endlayout
# ##############################
# Main map scaled for printing
layout mainmapprint
copy basics
scale 1 800
debug off
symbol-hide group centerline
color map-fg [100 86 66]
# Change the size of the legend
code metapost
tmpscale=1.3;
def draw_legend_box =
% Next line controls size of symbol in each symbol table box
currentpicture := currentpicture scaled tmpscale;
% Next line controls size of symbol table box background
clip currentpicture to unitsquare inscale xscaled tmpscale yscaled
tmpscale;
drawoptions();
pickup PenB;
% I think the next line controls the size of each symbol table box
draw unitsquare inscale xscaled tmpscale yscaled tmpscale;
enddef;
%clear the background of the larger legend boxes
def clean_legend_box =
unfill unitsquare inscale xscaled tmpscale yscaled tmpscale;
enddef;
%change the value of inscale to fill the legend boxes
def inscale =
xscaled (legend_scale*tmpscale) yscaled (0.618*legend_scale*tmpscale)
enddef;
endcode
code tex-map
\def\maplayout{
\legendbox{3}{65}{W}{
\def\txtsize{16} % Define the default text size
\legendwidth=20 cm
\legendtextsectionsize={\size[\txtsize]}
\legendtextsize={\size[\txtsize]}
\legendtextheadersize={\size[40]}
\hsize=\legendwidth
\the\legendcontent={\size[\txtsize]}
\the\legendtextsize\ Map generated at \the\time \the\currentdate\medskip
\the\legendtextsize\ Therion version \the\thversion
}
}
endcode
#end of TeX code to change legend size
endlayout
# ## End of layouts
# Change the legend callouts
text en_US "point u:stalagmaflat_AMER" "stalagmaflat"
text en_US "line u:dripline_AMER" "dripline"
text en_US "point u:pendant" "pendant"
text en_US "point u:stromatolite" "stromatolite"
text en_US "point u:boxwork" "boxwork"
text en_US "area u:pavement" "pavement"
text en_US "area u:tiles" "tiled floor"
# Now list all the map files to be created.
# The main plan map
export map -proj plan -layout mainmapnocolor -o BigCavernRanch.pdf
# The main map for printing
export map -proj plan -layout mainmapprint -o BigCavernRanchPrint.pdf
# Main plan map with elevations colorized
export map -proj plan -layout mainmapwithcolor -o BigCavernRanchColored.pdf
# Create an atlas map
export atlas -proj plan -layout mainmapnocolor -o BigCavernRanchAtlas.pdf
# create a centerline map using XVI format
export map -proj plan -fmt xvi -o BigCavernRanch.xvi
# Create a 3d map for use with Loch
export model -fmt loch -o BigCavernRanch.lox
# Create a 3d map for use with Survex/Aven
export model -fmt 3d -o BigCavernRanch.3d
# Create a KML file for Google Earth
export map -proj plan -fmt kml -output BigCavernRanch.kml
# Create a PLT file for use in Compass
export model -fmt compass -enable all -wall-source all -o BigCavernRanch.plt
# Create a TXT file with basic statistics on each of the caves
export cave-list -surveys on -location on -fmt txt -o BigCavernRanchCaves.txt
_______________________________________________
Therion mailing list
[email protected]
https://mailman.speleo.sk/listinfo/therion