aboutsummaryrefslogtreecommitdiff
path: root/src/gtfs_vigo_stops/stop_report.py
diff options
context:
space:
mode:
authorAriel Costas Guerrero <ariel@costas.dev>2025-11-14 14:06:31 +0100
committerAriel Costas Guerrero <ariel@costas.dev>2025-11-14 14:06:31 +0100
commit799091e285bf918c4028ade435d9c974e27bb206 (patch)
treeac53908772f808686562dd872d34c4dace18bbfe /src/gtfs_vigo_stops/stop_report.py
parente030d6feff065b0f412d7e51684a0b6e6eca7fec (diff)
Update generation script to fix issues and make it faster
Diffstat (limited to 'src/gtfs_vigo_stops/stop_report.py')
-rw-r--r--src/gtfs_vigo_stops/stop_report.py34
1 files changed, 27 insertions, 7 deletions
diff --git a/src/gtfs_vigo_stops/stop_report.py b/src/gtfs_vigo_stops/stop_report.py
index 7db751c..ab6bac8 100644
--- a/src/gtfs_vigo_stops/stop_report.py
+++ b/src/gtfs_vigo_stops/stop_report.py
@@ -2,6 +2,7 @@ import argparse
import os
import shutil
import sys
+import time
import traceback
from typing import Any, Dict, List
@@ -256,9 +257,24 @@ def process_date(
logger.warning(f"No stop arrivals found for date {date}")
return date, {}
+ logger.info(
+ f"Writing stop reports for {len(stop_arrivals)} stops for date {date}"
+ )
+
+ # Write individual stop JSON files
+ writing_start_time = time.perf_counter()
+ for stop_code, arrivals in stop_arrivals.items():
+ write_stop_json(output_dir, date, stop_code, arrivals)
+ writing_end_time = time.perf_counter()
+ writing_elapsed = writing_end_time - writing_start_time
+
+ logger.info(
+ f"Finished writing stop JSON reports for date {date} in {writing_elapsed:.2f}s"
+ )
+
# Write individual stop JSON files
+ writing_start_time = time.perf_counter()
for stop_code, arrivals in stop_arrivals.items():
- # Get the stop from 'stops' by value to get the coords
stop_by_code = stops_by_code.get(stop_code)
if stop_by_code is not None:
@@ -267,18 +283,22 @@ def process_date(
date,
stop_code,
arrivals,
- stop_by_code.stop_lat or 0.0,
- stop_by_code.stop_lon or 0.0,
+ stop_by_code.stop_25829_x or 0.0,
+ stop_by_code.stop_25829_y or 0.0,
)
- write_stop_json(output_dir, date, stop_code, arrivals)
+ writing_end_time = time.perf_counter()
+ writing_elapsed = writing_end_time - writing_start_time
+
+ logger.info(
+ f"Finished writing stop protobuf reports for date {date} in {writing_elapsed:.2f}s"
+ )
+
+ logger.info(f"Processed {len(stop_arrivals)} stops for date {date}")
- # Create summary for index
stop_summary = {
stop_code: len(arrivals) for stop_code, arrivals in stop_arrivals.items()
}
- logger.info(f"Processed {len(stop_arrivals)} stops for date {date}")
-
return date, stop_summary
except Exception as e:
logger.error(f"Error processing date {date}: {e}")