# versuche das tpo file zu lesen

import pylab as P
import numpy as N

lines = file('../caves/sternenhoehle/survey-dicky/sternenhoehle-therion.txt').readlines()
spcount = 0
blocknames = ['DATA', 'PLAN', 'ELEVATION']
planblocks = ['STATIONS', 'SHOTS','POLYLINE']
actblock = ''
splblock = False
polyline = []

outfile = file('../caves/sternenhoehle/stern_new.th', 'w')
outfile.write('survey Stern\ncenterline\n')
outfile.write('data normal from to compass clino tape ignoreall\n')

for line in lines:
    line = line.replace('<', '').replace('>','')
    if len(line) < 1:
        continue
    w = line.split()
    if len(w) < 1:
        continue
    if w[0] in blocknames:
        print 'entering block ', w[0]
        actblock = w[0]
        continue
    if actblock == 'DATA':
        if len(w) == 5:
            if splblock:
                outfile.write('flags not splay\n')
                splblock = False
            outfile.write(line.strip()+'\n')
        # splay data
        if len(w) == 4:
            if not splblock:
                outfile.write('flags splay\n')
                splblock = True
            outfile.write(w[0] + '  sp%d  '%spcount + '  '.join(w[1:])+'\n')
            spcount += 1
#     if actblock == 'PLAN':
#         if w[0] in planblocks:
#             actplanblock = w[0]
#             if len(polyline) > 1:
#                 polyline = N.array(polyline)
#                 P.plot(polyline[:,0], polyline[:,1], 'k')
#                 polyline = []
#             continue
#         if actplanblock == 'STATIONS':
#             if len(w) == 3:
#                 P.plot([float(w[0])], [float(w[1])], 'ro')
#         if actplanblock == 'SHOTS':
#             if len(w) == 4:
#                 pass
#                 P.plot([float(w[0]),float(w[2])], [float(w[1]),float(w[3])], 'y')
#         if actplanblock == 'POLYLINE':
#             if len(w) == 2:
#                 polyline.append(map(float, w))

    if actblock == 'ELEVATION':
        if w[0] in planblocks:
            actplanblock = w[0]
            if len(polyline) > 1:
                polyline = N.array(polyline)
                P.plot(polyline[:,0], polyline[:,1], 'k')
                polyline = []
            continue
        if actplanblock == 'STATIONS':
            if len(w) == 3:
                P.plot([float(w[0])], [float(w[1])], 'ro')
        if actplanblock == 'SHOTS':
            if len(w) == 4:
                pass
                P.plot([float(w[0]),float(w[2])], [float(w[1]),float(w[3])], 'y')
        if actplanblock == 'POLYLINE':
            if len(w) == 2:
                polyline.append(map(float, w))



P.show()        
outfile.write('endcenterline\nendsurvey Stern\n')
outfile.close()
