====== std.geodesy.ellipsoid — Referenzellipsoide ======
''import std.geodesy.ellipsoid;''
Das ellipsoidische Gegenstück zu [[lyx_-_programmiersprache:units:geo:sphere|std.geo.sphere]]: Referenzellipsoide mit ihren Kennzahlen und Krümmungsradien.
→ [[lyx_-_programmiersprache:units:geodesy|std.geodesy Übersicht]] · [[lyx_-_programmiersprache:units:geodesy:frames|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 [[lyx_-_programmiersprache:units:geo|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''.