summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorPhilip Sargent <philip.sargent@gmail.com>2023-09-16 22:46:17 +0300
committerPhilip Sargent <philip.sargent@gmail.com>2023-09-16 22:46:17 +0300
commit017f916ef922bd11b1e745ccc4fa4bccd843f1d4 (patch)
tree36ca99a86ffc550f4b4203a6f16b6f870c510707 /core
parenta85f859f886ac2a22a94a604f2ce46395c148476 (diff)
downloadtroggle-017f916ef922bd11b1e745ccc4fa4bccd843f1d4.tar.gz
troggle-017f916ef922bd11b1e745ccc4fa4bccd843f1d4.tar.bz2
troggle-017f916ef922bd11b1e745ccc4fa4bccd843f1d4.zip
Entrance locations showing lat long screwups
Diffstat (limited to 'core')
-rw-r--r--core/models/caves.py29
-rw-r--r--core/models/survex.py5
-rw-r--r--core/views/statistics.py23
3 files changed, 50 insertions, 7 deletions
diff --git a/core/models/caves.py b/core/models/caves.py
index ea6fe9a..949c089 100644
--- a/core/models/caves.py
+++ b/core/models/caves.py
@@ -10,7 +10,7 @@ from django.template import loader
import settings
from troggle.core.models.logbooks import QM
-from troggle.core.models.survex import SurvexStation
+from troggle.core.models.survex import SurvexStation, utmToLatLng
from troggle.core.models.troggle import DataIssue, TroggleModel
from troggle.core.utils import TROG, writetrogglefile
@@ -123,7 +123,7 @@ class Cave(TroggleModel):
pass
else:
self.official_name.lower()
- return Path(settings.URL_ROOT) / self.url # not good Django style.. NEEDS actual URL
+ return Path(settings.URL_ROOT) / self.url # not good Django style? NEEDS actual URL
def url_parent(self):
if self.url:
@@ -232,7 +232,7 @@ class Entrance(TroggleModel):
alt = models.TextField(blank=True, null=True)
approach = models.TextField(blank=True, null=True)
bearings = models.TextField(blank=True, null=True)
- easting = models.TextField(blank=True, null=True)
+ easting = models.TextField(blank=True, null=True) # apparently? manually entered not calculated
entrance_description = models.TextField(blank=True, null=True)
exact_station = models.TextField(blank=True, null=True)
explorers = models.TextField(blank=True, null=True)
@@ -240,14 +240,14 @@ class Entrance(TroggleModel):
findability = models.CharField(max_length=1, choices=FINDABLE_CHOICES, blank=True, null=True)
findability_description = models.TextField(blank=True, null=True)
lastvisit = models.TextField(blank=True, null=True)
- lat_wgs84 = models.TextField(blank=True, null=True)
+ lat_wgs84 = models.TextField(blank=True, null=True) # manually entered not calculated
location_description = models.TextField(blank=True, null=True)
- long_wgs84 = models.TextField(blank=True, null=True)
+ long_wgs84 = models.TextField(blank=True, null=True) # manually entered not calculated
map_description = models.TextField(blank=True, null=True)
marking = models.CharField(max_length=2, choices=MARKING_CHOICES)
marking_comment = models.TextField(blank=True, null=True)
name = models.CharField(max_length=100, blank=True, null=True)
- northing = models.TextField(blank=True, null=True)
+ northing = models.TextField(blank=True, null=True) # apparently? manually entered not calculated
other_description = models.TextField(blank=True, null=True)
other_station = models.TextField(blank=True, null=True)
photo = models.TextField(blank=True, null=True)
@@ -410,6 +410,12 @@ class Entrance(TroggleModel):
return ""
def latlong(self):
+ """Gets lat long assuming that it has to get it from the associated stations, but in fact the Entrance itself
+ has easting/northing and lat/long fields which perhaps we should try first...
+ """
+ if self.easting and self.northing:
+ return utmToLatLng(33, float(self.easting), float(self.northing), northernHemisphere=True)
+
station = None
if self.other_station:
try:
@@ -429,6 +435,17 @@ class Entrance(TroggleModel):
if station:
return station.latlong()
+ def lat(self):
+ if self.latlong():
+ return self.latlong()[0]
+ else:
+ return None
+
+ def long(self):
+ if self.latlong():
+ return self.latlong()[1]
+ else:
+ return None
def GetCaveLookup():
"""A very relaxed way of finding probably the right cave given almost any string which might serve to identify it
diff --git a/core/models/survex.py b/core/models/survex.py
index 9a5145c..1c6a1fe 100644
--- a/core/models/survex.py
+++ b/core/models/survex.py
@@ -67,7 +67,10 @@ class SurvexStation(models.Model):
def latlong(self):
return utmToLatLng(33, self.x, self.y, northernHemisphere=True)
-
+ def lat(self):
+ return utmToLatLng(33, self.x, self.y, northernHemisphere=True)[0]
+ def long(self):
+ return utmToLatLng(33, self.x, self.y, northernHemisphere=True)[1]
import math
def utmToLatLng(zone, easting, northing, northernHemisphere=True): # move this to utils.py ?
diff --git a/core/views/statistics.py b/core/views/statistics.py
index f056ab1..d2544e0 100644
--- a/core/views/statistics.py
+++ b/core/views/statistics.py
@@ -284,6 +284,29 @@ def eastings(request):
if e.lat_wgs84 or e.long_wgs84:
ents.append(e)
+ for e in ents:
+ try:
+ ts = e.tag_station
+ if ts:
+ e.tag_ts = SurvexStation.objects.get(name=ts)
+ print(f"{e} {e.tag_ts} {e.tag_ts.lat()} {e.tag_ts.long()}")
+
+ es = e.exact_station
+ if es:
+ e.tag_es = SurvexStation.objects.get(name=es)
+ print(f"{e} {e.tag_es} {e.tag_es.lat()} {e.tag_es.long()}")
+
+ os = e.other_station
+ if os:
+ e.tag_os = SurvexStation.objects.get(name=os)
+ print(f"{e} {e.tag_os} {e.tag_os.lat()} {e.tag_os.long()}")
+
+ except:
+ e.tag_ss = None
+ e.tag_es = None
+ e.tag_os = None
+ # print(f"exception for {e}")
+
stations = SurvexStation.objects.all()
return render(request, "eastings.html", {"ents": ents, "stations": stations})