std.geodesy.ellipsoid — Referenzellipsoide
import std.geodesy.ellipsoid;
Das ellipsoidische Gegenstück zu std.geo.sphere: Referenzellipsoide mit ihren Kennzahlen und Krümmungsradien.
→ std.geodesy Übersicht · std.geodesy.frames
1. Typ und fertige Ellipsoide
pub type Ellipsoid = struct { a: f64; f: f64; } // grosse Halbachse, Abplattung
| Signatur | Ellipsoid | Verwendung |
|---|---|---|
EllWgs84(): Ellipsoid | a = 6378137, 1/f = 298.257223563 | GPS, weltweit — der Normalfall |
EllGrs80(): Ellipsoid | 1/f = 298.257222101 | ETRS89, amtliche Vermessung in Europa |
EllBessel1841(): Ellipsoid | a = 6377397.155 | ältere deutsche Katasterwerke (Gauß-Krüger) |
EllClarke1866(): Ellipsoid | a = 6378206.4 | NAD27, Nordamerika |
EllSphere(radius: f64): Ellipsoid | f = 0 | Kugel als Sonderfall — für Vergleichsrechnungen |
| Signatur | Zweck |
|---|---|
EllNew(a: f64, f: f64): Ellipsoid | aus Halbachse und Abplattung |
EllFromInvF(a: f64, invF: f64): Ellipsoid | aus Halbachse und Kehrwert der Abplattung — so stehen die Werte in den Tabellen |
WGS84 und GRS80 unterscheiden sich erst in der neunten Stelle der Abplattung — wenige Zehntelmillimeter. Bessel 1841 dagegen liegt um rund 740 m in der Halbachse daneben: wer Katasterkoordinaten ohne Datumsübergang als WGS84 liest, ist einige hundert Meter falsch.
2. Abgeleitete Kennzahlen
| Signatur | Zweck |
|---|---|
EllB(e: Ellipsoid): f64 | kleine Halbachse b = a(1−f) |
EllE2(e: Ellipsoid): f64 | erste numerische Exzentrizität im Quadrat |
EllEp2(e: Ellipsoid): f64 | zweite Exzentrizität im Quadrat |
3. Krümmungsradien
| Signatur | Zweck |
|---|---|
EllN(e: Ellipsoid, latRad: f64): f64 | Querkrümmungsradius (Normalkrümmung) — der Radius, den GeodToEcef braucht |
EllM(e: Ellipsoid, latRad: f64): f64 | Meridiankrümmungsradius — Krümmung entlang des Meridians |
EllMeanRadius(e: Ellipsoid, latRad: f64): f64 | mittlerer Radius an dieser Breite, √(M·N) |
Beide Radien hängen von der Breite ab, und sie sind verschieden: am Äquator ist M kleiner als N, an den Polen sind beide gleich. Wer für eine Nord-Süd-Strecke mit N rechnet statt mit M, liegt in Mitteleuropa um rund 1 % daneben.
4. Meter je Grad
| Signatur | Zweck |
|---|---|
EllLatDegreeM(e: Ellipsoid, latRad: f64): f64 | Länge eines Breitengrades in Metern |
EllLonDegreeM(e: Ellipsoid, latRad: f64): f64 | Länge eines Längengrades in Metern |
Auf 53,6° Nord (Hamburg) ergibt das mit WGS84:
1 Grad Breite: 111298.1 m
1 Grad Laenge: 66155.3 m
Der Längengrad ist dort nur noch 60 % so lang wie der Breitengrad. Das ist der Grund, warum eine flache Rechnung mit gleich langen Grad-Schritten in Mitteleuropa um 40 % danebenliegt — und warum std.geo mit seinen Mikrograd nur für den Nahbereich taugt.
Letzte Aktualisierung: 2026-09-06 — Seite neu angelegt; erhoben aus std/geodesy/ellipsoid.lyx.
