UTMREF

Universal Transverse Mercator Projektion
Flächen-Koordinaten

Das System UTMREF ist eine Variante von UTM zur Beschreibung von Flächen (nicht Punkten). Es wurde ursprünglich zu militärischen Zwecken entwickelt, wird aber auch von Behörden eingesetzt. Die verwendeten Algorithmen sind sehr unübersichtlich. Auf dieser Seite finden sie einige Hinweise zu UTMREF - ohne Gewähr !
Kartografie Orientierung auf der Erdoberfläche
UTM Universal Transverse Mercator - Projektion
UTMREF Komplizierte Darstellung einfacher Koordinaten - UTMREF / MGRS
Algorithmus Berechnung eines UTMREF Strings
Live UTMREF Live UTMREF Demonstration
Beispiel VBA-Funktion zur UTMREF-Berechnung
Mil-Variante Die militärische Variante der UTM-Zonen

UTM - Universal Transverse Mercator - Projektion

UTM ist der moderne weltweite Standard für die Angabe geografischer Koordinaten. Normalerweise wird die UTM-Variante für Punkt-koordinaten verwendet.
GPS und moderne Landkarten verwenden UTM.

Details zu UTM.
UTM vereinfacht Rechnungen in kleinen Maßstäben, da alle Orte in eine ebene rechteckige Fläche transformiert wurden.
Ein weiterer Vorteil ist die Ablösung der vielen verschiedenen (historisch gewachsenen) nationalen Koordinatensysteme durch das weltweit einheitliche UTM.
UTMREF ist ein auf UTM aufbauender Standard, sozusagen ein "Dialekt" der Formulierung von UTM-Daten.

UTMREF - MGRS (Military Grid Reference System)

Das System UTMREF wurde ursprünglich zu militärischen Zwecken entwickelt, wird aber auch von Behörden, Rettungsdiensten, etc. eingesetzt. UTMREF ist im Prinzip eine Flächen-Angabe. da man jedoch beliebig kleine Flächen angeben kann (z.B. 1 Quadratmeter), kann man das System auch für Orte (Punkte) verwenden.

Vorteile von UTMREF:
Wenn man über eigene UTMREF-Karten verfügt und wenn sich alle Orts-Angaben auf das gleiche UTMREF - Planquadrat (100km x 100km, siehe unten) bezieht, dann ist die Arbeit einfach: Alle Daten beschränken sich auf die Angabe je eines X-Werts und Y-Werts in Meter oder km.
Ein weiterer Vorteil ist die Möglichkeit variabler Genauigkeit: Man kann mit UTMREF Flächen-Quadrate mit Seiten-Längen von 1m bis zu 100km angeben. Je kleiner die Fläche, desto mehr Zeichen muss man verwenden.
Nachteile von UTMREF:
Der verwendete Algorithmus ist sehr unübersichtlich. Daher eignet sich UTMREF nur zur "Papier"-Arbeit mit Karten, nicht jedoch zur Orientierung im Gelände oder zum Rechnen.
UTMREF ist heute überholt und sollte nach Möglichkeit durch die UTM Standard-Version (Zone / Ostwert / Nordwert) ersetzt werden.
Niemand verwendet freiwillig ein derart kompliziertes System.

UTMREF - Algorithmus

(1) Zonenfeld

Jede UTMREF-Angabe definiert ein UTM-"Zonenfeld" im Ausmaß von 6° Länge und 8° Breite (Geografische Länge / Breite in Grad). Die entsprechende UTMREF Angabe besteht aus 3 Zeichen.

Zonenfeld-Länge:

Die Länge wird durch 2 Zeichen angegeben. Dazu berechnet man die Nummer der UTM Längen-Zone (1..60) von 6° (Ost - West)
Beispiel Wien:
Länge=16.37434°, daraus wird berechnet UTM-(Längen)-Zone=33
Details zur Berechnung der Längen-Zone

Zonenfeld-Breite:

