--- a/myway/myway_timeliness_calculate.php
+++ b/myway/myway_timeliness_calculate.php
@@ -29,7 +29,8 @@
//collect all observation not in delta
$query = "select * from myway_observations INNER JOIN myway_stops
-ON myway_observations.myway_stop=myway_stops.myway_stop
+ON myway_observations.myway_stop=myway_stops.myway_stop INNER JOIN myway_routes
+ON myway_observations.myway_route=myway_routes.myway_route
WHERE observation_id NOT IN
(
SELECT observation_id
@@ -50,18 +51,19 @@
//var_dump($obsv);
echo "
Observation {$obsv['observation_id']}:
{$obsv['myway_stop']} @ {$obsv['time']} on {$obsv['myway_route']}
";
- if ($obsv["stop_id"] == "") {
- echo "error, stop '{$obsv['myway_stop']}' unknown";
- continue;
- }
// convert timestamp into time of day and date
// timezones from http://www.postgresql.org/docs/8.0/static/datetime-keywords.html
$time = date("H:i:s", strtotime($obsv['time']));
$time_tz = date("H:i:s", strtotime($obsv['time'])) . " AESST";
- $search_time = date("H:i:s", strtotime($obsv['time']) - (30 * 60)); // 30 minutes margin
+ $search_time = date("H:i:s", strtotime($obsv['time']) - (60 * 60)); // 30 minutes margin
$date = date("c", strtotime($obsv['time']));
$timing_period = service_period(strtotime($date));
+ if (isset($obsv["stop_id"]) && $obsv["stop_id"] != "" && $obsv["stop_id"] != "*") {
$potentialStops = Array(getStop($obsv["stop_id"]));
+ } else {
+ echo "Potential stops are a bus station
";
+ $potentialStops = getStops("", trim(str_replace(Array("Arrival","Arrivals","Arrive Platform 3 Set down only.","Arrive","Set Down Only"), "", $obsv["myway_stop"])));
+ }
//:get myway_stops records
//:search by starts with stopcode and starts with street if street is not null
//no result, skip and display error
@@ -78,7 +80,7 @@
//:get myway_route record
//no result, skip and display error
//print out route
- $potentialRoutes = getRoutesByShortName(preg_replace("/[A-Z]/", "", $obsv["myway_route"]));
+ $potentialRoutes = getRoutesByShortName($obsv["route_short_name"]);
if (sizeof($potentialRoutes) < 1) {
echo "error, route '{$obsv["myway_route"]}' unknown";
continue;
@@ -95,7 +97,7 @@
echo "Matching route {$stopRoute['route_id']} found at stop #{$potentialStop['stop_id']}
";
$foundRoute = $stopRoute;
//if does get tripstoptimes for this route
- $trips = getStopTrips($potentialStop['stop_id'], $timing_period, $search_time);
+ $trips = getStopTrips($potentialStop['stop_id'], $timing_period, $search_time, 10, $potentialRoute['route_short_name']);
foreach ($trips as $trip) {
//echo $trip['route_id']." ".$stopRoute['route_id'].";";
if ($trip['route_id'] == $stopRoute['route_id']) {
@@ -108,12 +110,16 @@
"timeDiff" => $timeDiff,
"stop_id" => $potentialStop['stop_id'],
"stop_sequence" => $trip['stop_sequence'],
+ "route_name" => "{$trip['route_short_name']} {$trip['trip_headsign']}",
"route_id" => $trip['route_id']
);
echo "Found trip {$trip['trip_id']} at stop {$potentialStop['stop_id']} (#{$potentialStop['stop_name']}, sequence #{$trip['stop_sequence']})
";
echo "Arriving at {$timedTrip['arrival_time']}, difference of " . round($timeDiff / 60, 2) . " minutes
";
+ } else {
+ echo "{$trip['route_id']} != {$stopRoute['route_id']}
";
}
}
+ if (sizeof($timeDeltas) == 0) echo "Error, no trips found.
";
break; // because have found route
}
}
@@ -130,17 +136,25 @@
usort($timeDeltas, "abssort");
$lowestDelta = $timeDeltas[0]["timeDiff"];
if (sizeof($timeDeltas) != 0) {
+ if (abs($lowestDelta) > 9999) {
+ echo "Difference of " . round($lowestDelta / 60, 2) . " minutes is too high. Will not record this observation
";
+ } else {
echo "Lowest difference of " . round($lowestDelta / 60, 2) . " minutes will be recorded for this observation
";
$observation_id = $obsv['observation_id'];
+
+ $route_name = $timeDeltas[0]["route_name"];
$route_id = $timeDeltas[0]["route_id"];
$stop_id = $timeDeltas[0]["stop_id"];
+ $myway_stop = $obsv["myway_stop"];
$stop_sequence = $timeDeltas[0]["stop_sequence"];
- $stmt = $conn->prepare("insert into myway_timingdeltas (observation_id, route_id, stop_id, timing_delta, time, date, timing_period, stop_sequence)
- values (:observation_id, :route_id, :stop_id, :timing_delta, :time, :date, :timing_period, :stop_sequence)");
+ $stmt = $conn->prepare("insert into myway_timingdeltas (observation_id, route_id, stop_id, timing_delta, time, date, timing_period, stop_sequence,myway_stop,route_name)
+ values (:observation_id, :route_id, :stop_id, :timing_delta, :time, :date, :timing_period, :stop_sequence,:myway_stop,:route_name)");
$stmt->bindParam(':observation_id', $observation_id);
$stmt->bindParam(':route_id', $route_id);
+ $stmt->bindParam(':route_name', $route_name);
$stmt->bindParam(':stop_id', $stop_id);
+ $stmt->bindParam(':myway_stop', $myway_stop);
$stmt->bindParam(':timing_delta', $lowestDelta);
$stmt->bindParam(':time', $time_tz);
$stmt->bindParam(':date', $date);
@@ -153,6 +167,8 @@
}
var_dump($conn->errorInfo());
flush();
+
+ }
}
flush();
}