Ich habe UTC-Zeit (Stunden, Minuten, Sekunden), Längengrad (Grad E), Breitengrad (Grad N) und Datum. Kann mir jemand einen Code zur Berechnung des Sonnenzenitwinkels in Python 2.7 zur Verfügung stellen?Wie können wir die Sonnenposition an einem bestimmten Ort an einem bestimmten Tag und zu einer bestimmten Uhrzeit berechnen?
Antwort
Es ist ein interessantes Problem und ich denke, ich habe eine gute Antwort - nun, zumindest Startpunkte.
Schauen Sie sich die tolle astropy
package. Ich glaube, dass Sie die coordinates
module verwenden müssen.
Etwas in dieser Richtung:
import astropy.coordinates as coord
from astropy.time import Time
import astropy.units as u
loc = coord.EarthLocation(lon=0.1 * u.deg,
lat=51.5 * u.deg)
now = Time.now()
altaz = coord.AltAz(location=loc, obstime=now)
sun = coord.get_sun(now)
print(sun.transform_to(altaz).alt)
Hier bekommen wir den Winkel der Sonne über dem Horizont für die 0.1
Grad Länge und Breite 51.5
Lage an der aktuellen Zeit.
FYI, .zen
würde Ihnen den Zenitwinkel geben.
@ alecxe Antwort ist groß, aber ich dachte, dass ich eine leichte Modifikation hinzufügen würde, die zu dem, was die ursprünglichen Frage etwas näher ist fragt (der zenithal Winkel bei einer bestimmten Zeit)
from astropy.coordinates import get_sun, AltAz, EarthLocation
from astropy.time import Time
sun_time = Time('2017-12-6 17:00') #UTC time
loc = EarthLocation.of_address('Baltimore, MD') # anything the google geocoding API resolves
altaz = AltAz(obstime=sun_time, location=loc)
zen_ang = get_sun(sun_time).transform_to(altaz).zen
zen_ang
ist dann ein Angle
Objekt - sehen Sie mehr über diese in the docs, aber im Grunde arbeiten sie wie numpy
Skalare mit zugehörigen Einheiten von "Grad".
- 1. Planen Sie die lokale Benachrichtigung an einem bestimmten Tag und zu einer bestimmten Uhrzeit.
- 2. Link-Schaltfläche an einem bestimmten Ort hinzufügen
- 3. mit vimfiles an einem bestimmten Ort
- 4. Erstellen unsichtbarer Ordner an einem bestimmten Ort
- 5. Objekt an einem bestimmten Ort zusammenführen?
- 6. Erhalten ersten Termin an einem bestimmten Tag
- 7. an einem bestimmten Index
- 8. Wie kann ich an einem bestimmten Datum oder zu einer bestimmten Uhrzeit ziehen?
- 9. Stapel an bestimmten Ort verschieben
- 10. Python-Spracherkennungsprogramm neigt sich an einem bestimmten Ort zu hängen
- 11. Ändern Sie die Uhrzeit an einem bestimmten Datum mit Javascript
- 12. Bild schwebt, wenn die Maus an einem bestimmten Ort ist
- 13. wie ein bestimmtes Zeichen an einem bestimmten Ort auswählen
- 14. Wie reservieren Sie Speicher an einem bestimmten Ort?
- 15. Einstellung Bild an einem bestimmten Ort in Container
- 16. Der beste Weg, Mitternacht an einem bestimmten Tag in einer bestimmten Zeitzone in Rails zu bekommen
- 17. Hinzufügen von subElement an einem bestimmten Ort mit xml.dom.minidom (appendChild)
- 18. Xamarin - GoogleMap-Klasse Umzug an bestimmten Ort
- 19. Verwendung der Alarmmanager-Klasse zur Benachrichtigung über ein Ereignis an einem bestimmten Datum und zu einer bestimmten Uhrzeit?
- 20. machen eine Aktivität, die an einem bestimmten Tag öffnet
- 21. So platzieren Sie Absätze mit iTextSharp an einem bestimmten Ort
- 22. Können wir einen Windows-Dienst für eine Webanwendung verwenden, die eine E-Mail an einem bestimmten Datum und zu einer bestimmten Uhrzeit auslösen kann?
- 23. Eventful API: Suche nach Ereignissen an einem bestimmten Ort
- 24. Wordpress Media-Uploader an einem bestimmten Ort speichern
- 25. API zum Nachschlagen des Firmennamens, an einem bestimmten Ort?
- 26. Clojure Artikel von Vector an einem bestimmten Ort entfernen
- 27. iOS - So rufen Sie eine App zu einer bestimmten Uhrzeit und einem bestimmten Datum auf
- 28. C++ Ofstream erstellt keine Datei an einem bestimmten Ort
- 29. Bild von URL an einem bestimmten Ort in Android speichern
- 30. Facebook Check-ins an einem bestimmten Ort suchen
Warum verwenden sie ihre eigene "Time" -Klasse anstelle der Standard "Datetime"? –
@MarkRansom Ich denke, die 'AltAz' erwartet eine' Time() 'Instanz, aber nicht sicher - immer noch die Kräfte des Pakets zu erkunden. Vielen Dank. – alecxe
Vielen Dank für Ihre schnelle Antwort Alecxe. Ich hoffe, dass dies für mich hilfreich sein wird. Nochmals vielen Dank –