Die Breite wird durch 1 Zeichen angegeben. Dazu berechnet man den Buchstaben (C..X) der Breiten-Zone von 8° (Süd - Nord).
Beispiel Wien:
Breite=48.2088°, daraus wird berechnet UTM-Breiten-Zone=U
Einschränkung: UTM verwendet nur -80° Süd .. Breite .. +84° Nord. (In den Pol-Regionen verwendet man das UPS-System).
Ausnahme: Zone X reicht von +72° bis +84° und umfasst daher als einzige Zone 12 Breiten-Grade.
Details zur Berechnung der Breiten-Zone
Anzahl
Damit wird die gesamte Erd-Oberfläche mit Ausnahme der Pol-Gebiete in 1200 Zonenfelder eingeteilt.

Größe
Die einzelnen Zonenfelder sind allerdings unterschiedlich groß:
Die Ost-West-Erstreckung ist stark unterschiedlich. Sie beträgt am Äquator ca. 668km und auf 80°Breite (Subpolar) ca. 116km
Die Süd-Nord-Erstreckung ist ungefähr gleich groß. Sie beträgt am Äquator ca. 885.5km und am Pol ca. 891.5km

Im Mitteleuropa beträgt die Größe ca. 421km (Ost-West) und 889.5km (Süd-Nord). Das ergibt eine Fläche von je ca. 375000 Quadratkilometer.

Beispiele für die Zonenfelder einiger Städte:
StadtLängeBreite Zonenfeld
Berlin13.40°52.52°33U
Wien16.37°48.21°33U
Zürich8.55°47.37°32T
Lissabon-9.13°38.72°29S
Helsinki24.93°60.18°35V

(2) Planquadrat

Die nächsten 2 Zeichen definieren ein Planquadrat von je 100x100km Seitenlänge und damit in den Übergang von Zonenfeldern ungleicher Form und Größe zu Planquadraten gleicher Größe.

Planquadrat-Länge

Für dieses Zeichen (1 Buchstabe A..Z) gibt es 3 verschiedene Varianten, die in der Reihenfolge der UTM-Längen-Zonen (1..60) wiederholt werden.
Dazu berechnet man UTM-Zone modulo 3 und wählt den angegebenen String
ZoneZone % 3String
..,30,33,..0STUVWXYZ
..,31,34,..1ABCDEFGH
..,32,35,..2JKLMNPQR
In Spalte "Zone" werden einige Beispiele für mitteleuropäische Zonen angeführt. Die Buchstaben-Reihe verzichtet auf die Zeichen IO (Gefahr der Verwechslung mit Ziffern 10)
Beispiel Wien:
Zone=33 ergibt 33 % 3 = 9 und damit String=STUVWXYZ
Danach berechnet man UTM-Ost Wert und zählt einen Buchstaben des Strings für je 100 volle km.
Beispiel Wien: UTM-Ost=602104m ergibt 600 km und damit das 6. Zeichen des Strings X
Details zur Modulo-Funktion

Achtung: Wikipedia gibt eine andere Tabelle für die zu verwendenden Zeichen an, die zwar für Deutschland korrekte Werte ergibt, für andere Gebiete (z.B. Österreich) jedoch abweichende Werte !

Planquadrat-Breite

Dieses Zeichen (1 Buchstabe A..V) wird aus dem String
ABCDEFGHJKLMNPQRSTUV
mit 20 Zeichen wiederholt. Dazu berechnet man den UTM-Nord Wert und zählt je einen Buchstaben des strings für je 100 volle km.
Beispiel Wien:
UTM-Nord=5340420m ergibt 5300km
53 modulo 20 = 13

Dazu wird +1 addiert, das ergibt 13+1=14
das 14. Zeichen des Strings ist P
Die UTMREF-Angabe für das Planquadrat von Wien lautet nun UTMREF=33UXP
Anordnung
An der Ost- und West-Grenze jedes Zonenfelds fallen zwar die Grenzen von Zonenfeld und Planquadraten zusammen, es ergeben sich jedoch unvollständige keilförmige Planquadrate. Die Süd- und Nord-Grenzen von Zonenfeldern und Planquadraten fallen nur am Äquator genau zusammen, d.h. ein Planquadrat kann in 2 verschiedene Zonenfelder fallen.

