Calculer le lever et le coucher du soleil pour une coordonnée GPS dans PostgreSQL
Je veux classer timestamp
types de données dans une table PostgreSQL en ce qui concerne de savoir si elles peuvent être considérées comme "à jour" ou "nuit". En d'autres termes, je veux être en mesure de calculer le lever et le coucher du soleil avec précision, étant donné une certaine position GPS.
Je sais plpgsql et plpython.
- En passant par accepté de répondre, il semble que le titre peut être changé de "PostgreSQL" pour "Python". Est-ce une interprétation correcte?
Vous devez vous connecter pour publier un commentaire.
Prendre un coup d'oeil à ces liens:
Je sais que c'est yonks vieux, mais j'ai pensé que je pourrais partager avec vous car je n'ai trouvé aucune solution rapide.
Il utilise le Soleil de la classe (voir ci-dessous) que j'ai construit en suivant ce lien.
Il semble être exacte à l'intérieur de quelques minutes, au moins là où je vis. Pour plus de précision, le zénith param dans le calcSunTime() la méthode pourrait utiliser le réglage de précision. Voir le lien ci-dessus pour plus d'info.
Je l'utilise pour calculer le Lever du soleil, Coucher de soleil, Aube et au Crépuscule des temps.
Suffit de remplacer le X avec vos Coordonnées. Noter que les temps sont retournés UTC de sorte que vous devez ajouter à votre fuseau horaire heures si nécessaire.
Utilisation Astral actuel (version 1.6). Le premier exemple dans la documentation montre le calcul de lever et de coucher du soleil en un lieu donné. Un exemple simple avec la coutume de latitude et de longitude serait:
Donne:
Alors vous pouvez peut-être utiliser cette comme un point de départ pour la rédaction de votre propre postgres (ou postgis) des fonctions à l'aide plpython au lieu du droit de prêt.
Astral().sun_utc(date.today(), latitude, longitude)
ou des variations locales pour les différentes twilight périodes, etcJe suis en utilisant Sun.py. Aujourd'hui j'ai eu la valeur de
minutes = 60
,UT = 12.9979740551
Soleil en classe: