survex to therion data conversion

John Pybus john.pybus@zoology.oxford.ac.uk
Thu, 06 Nov 2003 02:27:56 +0000


Wookey wrote:
> Having been using Therion to try and draw up some caves I have become
> somewhat frustrated by the survex/therion data incompatibilities.
> 
> I think there is room for improvement here and will make some observations,
> which I hope will promote discussion.
> 
> The therion centreline data format is pretty-much the same as Survex's -
> however it's not exactly the same so there is a need for converting data
> between the two packages. Ultimately I think we need a scheme where the one
> dataset can be used by both packages as otherwise you end up maintaining two
> almost identical datasets, which has to be a bad thing. This could be
> accomplished with conversion tools, but the two formats are so nearly
> identical that we ought to be able to simply 'include' survex files in
> therion, or have both packages understand both dialects.

I've also started using Therion recenty, and have come to similar
conclusions.

<minor differences snipped>

> * (in *team) (survex currently allows anything but therion has a list)
>  "insts" is not recognised and has to be replaced with "compass clino". I
> think "insts" or "instruments" should be a permitted synonym as it's in a lot
> of data files.

I've also found the *team difference a problem.

> There are two more fundamental changes:
> 
> *therion surrounds centreline (ie survex) data (inside the 'survey'
> construct) with 
>  centerline
>  ....
>  endcenterline
> 
> this makes sense - it is effectively implicit in survex, but therion has
> other forms of data so the centreline stuff needs to be indicated.
> 
> (it would be nice if the synonym "centreline" was allowed as well as
> "centerline", then I wouldn't get an error every time I type it in :-) On
> the other hand there is a lot to be said for a strict data format).

I have got this wrong *every* time I've used it so far!  I did think of
complaining but considered that many people have to put up with every
term in computer based languages being non-native so thought I'd just
put up with one spelled 'wrongly'.

> * equates need to live inside centerline/endcenterline
> 
> this one is tricky as it seems to change the scoping rules survex uses and
> seems to make it difficult to directly (simply) translate data.

I'm not sure things are quite so different.  Survex has an (implicit)
root context.  In therion you don't, so you'll have to create your own
container survey, but you can then put your equates in the same relative
position as before.

> typical survex data goes:
> *begin part1
>  <survey data>
> *end part1
> 
> *equate part1.36 part2.0
> 
> *begin part2
>  <survey data>
> *end part2
> 
> How do I translate this to therion?
> 
> will:
> 
> survey part1
>  centerline
>   <survey data>
>  endcenterline
> endsurvey
> 
> survey part2
>  centerline
>   equate part1.36 part2.0 
>  endceterline
> endsurvey
> 
> work? (It is good practice in survex not to include equates in the survey
> like this as they don't really belong to the scope of either survey).
> 
> Recommendations welcome.

Something like:

survey outer

   survey part1
    centreline
     <data>
    endcentreline
   endsurvey

   centreline
    equate 36@part1 0@part2
   endcentreline

   survey part2
    centreline
     <more data>
    endcentreline
   endsurvey

endsurvey

You'll also note the need to convert reference of the form
survey.subsurvey.station to station@subsurvey.survey .  This is also
rather irksome (I think it betrays therion's tcl roots?).

I'd really like a survexinclude which would import survex data from the
original files.  With very little reorganisation my existing data could
then be used with therion without change.  That might require linking
the survex parser into therion to implement.

Yours,

John