Grafik der Anordnung für Deutschland u.a. bei Wikipedia.
Achtung: Die Planquadrate von Zone 32 (Deutschland) ergeben nach den hier gezeigten Regeln die gleichen Planquadrat-Namen, von Zone 33 (Österreich) jedoch andere !

Anzahl
Jede UTM-Zone hat die Form einer Orangenspalte. Sie erreicht am Äquator ihre maximale Ost-West "Breite" von 8 Planquadraten. In Richtung zu den Polen wird sie schmäler und reduziert sich zuletzt auf 2 Planquadrate. Die Süd-Nord "Höhe" ist mit ca. 9 Planquadraten weitgehend konstant.
In Mitteleuropa enthält ein Zonenfeld ca. 36 vollständige Planquadrate.

Größe
Vollständige Planquadrate haben eine fixe Größe von 100x100km. Am Ost- und West-Rand jedes Zonenfelds gibt es zusätzlich unvollständige keilförmige Planquadrate kleinerer Größe.
(3) Ostwert und Nordwert
Zur Angabe kleinerer Flächen verwendet man X- und Y-Koordinaten, die von der Südwest-Ecke ("links unten") jedes Planquadrats gemessen werden.
Im Gegensatz zur Berechnung von Zonenfeld und Planquadrat sind diese Daten durch einfache Messung auf UTM-Karten leicht zugänglich.

UTMREF bietet die Möglichkeit variabler Genauigkeit: Mit je 1 Ziffer für X und Y definiert man ein Quadrat 10x10km ... mit je 5 Ziffern ein Quadrat von 1x1m und damit eine Punkt-Meldung.
Bedingung ist die Verwendung gleich vieler Ziffern für X- und Y-Wert.
Beispiel Wien:
UTM-Ost=602104m davon entfallen 600km auf das Planquadrat (33UXP), der Rest von 2104m dient als UTMREF X-Koordinate
UTM-Nord=5340420m davon entfallen 5300km auf das Planquadrat (33UXP), der Rest von 40420m dient als UTMREF Y-Koordinate.
StadtLängeBreiteUTMREF
Wien16.37°48.21°33UXP
Wien16.37°48.21°33UXP020403
Wien16.37°48.21°33UXP0203040365
Berlin13.40°52.52°33UUU9143319746
Zürich8.55°47.37°32TMT6602346047
Die Tabelle zeigt einige Beispiele, darunter für Wien mit variabler Genauigkeit (Seiten-Längen 100km, 100m und 1m)

UTMREF-Decodierung

Die Interpretation einer kompletten UTMREF-Angabe ist aufwändig.
Dazu zerlegt man den String in seine Bestandteile, so wie hier gezeigt:
2 Zeichen (Zahl 01..60) für die UTM Längen-Zone
1 Zeichen (C..X) für die UTM Breiten-Zone
2 Zeichen (A..Z) für das Planquadrat
Der Rest darf nur aus einer geraden Anzahl von Ziffern bestehen. Man teilt ihn in 2 gleich lange Strings, aus denen X- und Y-Wert berechnet wird.

Wesentlich einfacher ist die Interpretation, wenn sich alle verwendeten UTMREF-Angaben auf das gleiche Planquadrat beziehen - Es ist auf UTMREF-Karten angegeben.
In diesem Fall sind mindestens die ersten 5 Zeichen aller UTMREF-Strings gleich. Man beachtet lediglich die rechts nachfolgenden Ziffern, teilt sie in 2 gleich lange Strings und verwendet die beiden Zahlen als X- und Y-Koordinate.

Live UTMREF

Live-Berechnung des UTM-Zonenfelds

Länge (Grad östl. Greenwich)
Breite (Grad)
Ergebnis für Zonenfeld = 31N
Angaben in Grad Länge / Breite
 WestMitteOst
Nord 0° / 8° 3° / 8° 6° / 8°
Mitte 0° / 4° 3° / 4° 6° / 4°
Süd 0° / 0° 3° / 0° 6° / 0°
  

UTMREF Algorithmus Beispiel

