https://www.meteoswiss.admin.ch/weather ... twork.html
https://www.meteoswiss.admin.ch/dam/jcr ... g-2023.zip


Gruss
Bernhard
Werbung


Sieht gut aus, hast du pyrad benutzt?Bernhard Oker hat geschrieben: ↑Mi 4. Feb 2026, 10:57 Erstellt mit Testdaten von MeteoSchweiz vom 20.06.2021:
https://www.meteoswiss.admin.ch/weather ... twork.html
https://www.meteoswiss.admin.ch/dam/jcr ... g-2023.zip
Danke.
Code: Alles auswählen
// https://www.swisstopo.admin.ch/dam/en/sd-web/KLRCX9XIdXDu/ch1903wgs84-EN.pdf
procedure ConvertGradToCHKoord(var chLat : double;
var chLon : double;
const gradLat : double;
const gradLon : double);
var
p, l : double;
begin
p := ((gradLat * 3600.0) - 169028.66) / 10000.0; // Breitenkoordinaten
l := ((gradLon * 3600.0) - 26782.5) / 10000.0; // Längskoordinaten
chLat := 200147.07
+ (308807.95 * p)
+ (3745.25 * Power(l, 2.0))
+ (76.63 * Power(p, 2.0))
- (194.56 * Power(l, 2.0) * p)
+ (119.79 * Power(l, 3.0));
chLon := 600072.37
+ (211455.93 * l)
- (10938.51 * l * p)
- (0.36 * l * Power(p, 2.0))
- (44.54 * Power(l, 3.0));
end;
procedure ConvertCHKoordToGrad(var gradLat : double;
var gradLon : double;
const chLat : double;
const chLon : double);
var
p, l : double;
begin
p := ((chLon * 1000.0) - 600000.0) / 1000000.0; // Breitenkoordinaten
l := ((chLat * 1000.0) - 200000.0) / 1000000.0; // Längskoordinaten
gradLon := 2.6779094
+ 4.728982 * p
+ 0.791484 * p * l
+ 0.1306 * p * Power(l, 2.0)
- 0.0436 * Power(p, 3.0);
gradLat := 16.9023892
+ 3.238272 * l
- 0.270978 * Power(p, 2.0)
- 0.002528 * Power(l, 2.0)
- 0.0447 * Power(p, 2.0) * l
- 0.0140 * Power(l, 3.0);
gradLat := gradLat * 100.0 / 36.0;
gradLon := gradLon * 100.0 / 36.0;
end;
Werbung