mirror of
https://expo.survex.com/repositories/troggle/.git
synced 2024-11-22 07:11:52 +00:00
trying to fin dup entrance bug
This commit is contained in:
parent
de298748e3
commit
1cbbdad1b3
@ -52,29 +52,27 @@ class MapLocations(object):
|
|||||||
p = []
|
p = []
|
||||||
|
|
||||||
def points(self):
|
def points(self):
|
||||||
prior = len(self.p)
|
|
||||||
for ent in Entrance.objects.all():
|
for ent in Entrance.objects.all():
|
||||||
for st, ent_type in {ent.other_station: "other", ent.tag_station: "tag"}.items():
|
for st, ent_type in {ent.other_station: "other", ent.tag_station: "tag"}.items():
|
||||||
if st != "":
|
if st != "":
|
||||||
self.p.append((st, str(ent), ent.needs_surface_work(), ent))
|
self.p.append((st, str(ent), ent.needs_surface_work(), ent))
|
||||||
store_data_issues()
|
store_data_issues()
|
||||||
found = len(self.p) - prior
|
message = f" - {len(self.p)} Survey stations found on Entrance objects - not yet validated against survex .pos file."
|
||||||
message = f" - {found} Entrance tags found - not yet validated against survex .pos file."
|
|
||||||
print(message)
|
print(message)
|
||||||
return self.p
|
return self.p
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return f"{len(self.p)} map locations"
|
return f"{len(self.p)} ent locations"
|
||||||
|
|
||||||
|
|
||||||
def validate_entrance_stations(ent=None):
|
def validate_entrance_stations(ent=None):
|
||||||
"""Now that we have the located positions, we can check if the Entrances had correct tags
|
"""Now that we have the located positions, we can check if the Entrances had correct stations
|
||||||
"""
|
"""
|
||||||
bads = 0
|
bads = 0
|
||||||
good = 0
|
good = 0
|
||||||
url="/caves" # fallback
|
url="/caves" # fallback
|
||||||
|
|
||||||
def tag_lower_case(station):
|
def station_lower_case(station):
|
||||||
nonlocal url
|
nonlocal url
|
||||||
so = SurvexStation.objects.filter(name=station.lower())
|
so = SurvexStation.objects.filter(name=station.lower())
|
||||||
if so.count() == 1:
|
if so.count() == 1:
|
||||||
@ -129,7 +127,7 @@ def validate_entrance_stations(ent=None):
|
|||||||
stash_data_issue(parser="positions", message=message, url=url)
|
stash_data_issue(parser="positions", message=message, url=url)
|
||||||
print(message)
|
print(message)
|
||||||
bads +=1
|
bads +=1
|
||||||
tag_lower_case(st)
|
station_lower_case(st)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
|
||||||
@ -259,13 +257,19 @@ def LoadPositions():
|
|||||||
runcavern3d()
|
runcavern3d()
|
||||||
|
|
||||||
mappoints = {}
|
mappoints = {}
|
||||||
for pt in MapLocations().points():
|
found_points = {}
|
||||||
|
pts = MapLocations().points()
|
||||||
|
i=0
|
||||||
|
for pt in pts:
|
||||||
svxid, number, point_type, ent = pt
|
svxid, number, point_type, ent = pt
|
||||||
|
i += 1
|
||||||
#((st, str(ent), ent.needs_surface_work(), ent))
|
#((st, str(ent), ent.needs_surface_work(), ent))
|
||||||
|
if svxid in mappoints:
|
||||||
mappoints[svxid] = ent
|
print(f" = seen this svxid {svxid} for {ent} already on {mappoints[svxid]} item {i}")
|
||||||
|
else:
|
||||||
|
mappoints[svxid] = ent
|
||||||
if svxid =="1":
|
if svxid =="1":
|
||||||
print(f"BOGUS {pt}") # this is now checked for when importing the entrance tags in parsers/caves.py
|
print(f"BOGUS {pt}") # this is now checked for when importing the entrance stations in parsers/caves.py
|
||||||
|
|
||||||
if not Path(pospath).is_file():
|
if not Path(pospath).is_file():
|
||||||
message = f" ! Failed to find {pospath} so aborting generation of entrance locations. "
|
message = f" ! Failed to find {pospath} so aborting generation of entrance locations. "
|
||||||
@ -296,6 +300,11 @@ def LoadPositions():
|
|||||||
for sid in mappoints:
|
for sid in mappoints:
|
||||||
if sbid.endswith(sid) or sbid.endswith(sid.lower()):
|
if sbid.endswith(sid) or sbid.endswith(sid.lower()):
|
||||||
blockpath = "." + sbid[: -len(sid)].strip(".") # only the most recent one that is mappoints
|
blockpath = "." + sbid[: -len(sid)].strip(".") # only the most recent one that is mappoints
|
||||||
|
if sid in found_points:
|
||||||
|
found_points[sid] += 1
|
||||||
|
else:
|
||||||
|
found_points[sid] = 1
|
||||||
|
|
||||||
try:
|
try:
|
||||||
ss = SurvexStation(name=sbid)
|
ss = SurvexStation(name=sbid)
|
||||||
ss.x = float(x)
|
ss.x = float(x)
|
||||||
@ -312,7 +321,15 @@ def LoadPositions():
|
|||||||
raise
|
raise
|
||||||
validate_entrance_stations() # do not need to use db here really
|
validate_entrance_stations() # do not need to use db here really
|
||||||
positions_filename = Path(pospath).name
|
positions_filename = Path(pospath).name
|
||||||
print(f" - {found-12} SurvexStation entrance tags indentified in {lineno:,} lines in {positions_filename}.")
|
print(f" - {found} distinct SurvexStation entrance stations identified in {lineno:,} lines in {positions_filename}.")
|
||||||
if dups > 0:
|
if dups > 0:
|
||||||
print(f" - {dups} Duplicated SurvexStation entrances found")
|
print(f" - {dups} Duplicated SurvexStation entrances found")
|
||||||
|
|
||||||
|
# for p in mappoints:
|
||||||
|
# if p not in found_points:
|
||||||
|
# print(f"Valid point {p} NOT found in {positions_filename}")
|
||||||
|
# print(f" - {len(mappoints)} mappoints, {len(found_points)} found_points")
|
||||||
|
# for sid in found_points:
|
||||||
|
# if found_points[sid] > 1:
|
||||||
|
# print(f" - {sid} - {found_points[sid]}")
|
||||||
store_data_issues()
|
store_data_issues()
|
||||||
|
Loading…
Reference in New Issue
Block a user