2
0
mirror of https://expo.survex.com/repositories/troggle/.git synced 2025-04-13 06:11:45 +01:00

improves stations srtm report

This commit is contained in:
Philip Sargent 2023-11-02 01:05:36 +02:00
parent 742ccb5f0b
commit cc4a7f04da
3 changed files with 201 additions and 178 deletions

@ -75,16 +75,25 @@ class SurvexStation(models.Model):
return utmToLatLng(33, self.x, self.y, northernHemisphere=True)[1] return utmToLatLng(33, self.x, self.y, northernHemisphere=True)[1]
def srtm_alt(self): def srtm_alt(self):
return height_from_utm(self.x, self.y) # height, distance from reference point """Caches the srtm data so that searches are not done twice on the same page"""
if not hasattr(self,"srtm"):
self.srtm = height_from_utm(self.x, self.y) # height, distance from reference point
return self.srtm # (nearest point, nearest distance)
def srtm_diff(self): def srtm_diff(self):
alt, ref = height_from_utm(self.x, self.y) # height, distance from reference point alt, ref = self.srtm_alt()
diff = alt - self.z diff = alt - self.z
if diff >= 0: if diff >= 0:
diff_str = f"<span style='color:blue'>+{diff:.0f}</span>" colour = "blue"
else: else:
diff_str = f"<span style='color:red'>{diff:.0f}</span>" colour = "red"
if abs(diff) > 60:
weight = "bold"
else:
weight = "normal"
diff_str = f"<span style='color:{colour}; font-weight:{weight}'>{diff:.0f}</span>"
return diff_str, ref return diff_str, ref