Das Beispiel zeigt eine vereinfachte → VBA-Funktion zur Berechnung von UTMREF aus Länge und Breite, die auch in Excel verwendet werden kann.

Argumente: Länge in Grad, Breite in Grad
Optional ein Argument mode zur Steuerung der Genauigkeit:
mode=1 ergibt 10km, usw. bis mode=5 für 1m
Function utm_utmref(lon_deg As Double, lat_deg As Double, Optional mode As Integer = 5) As String
Dim i, j, hx, hy, utm_z As Integer
Dim utm_e, utm_n, xrest, yrest, div As Double
Dim utmref, zf(3), zflat As String
' Initialisierung der Zonenfeld-Zeichen
zf(0) = "STUVWXYZ"
zf(1) = "ABCDEFGH"
zf(2) = "JKLMNPQR"
zflat = "ABCDEFGHJKLMNPQRSTUV"
' optional mode
If mode < 1 Then mode = 1
If mode > 5 Then mode = 5
div = 10 ^ (5 - mode)
' Zonenfeld
utm_z = utm_zone(lon_deg)
utmref = Right("0" & CStr(utm_z), 2)
utmref = utmref & utm_latzone(lat_deg)
' Planquadrat 100x100km Ost-Zeichen
i = utm_z Mod 3
utm_e = lonlat_to_utme(lon_deg, lat_deg)
hx = Int(utm_e / 100000)
utmref = utmref & Mid(zf(i), hx, 1)
xrest = Int(utm_e - hx * 100000)
' Planquadrat 100x100km Nord-Zeichen
utm_n = utm_lonlat_utmn(lon_deg, lat_deg)
hy = Int(utm_n / 100000)
i = hy Mod 20
If i <= 0 Then i = i + 20
If (utm_z Mod 2) = 0 Then
j = 5
Else
j = 0
End If
utmref = utmref & Mid(zflat, i + j + 1, 1)
yrest = Int(utm_n - hy * 100000)
' X-Koordinate
xrest = Int(xrest / div)
utmref = utmref & Right("00000" & xrest, mode)
' Y-Koordinate
yrest = Int(yrest / div)
utmref = utmref & Right("00000" & yrest, mode)
' Rückgabe
utm_utmref = utmref
End Function
Zunächst werden die Strings zf() und zflat für die Zonenfeld-Zeichen initialisiert.
Danach wird das Argument mode zur Steuerung der Genauigkeit (Anzahl XY-Stellen) validiert und der dezimale Divisor div berechnet, der später zur Berechnung der XY-Stellen verwendet wird.
Nun werden die ersten 3 Zeichen (Zonenfeld) in der String-Variablen utmref zusammengestellt. Zur Berechnung von Längen-Zone (2 Ziffern) und Breiten-Zone (1 Buchstabe) werden die Funktionen utm_zone und utm_latzone verwendet, die bei den allgemeinen → UTM-Algorithmen vorgestellt wird.
Das Ost-Zeichen des Planquadrats wird aus der UTM-Längen-Zone utm_z und dem UTM-Ost Wert utm_e berechnet. Als Nebenprodukt fällt die Anzahl ganzer 100km in der Variablen hx und der Rest der Ost-(X)-Koordinate xrest an. Funktion lonlat_to_utme wird bei den → Algorithmen zur Transformation von Grad nach UTM vorgestellt.
Das Nord-Zeichen des Planquadrats wird aus dem UTM-Nord Wert utm_n berechnet, dabei fällt die Anzahl ganzer 100km hy und der Rest der Nord-(Y)-Koordinate yrest an. Funktion lonlat_to_utmn wird bei den Algorithmen zur Transformation von Grad nach UTM vorgestellt.
Zuletzt werden die numerischen XY-Koordinaten mit der durch mode eingestellten Anzahl von Stellen angefügt.
Die X-Ziffern werden aus dem Rest des UTM-Ost Werts xrest und dem Divisor div berechnet. Nicht verwendete Stellen werden mit Nullen gefüllt.
Analog werden die Y-Ziffern aus dem Rest des UTM-Nord Werts yrest berechnet.
Zuletzt wird der fertig zusammen gestellte String utmref zurückgegeben.
In der Live-Berechnung auf dieser Seite können sie die Javascript-Variante dieser Funktion ausprobieren.

