Requisito previo: módulo Tkinter
En este artículo, vamos a escribir secuencias de comandos de Python para obtener la hora de la puesta y la salida del sol y vincularlas con la aplicación GUI. Antes de comenzar, debemos comprender el módulo suntime y geopy
Módulos necesarios:
módulo suntime: este módulo devolverá la biblioteca de python para el cálculo de la hora de la puesta y la salida del sol. Ejecute este comando en su terminal para la instalación.
pip install suntime
módulo geopy: este módulo localiza las coordenadas de direcciones, ciudades, países y puntos de referencia en todo el mundo utilizando geocodificadores de terceros y otras fuentes de datos. Nominatim es un geocodificador que se utiliza para datos de OpenStreetMap. Ejecute este comando en su terminal para la instalación.
pip install geopy
Acercarse:
- Importe todos los módulos necesarios.
- Obtenga latitud y longitud con geopy.
- Obtenga la hora del amanecer con el método Sun(latitude, longitude).get_sunrise_time() .
- Obtenga la hora del anochecer con el método Sun(latitude, longitude).get_sunset_time() .
A continuación se muestra la implementación:
Python3
# import required modules import datetime from suntime import Sun from geopy.geocoders import Nominatim # Nominatim API to get latitude and longitude geolocator = Nominatim(user_agent="geoapiExercises") # input place place = "delhi" location = geolocator.geocode(place) # latitude and longitude fetch latitude = location.latitude longitude = location.longitude sun = Sun(latitude, longitude) # date in your machine's local time zone time_zone = datetime.date(2020, 9,13) sun_rise = sun.get_local_sunrise_time(time_zone) sun_dusk = sun.get_local_sunset_time(time_zone) # display print("Sun rise at : ", sun_rise.strftime('%H:%M')) print("Dusk at : ",sun_dusk.strftime('%H:%M'))
Producción:
Sun rise at : 06:05 Dusk at : 18:28
Enlace con la aplicación GUI
Python3
# import modules from tkinter import * from geopy.geocoders import Nominatim import datetime from suntime import Sun # user defined function def sun(): try: geolocator = Nominatim(user_agent="geoapiExercises") ladd1 = str(e.get()) location1 = geolocator.geocode(ladd1) latitude = location1.latitude longitude = location1.longitude sun = Sun(latitude, longitude) time_zone = datetime.datetime.now() sun_rise = sun.get_local_sunrise_time(time_zone) sun_dusk = sun.get_local_sunset_time(time_zone) res_rise = sun_rise.strftime('%H:%M') res_dusk = sun_dusk.strftime('%H:%M') result1.set(res_rise) result2.set(res_dusk) except: result1.set("oops! something get wrong") # object of tkinter # and background set to light grey master = Tk() master.configure(bg='light grey') master.title("Sun") # Variable Classes in tkinter result1 = StringVar(); result2 = StringVar(); # Creating label for each information # name using widget Label Label(master, text="Enter place : " , bg = "light grey").grid(row=1, sticky=W) Label(master, text="Sunrise :", bg = "light grey").grid(row=3, sticky=W) Label(master, text="Dusk :", bg = "light grey").grid(row=4, sticky=W) # Creating label for class variable # name using widget Entry Label(master, text="", textvariable=result1, bg = "light grey").grid(row=3,column=1, sticky=W) Label(master, text="", textvariable=result2, bg = "light grey").grid(row=4,column=1, sticky=W) e = Entry(master,width = 50) e.grid(row=1, column=1) # creating a button using the widget b = Button(master, text="Check", command=sun, bg = "white") b.grid(row=1, column=2,columnspan=2, rowspan=2,padx=5, pady=5,) mainloop()
Producción:
Publicación traducida automáticamente
Artículo escrito por kumar_satyam y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA