Chcę obliczyć czas wschodu i zachodu słońca dla całego roku dla danej lokalizacji, biorąc pod uwagę topografię. Być może wschód / zachód słońca nie są odpowiednimi terminami, ale chcę, aby czas, w którym słońce wschodzi nad horyzontem, i czas, w którym spada on poniżej horyzontu, biorąc pod uwagę wszelkie wzgórza.
Używam QGIS lub GRASS. Mogę użyć r.horizon do wygenerowania kąta horyzontu z określonego punktu, ale nie jestem pewien, jak się tam dostać do czasów wschodu / zachodu słońca.
Odpowiedzi:
Zainstalowałem efemiczny pakiet python w moim systemie GNU / Debian Linux i mogłem go używać w konsoli Python QGIS. Stworzyłem obserwatora dla punktu w pobliżu jeziora Utah (USA) i obliczono wschodzące i zachodzące słońce na dzień „2010/6/21”. Skrypt był:
Po uruchomieniu w Python Console QGIS wynik był następujący:
Oto odpowiedź.
Uwaga do edycji :
Definiowanie nowego horyzontu (np. 5 stopni):
wynik to:
źródło
Możesz użyć biblioteki takiej jak PyEphem, aby znaleźć, dla danej lokalizacji, wysokości, dnia, czasu (ów) i planety;) kątów azymutu i wysokości słońca.
źródło
Możesz użyć do tego trochę Pythona, ale najpierw musisz wygenerować słownik lub tabelę, z pozycji obserwatora, pod kątem kąta do horyzontu świata rzeczywistego. Musiałoby to być, powiedzmy, w odstępach co 1 stopień, przy czym 0 = prawdziwa północ i dla każdego stopnia podając kąt horyzontu. To może pochodzić z twojego r.horizon.
Możesz następnie użyć
pyephem
do a) stworzyćobserver
szerokość geograficzną, długość i wysokość swojego obserwatora i dla każdej minuty danego dnia użyć go do obliczenia pozornych pozycji słońca, byłyby one podane jako cztery wartości: ra, dec, alt i az.Następnie dla każdej wartości czasu możesz porównać alt z wartością z tabeli wysokości w tym azymucie, a gdy alt jest większa niż wartość w tabeli, będziesz mógł zobaczyć słońce.
Możliwe jest nawet, że uda ci się znaleźć punkty, w których w danym dniu słońce wschodzi w dolinie, a następnie opuszcza miejsce za górą, a następnie ponownie pojawia się za lub po drugiej stronie góry.
źródło