Militärische UTM-Zonen

Neben der zivilen gibt es noch eine militärische Variante der Zonen-Bezeichnungen.
Auch dabei wird der UTM-Teil der Erdoberfläche (ohne Pol-Regionen) in Zonenfelder 6°x4° aufgeteilt.
60 Längen-Zonen zu je 6° Länge und 20 Breiten-Zonen zu je 8° Breite ergeben insgesamt 1200 Zonenfelder, die als Ausgangspunkte dieser UTMREF-Variante dienen.
Die Zonenfelder werden in jedem weiteren Schritt in immer kleinere Teil-Gebiete unterteilt.
Jedes Zonenfeld wird in 12 Teilgebiete 2°x1° unterteilt, davon wiederum jedes in 32 kleine Teilgebiete 15'x15'.
Ein Zonenfeld der Größe 6°x4° wird so bezeichnet:
Ein Zeichen (S,N) für die Halbkugel, 1 Zeichen (A..) für je 4° geografische Breite, danach eine 2stellige Zahl für die UTM-Längen-Zone von 6° Längengraden.

Die Größe dieser Gebiete beträgt am Äquator ca. (Mittelwert) 667km x 444km und wird in Richtung zu den Polen immer kleiner. Die Form ist am Äquator fast genau rechteckig. In mittleren Breiten wird die Form deutlich trapezförmig, an den Polen schließlich (theoretisch) dreieckig.

Gebiete dieser Dimension werden meist auf Karten 1:1000000 (1 Mio) dargestellt.
Jedes Zonenfeld 6°x4° ist zeilenweise in 12 Teilgebiete eingeteilt. Jedes Teilgebiet 2°x1° wird nach dem übergeordeten Zonenfeld 6°x4° benannt, danach folgt die fortlaufende 2stellige Nummer nach folgender Tabelle:
Nr
123
456
789
101112
Am oberen und am linken Rand die Werte von Länge bzw. Breite, welche zu den Koordinaten des Gebietes zu addieren sind, um das Teilgebiet zu erhalten.
Beispiel: Zonenfeld NL 33 bezeichnet ein Gebiet der Nordhalbkugel (12°,44°) bis (18°, 48°). Dieses Gebiet ist ca. (Mittelwert) 464km x 444km groß. Eine Karte 1:1000000 hat die Maße ca. 464x444 mm. Beispiel: NL 33-01 reicht von (12°, 47°) bis (14°,48°). Dieses Gebiet ist ca. 150km x 111km groß. Eine Karte im Maßstab 1:200000 hat die Maße ca. 752x555 mm.
Jedes Teilgebiet 2°x1° ist zeilenweise in 32 kleinere Teilgebiete unterteilt. Jedes kleine Teilgebiet 15'x15' wird nach dem übergeordneten Gebiet 2°x1° benannt, danach folgt die fortlaufende Nummer nach folgender Tabelle:
Nr0°15'0°30'0°45' 1°15'1°30'1°45'
45'01020304 05060708
30'09101112 13141516
15'17181920 21222324
0'25262728 29303132
Am oberen und am linken Rand die Werte von Länge bzw. Breite, welche zu den Koordinaten des Gebietes zu addieren sind, um das Teilgebiet zu erhalten.

