Du importierst ein Shapefile von einem Kollegen, überlagst es auf deiner Basiskarte — und die Gebäude stehen 200 Meter östlich von wo sie sein sollten. Die .prj-Datei sagt "GCS_WGS_1984", aber die Daten wurden tatsächlich im alten Gauß-Krüger-System erfasst. Solche Abweichungen kosten Stunden — und die Ursache ist immer dieselbe: ein falscher EPSG-Code.
Ein EPSG-Code ist eine numerische Kurzform für ein Koordinatenreferenzsystem (KRS). Sag EPSG:4326 und jeder GIS-Ingenieur weiß, dass du WGS 84 meinst — keine Unklarheiten, kein WKT-String zum Parsen. Das richtig zu verstehen ist der erste Schritt, um Datenfehler zu vermeiden.
Woher kommen EPSG-Codes?
EPSG steht für die European Petroleum Survey Group, gegründet 1985. Der Hintergrund: Mehrere Ölkonzerne führten Offshore-Vermessungen in denselben Gewässern durch, konnten ihre Daten aber nicht zusammenführen, weil jede Firma ein anderes Koordinatensystem verwendete. Jean-Patrick Girbig, Chefvermesser bei Elf Aquitaine, brachte Geodäten von Agip, BP, Deminex, Shell, Statoil und Total zusammen, um das Problem zu lösen.
Ihre erste Aufgabe war eine standardisierte KRS-Datenbank, die 1993 mit über 500 Definitionen veröffentlicht wurde. 1995 adoptierte der GeoTIFF v1.0-Standard EPSG-Codes als KRS-Identifier — damit verließ EPSG die Ölindustrie und wurde im gesamten GIS-Bereich etabliert.
2005 wurde die EPSG-Arbeitsgruppe unter der IOGP (International Association of Oil & Gas Producers) neu organisiert, aber der EPSG-Markenname blieb. Heute enthält das EPSG-Dataset (v12.053) über 7.000 KRS-Definitionen, 2.500 Projektionsmethoden und 2.500 Koordinatentransformationen — insgesamt mehr als 20.000 Einträge.
Was genau ist ein EPSG-Code?
Ein EPSG-Code ist eine 4- bis 5-stellige numerische ID (Bereich 1024–32767), die ein KRS, Datum, Ellipsoid oder eine Koordinatentransformationsmethode im EPSG-Dataset eindeutig identifiziert. Die technische Grundlage ist der ISO 19111-Standard.
Standardnotation
Das häufigste Format ist authority:code:
EPSG:4326
Das OGC definiert auch ein URL-Format, das in Webdiensten verwendet wird:
http://www.opengis.net/def/crs/EPSG/0/4326
Was steckt in einer EPSG-Definition?
Jeder Code entspricht einer vollständigen KRS-Definition: Ellipsoidparameter (großes Halbachse, Abplattung), Datum, Koordinatenachsenrichtungen und -reihenfolge, Maßeinheit (Grad oder Meter) und das geografische Anwendungsgebiet.
Die häufigste Fehlerquelle ist die Achsreihenfolge. Die EPSG:4326-Standarddefinition gibt den Breitengrad zuerst an (Lat, Lng), aber die meisten GIS-Software übergibt tatsächlich den Längengrad zuerst (Lng, Lat). GeoJSON verwendet Lng, Lat; Leaflets L.latLng() erwartet Lat, Lng — der resultierende Bug sieht nicht nach einem offensichtlichen Koordinatentausch aus, sondern wie zufällig über die Karte verteilte Punkte.
Am häufigsten verwendete EPSG-Codes
| EPSG-Code | Name | Typ | Einheit | Typische Verwendung |
|---|---|---|---|---|
| 4326 | WGS 84 | Geografisch | Grad | GPS, globaler Datenaustausch |
| 3857 | Web Mercator | Projiziert | Meter | Webkarten (Google Maps, OSM) |
| 4258 | ETRS89 | Geografisch | Grad | Europa (amtlicher Standard) |
| 25832 | ETRS89 / UTM Zone 32N | Projiziert | Meter | Deutschland, Mitteleuropa |
| 25833 | ETRS89 / UTM Zone 33N | Projiziert | Meter | Ostdeutschland, Polen |
| 4269 | NAD83 | Geografisch | Grad | USA, Kanada |
| 32601–32660 | UTM Nord-Zonen | Projiziert | Meter | Lokale Präzisionsvermessungen |
| 32701–32760 | UTM Süd-Zonen | Projiziert | Meter | Lokale Präzisionsvermessungen |
EPSG:4326 vs EPSG:3857 — Die zwei Codes, die jeder verwechselt
EPSG:4326 (WGS 84) ist ein geografisches KRS, das Positionen in Breiten-/Längengraden darstellt. Die Rohausgabe von GPS ist WGS 84. Es ist der Standard für Datenspeicherung und -austausch.
EPSG:3857 (Web Mercator) ist ein projiziertes KRS, das die Erde auf eine ebene Fläche in Metern abbildet. Google Maps adoptierte diese Projektion beim Launch 2005, und praktisch jede Webkarte folgte.
EPSG weigerte sich zunächst, 3857 zu registrieren. Der Einwand: Es verwendet eine sphärische Formel auf einem ellipsoidalen Datum, was mathematisch falsch ist. Google veröffentlichte es trotzdem, und als EPSG 2009 nachgab und den Code zuwies, nutzte bereits jede Webkarte auf dem Planeten diese Projektion. Trotz seiner Verbreitung ist 3857 nicht für genaue Flächen- oder Entfernungsmessungen geeignet — etwa 0,33% Skalenfehler im Vergleich zur Standard-Mercator-Projektion.
Die Grundregel: 4326 für Speicherung, 3857 für Darstellung. KunYus Koordinatenkonverter unterstützt die Konvertierung zwischen beiden.
Den richtigen EPSG-Code finden
Szenario 1: Du kennst den KRS-Namen
Wenn du den Namen kennst (z.B. "WGS 84" oder "ETRS89"), suche direkt im EPSG-Suchwerkzeug. Es unterstützt die Suche nach über 8.000 EPSG-Definitionen nach Code, Name und Region.
Szenario 2: Du kennst den Ort, nicht das KRS
Wenn du ein geeignetes projiziertes KRS für ein bestimmtes Gebiet benötigst, verwende das EPSG-Finder-Werkzeug — klicke oder zeichne einen Rahmen auf der Karte, und es listet alle EPSG-Codes auf, deren Anwendungsbereich diese Region abdeckt.
Szenario 3: Du hast Daten ohne KRS-Informationen erhalten
Prüfe die Metadaten-Dateien, die mit den Daten geliefert wurden. Shapefiles haben eine .prj-Datei (mit jedem Texteditor öffnen), die die KRS-Definition im WKT-Format enthält. GeoTIFFs betten EPSG-Informationen normalerweise in ihre Metadaten ein. Mit GDAL:
# KRS eines GeoTIFF prüfen
gdalsrsinfo input.tif
# PRJ-Datei eines Shapefiles lesen
cat data.prj
EPSG-Codes in GIS-Software verwenden
QGIS: Projekteigenschaften → KRS-Panel ermöglicht die Suche und den Wechsel des KRS per EPSG-Code. QGIS verwendet standardmäßig EPSG:4326.
GDAL/OGR: Das Ziel-KRS direkt mit einem EPSG-Code angeben:
# Shapefile von Gauß-Krüger (DHDN) nach WGS 84 umprojizieren
ogr2ogr -s_srs EPSG:31467 -t_srs EPSG:4326 ausgabe.shp eingabe.shp
PROJ: Die Open-Source-Koordinatentransformations-Engine. Ihre Datenbank (proj.db) integriert EPSG-, IGNF- und ESRI-KRS-Definitionen.
Im Code funktionieren EPSG-Codes genauso:
// Proj4js (JavaScript)
import proj4 from "proj4";
proj4.defs("EPSG:4490", "+proj=longlat +ellps=GRS80 +no_defs");
const result = proj4("EPSG:4326", "EPSG:4490", [116.4074, 39.9042]);
# pyproj (Python)
from pyproj import Transformer
transformer = Transformer.from_crs("EPSG:4326", "EPSG:3857", always_xy=True)
x, y = transformer.transform(13.4050, 52.5200)
FAQ
Was ist der Unterschied zwischen EPSG:4326 und CRS:84?
Beide sind WGS 84, aber mit unterschiedlicher Achsreihenfolge. Die Standarddefinition von EPSG:4326 ist Breitengrad zuerst (Lat, Lng), während CRS:84 Längengrad zuerst ist (Lng, Lat). GeoJSON verwendet Lng, Lat, aber Leaflets L.latLng() erwartet Lat, Lng — diese Verwechslung ist ein häufiger Bug.
Meine Daten sind um Dutzende bis Hunderte von Metern versetzt. Warum?
Die häufigste Ursache ist ein falscher EPSG-Code. In Deutschland kann die Verwechslung von Gauß-Krüger (DHDN, z.B. EPSG:31467) mit ETRS89/UTM32N (EPSG:25832) zu Abweichungen von mehreren Metern führen. Der Wechsel vom alten Bessel-Ellipsoid zum GRS80-Ellipsoid macht einen erheblichen Unterschied.
Verfallen EPSG-Codes?
Sie werden aktualisiert, aber nie gelöscht oder neu zugewiesen. Der Geodäsie-Unterausschuss der IOGP aktualisiert das EPSG-Dataset regelmäßig. Veraltete Codes werden als deprecated markiert und zeigen auf ihre Nachfolger.
Welche EPSG-Codes werden in Deutschland verwendet?
Der offizielle Lagereferenzrahmen in Deutschland ist ETRS89 (EPSG:4258 für geografische Koordinaten). Für projizierte Koordinaten wird UTM Zone 32N (EPSG:25832) verwendet, das das alte Gauß-Krüger-System (EPSG:31467) abgelöst hat. Historische Daten im DHDN/Gauß-Krüger-System sind noch verbreitet — beim Überlagern mit modernen Daten können Abweichungen von mehreren Metern auftreten.
Die Regel, die 90% der Fälle abdeckt
4326 für Speicherung und Austausch, 3857 für die Webdarstellung. Im Zweifelsfall per Name mit EPSG Search suchen oder per Kartenposition mit EPSG Finder.