SunCalc ist eine kleine BSD-lizenzierte JavaScript-Bibliothek zur Berechnung des Sonnenstands, der Sonnenlichtphasen (Zeiten für Sonnenaufgang, Sonnenuntergang, Abenddämmerung usw.), des Mondstands und der Mondphase für den gegebenen Ort und die gegebene Zeit, erstellt von Vladimir Agafonkin (@mourner) as ein Teil des SunCalc.net-Projekts.
Die meisten Berechnungen basieren auf den Formeln, die in den hervorragenden Astronomy Answers-Artikeln über den Stand der Sonne und der Planeten angegeben sind. Über die verschiedenen von SunCalc berechneten Dämmerungsphasen können Sie im Dämmerungsartikel auf Wikipedia nachlesen.
// get today's sunlight times for London
var times = SunCalc . getTimes ( new Date ( ) , 51.5 , - 0.1 ) ;
// format sunrise time from the Date object
var sunriseStr = times . sunrise . getHours ( ) + ':' + times . sunrise . getMinutes ( ) ;
// get position of the sun (azimuth and altitude) at today's sunrise
var sunrisePos = SunCalc . getPosition ( times . sunrise , 51.5 , - 0.1 ) ;
// get sunrise azimuth in degrees
var sunriseAzimuth = sunrisePos . azimuth * 180 / Math . PI ;
SunCalc ist auch als NPM-Paket verfügbar:
$ npm install suncalc
var SunCalc = require ( 'suncalc' ) ;
SunCalc . getTimes ( /*Date*/ date , /*Number*/ latitude , /*Number*/ longitude , /*Number (default=0)*/ height )
Gibt ein Objekt mit den folgenden Eigenschaften zurück (jedes ist ein Date
Objekt):
Eigentum | Beschreibung |
---|---|
sunrise | Sonnenaufgang (oberer Rand der Sonne erscheint am Horizont) |
sunriseEnd | Sonnenaufgang endet (Unterkante der Sonne berührt den Horizont) |
goldenHourEnd | Die goldene Morgenstunde (sanftes Licht, beste Zeit zum Fotografieren) endet |
solarNoon | Sonnenmittag (Sonne steht am höchsten) |
goldenHour | Die goldene Abendstunde beginnt |
sunsetStart | Der Sonnenuntergang beginnt (der untere Rand der Sonne berührt den Horizont) |
sunset | Sonnenuntergang (Sonne verschwindet hinter dem Horizont, abendliche bürgerliche Dämmerung beginnt) |
dusk | Abenddämmerung (abendliche nautische Dämmerung beginnt) |
nauticalDusk | nautische Dämmerung (abendliche astronomische Dämmerung beginnt) |
night | Es beginnt die Nacht (dunkel genug für astronomische Beobachtungen) |
nadir | Nadir (dunkelster Moment der Nacht, Sonne steht am niedrigsten) |
nightEnd | Die Nacht endet (die astronomische Morgendämmerung beginnt) |
nauticalDawn | nautische Morgendämmerung (die morgendliche nautische Dämmerung beginnt) |
dawn | Morgendämmerung (die morgendliche nautische Dämmerung endet, die morgendliche bürgerliche Dämmerung beginnt) |
SunCalc . addTime ( /*Number*/ angleInDegrees , /*String*/ morningName , /*String*/ eveningName )
Fügt den von SunCalc.getTimes
zurückgegebenen Ergebnissen eine benutzerdefinierte Zeit hinzu, wenn die Sonne den angegebenen Winkel erreicht.
Die Eigenschaft SunCalc.times
enthält alle aktuell definierten Zeiten.
SunCalc . getPosition ( /*Date*/ timeAndDate , /*Number*/ latitude , /*Number*/ longitude )
Gibt ein Objekt mit den folgenden Eigenschaften zurück:
altitude
: Sonnenhöhe über dem Horizont im Bogenmaß, z. B. 0
am Horizont und PI/2
im Zenit (direkt über Ihrem Kopf)azimuth
: Sonnenazimut im Bogenmaß (Richtung entlang des Horizonts, gemessen von Süden nach Westen), z. B. 0
ist Süden und Math.PI * 3/4
ist Nordwesten SunCalc . getMoonPosition ( /*Date*/ timeAndDate , /*Number*/ latitude , /*Number*/ longitude )
Gibt ein Objekt mit den folgenden Eigenschaften zurück:
altitude
: Mondhöhe über dem Horizont im Bogenmaßazimuth
: Mondazimut im Bogenmaßdistance
: Entfernung zum Mond in KilometernparallacticAngle
: parallaktischer Winkel des Mondes im Bogenmaß SunCalc . getMoonIllumination ( /*Date*/ timeAndDate )
Gibt ein Objekt mit den folgenden Eigenschaften zurück:
fraction
: beleuchteter Bruchteil des Mondes; variiert von 0.0
(Neumond) bis 1.0
(Vollmond)phase
: Mondphase; variiert von 0.0
bis 1.0
, wie unten beschriebenangle
: Mittelpunktswinkel im Bogenmaß des beleuchteten Randes des Mondes, gerechnet nach Osten vom Nordpunkt der Scheibe; Der Mond nimmt zu, wenn der Winkel negativ ist, und nimmt ab, wenn er positiv istDer Mondphasenwert sollte wie folgt interpretiert werden:
Phase | Name |
---|---|
0 | Neumond |
Wachsender Halbmond | |
0,25 | Erstes Viertel |
Wachsender Gibbous | |
0,5 | Vollmond |
Abnehmender Gibbous | |
0,75 | Letztes Viertel |
Abnehmender Halbmond |
Durch Subtrahieren des parallacticAngle
vom angle
erhält man den Zenitwinkel des hellen Randes des Mondes (gegen den Uhrzeigersinn). Der Zenitwinkel kann verwendet werden, um die Mondform aus der Perspektive des Beobachters zu zeichnen (z. B. Mond, der auf dem Rücken liegt).
SunCalc . getMoonTimes ( /*Date*/ date , /*Number*/ latitude , /*Number*/ longitude [ , inUTC ] )
Gibt ein Objekt mit den folgenden Eigenschaften zurück:
rise
: Mondaufgangszeit als Date
set
: Monduntergangszeit als Date
alwaysUp
: true
wenn der Mond nie auf-/untergeht und sich tagsüber immer über dem Horizont befindetalwaysDown
: true
wenn der Mond immer unter dem Horizont ist Standardmäßig wird während des Tages des lokalen Benutzers (von 0 bis 24 Stunden) nach Mondaufgang und -untergang gesucht. Wenn inUTC
auf „true“ gesetzt ist, wird stattdessen das angegebene Datum zwischen 0 und 24 UTC-Stunden gesucht.
parallacticAngle
-Berechnung zu getMoonPosition
hinzugefügt.getMoonIllumination
das heutige Datum verwendet.inUTC
-Argument zu getMoonTimes
hinzugefügt. SunCalc.getMoonTimes
zur Berechnung der Mondaufgangs- und -untergangszeiten hinzugefügt. SunCalc.times
Eigenschaft mit definierten Tageslichtzeiten.SunCalc.getTimes
-Leistung. phase
zu SunCalc.getMoonIllumination
-Ergebnissen hinzugefügt (Mondphase).SunCalc.getMoonIllumination
(anstelle von getMoonFraction
) hinzugefügt, das ein Objekt mit fraction
und angle
(Winkel des beleuchteten Randes des Mondes) zurückgibt. SunCalc.getMoonFraction
-Funktion hinzugefügt, die den beleuchteten Anteil des Mondes zurückgibt. SunCalc.getMoonPosition
-Funktion hinzugefügt.SunCalc.addTime
-Funktion hinzugefügt.