mirror of
https://expo.survex.com/repositories/troggle/.git
synced 2024-11-25 08:41:51 +00:00
trying to find srtm *fix stations
This commit is contained in:
parent
7b67eb52dc
commit
e1c9de14ca
@ -363,7 +363,7 @@ def find_nearest_point(points, target_point):
|
||||
#let raw = [[406264.72, 5278037.57, 873.53],
|
||||
#first version:
|
||||
#rawheights = [[406264.72, 5278037.57, 873.53],
|
||||
|
||||
# [[406264.72, 5278037.57, 826.64], from constants.js 14 Nov 2023, i.e. 46.89m lower
|
||||
rawheights = [[406264.72, 5278037.57, 873.53],
|
||||
[406314.69, 5278036.50, 861.60],
|
||||
[406364.66, 5278035.43, 852.51],
|
||||
|
@ -50,8 +50,8 @@ METRESINFEET = 3.28084
|
||||
UNSEENS = "_unseens.svx"
|
||||
|
||||
IGNOREFILES = ["dummy_file"]
|
||||
IGNOREPREFIX = ["surface", "kataster", "fixedpts", "gpx", "deprecated"]
|
||||
EXCEPTPREFIX = ["surface/terrain", "kataster/kataster-boundaries", "gpx/gpx_publish/essentials", "template", "docs", "deprecated", "subsections", "1623-and-1626-no-schoenberg-hs", "1623-and-1624-and-1626-and-1627", "1623-and-1626", "1623.svx", "1626.svx", "smk-system.svx"]
|
||||
IGNOREPREFIX = ["surface", "kataster", "gpx", "deprecated"] #"fixedpts",
|
||||
EXCEPTPREFIX = ["surface/terrain", "kataster/kataster-boundaries", "gpx/gpx_publish", "template", "docs", "deprecated", "subsections", "1623-and-1626-no-schoenberg-hs", "1623-and-1624-and-1626-and-1627", "1623-and-1626", "1623.svx", "1626.svx", "smk-system.svx"]
|
||||
# ignorenoncave = [
|
||||
# "caves-1623",
|
||||
# "caves-1623/2007-NEU",
|
||||
@ -255,6 +255,7 @@ class LoadingSurvex:
|
||||
rx_end2 = re.compile("(?i)end$")
|
||||
rx_title = re.compile(r"(?i)title$")
|
||||
rx_title2 = re.compile("(?i)title$")
|
||||
rx_fix = re.compile(r"(?i)fix$")
|
||||
rx_ref = re.compile(r"(?i)ref$")
|
||||
rx_data = re.compile(r"(?i)data$")
|
||||
rx_flags = re.compile(r"(?i)flags$")
|
||||
@ -307,6 +308,7 @@ class LoadingSurvex:
|
||||
|
||||
datastar = {}
|
||||
flagsstar = {}
|
||||
fixes = {}
|
||||
units = "metres"
|
||||
unitsfactor = None
|
||||
slength = 0.0
|
||||
@ -356,7 +358,7 @@ class LoadingSurvex:
|
||||
def LoadSurvexFallThrough(self, survexblock, line, cmd):
|
||||
if cmd == "require":
|
||||
pass # should we check survex version available for processing?
|
||||
elif cmd in ["equate", "fix", "calibrate", "cs", "export", "case", "declination", "infer", "instrument", "sd"]:
|
||||
elif cmd in ["equate", "calibrate", "cs", "export", "case", "declination", "infer", "instrument", "sd"]:
|
||||
pass # we ignore all these, which is fine.
|
||||
else:
|
||||
if cmd in ["include", "data", "flags", "title", "entrance", "set", "units", "alias", "ref"]:
|
||||
@ -607,6 +609,34 @@ class LoadingSurvex:
|
||||
parser="survex", message=message, url=None, sb=(survexblock.survexfile.path)
|
||||
)
|
||||
|
||||
def LoadSurvexFix(self, survexblock, line):
|
||||
"""*fix is a station geolocation, units depend on a previous *cs setting
|
||||
"""
|
||||
#fixline = line.strip().replace("\t"," ").split(" ") # unpack tuples idiom in python 3
|
||||
fixline = re.match("(?i)\s*([\w\d_\.\-]+)\s+(?:reference)?\s*([\d\.]*)\s+([\d\.]*)\s+([\d\.]*)\s*(;.*)?$", line)
|
||||
if not fixline:
|
||||
message = f'BAD fix regex {line.replace(" ","|")} {survexblock.survexfile.path}:{survexblock}'
|
||||
print(self.insp + message)
|
||||
stash_data_issue(parser="survex", message=message)
|
||||
else:
|
||||
name, *fixdata = fixline.groups()
|
||||
if name in self.fixes:
|
||||
message = f"! Duplicate *FIX: id '{line}' ({survexblock}) {survexblock.survexfile.path}"
|
||||
print(self.insp + message)
|
||||
stash_data_issue(parser="survex", message=message)
|
||||
|
||||
# do not store duplicates, they will be gpx/publish stuff
|
||||
return
|
||||
|
||||
try:
|
||||
#_, _, alt, *rest = (fixdata + [None]*4)[:4]
|
||||
_, _, alt, comment = fixdata
|
||||
fixid = str(survexblock)+name
|
||||
self.fixes[fixid] = (survexblock, alt, comment)
|
||||
except:
|
||||
print(f'BAD fix {name}, {fixdata=}\n{line.replace(" ","|")}\n{survexblock.survexfile.path}:{survexblock}', file=sys.stderr)
|
||||
|
||||
|
||||
def LoadSurvexEntrance(self, survexblock, line):
|
||||
# Not using this
|
||||
pass
|
||||
@ -1796,6 +1826,8 @@ class LoadingSurvex:
|
||||
self.LoadSurvexEntrance(survexblock, args)
|
||||
elif self.rx_date.match(cmd):
|
||||
self.LoadSurvexDate(survexblock, args)
|
||||
elif self.rx_fix.match(cmd):
|
||||
self.LoadSurvexFix(survexblock, args)
|
||||
elif self.rx_units.match(cmd):
|
||||
self.LoadSurvexUnits(survexblock, args)
|
||||
elif self.rx_team.match(cmd):
|
||||
@ -2277,8 +2309,9 @@ def FindAndLoadSurvex():
|
||||
omit_scan.depthinclude = 0
|
||||
fullpathtotop = str(Path(settings.SURVEX_DATA, UNSEENS))
|
||||
|
||||
# copy the list to prime the next pass through the files
|
||||
# copy the lists to prime the next pass through the files
|
||||
omit_scan.svxfileslist = svx_scan.svxfileslist[:]
|
||||
|
||||
svx_scan.svxfileslist = [] # free memory
|
||||
svx_scan = None # Hmm. Does this actually delete all the instance variables if they are lists, dicts etc.?
|
||||
|
||||
@ -2357,14 +2390,30 @@ def FindAndLoadSurvex():
|
||||
sys.stdout = stdout_orig
|
||||
|
||||
legsnumber = svx_load.legsnumber
|
||||
fixnumber = len(svx_load.fixes)
|
||||
mem1 = get_process_memory()
|
||||
|
||||
print(f" - Number of SurvexDirectories: {len(svx_load.svxprim):,}")
|
||||
tf = SurvexFile.objects.all().count() - len(removals)
|
||||
print(f" - Number of SurvexFiles: {tf:,}")
|
||||
print(f" - Number of Survex *fix: {fixnumber:,}")
|
||||
print(f" - Number of Survex legs: {legsnumber:,}")
|
||||
|
||||
for f in svx_load.fixes:
|
||||
# why are we seeing no *fixes from fixedpts/gps18.svx etc. ? They are parsed !
|
||||
survexblock, altitude, comment = svx_load.fixes[f]
|
||||
if comment:
|
||||
print(f"{a} {b} {comment}")
|
||||
if re.match("(?i)[^s]*srtm[\s\S]*", comment.lower()):
|
||||
print(f"{f} - {comment}")
|
||||
else:
|
||||
if str(f).startswith("162"):
|
||||
print(f"{f} - {survexblock.survexfile}:{survexblock} - {altitude=}")
|
||||
|
||||
svx_load = None
|
||||
|
||||
|
||||
|
||||
return legsnumber
|
||||
|
||||
def display_contents(blocks):
|
||||
|
@ -112,6 +112,13 @@ Coordinate systems in Austria are explained in:<br>
|
||||
<a href="/stations">Troggle UTM and lat./lomg. and altitude report</a><br>
|
||||
<a href="/entrances">Troggle entrances</a><br>
|
||||
|
||||
<h3>These stations have the altitude set equal to SRTM</h3>
|
||||
{% for s in stations %}
|
||||
{% if '>0<' in s.srtm_diff.0 %}
|
||||
{{s}} {{s.srtm_diff.0|safe}} ref={{s.srtm_diff.1|floatformat:0}} <br />
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
<!--
|
||||
This script is added for ease of use.
|
||||
You can safely delete it.
|
||||
|
Loading…
Reference in New Issue
Block a user