From 799091e285bf918c4028ade435d9c974e27bb206 Mon Sep 17 00:00:00 2001 From: Ariel Costas Guerrero Date: Fri, 14 Nov 2025 14:06:31 +0100 Subject: Update generation script to fix issues and make it faster --- src/gtfs_vigo_stops/stop_report.py | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) (limited to 'src/gtfs_vigo_stops/stop_report.py') 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}") -- cgit v1.3