1
0
Fork 0

Generate poster using 2 buses more nearly of the bus stop

master
AlonsoDiCandia 2024-01-24 23:06:02 -03:00
parent 371da77fb0
commit 54daec5249
4 changed files with 20 additions and 22 deletions

View File

@ -25,22 +25,6 @@ def reescalar_imagen(input_path, output_path, nuevo_ancho, nuevo_alto):
def aprox(n):
return int(np.round(n))
def load_data():
data = {
"direction": "R",
"distance": 1948.575483806973,
"epochTime": 1674650956,
"latitude": -33.43729782104492,
"licensePlate": "LJHA57",
"longitude": -70.52730560302734,
"realtime": True,
"route": "401",
"routeId": "401",
"timeLabel": "09:49",
"tripId": "401-I-L-005"
}
return data
def approx_km(data):
distance_meters = data["distance"]
distance_km = distance_meters / 100 # Convert meters to kilometers
@ -97,8 +81,8 @@ def main():
print(data)
# Calcula el tiempo restante a la llegada
remaining_time1 = calc_remaining_time(data1)
remaining_time2 = calc_remaining_time(data2)
remaining_time1 = data1['timeRemaining']
remaining_time2 = data2['timeRemaining']
# Obtiene valores máximos y mínimo de rangos para desplegar en pantalla
min_time1, max_time1 = obtain_min_max_time(remaining_time1)
min_time2, max_time2 = obtain_min_max_time(remaining_time2)

View File

@ -1,6 +1,7 @@
#!/usr/bin/env python3
import requests
import pytz
from datetime import datetime, timedelta
@ -62,7 +63,8 @@ class Paradero:
def __generate_bus_list(self, info):
data_main = []
hora_actual = datetime.now().time()
zona_horaria_santiago = pytz.timezone('America/Santiago')
hora_actual_santiago = datetime.now(zona_horaria_santiago).time()
for i in range(len(info["GetInfoDeviceResponse"]["DetalleLineas"])):
@ -76,13 +78,23 @@ class Paradero:
bus_info["number_background_color"] = data["colorFondo"]
bus_info["letter_background_color"] = data["colorTexto"]
bus_info["patente"] = data["Llegadas"][0]["patente"]
diff = timedelta(hours = datetime.strptime(bus_info["timeLabel"], "%H:%M:%S").time().hour - hora_actual.hour,minutes = datetime.strptime(bus_info["timeLabel"], "%H:%M:%S").time().minute - hora_actual.minute,seconds=datetime.strptime(bus_info["timeLabel"], "%H:%M:%S").time().second - hora_actual.second)
bus_hour = datetime.strptime(bus_info["timeLabel"], "%H:%M:%S").time().hour if datetime.strptime(bus_info["timeLabel"], "%H:%M:%S").time().hour != 0 else 24
print(bus_hour, hora_actual_santiago.hour)
diff = timedelta(
hours = bus_hour - hora_actual_santiago.hour,
minutes = datetime.strptime(bus_info["timeLabel"], "%H:%M:%S").time().minute - hora_actual_santiago.minute,
seconds=datetime.strptime(bus_info["timeLabel"], "%H:%M:%S").time().second - hora_actual_santiago.second
)
print(diff.total_seconds())
bus_info["timeRemaining"] = int(abs(diff.total_seconds() // 60))
data_main.append(bus_info)
data_main = sorted(data_main, key=lambda x: x['timeRemaining'])
self.bus_list = data_main
for d in data_main:
print(d['timeRemaining'], d['timeLabel'])
def __serialize_data(self, response):
data = response.json()
self.__generate_bus_list(data)

View File

@ -1,4 +1,5 @@
matplotlib
requests
Pillow
numpy
numpy
pytz

View File

@ -52,7 +52,8 @@ class TimeAnnouncement(MyDraw):
if (int(max_time) <= 1):
text = "< 1 min"
elif (int(min_time) >= 10):
text = "> 10 min"
print(max_time)
text = f"> {max_time} min"
else:
text = f'{min_time} a {max_time} min'