Beispiel: NL 33-01-27 reicht von (12°30', 47°0') bis (12°45', 47°15'). Dieses Gebiet ist ca. 18.9km x 27.7km groß. Eine Karte im Maßstab 1:50000 hat die Maße ca. 379x555 mm.
Beispiel:
Der höchste Berg Österreichs - der Großglockner - liegt am Punkt (12°41'39", 47°04'29").
Festlegung des Gebietes 6°x4°:
Nordhalbkugel → N
Breite 44°-48° → L
Länge 12°-18° → 33
Der Punkt liegt daher im Gebiet NL 33 (12°,44°) bis (18°,48°).

Der verbleibende Rest (Länge, Breite) ist (0°41'39", 3°04'29") ergibt in der Tabelle (oben) Spalte 0°, Zeile 3° und damit Blatt 01. Der Punkt liegt daher im Teilgebiet NL 33-01 (12°,47°) bis (14°,48°).

Nun bleibt noch ein Rest von (41'39", 4'29"), das ergibt in der Tabelle (links) Spalte 0°30', Zeile 0' und damit Blatt 27. Der Punkt liegt auf der Karte NL 33-01-27, auch erhältlich unter dem Namen ÖK50-UTM 3227-Grossglockner.

Algorithmen

Dieses Beispiel in Visual Basic (→ VBA)-Syntax liefert die UTM-mil-Zone eines Punktes als Funktion seiner Koordinaten Länge und Breite in Grad. Das Ergebnis ist vom Typ String (Zeichenkette).

Der Parameter mode steuert die Genauigkeit:
mode=1 ergibt ein Gebiet 6°x4°, mode=2 ergibt 2°x1°, mode=3 ergibt 15'x15', alle anderen Werte arbeiten wie mode=3.

Zunächst die Kennzahlen für Länge(i) und Breite (j) der Zone 6°x4° berechnet.

Bei größerer Genauigkeit (mode>1) werden zunächst die Koordinaten der SW-Ecke (laenge, breite) der soeben berechneten Zone 6°x4° ermittelt.
Danach wird die Differenz (rest) zwischen der Länge des Punktes und jener des Zonen-Eckpunkts berechnet, und daraus die Spalte (i) der Tabelle.
Analog wird die Differenz aus den beiden Breiten-Werten berechnet, und daraus die Zeile (j) der Tabelle.
Zuletzt wird aus Zeile und Spalte die Nummer der Zone 2°x1° (1..k..12) berechnet.

Bei maximaler Genauigkeit (mode>2) wird das gleiche Verfahren noch um eine Stufe weitergeführt: Die Koordinaten der südwestlichen Ecke (laenge, breite) werden um die Werte der soeben berechneten Zone 2°x1° korrigiert.
Danach werden die Differenzen der Längen- und Breiten-Werte gebildet und daraus die Spalte bzw. Zeile der Tabelle berechnet.
Zuletzt wird aus Zeile und Spalte die Nummer der Zone 15'x15' (1..k..30) berechnet.
Function utm_mil_name(lon_deg As Double, lat_deg As Double, Optional mode As Integer = 3) As String
Dim s As String
Dim i, j, k As Integer
Dim lon, lat, rest As Double
If (mode < 1 Or mode > 3) Then mode = 3
s = "???"
If (lon_deg> 180) Then lon_deg = lon_deg - 360
If (lon_deg>= -180 And lon_deg<= 180 And lat_deg>= -90 And lat_deg<= 90) Then
If lat_deg>= 0 Then
s = "N"
Else
s = "S"
End If
' Gebiet 6°x4°
lat_deg = Abs(lat_deg)
j = Int(lat_deg / 4) + 65
s = s & Chr(j)
i = utm_zone(lon_deg)
s = s & " " & Right("0" & CStr(i), 2)
If mode > 1 Then   ' Gebiet 2°x1°
lon = i * 6 - 186
lat = (j - 65) * 4
rest = lon_deg - lon
i = Int(rest / 2)   ' Spalte 0..2
rest = lat_deg - lat
j = 3 - Int(rest)   ' Zeile 0..3
k = j * 3 + i + 1   ' Nr 0..12
s = s & "-" & Right("0" & CStr(k), 2)
End If
If mode > 2 Then   ' Gebiet 15'x15'
lon = lon + i * 2
lat = lat + 3 - j
' spalte 0..7
rest = lon_deg - lon
i = Int(rest * 4)   ' Spalte 0..7
rest = lat_deg - lat
j = 3 - Int(rest * 4)   ' Zeile 0..3
k = j * 8 + i + 1   ' Nr 0..12
s = s & "-" & Right("0" & CStr(k), 2)
End If
End If
End If
utm_mil_name = s
End Function