summaryrefslogtreecommitdiffstats
path: root/parsers/survex.py
diff options
context:
space:
mode:
authorPhilip Sargent <philip.sargent@klebos.com>2020-06-15 03:28:51 +0100
committerPhilip Sargent <philip.sargent@klebos.com>2020-06-15 03:28:51 +0100
commit453af2851b72e495733f023fe443e368017c8452 (patch)
tree5902eda1787ecf2a4327b8237ed0d85001012041 /parsers/survex.py
parent30e560d808bf149eee6f932195925d282241b3b3 (diff)
downloadtroggle-453af2851b72e495733f023fe443e368017c8452.tar.gz
troggle-453af2851b72e495733f023fe443e368017c8452.tar.bz2
troggle-453af2851b72e495733f023fe443e368017c8452.zip
Stop storing all SurvexStations
Diffstat (limited to 'parsers/survex.py')
-rw-r--r--parsers/survex.py42
1 files changed, 37 insertions, 5 deletions
diff --git a/parsers/survex.py b/parsers/survex.py
index fe9f729..8908f67 100644
--- a/parsers/survex.py
+++ b/parsers/survex.py
@@ -24,6 +24,7 @@ rx_braskets= re.compile(r"[()]")
rx_line_length = re.compile(r"[\d\-+.]+$")
survexlegsalllength = 0.0
survexlegsnumber = 0
+survexblockroot = None
def LoadSurvexLineLeg(survexblock, stardata, sline, comment, cave):
global survexlegsalllength
@@ -550,6 +551,8 @@ def LoadPos():
posfile = open("%s.pos" % (topdata))
posfile.readline() #Drop header
+
+ survexblockroot = models_survex.SurvexBlock.objects.get(id=1)
for line in posfile.readlines():
r = poslineregex.match(line)
if r:
@@ -559,25 +562,54 @@ def LoadPos():
else:
for sid in mappoints:
if id.endswith(sid):
+ notfoundnow.append(id)
+ # Now that we don't import any stations, we create it rather than look it up
+ # ss = models_survex.SurvexStation.objects.lookup(id)
+
+ # need to set block_id which means doing a search on all the survex blocks..
+ # remove dot at end and add one at beginning
+ blockpath = "." + id[:-len(sid)].strip(".")
+ try:
+ sbqs = models_survex.SurvexBlock.objects.filter(survexpath=blockpath)
+ if len(sbqs)==1:
+ sb = sbqs[0]
+ if len(sbqs)>1:
+ message = ' ! MULTIPLE SurvexBlocks matching Entrance point {} {}'.format(blockpath, sid)
+ print(message)
+ models.DataIssue.objects.create(parser='survex', message=message)
+ sb = sbqs[0]
+ elif len(sbqs)<=0:
+ message = ' ! ZERO SurvexBlocks matching Entrance point {} {}'.format(blockpath, sid)
+ print(message)
+ models.DataIssue.objects.create(parser='survex', message=message)
+ sb = survexblockroot
+ except:
+ message = ' ! FAIL in getting SurvexBlock matching Entrance point {} {}'.format(blockpath, sid)
+ print(message)
+ models.DataIssue.objects.create(parser='survex', message=message)
try:
- ss = models_survex.SurvexStation.objects.lookup(id)
+ ss = models_survex.SurvexStation(name=id, block=sb)
ss.x = float(x)
ss.y = float(y)
ss.z = float(z)
ss.save()
found += 1
except:
- notfoundnow.append(id)
- print(" - %s failed lookups of SurvexStation.objects. %s found. %s skipped." % (len(notfoundnow),found, len(skip)))
+ message = ' ! FAIL to create SurvexStation Entrance point {} {}'.format(blockpath, sid)
+ print(message)
+ models.DataIssue.objects.create(parser='survex', message=message)
+ raise
+
+ #print(" - %s failed lookups of SurvexStation.objects. %s found. %s skipped." % (len(notfoundnow),found, len(skip)))
if found > 10: # i.e. a previous cave import has been done
try:
with open(cachefile, "w") as f:
c = len(notfoundnow)+len(skip)
for i in notfoundnow:
- f.write("%s\n" % i)
+ pass #f.write("%s\n" % i)
for j in skip:
- f.write("%s\n" % j) # NB skip not notfoundbefore
+ pass #f.write("%s\n" % j) # NB skip not notfoundbefore
print((' Not-found cache file written: %s entries' % c))
except:
print(" FAILURE WRITE opening cache file %s" % (cachefile))