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