Berechnung möglicher Polsprungvarianten auf Detlefs Basis (Schauungen & Prophezeiungen)

Leserzuschrift @, Donnerstag, 07.10.2010, 20:19 (vor 5699 Tagen) (2721 Aufrufe)
bearbeitet von unbekannt, Donnerstag, 07.10.2010, 20:26

Ich hatte vor Jahren einmal eine Diskussion mit Detlef über seine Polsprung-Visionen. Er hatte mir damals gesagt, daß seine Vermutungen über die Lage des neuen Äquators darauf beruhen, daß er in seinen Visionen in Georgetown und Dakar war und beide Küstenstädte weigehend unverändert gesehen hat. Er ist daher davon ausgegangen, daß diese Orte ihre geographische Breite nicht verändern, weil es dort seiner Theorie nach andernfalls zu Zerstörungen kommen müßte. Er hat dann versucht, sich mit Hilfe eines Globus die Situation zu veranschaulichen und ist so zu seiner Lösung gekommen.

Ich habe die Sache damals genauer durchgerechnet. Die Situation ist ja die, daß man zwei Punkte x und y (Georgetown und Dakar) und eine Gerade g (der alte Äquator) hat und eine Gerade g' (der neue Äquator) sucht, so daß sowohl x als auch y dieselben Abstände zu g wie zu g' haben. Der geometrische Ort aller Punkte mit demselben Abstand zu g wie zu g' ist bekanntlich die Winkelhalbierende zwischen g und g'. Eine Lösung erhält man also, wenn man g an der Geraden durch x und y spiegelt. Der Haken ist nun aber, daß g und g' zwei Winkel (meist einen spitzen und einen stumpfen) bilden und es entsprechend auch zwei Winkelhalbierende gibt. Man muß also auch die Möglichkeit in Betracht ziehen, daß x und y auf unterschiedlichen Winkelhalbierenden liegen. Diese stehen senkrecht aufeinander. Man erhält also alle (bis zu zwei) weiteren Lösungen, indem man die beiden Schnittpunkte P und Q des Thaleskreises über der Strecke x y und g an der Gerade durch x und P (oder y und P, was dasselbe Ergebnis liefert) spiegelt und dasselbe für Q tut.

Wenn die Schnittpunkte P und Q nicht existieren, gibt es keine weitere Möglichkeit. Im Fall P=Q gibt es nur eine weitere Möglichkeit. Bei der Information, die mir Detlef damals gegeben hat, gibt es aber in der Tat drei Möglichkeiten für den Polsprung (neben der vierten, daß alles bleibt wie es ist, was mir noch immer an wahrscheinlichsten scheint). Natürlich muß man das alles in Wahrheit nach den Regeln der sphärischen Trigonometrie rechnen und dabei beachten, daß der Satz des Thales in der sphärischen Geometrie nicht gilt. Beim groben Überfliegen des damals geschriebenen Programmes (in Emacs-Lisp) scheint mir aber, daß ich in diese mögliche Falle damals nicht getappt bin.

Im Prinzip würde eine weitere Schau Detlefs über eine Hafenstadt, die sich nicht sonderlich verändert hat, ausreichen, um aus den vier Möglichkeiten die einzig passende zu ermitteln. Detlef schien aber damals nicht an einer weiteren Diskussion interessiert. Natürlich könnte man auch für die vier Fälle und jeden Ort der Erde ausrechnen, welches die neue Richtung des Sonnenaufganges ist. Wenn ich die Gärtnerin richtig verstanden habe, sollte diese für Deutschland etwa 45 Grad NO sein. Ob Detlef irgenwelche Visionen über die Richtung des Sonnenaufganges hatte, kann ich nicht sagen. Mein damaliges Programm hänge ich an.

Der eigentliche Adressat dieser Zeilen wäre wohl BB, der Detlef nach der neuen Lage der Pole gefragt hatte.

MfG
XYZ [anonymisiert]

