1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300
|
<!DOCTYPE html>
<html lang="en" data-content_root="./">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>David McKenzie’s Walls — Survex 1.4.17 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=d1102ebc" />
<link rel="stylesheet" type="text/css" href="_static/alabaster.css?v=12dfc556" />
<script src="_static/documentation_options.js?v=91e0adf2"></script>
<script src="_static/doctools.js?v=9bcbadda"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
<link rel="index" title="Index" href="genindex.htm" />
<link rel="search" title="Search" href="search.htm" />
<link rel="next" title="Bob Thrun’s CMAP" href="cmap.htm" />
<link rel="prev" title="Larry Fish’s Compass" href="compass.htm" />
<link rel="stylesheet" href="_static/custom.css" type="text/css" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="david-mckenzie-s-walls">
<h1>David McKenzie’s Walls<a class="headerlink" href="#david-mckenzie-s-walls" title="Link to this heading">¶</a></h1>
<p>Survex 1.4.9 and later can read Walls unprocessed survey data (<code class="docutils literal notranslate"><span class="pre">.SRV</span></code>
and <code class="docutils literal notranslate"><span class="pre">.WPJ</span></code> files). Walls is no longer being developed, so the focus of
support for Walls formats is primarily to help people with existing Walls data
to migrate.</p>
<p>We’ve mostly implemented this support based on Walls documentation, but
unfortunately the documentation of the SRV format is sometimes incomplete or
incorrect, while the WPJ format seems to be largely undocumented. Sadly
David is no longer around to ask, but we can at least test actual behaviour
of <code class="docutils literal notranslate"><span class="pre">Walls32.exe</span></code> on example data.</p>
<p>As of 1.4.10, some large Walls datasets can be successfully processed
(e.g. Mammoth Cave, the Thailand dataset from <a class="reference external" href="https://cave-registry.org.uk/">https://cave-registry.org.uk/</a>,
and Big Bat Cave). Behaviour is not identical and station positions after
loop closure will inevitably be different, but large or apparently systematic
errors are worth reporting. An easy way to compare is to export a Shapefile
from <code class="docutils literal notranslate"><span class="pre">Walls32.exe</span></code> and overlay it in <code class="docutils literal notranslate"><span class="pre">aven</span></code>. The way to export is a bit
hidden - after processing select the <cite>Segments</cite> tab, make sure the whole
project is selected, and click the <cite>Details / Rpts…</cite> button which is towards
the upper right. Click the <cite>Shapefile…</cite> button in the new dialog box, and
select what you want to output (e.g. <cite>Vectors</cite>). Due to limitations in the
Shapefile format each <cite>Shape Type</cite> selected here exports a separate Shapefile.
To overlay a Shapefile in <code class="docutils literal notranslate"><span class="pre">aven</span></code> use <cite>File->Overlay Geodata…</cite>.</p>
<p>See below for a list of known limitations. We’ve mostly prioritised what
to implement based on testing with real-world datasets so commonly used
features are likely to be handled while more obscure features may not be.</p>
<ul>
<li><p>Survex reports warnings in some suspect situations which Walls
quietly accepts. In general this seems helpful and they do highlight
what look like genuine problems in existing datasets, but if there are
particular instances which are noisy and not useful, let us know.</p>
<p>Some of these warnings use the same wording as errors - most of these
probably ought to be an error except Walls quietly accepts them so we
don’t want to fail processing because of them.</p>
<p>If you want a way to suppress the “unused fixed point” warning, using the
station in a <code class="docutils literal notranslate"><span class="pre">#NOTE</span></code> or <code class="docutils literal notranslate"><span class="pre">#FLAG</span></code> command counts as a “use” so you
can suppress these with e.g. <code class="docutils literal notranslate"><span class="pre">#NOTE</span> <span class="pre">ABC123</span> <span class="pre">/unused</span></code> for each such
fixed point.</p>
</li>
<li><p>If an isolated LRUD (LRUD not on a leg, e.g. specified for the start or end
station of a traverse) is missing its closing delimiter, Walls will parse
the line as a data leg where the “to” station starts with <code class="docutils literal notranslate"><span class="pre">*</span></code> or <code class="docutils literal notranslate"><span class="pre"><</span></code>,
which will usually succeed without errors or warnings. A real-world example
is:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>P25 *8 5 16 3.58
</pre></div>
</div>
<p>Survex parses this like Walls does, but issues a warning:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>walls.srv:1:9: warning: Parsing as "to" station but may be isolated LRUD with missing closing delimiter
P25 *8 5 15 3.58
^~
</pre></div>
</div>
<p>This warning will also be triggered if you have a “to” station which actually
starts with <code class="docutils literal notranslate"><span class="pre">*</span></code> or <code class="docutils literal notranslate"><span class="pre"><</span></code>, if the station name was not previously seen.
This condition provides a simple way to suppress the warning - just add a
dummy <code class="docutils literal notranslate"><span class="pre">#NOTE</span></code> command before the line of data like so:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>#note *8 ; Suppress Survex warning that this looks like broken LRUD
P25 *8 5 16 3.58
</pre></div>
</div>
</li>
<li><p>Walls allows hanging surveys, apparently without any complaint, and
as a result large Walls datasets are likely to have hanging surveys.
A hanging survey used to be an error in Survex but since 1.4.10
a hanging survey is warned about and then ignored.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">#FIX</span></code> - currently Survex does not support horizontal-only or
vertical only fixes. These are currently given an SD of 1000m in
that direction instead, but that is not the same as completely
decoupling the fix in that direction.</p></li>
<li><p>Variance overrides on survey legs are mostly supported, with the following
limitations:</p>
<ul class="simple">
<li><p>An SD of 0 is currently treated as 1mm (approximately 0.04 inches).</p></li>
<li><p>Floating a leg both horizontally and vertically (with <code class="docutils literal notranslate"><span class="pre">?</span></code>) replaces it
with a “nosurvey” leg, which is effectively the same provided both ends
of the leg are attached to fixed points.</p></li>
<li><p>Floating a leg either horizontally or vertically (with <code class="docutils literal notranslate"><span class="pre">?</span></code>) uses an SD of
1000m in that direction instead of actually decoupling the connection.</p></li>
<li><p>Floating the traverse containing a leg (with <code class="docutils literal notranslate"><span class="pre">*</span></code>) currently just floats
that leg (so it’s the same as <code class="docutils literal notranslate"><span class="pre">?</span></code>).</p></li>
</ul>
</li>
<li><p>Walls <code class="docutils literal notranslate"><span class="pre">#SEGMENT</span></code> is apparently in practice commonly set to a set of Compass
“shot flags”, so if a <code class="docutils literal notranslate"><span class="pre">#SEGMENT</span></code> value consists only of letters from the
set <code class="docutils literal notranslate"><span class="pre">CLPSX</span></code> with an optional leading <code class="docutils literal notranslate"><span class="pre">/</span></code> or <code class="docutils literal notranslate"><span class="pre">\\</span></code> then we map it to
Survex flags like so (since Survex 1.4.10):</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">C</span></code> in Compass causes legs it is set on to not be affected by loop
closure, but setting Compass flags in the Walls <code class="docutils literal notranslate"><span class="pre">#SEGMENT</span></code> is just a
user-level convention so Walls won’t do anything in response to <code class="docutils literal notranslate"><span class="pre">C</span></code>, so
Survex ignores it too.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">L</span></code> is mapped to Survex’s “duplicate” flag</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">P</span></code> is mapped to Survex’s “surface” flag</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">S</span></code> is mapped to Survex’s “splay” flag</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">X</span></code> in Compass completely excludes the leg from processing, but setting
Compass flags in the Walls <code class="docutils literal notranslate"><span class="pre">#SEGMENT</span></code> is just a user-level convention
so Walls won’t do anything in response to <code class="docutils literal notranslate"><span class="pre">X</span></code>. It seems in practice that
<code class="docutils literal notranslate"><span class="pre">X</span></code> is sometimes used in Walls datasets to flag data to just exclude from
the surveyed length, so we treat it as an alias for <code class="docutils literal notranslate"><span class="pre">L</span></code> and map it to
Survex’s “duplicate” flag.</p></li>
</ul>
<p>Other values of <code class="docutils literal notranslate"><span class="pre">#SEGMENT</span></code> are ignored.</p>
</li>
<li><p>Walls <code class="docutils literal notranslate"><span class="pre">FLAG</span></code> values seem to be arbitrary text strings. We try to
infer appropriate Survex station flags by checking for certain key
words in that text (currently we map words <code class="docutils literal notranslate"><span class="pre">ENTRANCE</span></code> and <code class="docutils literal notranslate"><span class="pre">FIX</span></code>
to the corresponding Survex station flags) and otherwise ignore <code class="docutils literal notranslate"><span class="pre">FLAG</span></code>
values.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">#NOTE</span></code> is parsed and the station name is marked as “used” (which
suppresses the unused fixed point warning) but the note text is
currently ignored.</p></li>
<li><p>We don’t currently support all the datum names which Walls does
because we haven’t managed to find an EPSG code for any UTM zones
in some of these datums. This probably means they’re not actually
in current use.</p></li>
<li><p>We currently assume all two digit years are 19xx (Walls documents
it ‘also accepts “some date formats common in the U.S. (<code class="docutils literal notranslate"><span class="pre">mm/dd/yy</span></code>,
<code class="docutils literal notranslate"><span class="pre">mm-dd-yyyy</span></code>, etc.)’ but doesn’t say how it interprets <code class="docutils literal notranslate"><span class="pre">yy</span></code>.</p></li>
<li><p>The documentation specifies that the <code class="docutils literal notranslate"><span class="pre">SAVE</span></code> and <code class="docutils literal notranslate"><span class="pre">RESTORE</span></code> options
should be processed before other options. Currently Survex just
processes all options in the order specified, which makes no
difference to any real-world data we’ve seen. We need to test with
Walls32.exe to determine exactly how this works (and if <code class="docutils literal notranslate"><span class="pre">RESET</span></code> is
also special).</p></li>
<li><p>LRUD data is currently ignored.</p></li>
<li><p>The <code class="docutils literal notranslate"><span class="pre">TAPE=</span></code> option is currently quietly skipped, and tape
measurements are assumed to be station to station.</p></li>
<li><p>In <code class="docutils literal notranslate"><span class="pre">TYPEAB=</span></code> and <code class="docutils literal notranslate"><span class="pre">TYPEVB=</span></code>, the threshold is ignored, as is the <code class="docutils literal notranslate"><span class="pre">X</span></code>
meaning to only use foresights (but still check backsights).
Survex uses a threshold based on the specified instrument SDs, and
averages foresights and backsights.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">UV=</span></code>, <code class="docutils literal notranslate"><span class="pre">UVH=</span></code> and <code class="docutils literal notranslate"><span class="pre">UVV=</span></code> are all quietly skipped.</p></li>
<li><p>The <code class="docutils literal notranslate"><span class="pre">GRID=</span></code> option currently gives an “Unknown command” warning, and
is skipped. If your Walls data specifies a UTM zone then Survex
will automatically correct for grid convergence.</p></li>
<li><p>The <code class="docutils literal notranslate"><span class="pre">INCH=</span></code> option currently gives an “Unknown command” warning
(unless the argument is zero, since Survex 1.4.10), and is skipped.</p></li>
<li><p>Walls seems to allow <code class="docutils literal notranslate"><span class="pre">\\</span></code> in place of <code class="docutils literal notranslate"><span class="pre">/</span></code> in some places (e.g.
<code class="docutils literal notranslate"><span class="pre">#FLAG</span></code>). We aim to support this too, but it doesn’t seem to be documented
so may not currently be supported in the correct places.</p></li>
<li><p>The inheritance of settings in WPJ files is probably not correctly
implemented currently.</p></li>
<li><p>The Walls documentation mentions a <code class="docutils literal notranslate"><span class="pre">NOTE=</span></code> option, but doesn’t
document what it does, and testing with Walls32.exe it doesn’t
seem to actually be supported!</p></li>
<li><p>The two UPS zones for the polar regions (specified as UTM zone
values of -61 and 61 in Walls) are supported with datum WGS84, but
we do not have any real data to test this support with.</p></li>
<li><p>Walls gives an error if an unprefixed station name is more than 8 characters
long but Survex does not enforce this restriction.</p></li>
<li><p>Walls documents <cite>The total length of the three prefix components combined,
including any embedded colon separators, is 127 characters</cite> but Survex does
not enforce any limit.</p></li>
<li><p>In the option <code class="docutils literal notranslate"><span class="pre">UNITS=</span></code> the documentation says <cite>CASE = Upper / Lower /
Mixed</cite> but it seems actually any string is allowed and if it starts
with a letter other than <code class="docutils literal notranslate"><span class="pre">U</span></code> or <code class="docutils literal notranslate"><span class="pre">L</span></code> then it’s treated as <code class="docutils literal notranslate"><span class="pre">Mixed</span></code>.
Since Survex 1.4.10.</p></li>
<li><p>Walls explicitly documents that <cite>Unprefixed names […] must not contain any
colons, semicolons, commas, pound signs (#), or embedded tabs or spaces.</cite> but
it actually allows <code class="docutils literal notranslate"><span class="pre">#</span></code> in station names (though it can’t be used as the
first character of the from station name as that will be interpreted as a
command. Since Survex 1.4.10.</p></li>
<li><p>Walls ignores junk after the numeric argument in <code class="docutils literal notranslate"><span class="pre">TYPEAB=</span></code>, <code class="docutils literal notranslate"><span class="pre">TYPEVB=</span></code>,
<code class="docutils literal notranslate"><span class="pre">UV=</span></code>, <code class="docutils literal notranslate"><span class="pre">UVH=</span></code>, and <code class="docutils literal notranslate"><span class="pre">UVV=</span></code>. Survex warns and skips the junk. Since
Survex 1.4.10.</p></li>
<li><p>Walls allows the clino reading to be completely omitted with <code class="docutils literal notranslate"><span class="pre">ORDER=DAV</span></code>
and <code class="docutils literal notranslate"><span class="pre">ORDER=ADV</span></code> on a “wall shot” (leg to or from an anonymous station).
Supported since Survex 1.4.10.</p></li>
<li><p>If a station is used with an explicit Walls prefix (e.g. <code class="docutils literal notranslate"><span class="pre">PEP:A123</span></code>)
then it will will be flagged as “exported” in the <code class="docutils literal notranslate"><span class="pre">.3d</span></code> file. This
is currently applied even if the explicit prefix is empty (e.g. <code class="docutils literal notranslate"><span class="pre">:A123</span></code>).
Since Survex 1.4.10.</p></li>
<li><p>Walls allows a station with an explicit prefix to have an empty name,
e.g. <code class="docutils literal notranslate"><span class="pre">PEP:</span></code>. The Walls documentation doesn’t mention this, though it
also doesn’t explicitly say the name can’t be empty. This quirk seems
unlikely to be intentionally used and Survex doesn’t allow an empty station
name, so we issue a warning and use the name <code class="docutils literal notranslate"><span class="pre">empty</span> <span class="pre">name</span></code> (which has a
space in, so can’t collide with a real Walls station name which can’t contain
a space) - so <code class="docutils literal notranslate"><span class="pre">PEP:</span></code> in Walls becomes <code class="docutils literal notranslate"><span class="pre">PEP.empty</span> <span class="pre">name</span></code> in Survex.
Since Survex 1.4.10.</p></li>
</ul>
<p>If you find some Walls data which Survex doesn’t handle or handles
incorrectly, and it is not already noted above, please let us know.
If you can provide some data demonstrating the problem, that’s really
helpful. It’s also useful to know if there are things listed above
that are problematic to help prioritise efforts.</p>
</section>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="index.htm">Survex</a></h1>
<h3>Navigation</h3>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="intro.htm">Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="getstart.htm">Getting Started</a></li>
<li class="toctree-l1"><a class="reference internal" href="cmdline.htm">Survex Programs</a></li>
<li class="toctree-l1"><a class="reference internal" href="datafile.htm">Survex data files</a></li>
<li class="toctree-l1"><a class="reference internal" href="svxhowto.htm"><code class="docutils literal notranslate"><span class="pre">.svx</span></code> Cookbook</a></li>
<li class="toctree-l1"><a class="reference internal" href="genhowto.htm">General: How do I?</a></li>
<li class="toctree-l1"><a class="reference internal" href="compass.htm">Larry Fish’s Compass</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">David McKenzie’s Walls</a></li>
<li class="toctree-l1"><a class="reference internal" href="cmap.htm">Bob Thrun’s CMAP</a></li>
<li class="toctree-l1"><a class="reference internal" href="img.htm">Using the img library</a></li>
<li class="toctree-l1"><a class="reference internal" href="maillist.htm">Mailing List</a></li>
<li class="toctree-l1"><a class="reference internal" href="future.htm">Future Developments</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="index.htm">Documentation overview</a><ul>
<li>Previous: <a href="compass.htm" title="previous chapter">Larry Fish’s Compass</a></li>
<li>Next: <a href="cmap.htm" title="next chapter">Bob Thrun’s CMAP</a></li>
</ul></li>
</ul>
</div>
<search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="search.htm" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
©1998-2025.
|
Powered by <a href="https://www.sphinx-doc.org/">Sphinx 8.1.3</a>
& <a href="https://alabaster.readthedocs.io">Alabaster 0.7.16</a>
</div>
</body>
</html>
|