generateTripTime = (
route,
direction,
rush,
stop_hour,
standard_frequency,
rush_hour_frequency
) => {
const service_id = `GPE:${rush ? "rh" : "sh"}-${stop_hour}`;
const trip_headsign = new_route_headsigns[route][direction];
const trips = [];
const stop_times = [];
const { stops, trip_duration } = new_routes_stop_sequences[route][direction];
const morning_breakpoint = (stop_hour + 0.25) * 60 * 60 + 24 * 60 * 60;
const morning_rush_start = 7 * 60 * 60;
const morning_rush_end = 10 * 60 * 60;
const evening_rush_start = 16 * 60 * 60;
const evening_rush_end = 20 * 60 * 60;
let time_s = 5.5 * 60 * 60;
while (time_s < morning_breakpoint) {
if (!rush) {
const trip = buildTrip(
route,
service_id,
trip_headsign,
direction,
time_s
);
trips.push(trip);
const times = buildStopTimes(
trip.trip_id,
route,
direction,
time_s,
standard_frequency
);
stop_times.push(times);
time_s = time_s + standard_frequency;
} else {
if (
(time_s > morning_rush_start && time_s < morning_rush_end) ||
(time_s > evening_rush_start && time_s < evening_rush_end)
) {
const trip = buildTrip(
route,
service_id,
trip_headsign,
direction,
time_s
);
trips.push(trip);
const times = buildStopTimes(
trip.trip_id,
route,
direction,
time_s,
rush_hour_frequency
);
stop_times.push(times);
time_s = time_s + rush_hour_frequency;
} else {
const trip = buildTrip(
route,
service_id,
trip_headsign,
direction,
time_s
);
trips.push(trip);
const times = buildStopTimes(
trip.trip_id,
route,
direction,
time_s,
standard_frequency
);
stop_times.push(times);
time_s = time_s + standard_frequency;
}
}
}
return { trips, stop_times };
}