Unterschiedliche Sonnenuntergangszeiten am selben Ort aufgrund der Höhenlage

Ich und mein Freund haben den Sonnenuntergang am selben Ort beobachtet (in meinem Land beträgt der Breitengrad ungefähr 40 Grad). Ich bin auf Meereshöhe und mein Freund ist auf einer Anhöhe. Er beobachtete den Sonnenuntergang mit etwa 4 Minuten Unterschied zu mir. Er ist Physiker, also hat er mich herausgefordert, seine Höhe herauszufinden. Irgendwelche Ideen, wie man diese Informationen nutzt und die Herausforderung gewinnt? Ich habe hier einige Informationen auf Wikipedia gefunden, kann aber nicht viel verstehen. Jede Idee zur Lösung dieses Problems wird geschätzt. Vielen Dank im Voraus für Ihre Hilfe.

Sie müssen etwas genauer sagen, wo Ihr Problem liegt - zumal Sie bereits auf eine Erklärung hinweisen. Wir können hier kein ganzes Buch über das Thema schreiben und raten, wo Ihr eigentliches Problem beim Verständnis des Problems liegt.
@uhoh ja, das war auch meine Vermutung. Tatsächlich wäre der Burj Khalifa hoch genug für eine 4-minütige Verzögerung.
@oh ok. Ich habe den Kommentar entfernt, da ich die Annahmen in meiner Antwort erkläre. Es wäre immer noch schön, ein paar weitere Informationen von OP zu haben
@EricDuminil hoffentlich werden sie, obwohl sie "nur ein Gast" sind, vielleicht kommen sie noch einmal vorbei und klären dies und fragen einen anderen! :-)

Antworten (2)

Auf der Seite, auf die Sie verweisen, geht es um Sonnenauf- und -untergang während des ganzen Jahres, aber was Sie wirklich interessiert, sind Unterschiede in der Geometrie an einem Tag. Dies drückt sich manchmal darin aus, dass verschiedene Beobachter den Horizont in unterschiedlichen Entfernungen sehen , oder manchmal als Winkel, eine „Senkung“ des Horizonts, wenn man ihn aus größerer Höhe betrachtet. Wenn Sie über diese Geometrie nachdenken, sollten Sie mit der Ausarbeitung der Antwort beginnen.

Annahmen

Nehmen wir an, Ihr Freund und Sie befinden sich an exakt denselben Koordinaten, aber auf unterschiedlichen Höhen (z. B. direkt am Rand einer Klippe oder im selben Gebäude, aber auf unterschiedlichen Stockwerken).

Sowohl der Breiten- als auch der Längengrad beeinflussen die Zeit des Sonnenuntergangs. Wenn Sie und Ihr Freund sich also an verschiedenen Orten befinden, haben Sie nicht genügend Informationen, um die Frage zu beantworten.

Python-Bibliothek

Astral scheint eine interessante Bibliothek für Ihre Aufgabe zu sein:

Astral ist ein Python-Paket zur Berechnung der Zeiten verschiedener Aspekte der Sonne und der Mondphasen.

Es berücksichtigt die Höhe des Beobachters :

Die Zeiten der Sonne, die Sie erleben, hängen davon ab, was Ihnen den Blick darauf versperrt. Es kann entweder durch den Horizont oder ein anderes geografisches Merkmal (z. B. Berge) verdeckt sein.

Wenn der Horizont Sie am Boden verdeckt und Sie sich auf einer Höhe über dem Boden befinden, dann hängen die Zeiten der Sonne davon ab, wie weit Sie aufgrund Ihrer Höhe weiter um die Erde sehen können (die Sonne geht früher auf und später unter).

Höhen_Horizont

Code

Nach der Installation des Pakets (Version 2.2.) ist es eine einfache Aufgabe, die Sonnenaufgangszeit für einen bestimmten Ort und ein bestimmtes Datum zu berechnen. Ich habe Barcelona gewählt, weil es in der Nähe von 40 ° N und auf Meereshöhe liegt:

# pip install 'astral==2.2'
from astral import LocationInfo, sun
from astral.location import Location
loc = Location(LocationInfo('Barcelona','Spain', 'Europe/Madrid', 41.3851, 2.1734))
loc.sunset(observer_elevation=0)
#=> datetime.datetime(2020, 6, 12, 21, 25, 6, 803485, tzinfo=<DstTzInfo 'Europe/Madrid' CEST+2:00:00 DST>)

Das letzte Argument ist die Höhe. Nachdem Sie eine Weile damit gespielt haben, sieht es so aus, als würde ein Beobachter in 715 m Höhe den Sonnenuntergang 4 Minuten später sehen als ein Beobachter am Strand:

loc.sunset(observer_elevation=715)
# => datetime.datetime(2020, 6, 12, 21, 29, 6, 987591, tzinfo=<DstTzInfo 'Europe/Madrid' CEST+2:00:00 DST>)

Der Algorithmus war in früheren Versionen fehlerhaft und wurde aktualisiert.

Zeitversatz vs. Höhe

Hier ist ein kleines Diagramm. Ich bin mir nicht sicher, warum die Kurve so aussieht:

Geben Sie hier die Bildbeschreibung ein

Entsprechender Code:

import matplotlib.pyplot as plt
import numpy as np
elevations = np.linspace(0, 2000, 1000)
sunsets = [(loc.sunset(observer_elevation=z) - loc.sunset(observer_elevation=0)).seconds/60 for z in elevations]
ax = plt.subplot()
plt.plot(elevations, sunsets, label="Sunset time offset")
ax.set_title("Sunset in Barcelona")
ax.set_xlabel('Elevation [m]')
ax.set_ylabel('Offset [minutes]')
plt.show()