@ -24,7 +24,6 @@ It is a Global Object, see https://python-patterns.guide/python/module-globals/
troggle.utils.TROG troggle.utils.TROG
chaosmonkey(n) - used by survex import to regenerate some .3d files chaosmonkey(n) - used by survex import to regenerate some .3d files
save_carefully() - core function that saves troggle objects in the database
various git add/commit functions that need refactoring together various git add/commit functions that need refactoring together
@ -279,60 +278,60 @@ def writetrogglefile(filepath, filecontent):
# not catching and re-raising any exceptions yet, inc. the stderr etc.,. We should do that. # not catching and re-raising any exceptions yet, inc. the stderr etc.,. We should do that.
def save_carefully(objectType, coUniqueAttribs={}, otherAttribs={}): # def save_carefully(objectType, coUniqueAttribs={}, otherAttribs={}):
"""Looks up instance using coUniqueAttribs and carries out the following: # """Looks up instance using coUniqueAttribs and carries out the following:
-if instance does not exist in DB: add instance to DB, return (new instance, True) # -if instance does not exist in DB: add instance to DB, return (new instance, True)
-if instance exists in DB and was modified using Troggle: do nothing, return (existing instance, False) # -if instance exists in DB and was modified using Troggle: do nothing, return (existing instance, False)
-if instance exists in DB and was not modified using Troggle: overwrite instance, return (instance, False) # -if instance exists in DB and was not modified using Troggle: overwrite instance, return (instance, False)
The checking is accomplished using Django's get_or_create and the new_since_parsing boolean field # The checking is accomplished using Django's get_or_create and the new_since_parsing boolean field
defined in core.models.TroggleModel. # defined in core.models.TroggleModel.
We are not using new_since_parsing - it is a fossil from Aaron Curtis's design in 2006. So it is always false. # We are not using new_since_parsing - it is a fossil from Aaron Curtis's design in 2006. So it is always false.
NOTE: this takes twice as long as simply creating a new object with the given values. # NOTE: this takes twice as long as simply creating a new object with the given values.
As of Jan.2023 this function is not used anywhere in troggle. # As of Jan.2023 this function is not used anywhere in troggle.
""" # """
try: # try:
instance, created = objectType.objects.get_or_create(defaults=otherAttribs, **coUniqueAttribs) # instance, created = objectType.objects.get_or_create(defaults=otherAttribs, **coUniqueAttribs)
except: # except:
print(" !! - FAIL in SAVE CAREFULLY ===================", objectType) # print(" !! - FAIL in SAVE CAREFULLY ===================", objectType)
print(" !! - -- objects.get_or_create()") # print(" !! - -- objects.get_or_create()")
print(f" !! - coUniqueAttribs:{coUniqueAttribs}\n !! - otherAttribs:{otherAttribs}") # print(f" !! - coUniqueAttribs:{coUniqueAttribs}\n !! - otherAttribs:{otherAttribs}")
raise # raise
if not created and not instance.new_since_parsing: # if not created and not instance.new_since_parsing:
for k, v in list( # for k, v in list(
otherAttribs.items() # otherAttribs.items()
): # overwrite the existing attributes from the logbook text (except date and title) # ): # overwrite the existing attributes from the logbook text (except date and title)
setattr(instance, k, v) # setattr(instance, k, v)
try: # try:
instance.save() # instance.save()
except: # except:
print(" !! - SAVE CAREFULLY ===================", objectType) # print(" !! - SAVE CAREFULLY ===================", objectType)
print(" !! - -- instance.save()") # print(" !! - -- instance.save()")
print(f" !! - coUniqueAttribs:{coUniqueAttribs}\n !! - otherAttribs:{otherAttribs}") # print(f" !! - coUniqueAttribs:{coUniqueAttribs}\n !! - otherAttribs:{otherAttribs}")
raise # raise
try: # try:
str(instance) # str(instance)
except: # except:
pass # pass
if created: # if created:
logging.info(str(instance) + " was just added to the database for the first time. \n") # logging.info(str(instance) + " was just added to the database for the first time. \n")
if not created and instance.new_since_parsing: # if not created and instance.new_since_parsing:
logging.info( # logging.info(
str(instance) + " has been modified using Troggle since parsing, so the current script left it as is. \n" # str(instance) + " has been modified using Troggle since parsing, so the current script left it as is. \n"
) # )
if not created and not instance.new_since_parsing: # if not created and not instance.new_since_parsing:
logging.info( # logging.info(
" instance:<" # " instance:<"
+ str(instance) # + str(instance)
+ "> existed in the database unchanged since last parse. It have been overwritten." # + "> existed in the database unchanged since last parse. It have been overwritten."
) # )
return (instance, created) # return (instance, created)
"""The following is a Bard converted version of Radosts's MIT copyrighted Javascript on 2023-10-27 """The following is a Bard converted version of Radosts's MIT copyrighted Javascript on 2023-10-27
with hand-editing. with hand-editing.
@ -352,13 +351,27 @@ def height_from_utm(easting, northing):
def find_nearest_point(points, target_point): def find_nearest_point(points, target_point):
"""Returns the nearest point to a target point from a list of points.""" """Returns the nearest point to a target point from a list of points.
In our dataset, the survey stations are all within 30m of an srtm reference point.
So we can safely ignore points more than 100m away in either x or y directions.
TO DO: store this list twice, once sorted by x and once sorted by y,
do a bounding box search for a set of nearby points before doing the exhaustive pythagorean distance search."""
nearest_distance_squared = float("inf") nearest_distance_squared = float("inf")
nearest_point = None nearest_point = None
x_target, y_target = target_point x_target, y_target = target_point
for point in points: for point in points:
x, y, z = point x, y, z = point
if z < 0:
distance_squared = 1000000.0 # ie ignore it
else:
if x - x_target > 100:
distance_squared = 10000
elif y - y_target > 100:
distance_squared = 10000
else:
distance_squared = math.pow(x - x_target, 2) + math.pow(y - y_target, 2) distance_squared = math.pow(x - x_target, 2) + math.pow(y - y_target, 2)
if distance_squared < nearest_distance_squared: if distance_squared < nearest_distance_squared:
@ -397,13 +410,13 @@ rawheights = [[406264.72, 5278037.57, 873.53],
[407613.99, 5278008.61, 988.80], [407613.99, 5278008.61, 988.80],
[407663.96, 5278007.54, 997.86], [407663.96, 5278007.54, 997.86],
[407713.93, 5278006.46, 1006.82], [407713.93, 5278006.46, 1006.82],
[407763.64, 5278005.12, -32721.21], # [407763.64, 5278005.12, -32721.21],
[407813.62, 5278004.05, -32721.21], # [407813.62, 5278004.05, -32721.21],
[407863.59, 5278002.98, -32721.21], # [407863.59, 5278002.98, -32721.21],
[407913.56, 5278001.90, -32721.21], # [407913.56, 5278001.90, -32721.21],
[407963.53, 5278000.83, -32721.21], # [407963.53, 5278000.83, -32721.21],
[408013.51, 5277999.76, -32721.21], # [408013.51, 5277999.76, -32721.21],
[408063.48, 5277998.69, -32721.21], # [408063.48, 5277998.69, -32721.21],
[408113.72, 5277997.88, 985.80], [408113.72, 5277997.88, 985.80],
[408163.69, 5277996.81, 1033.79], [408163.69, 5277996.81, 1033.79],
[408213.66, 5277995.74, 1055.53], [408213.66, 5277995.74, 1055.53],
@ -546,14 +559,14 @@ rawheights = [[406264.72, 5278037.57, 873.53],
[407565.09, 5278059.66, 1013.11], [407565.09, 5278059.66, 1013.11],
[407615.06, 5278058.58, 1013.02], [407615.06, 5278058.58, 1013.02],
[407665.03, 5278057.51, 1024.36], [407665.03, 5278057.51, 1024.36],
[407714.74, 5278056.17, -32721.21], # [407714.74, 5278056.17, -32721.21],
[407764.72, 5278055.09, -32721.21], # [407764.72, 5278055.09, -32721.21],
[407814.69, 5278054.02, -32721.21], # [407814.69, 5278054.02, -32721.21],
[407864.66, 5278052.95, -32721.21], # [407864.66, 5278052.95, -32721.21],
[407914.63, 5278051.88, -32721.21], # [407914.63, 5278051.88, -32721.21],
[407964.61, 5278050.80, -32721.21], # [407964.61, 5278050.80, -32721.21],
[408014.58, 5278049.73, -32721.21], # [408014.58, 5278049.73, -32721.21],
[408064.55, 5278048.66, -32721.21], # [408064.55, 5278048.66, -32721.21],
[408114.79, 5278047.86, 1081.46], [408114.79, 5278047.86, 1081.46],
[408164.76, 5278046.78, 1076.48], [408164.76, 5278046.78, 1076.48],
[408214.74, 5278045.71, 1088.82], [408214.74, 5278045.71, 1088.82],
@ -696,14 +709,14 @@ rawheights = [[406264.72, 5278037.57, 873.53],
[407566.16, 5278109.63, 1040.23], [407566.16, 5278109.63, 1040.23],
[407616.13, 5278108.56, 1049.02], [407616.13, 5278108.56, 1049.02],
[407666.11, 5278107.48, 1072.19], [407666.11, 5278107.48, 1072.19],
[407715.82, 5278106.14, -32721.21], # [407715.82, 5278106.14, -32721.21],
[407765.79, 5278105.07, -32721.21], # [407765.79, 5278105.07, -32721.21],
[407815.76, 5278103.99, -32721.21], # [407815.76, 5278103.99, -32721.21],
[407865.73, 5278102.92, -32721.21], # [407865.73, 5278102.92, -32721.21],
[407915.71, 5278101.85, -32721.21], # [407915.71, 5278101.85, -32721.21],
[407965.68, 5278100.78, -32721.21], # [407965.68, 5278100.78, -32721.21],
[408015.65, 5278099.70, -32721.21], # [408015.65, 5278099.70, -32721.21],
[408065.62, 5278098.63, -32721.21], # [408065.62, 5278098.63, -32721.21],
[408115.86, 5278097.83, 1128.52], [408115.86, 5278097.83, 1128.52],
[408165.84, 5278096.76, 1116.52], [408165.84, 5278096.76, 1116.52],
[408215.81, 5278095.68, 1118.92], [408215.81, 5278095.68, 1118.92],
@ -846,12 +859,12 @@ rawheights = [[406264.72, 5278037.57, 873.53],
[407567.24, 5278159.60, 1120.59], [407567.24, 5278159.60, 1120.59],
[407617.21, 5278158.53, 1131.95], [407617.21, 5278158.53, 1131.95],
[407667.18, 5278157.46, 1179.59], [407667.18, 5278157.46, 1179.59],
[407716.89, 5278156.11, -32721.21], # [407716.89, 5278156.11, -32721.21],
[407766.86, 5278155.04, -32721.21], # [407766.86, 5278155.04, -32721.21],
[407816.83, 5278153.97, -32721.21], # [407816.83, 5278153.97, -32721.21],
[407866.81, 5278152.89, -32721.21], # [407866.81, 5278152.89, -32721.21],
[407916.78, 5278151.82, -32721.21], # [407916.78, 5278151.82, -32721.21],
[407966.75, 5278150.75, -32721.21], # [407966.75, 5278150.75, -32721.21],
[408016.99, 5278149.95, 1195.85], [408016.99, 5278149.95, 1195.85],
[408066.96, 5278148.88, 1176.74], [408066.96, 5278148.88, 1176.74],
[408116.94, 5278147.80, 1161.64], [408116.94, 5278147.80, 1161.64],
@ -996,12 +1009,12 @@ rawheights = [[406264.72, 5278037.57, 873.53],
[407568.31, 5278209.58, 1204.19], [407568.31, 5278209.58, 1204.19],
[407618.28, 5278208.50, 1215.72], [407618.28, 5278208.50, 1215.72],
[407668.25, 5278207.43, 1228.74], [407668.25, 5278207.43, 1228.74],
[407717.96, 5278206.09, -32721.21], # [407717.96, 5278206.09, -32721.21],
[407767.93, 5278205.01, -32721.21], # [407767.93, 5278205.01, -32721.21],
[407817.91, 5278203.94, -32721.21], # [407817.91, 5278203.94, -32721.21],
[407867.88, 5278202.87, -32721.21], # [407867.88, 5278202.87, -32721.21],
[407917.85, 5278201.79, -32721.21], # [407917.85, 5278201.79, -32721.21],
[407967.82, 5278200.72, -32721.21], # [407967.82, 5278200.72, -32721.21],
[408018.06, 5278199.92, 1232.65], [408018.06, 5278199.92, 1232.65],
[408068.04, 5278198.85, 1206.84], [408068.04, 5278198.85, 1206.84],
[408118.01, 5278197.78, 1187.56], [408118.01, 5278197.78, 1187.56],
@ -1146,11 +1159,11 @@ rawheights = [[406264.72, 5278037.57, 873.53],
[407569.38, 5278259.55, 1238.53], [407569.38, 5278259.55, 1238.53],
[407619.35, 5278258.48, 1249.98], [407619.35, 5278258.48, 1249.98],
[407669.33, 5278257.40, 1259.04], [407669.33, 5278257.40, 1259.04],
[407719.03, 5278256.06, -32721.21], # [407719.03, 5278256.06, -32721.21],
[407769.01, 5278254.99, -32721.21], # [407769.01, 5278254.99, -32721.21],
[407818.98, 5278253.91, -32721.21], # [407818.98, 5278253.91, -32721.21],
[407868.95, 5278252.84, -32721.21], # [407868.95, 5278252.84, -32721.21],
[407918.92, 5278251.77, -32721.21], # [407918.92, 5278251.77, -32721.21],
[407969.16, 5278250.97, 1278.95], [407969.16, 5278250.97, 1278.95],
[408019.14, 5278249.89, 1254.62], [408019.14, 5278249.89, 1254.62],
[408069.11, 5278248.82, 1233.50], [408069.11, 5278248.82, 1233.50],
@ -1296,11 +1309,11 @@ rawheights = [[406264.72, 5278037.57, 873.53],
[407570.45, 5278309.52, 1262.04], [407570.45, 5278309.52, 1262.04],
[407620.43, 5278308.45, 1273.13], [407620.43, 5278308.45, 1273.13],
[407670.40, 5278307.38, 1284.45], [407670.40, 5278307.38, 1284.45],
[407720.11, 5278306.03, -32721.21], # [407720.11, 5278306.03, -32721.21],
[407770.08, 5278304.96, -32721.21], # [407770.08, 5278304.96, -32721.21],
[407820.05, 5278303.89, -32721.21], # [407820.05, 5278303.89, -32721.21],
[407870.02, 5278302.81, -32721.21], # [407870.02, 5278302.81, -32721.21],
[407920.00, 5278301.74, -32721.21], # [407920.00, 5278301.74, -32721.21],
[407970.24, 5278300.94, 1288.09], [407970.24, 5278300.94, 1288.09],
[408020.21, 5278299.87, 1273.43], [408020.21, 5278299.87, 1273.43],
[408070.18, 5278298.79, 1257.89], [408070.18, 5278298.79, 1257.89],
@ -3401,7 +3414,7 @@ rawheights = [[406264.72, 5278037.57, 873.53],
[407835.34, 5279003.78, 1585.78], [407835.34, 5279003.78, 1585.78],
[407885.31, 5279002.71, 1571.14], [407885.31, 5279002.71, 1571.14],
[407935.29, 5279001.63, 1564.67], [407935.29, 5279001.63, 1564.67],
[407984.99, 5279000.29, -32721.22], # [407984.99, 5279000.29, -32721.22],
[408035.23, 5278999.49, 1551.80], [408035.23, 5278999.49, 1551.80],
[408085.20, 5278998.41, 1535.38], [408085.20, 5278998.41, 1535.38],
[408135.18, 5278997.34, 1538.16], [408135.18, 5278997.34, 1538.16],
@ -3551,7 +3564,7 @@ rawheights = [[406264.72, 5278037.57, 873.53],
[407836.41, 5279053.75, 1630.52], [407836.41, 5279053.75, 1630.52],
[407886.39, 5279052.68, 1627.79], [407886.39, 5279052.68, 1627.79],
[407936.36, 5279051.61, 1600.36], [407936.36, 5279051.61, 1600.36],
[407986.06, 5279050.26, -32721.22], # [407986.06, 5279050.26, -32721.22],
[408036.30, 5279049.46, 1583.25], [408036.30, 5279049.46, 1583.25],
[408086.28, 5279048.39, 1574.44], [408086.28, 5279048.39, 1574.44],
[408136.25, 5279047.32, 1575.25], [408136.25, 5279047.32, 1575.25],
@ -3701,7 +3714,7 @@ rawheights = [[406264.72, 5278037.57, 873.53],
[407837.49, 5279103.73, 1674.12], [407837.49, 5279103.73, 1674.12],
[407887.46, 5279102.65, 1673.21], [407887.46, 5279102.65, 1673.21],
[407937.43, 5279101.58, 1637.87], [407937.43, 5279101.58, 1637.87],
[407987.13, 5279100.23, -32721.22], # [407987.13, 5279100.23, -32721.22],
[408037.38, 5279099.43, 1620.63], [408037.38, 5279099.43, 1620.63],
[408087.35, 5279098.36, 1664.90], [408087.35, 5279098.36, 1664.90],
[408137.32, 5279097.29, 1642.14], [408137.32, 5279097.29, 1642.14],
@ -3740,9 +3753,9 @@ rawheights = [[406264.72, 5278037.57, 873.53],
[409786.41, 5279061.88, 1089.81], [409786.41, 5279061.88, 1089.81],
[409836.39, 5279060.81, 1039.36], [409836.39, 5279060.81, 1039.36],
[409886.36, 5279059.73, 974.61], [409886.36, 5279059.73, 974.61],
[409936.07, 5279058.39, -32721.23], # [409936.07, 5279058.39, -32721.23],
[409986.04, 5279057.32, -32721.23], # [409986.04, 5279057.32, -32721.23],
[410036.01, 5279056.24, -32721.23], # [410036.01, 5279056.24, -32721.23],
[410086.25, 5279055.44, 872.81], [410086.25, 5279055.44, 872.81],
[410136.22, 5279054.37, 875.58], [410136.22, 5279054.37, 875.58],
[410186.19, 5279053.30, 879.97], [410186.19, 5279053.30, 879.97],
@ -3851,7 +3864,7 @@ rawheights = [[406264.72, 5278037.57, 873.53],
[407838.56, 5279153.70, 1735.22], [407838.56, 5279153.70, 1735.22],
[407888.53, 5279152.63, 1719.94], [407888.53, 5279152.63, 1719.94],
[407938.51, 5279151.55, 1704.65], [407938.51, 5279151.55, 1704.65],
[407988.21, 5279150.20, -32721.22], # [407988.21, 5279150.20, -32721.22],
[408038.45, 5279149.41, 1659.68], [408038.45, 5279149.41, 1659.68],
[408088.42, 5279148.33, 1718.80], [408088.42, 5279148.33, 1718.80],
[408138.40, 5279147.26, 1690.14], [408138.40, 5279147.26, 1690.14],
@ -3890,9 +3903,9 @@ rawheights = [[406264.72, 5278037.57, 873.53],
[409787.49, 5279111.85, 1131.36], [409787.49, 5279111.85, 1131.36],
[409837.46, 5279110.78, 1091.02], [409837.46, 5279110.78, 1091.02],
[409887.43, 5279109.71, 1044.32], [409887.43, 5279109.71, 1044.32],
[409937.14, 5279108.36, -32721.23], # [409937.14, 5279108.36, -32721.23],
[409987.11, 5279107.29, -32721.23], # [409987.11, 5279107.29, -32721.23],
[410037.08, 5279106.22, -32721.23], # [410037.08, 5279106.22, -32721.23],
[410087.32, 5279105.41, 883.61], [410087.32, 5279105.41, 883.61],
[410137.29, 5279104.34, 892.85], [410137.29, 5279104.34, 892.85],
[410187.27, 5279103.27, 898.81], [410187.27, 5279103.27, 898.81],
@ -4001,7 +4014,7 @@ rawheights = [[406264.72, 5278037.57, 873.53],
[407839.63, 5279203.67, 1775.12], [407839.63, 5279203.67, 1775.12],
[407889.61, 5279202.60, 1753.82], [407889.61, 5279202.60, 1753.82],
[407939.58, 5279201.53, 1738.66], [407939.58, 5279201.53, 1738.66],
[407989.28, 5279200.18, -32721.22], # [407989.28, 5279200.18, -32721.22],
[408039.52, 5279199.38, 1702.16], [408039.52, 5279199.38, 1702.16],
[408089.50, 5279198.31, 1719.98], [408089.50, 5279198.31, 1719.98],
[408139.47, 5279197.23, 1709.71], [408139.47, 5279197.23, 1709.71],
@ -4040,11 +4053,11 @@ rawheights = [[406264.72, 5278037.57, 873.53],
[409788.56, 5279161.83, 1172.86], [409788.56, 5279161.83, 1172.86],
[409838.53, 5279160.75, 1143.36], [409838.53, 5279160.75, 1143.36],
[409888.51, 5279159.68, 1118.90], [409888.51, 5279159.68, 1118.90],
[409938.21, 5279158.33, -32721.23], # [409938.21, 5279158.33, -32721.23],
[409988.18, 5279157.26, -32721.23], # [409988.18, 5279157.26, -32721.23],
[410038.16, 5279156.19, -32721.23], # [410038.16, 5279156.19, -32721.23],
[410088.13, 5279155.12, -32721.23], # [410088.13, 5279155.12, -32721.23],
[410138.10, 5279154.04, -32721.23], # [410138.10, 5279154.04, -32721.23],
[410188.34, 5279153.24, 946.97], [410188.34, 5279153.24, 946.97],
[410238.31, 5279152.17, 903.92], [410238.31, 5279152.17, 903.92],
[410288.28, 5279151.09, 918.48], [410288.28, 5279151.09, 918.48],
@ -4052,9 +4065,9 @@ rawheights = [[406264.72, 5278037.57, 873.53],
[410388.23, 5279148.95, 907.40], [410388.23, 5279148.95, 907.40],
[410438.20, 5279147.88, 901.78], [410438.20, 5279147.88, 901.78],
[410488.17, 5279146.80, 891.89], [410488.17, 5279146.80, 891.89],
[410537.88, 5279145.46, -32721.24], # [410537.88, 5279145.46, -32721.24],
[410587.85, 5279144.39, -32721.24], # [410587.85, 5279144.39, -32721.24],
[410637.82, 5279143.31, -32721.24], # [410637.82, 5279143.31, -32721.24],
[410688.06, 5279142.51, 895.22], [410688.06, 5279142.51, 895.22],
[410738.04, 5279141.44, 901.91], [410738.04, 5279141.44, 901.91],
[410788.01, 5279140.37, 896.06], [410788.01, 5279140.37, 896.06],
@ -4188,13 +4201,13 @@ rawheights = [[406264.72, 5278037.57, 873.53],
[409689.69, 5279213.94, 1257.25], [409689.69, 5279213.94, 1257.25],
[409739.66, 5279212.87, 1221.70], [409739.66, 5279212.87, 1221.70],
[409789.63, 5279211.80, 1203.87], [409789.63, 5279211.80, 1203.87],
[409839.34, 5279210.45, -32721.23], # [409839.34, 5279210.45, -32721.23],
[409889.31, 5279209.38, -32721.23], # [409889.31, 5279209.38, -32721.23],
[409939.28, 5279208.31, -32721.23], # [409939.28, 5279208.31, -32721.23],
[409989.26, 5279207.23, -32721.23], # [409989.26, 5279207.23, -32721.23],
[410039.23, 5279206.16, -32721.23], # [410039.23, 5279206.16, -32721.23],
[410089.20, 5279205.09, -32721.23], # [410089.20, 5279205.09, -32721.23],
[410139.17, 5279204.02, -32721.24], # [410139.17, 5279204.02, -32721.24],
[410189.41, 5279203.21, 1025.28], [410189.41, 5279203.21, 1025.28],
[410239.38, 5279202.14, 939.10], [410239.38, 5279202.14, 939.10],
[410289.36, 5279201.07, 948.61], [410289.36, 5279201.07, 948.61],
@ -4202,9 +4215,9 @@ rawheights = [[406264.72, 5278037.57, 873.53],
[410389.30, 5279198.92, 926.96], [410389.30, 5279198.92, 926.96],
[410439.27, 5279197.85, 913.99], [410439.27, 5279197.85, 913.99],
[410489.25, 5279196.78, 904.64], [410489.25, 5279196.78, 904.64],
[410538.95, 5279195.43, -32721.24], # [410538.95, 5279195.43, -32721.24],
[410588.93, 5279194.36, -32721.24], # [410588.93, 5279194.36, -32721.24],
[410638.90, 5279193.29, -32721.24], # [410638.90, 5279193.29, -32721.24],
[410689.14, 5279192.48, 932.09], [410689.14, 5279192.48, 932.09],
[410739.11, 5279191.41, 932.24], [410739.11, 5279191.41, 932.24],
[410789.08, 5279190.34, 907.04], [410789.08, 5279190.34, 907.04],
@ -4338,23 +4351,23 @@ rawheights = [[406264.72, 5278037.57, 873.53],
[409690.76, 5279263.92, 1291.99], [409690.76, 5279263.92, 1291.99],
[409740.74, 5279262.84, 1242.29], [409740.74, 5279262.84, 1242.29],
[409790.71, 5279261.77, 1223.13], [409790.71, 5279261.77, 1223.13],
[409840.41, 5279260.43, -32721.23], # [409840.41, 5279260.43, -32721.23],
[409890.38, 5279259.35, -32721.23], # [409890.38, 5279259.35, -32721.23],
[409940.36, 5279258.28, -32721.23], # [409940.36, 5279258.28, -32721.23],
[409990.33, 5279257.21, -32721.23], # [409990.33, 5279257.21, -32721.23],
[410040.30, 5279256.13, -32721.23], # [410040.30, 5279256.13, -32721.23],
[410090.27, 5279255.06, -32721.24], # [410090.27, 5279255.06, -32721.24],
[410140.25, 5279253.99, -32721.24], # [410140.25, 5279253.99, -32721.24],
[410190.49, 5279253.19, 1207.21], [410190.49, 5279253.19, 1207.21],
[410240.46, 5279252.11, 1037.81], [410240.46, 5279252.11, 1037.81],
[410290.43, 5279251.04, 992.97], [410290.43, 5279251.04, 992.97],
[410340.40, 5279249.97, 973.32], [410340.40, 5279249.97, 973.32],
[410390.37, 5279248.89, 944.57], [410390.37, 5279248.89, 944.57],
[410440.35, 5279247.82, 921.81], [410440.35, 5279247.82, 921.81],
[410490.05, 5279246.48, -32721.24], # [410490.05, 5279246.48, -32721.24],
[410540.03, 5279245.40, -32721.24], # [410540.03, 5279245.40, -32721.24],
[410590.00, 5279244.33, -32721.24], # [410590.00, 5279244.33, -32721.24],
[410639.97, 5279243.26, -32721.24], # [410639.97, 5279243.26, -32721.24],
[410690.21, 5279242.46, 1017.96], [410690.21, 5279242.46, 1017.96],
[410740.18, 5279241.38, 999.64], [410740.18, 5279241.38, 999.64],
[410790.15, 5279240.31, 954.22], [410790.15, 5279240.31, 954.22],
@ -4487,24 +4500,24 @@ rawheights = [[406264.72, 5278037.57, 873.53],
[409641.86, 5279314.96, 1384.08], [409641.86, 5279314.96, 1384.08],
[409691.84, 5279313.89, 1325.11], [409691.84, 5279313.89, 1325.11],
[409741.81, 5279312.82, 1278.84], [409741.81, 5279312.82, 1278.84],
[409791.51, 5279311.47, -32721.23], # [409791.51, 5279311.47, -32721.23],
[409841.49, 5279310.40, -32721.23], # [409841.49, 5279310.40, -32721.23],
[409891.46, 5279309.32, -32721.23], # [409891.46, 5279309.32, -32721.23],
[409941.43, 5279308.25, -32721.23], # [409941.43, 5279308.25, -32721.23],
[409991.40, 5279307.18, -32721.23], # [409991.40, 5279307.18, -32721.23],
[410041.37, 5279306.11, -32721.24], # [410041.37, 5279306.11, -32721.24],
[410091.35, 5279305.03, -32721.24], # [410091.35, 5279305.03, -32721.24],
[410141.32, 5279303.96, -32721.24], # [410141.32, 5279303.96, -32721.24],
[410191.56, 5279303.16, 1240.99], [410191.56, 5279303.16, 1240.99],
[410241.53, 5279302.09, 1113.21], [410241.53, 5279302.09, 1113.21],
[410291.50, 5279301.01, 1045.44], [410291.50, 5279301.01, 1045.44],
[410341.48, 5279299.94, 1011.60], [410341.48, 5279299.94, 1011.60],
[410391.45, 5279298.87, 971.49], [410391.45, 5279298.87, 971.49],
[410441.42, 5279297.79, 927.43], [410441.42, 5279297.79, 927.43],
[410491.13, 5279296.45, -32721.24], # [410491.13, 5279296.45, -32721.24],
[410541.10, 5279295.38, -32721.24], # [410541.10, 5279295.38, -32721.24],
[410591.07, 5279294.30, -32721.24], # [410591.07, 5279294.30, -32721.24],
[410641.04, 5279293.23, -32721.24], # [410641.04, 5279293.23, -32721.24],
[410691.28, 5279292.43, 1048.70], [410691.28, 5279292.43, 1048.70],
[410741.25, 5279291.36, 1027.23], [410741.25, 5279291.36, 1027.23],
[410791.23, 5279290.28, 994.22], [410791.23, 5279290.28, 994.22],
@ -4637,24 +4650,24 @@ rawheights = [[406264.72, 5278037.57, 873.53],
[409642.94, 5279364.94, 1408.99], [409642.94, 5279364.94, 1408.99],
[409692.91, 5279363.86, 1357.26], [409692.91, 5279363.86, 1357.26],
[409742.88, 5279362.79, 1331.53], [409742.88, 5279362.79, 1331.53],
[409792.59, 5279361.44, -32721.23], # [409792.59, 5279361.44, -32721.23],
[409842.56, 5279360.37, -32721.23], # [409842.56, 5279360.37, -32721.23],
[409892.53, 5279359.30, -32721.23], # [409892.53, 5279359.30, -32721.23],
[409942.50, 5279358.22, -32721.23], # [409942.50, 5279358.22, -32721.23],
[409992.48, 5279357.15, -32721.24], # [409992.48, 5279357.15, -32721.24],
[410042.45, 5279356.08, -32721.24], # [410042.45, 5279356.08, -32721.24],
[410092.42, 5279355.01, -32721.24], # [410092.42, 5279355.01, -32721.24],
[410142.39, 5279353.93, -32721.24], # [410142.39, 5279353.93, -32721.24],
[410192.63, 5279353.13, 1228.75], [410192.63, 5279353.13, 1228.75],
[410242.60, 5279352.06, 1162.16], [410242.60, 5279352.06, 1162.16],
[410292.58, 5279350.99, 1107.76], [410292.58, 5279350.99, 1107.76],
[410342.55, 5279349.91, 1060.34], [410342.55, 5279349.91, 1060.34],
[410392.52, 5279348.84, 1006.63], [410392.52, 5279348.84, 1006.63],
[410442.49, 5279347.77, 968.38], [410442.49, 5279347.77, 968.38],
[410492.20, 5279346.42, -32721.24], # [410492.20, 5279346.42, -32721.24],
[410542.17, 5279345.35, -32721.24], # [410542.17, 5279345.35, -32721.24],
[410592.14, 5279344.28, -32721.24], # [410592.14, 5279344.28, -32721.24],
[410642.12, 5279343.20, -32721.24], # [410642.12, 5279343.20, -32721.24],
[410692.36, 5279342.40, 1065.13], [410692.36, 5279342.40, 1065.13],
[410742.33, 5279341.33, 1045.15], [410742.33, 5279341.33, 1045.15],
[410792.30, 5279340.26, 1021.80], [410792.30, 5279340.26, 1021.80],
@ -4787,10 +4800,10 @@ rawheights = [[406264.72, 5278037.57, 873.53],
[409644.01, 5279414.91, 1441.79], [409644.01, 5279414.91, 1441.79],
[409693.98, 5279413.84, 1408.60], [409693.98, 5279413.84, 1408.60],
[409743.96, 5279412.76, 1399.64], [409743.96, 5279412.76, 1399.64],
[409793.66, 5279411.42, -32721.23], # [409793.66, 5279411.42, -32721.23],
[409843.63, 5279410.34, -32721.23], # [409843.63, 5279410.34, -32721.23],
[409893.60, 5279409.27, -32721.23], # [409893.60, 5279409.27, -32721.23],
[409943.58, 5279408.20, -32721.24], # [409943.58, 5279408.20, -32721.24],
[409993.82, 5279407.40, 1330.74], [409993.82, 5279407.40, 1330.74],
[410043.79, 5279406.32, 1308.57], [410043.79, 5279406.32, 1308.57],
[410093.76, 5279405.25, 1286.75], [410093.76, 5279405.25, 1286.75],
@ -4801,8 +4814,8 @@ rawheights = [[406264.72, 5278037.57, 873.53],
[410343.62, 5279399.89, 1118.54], [410343.62, 5279399.89, 1118.54],
[410393.59, 5279398.81, 1069.38], [410393.59, 5279398.81, 1069.38],
[410443.57, 5279397.74, 1094.48], [410443.57, 5279397.74, 1094.48],
[410493.27, 5279396.39, -32721.24], # [410493.27, 5279396.39, -32721.24],
[410543.24, 5279395.32, -32721.24], # [410543.24, 5279395.32, -32721.24],
[410593.48, 5279394.52, 1103.69], [410593.48, 5279394.52, 1103.69],
[410643.46, 5279393.45, 1096.60], [410643.46, 5279393.45, 1096.60],
[410693.43, 5279392.37, 1083.45], [410693.43, 5279392.37, 1083.45],
@ -4937,10 +4950,10 @@ rawheights = [[406264.72, 5278037.57, 873.53],
[409645.08, 5279464.88, 1476.78], [409645.08, 5279464.88, 1476.78],
[409695.06, 5279463.81, 1466.18], [409695.06, 5279463.81, 1466.18],
[409745.03, 5279462.74, 1468.93], [409745.03, 5279462.74, 1468.93],
[409794.73, 5279461.39, -32721.23], # [409794.73, 5279461.39, -32721.23],
[409844.70, 5279460.31, -32721.23], # [409844.70, 5279460.31, -32721.23],
[409894.68, 5279459.24, -32721.24], # [409894.68, 5279459.24, -32721.24],
[409944.65, 5279458.17, -32721.24], # [409944.65, 5279458.17, -32721.24],
[409994.89, 5279457.37, 1372.67], [409994.89, 5279457.37, 1372.67],
[410044.86, 5279456.30, 1350.46], [410044.86, 5279456.30, 1350.46],
[410094.83, 5279455.22, 1325.97], [410094.83, 5279455.22, 1325.97],
@ -4951,8 +4964,8 @@ rawheights = [[406264.72, 5278037.57, 873.53],
[410344.70, 5279449.86, 1182.03], [410344.70, 5279449.86, 1182.03],
[410394.67, 5279448.79, 1152.05], [410394.67, 5279448.79, 1152.05],
[410444.64, 5279447.71, 1156.24], [410444.64, 5279447.71, 1156.24],
[410494.34, 5279446.37, -32721.24], # [410494.34, 5279446.37, -32721.24],
[410544.32, 5279445.29, -32721.24], # [410544.32, 5279445.29, -32721.24],
[410594.56, 5279444.49, 1129.75], [410594.56, 5279444.49, 1129.75],
[410644.53, 5279443.42, 1121.23], [410644.53, 5279443.42, 1121.23],
[410694.50, 5279442.35, 1103.86], [410694.50, 5279442.35, 1103.86],

@ -7,7 +7,7 @@
<p>This next table is of all the survex stations in troggle: i.e. only those survey stations which have been identified with an Entrance by manually editing the Entrance data. <p>This next table is of all the survex stations in troggle: i.e. only those survey stations which have been identified with an Entrance by manually editing the Entrance data.
<table cellpadding="6" cellspacing="8"> <table cellpadding="6" cellspacing="8">
<tr><th>Survex Station</th><th>x</th><th>y</th><th>lat.</th><th>long.</th><th>alt</th><th>SRTM alt</th><th>Used on ent</th></tr> <tr><th>Survex Station</th><th>x</th><th>y</th><th>lat.</th><th>long.</th><th>alt</th><th>SRTM alt</th><th>SRTM ref</th><th>Used on ent</th></tr>
{% for s in stations %} {% for s in stations %}
<tr> <tr>
<td style="text-align:left; width:240px"> {{s.name|safe}} </td> <td style="text-align:left; width:240px"> {{s.name|safe}} </td>
@ -17,7 +17,8 @@
<td style="text-align:right; width:90px"> <em>{{s.long|floatformat:6}} </em></td> <td style="text-align:right; width:90px"> <em>{{s.long|floatformat:6}} </em></td>
<td style="text-align:right; width:90px"> {{s.z|floatformat:0}} </td> <td style="text-align:right; width:90px"> {{s.z|floatformat:0}} </td>
<td style="text-align:right; width:90px"> {{s.srtm_diff.0|safe}} </td> <td style="text-align:right; width:90px"> {{s.srtm_diff.0|safe}} </td>
<td style="text-align:right;" > {{s.entrance|safe}} </td> <td style="text-align:right; width:90px"> {{s.srtm_diff.1|floatformat:0}}m <small>away</small></td>
<td style="text-align:right;" > <a href="/cave/{{s.entrance.firstcave|safe}}">{{s.entrance|safe}}</a> </td>
</tr> </tr>
{% empty %} {% empty %}
<td colspan="3"> NO STATION DATA - This is due to survex (cavern) failing on the entire dataset. <td colspan="3"> NO STATION DATA - This is due to survex (cavern) failing on the entire dataset.
@ -31,7 +32,7 @@
{% endfor %} {% endfor %}
</table> </table>
<p>The SRTM altitude is that measured at a nearby reference point. The horizontal distance between the survey station and the SRTM reference point is shown in the "SRTM ref" column. It is always less than 35m for our dataset. Differences between teh recorded altitude and the SRTM altitude are in <b>bold</b> if the discrepancy is more than 60m.
<p> <p>
Coordinate systems in Austria are explained in:<br> Coordinate systems in Austria are explained in:<br>