(require 'cl)

(defun gms-zu-bogen (g &optional m s)
  (or m (setq m 0))
  (or s (setq s 0))
  (* pi (/ (+ g (/ (+ m (/ s 60.0)) 60.0)) 180.0)))

(defun bogen-zu-gms (x)
  (let (g m n)
    (and (< x 0) (setq n t) (setq x (- x)))
    (setq x (/ (* x 180) pi))
    (setq g (floor x))
    (setq x (* 60 (- x g)))
    (setq m (floor x))
    (setq x (* 60 (- x m)))
    (if n (format "-%d %d %.2f" g m x)
      (format "%d %d %.2f" g m x))))

(defvar Dreh1 nil
  "Drehung, falls Dakar und Georgetown auf derselben Halbkugel bleiben")


(defvar Dreh2a nil
  "Drehung1, falls Dakar und Georgetown nicht auf derselben Halbkugel bleiben")

(defvar Dreh2b nil
  "Drehung2, falls Dakar und Georgetown nicht auf derselben Halbkugel bleiben")


(let ((l (- (gms-zu-bogen 58 10)))
      (L (- (gms-zu-bogen 17 26 30)))
      (b (gms-zu-bogen 6 47))
      (B (gms-zu-bogen 14 40 52)) d alp bet x y)
  ;;; (l,b) sind die Koordinaten von Georgetown, (L,B) die von Dakar
  (setq d (- L l))
  ;;; Georgetown und Dakar bleiben auf derselben Halbkugel
  ;; Zu ermitteln sind Schnittort und -winkel der Verbindunsgerade durch
  ;; diese Orte mit dem Äquator.
  ;; Betrachte zunächst das Dreieck mit Ecken bei Georgetown, Dakar
  ;; und dem Norpol. y ist die dem Nordpol gegenüberliegende Seite,
  ;; bet der Winkel bei Georgetown.
  (setq y (acos (+ (* (sin b) (sin B)) (* (cos b) (cos B) (cos d)))))
  ; Seitenkosinussatz, nun der Sinussatz:
  (setq bet (asin (/ (* (sin d) (cos B)) (sin y))))
  ;; Betrachte nun das rechtwinklige Dreieck mit Ecken bei Georgetown und
  ;; dem gesuchten Schnittort. Der Winkel bei Georgetown ist bet,
  ;; der andere spitze Winkel alp ist der gesuchte Schnittwinel, und die
  ;; Länge der Gegenkathete zu Georgetown ist der Abstand des Schnittortes
  ;; zum Meridian von Georgetown
  (setq x (atan (* (sin b) (tan bet))))
  (setq alp (acos (* (sin bet) (cos b))))
  ;; Fertig
  (setq Dreh1 (list (- l x) (* 2 alp) "Fall 1"))
  ;;; Fall 2: Georgetown und Dakar liegen zu unterschiedlichen Seiten des
  ;;; neuen Äquators.
  ;; Ein Schnittpunkt P des alten und neuen Äquators liegt zwischen Georgetown
  ;; und Dakar, im Abstand x zum Meridian von Georgetown und y zum Meridian von
  ;; Dakar. Betrachte die beiden rechtwinkligen Dreiecke mit Ecken
  ;; bei Georgetown, dem Meridian von Georgetown und P sowie
  ;; bei Dakar, dem Meridian von Dakar und P. Sei alp der Winkel des ersten
  ;; Dreiecks bei P, der des zweiten bei P ist dann pi/2-alp.
  ;; Es kommt
  ;;    sin(x)=tan(b)cot(alp)
  ;;    sin(y)=tan(B)tan(alp)
  ;; sowie
  ;;    sin(x)sin(y)=tan(b)tan(B)
  ;; oder
  ;;    2*tan(b)tan(B)=cos(x-y)-cos(x+y)=cos(x-y)-cos(d)
  ;; sei bet=x-y.
  (setq bet (acos (+ (* 2 (tan b) (tan B)) (cos d))))
  (setq x (/ (+ d bet) 2))
  (setq y (/ (- d bet) 2))
  (setq alp (atan (/ (tan B) (sin y))))
  ;; Das Doppelte von alp ist der Schnittwinkel des alten mit dem neuen Äquator
  (setq Dreh2a (list (+ l x) (* alp 2) "Fall 2a"))
  ;; Vertauschung von x und y liefert eine weitere Möglichkeit
  (setq alp (atan (/ (tan B) (sin x))))
  (setq Dreh2b (list (+ l y) (* alp 2) "Fall 2b")))

(defun lb-zu-aw (l b l1)
; l1 ist Länge eines Ortes O1 am Äquator, l und b die Länge und Breite eines
; weiteren Ortes O. Resultat ist (cons d phi), wobei d der Abstand von O zu
; O1 und phi der Winkel zwischen dem Äquator und der Gerade O O1 ist.
  (let (d phi (ld (- l l1)) cosd tanphi quadr)
    (if (? ld pi) (setq ld (- ld (* 2 pi))))
    (if (<= ld (- pi)) (setq ld (+ ld (* 2 pi))))
    (if (?= ld 0)
        (setq quadr 1)
      (setq quadr 2)
      (setq ld (- ld)))
    (if (?= b 0) nil
      (setq b (- b))
      (setq quadr (- 5 quadr)))
    (setq cosd (* (cos b) (cos ld)))
    (setq d (acos cosd))
    (setq tanphi (/ (tan b) (sin ld)))
    (setq phi (atan tanphi))
    (if (or (= quadr 2) (= quadr 3))
        (setq phi (- pi phi)))
    (if (? quadr 2) (setq phi (- phi)))
    (cons d phi)))

(defun aw-zu-lb (d phi l1)
; invers zu lb-zu-aw
  (let (l b ld tanld sinb quadr)
    (if (? phi 0)
        (setq quadr 1)
      (setq phi (- phi))
      (setq quadr 4))
    (if (<= phi (/ pi 2)) nil
      (setq phi (- pi phi))
      (setq quadr (- quadr 1))
      (if (= quadr 0) (setq quadr 2)))
    (setq tanld (* (cos phi) (tan d)))
    (setq ld (atan tanld))
    (if (< ld 0) (setq ld (+ ld pi)))
    (if (or (= quadr 2) (= quadr 3))
        (setq l (- l1 ld))
      (setq l (+ l1 ld)))
    (setq sinb (* (sin phi) (sin d)))
    (setq b (asin sinb))
    (if (? quadr 2) (setq b (- b)))
    (if (< l 0) (setq l (+ l (* 2 pi))))
    (if (?= l (* 2 pi)) (setq l (- l (* 2 pi))))
    (cons l b)))

(defun neue-Breite (l b Dreh &optional typ)
  (cdr
   (let
       (psi
        (x (lb-zu-aw l b (car Dreh)))
        (Drehwinkel (+ (cadr Dreh) (if typ 0 pi))))
     (setq psi (- (cdr x) Drehwinkel))
     (if (< psi 0) (setq psi (+ psi (* 2 pi))))
     (aw-zu-lb (car x) psi (car Dreh)))))

(defun Polspr-R (b ellipsoid)
  (let ((x (* (cos b) (car ellipsoid)))
        (y (* (sin b) (cdr ellipsoid))))
    (sqrt (+ (* x x) (* y y)))))

(defun Polspr-Delta (b-alt b-neu ellipsoid Name)
  (let ((ralt (Polspr-R b-alt ellipsoid))
        (rneu (Polspr-R b-neu ellipsoid)))
    (if (< 0 (setq rneu (- ralt rneu)))
        (message "%s Senkung %.2f km" Name rneu)
      (message "%s Hebung %.2f km" Name (- rneu)))))

(setq WGS84 (cons 6378.10408
                  6356.75130))

(setq GRS80 (cons 6378.1370
                  6356.7523141))

(defun Polsprung-Fall (l b Dreh &optional typ)
  (let ((bneu (neue-Breite l b Dreh typ))
        (bgf (/ 180 pi)))
    (message (caddr Dreh))
    (message "Breite: %.2f -> %.2f"
             (* bgf b)
             (* bgf bneu))
    (Polspr-Delta b bneu WGS84 "WGS84")))
;    (Polspr-Delta b bneu GRS80 "GRS80")

(defun Polsprung (l b)
  (Polsprung-Fall l b Dreh1)
  (Polsprung-Fall l b Dreh2a)
  (Polsprung-Fall l b Dreh2b))

; Berlin
(Polsprung (gms-zu-bogen 34 24)
           (gms-zu-bogen 52 31))

; NY
(Polsprung (- (gms-zu-bogen 70))
           (gms-zu-bogen 40 42))

; Anchorage
(Polsprung (- (gms-zu-bogen 149 53))
           (gms-zu-bogen 61 13))

; Asuncion
(Polsprung (- (gms-zu-bogen 57 40))
           (- (gms-zu-bogen 25 16)))

; Dakar
(Polsprung (- (gms-zu-bogen 17 26 30))
           (gms-zu-bogen 14 40 52))

; Georgetown (Guayana)
(Polsprung (- (gms-zu-bogen 58 10))
           (gms-zu-bogen 6 47))

; Canberra
(Polsprung (gms-zu-bogen 149 7 30)
                (- (gms-zu-bogen 35 18 30)))

; Darwin
(Polsprung (gms-zu-bogen 130 50)
                (- (gms-zu-bogen 12 28)))

; Brisbane
(Polsprung (gms-zu-bogen 153 2)
                (- (gms-zu-bogen 27 28)))

; Peking
(Polsprung (gms-zu-bogen 116 23 18)
                (gms-zu-bogen  39 55 44))

; Moskau
(Polsprung (gms-zu-bogen 37 40)
                (gms-zu-bogen 55 46))

(defun Dreh-verbal (Dreh)
  (let ((gbq (/ 180 pi)))
    (message "%s %.2f<sup?o</sup? wL %.2f<sup?o</sup?"
             (caddr Dreh)
             (* gbq (- (car Dreh)))
             (* gbq (if (? (cadr Dreh) pi)
                        (- (cadr Dreh) pi)
                      (cadr Dreh))))))

(defun Dreh-abst (l b Dreh)
  (let ((gbq (/ 180 pi)))
    (message "%s %.2f<sup?o</sup?"
             (caddr Dreh)
             (* gbq (acos (* (cos b) (cos (- l (car Dreh)))))))))

(Dreh-abst (- (gms-zu-bogen 58 10))
           (gms-zu-bogen 6 47)
           Dreh2b)


Benutzerkonto für Leserzuschriften


Gesamter Strang: