Vorher darauf achten, dass in den Koordinatenangaben „gerade“ Hochkommata verwendet wurden (Akzentzeichen werden nicht erkannt), ggf. mit dem Befehl
value.replace("´","'")
bzw.
value.replace("`","'")
austauschen (einsetzen unter „Edit cells“ → „Transform“).
Das Skript wie folgt einsetzen:
Edit column → Add column based on this column auswählenNew column name vergeben (falls noch nicht vorhanden „Lat_dec“ oder ähnliches)long_lat = "Lat" # -- diesen Wert in Long ändern, # -- wenn die andere Spalte berechnet werden soll. v = cells[long_lat]["value"].replace('~','').replace(',','.').strip() if '-' in v and v[0]!='-': v = v.split('-')[0] v = v.split('°') if len(v)==1: [deg, sign] = v[0].split(' ') deg = float(deg) min = 0.0 sec = 0.0 else: deg = float(v[0]) if v[1] in ('E','W','N','S'): min = 0.0 sec = 0.0 sign = v[1] else: min = float(v[1].split("'")[0])/60.0 residue = v[1].split("'")[1:] sec = 0.0 if len(residue)>2: sec = float(residue[0])/60/60 sign = residue[2] elif len(residue)==2: sec = float(residue[0]) sign = residue[1] elif len(residue)==1: sign = residue[0] else: sign = 'X' # -- assume positive direction if sign in ('S', 'W'): sign = -1.0 else: sign=1.0 return round((deg+min+sec)*sign,5)
Excel-Datei mit Makro zur Umrechnungvon Koordinaten.
Besonders für Rohdaten aus Imdas bzw. im Excel-Format.
Beachte: Überschrift muss in erster Zeile stehen. Alle Spalten ab A müssen (irgendeine) Überschrift enthalten. Spaltennamen für Koorinaten können/ müsssen angepasst werden.
Falsche Hochkommas müssen vorher ersetzt werden.
Ausgabe kann verschönert werden. Auf Fehler wird hingewiesen.
Hochladen von xslm Dateien wohl nicht möglich. Speicherort:
Wserver02\DWB_Admin\Administration_Feldinhalte_Rechte\MakrosZurAufarbeitung\Koordinatenumrechnung_Makro.xlsm
Umwandlung von Grad, Minute, Sekunde in Dezimalgrad
Die Sekunden werden durch 60 geteilt. Die Minuten werden aufaddiert. Das Ergebnis wird durch 60 geteilt. Die Grad werden dazu addiert.
Für das Beispiel 13° 24‘ 7,0812‘‘ ergibt sich demnach folgende Rechnung:
7,0812/60=0,11802 0,11802 + 24 =24,11802 24,11802/60=0,401967 0,401967 +13=13,401967°