split aws startup script into sections
--- /dev/null
+++ b/.box
@@ -1,1 +1,5 @@
+shared_writable_dirs:
+ - /labs/tiles
+ - /lib/staticmaplite/cache
+php_extensions: [pgsql, pdo, pdo_pgsql, curl]
--- a/aws/awsStartup.sh
+++ b/aws/awsStartup.sh
@@ -5,38 +5,9 @@
#postgres postgres-server php-pg
#http://www.how2forge.org/installing-lighttpd-with-php5-and-mysql-support-on-fedora-12
-cp /root/aws.php /tmp/
-mkdir /var/www/lib/staticmaplite/cache
-chcon -h system_u:object_r:httpd_sys_content_t /var/www
-chcon -R -h root:object_r:httpd_sys_content_t /var/www/*
-chcon -R -t httpd_sys_content_rw_t /var/www/lib/staticmaplite/cache
-chmod -R 777 /var/www/lib/staticmaplite/cache
-chcon -R -t httpd_sys_content_rw_t /var/www/labs/tiles
-chmod -R 777 /var/www/labs/tiles
-wget http://s3-ap-southeast-1.amazonaws.com/busresources/cbrfeed.zip \
--O /var/www/cbrfeed.zip
+sh busuiphp.sh
+sh busuidb.sh
+sh busuiotp.sh
-createdb transitdata
-createlang -d transitdata plpgsql
-psql -d transitdata -f /var/www/lib/postgis.sql
-# curl https://github.com/maxious/ACTBus-ui/raw/master/transitdata.cbrfeed.sql.gz -o transitdata.cbrfeed.sql.gz
-#made with pg_dump transitdata | gzip -c > transitdata.cbrfeed.sql.gz
-gunzip /var/www/transitdata.cbrfeed.sql.gz
-psql -d transitdata -f /var/www/transitdata.cbrfeed.sql
-#createuser transitdata -SDRP
-#password transitdata
-#psql -d transitdata -c \"GRANT SELECT ON TABLE agency,calendar,calendar_dates,routes,stop_times,stops,trips TO transitdata;\"
-#psql -d transitdata -c "GRANT SELECT,INSERT ON TABLE myway_observations,myway_routes,myway_stops,myway_timingdeltas TO transitdata;"
-#psql -d transitdata -c "GRANT SELECT,INSERT,UPDATE ON TABLE myway_routes,myway_stops TO transitdata;"
-##psql -d transitdata -c "GRANT SELECT ON ALL TABLES IN SCHEMA public TO transitdata;"
-php /var/www/updatedb.php
-wget http://s3-ap-southeast-1.amazonaws.com/busresources/Graph.obj \
--O /tmp/Graph.obj
-rm -rfv /usr/share/tomcat6/webapps/opentripplanner*
-wget http://s3-ap-southeast-1.amazonaws.com/busresources/opentripplanner-webapp.war \
--O /usr/share/tomcat6/webapps/opentripplanner-webapp.war
-wget http://s3-ap-southeast-1.amazonaws.com/busresources/opentripplanner-api-webapp.war \
--O /usr/share/tomcat6/webapps/opentripplanner-api-webapp.war
-/etc/init.d/tomcat6 restart
--- /dev/null
+++ b/aws/busuidb.sh
@@ -1,1 +1,14 @@
-
+createdb transitdata
+createlang -d transitdata plpgsql
+psql -d transitdata -f /var/www/lib/postgis.sql
+# curl https://github.com/maxious/ACTBus-ui/raw/master/transitdata.cbrfeed.sql.gz -o transitdata.cbrfeed.sql.gz
+#made with pg_dump transitdata | gzip -c > transitdata.cbrfeed.sql.gz
+gunzip /var/www/transitdata.cbrfeed.sql.gz
+psql -d transitdata -f /var/www/transitdata.cbrfeed.sql
+#createuser transitdata -SDRP
+#password transitdata
+#psql -d transitdata -c "GRANT SELECT ON TABLE agency,calendar,calendar_dates,routes,stop_times,stops,trips TO transitdata;"
+#psql -d transitdata -c "GRANT SELECT,INSERT ON TABLE myway_observations,myway_routes,myway_stops,myway_timingdeltas TO transitdata;"
+#psql -d transitdata -c "GRANT SELECT,INSERT,UPDATE ON TABLE myway_routes,myway_stops TO transitdata;"
+##psql -d transitdata -c "GRANT SELECT ON ALL TABLES IN SCHEMA public TO transitdata;"
+php /var/www/updatedb.php
--- /dev/null
+++ b/aws/busuiotp.sh
@@ -1,1 +1,10 @@
+wget http://s3-ap-southeast-1.amazonaws.com/busresources/Graph.obj \
+-O /tmp/Graph.obj
+/etc/init.d/tomcat6 stop
+rm -rfv /usr/share/tomcat6/webapps/opentripplanner*
+wget http://s3-ap-southeast-1.amazonaws.com/busresources/opentripplanner-webapp.war \
+-O /usr/share/tomcat6/webapps/opentripplanner-webapp.war
+wget http://s3-ap-southeast-1.amazonaws.com/busresources/opentripplanner-api-webapp.war \
+-O /usr/share/tomcat6/webapps/opentripplanner-api-webapp.war
+/etc/init.d/tomcat6 restart
--- /dev/null
+++ b/aws/busuiotp.testing.sh
@@ -1,1 +1,10 @@
+wget http://s3-ap-southeast-1.amazonaws.com/busresources/testing/Graph.obj \
+-O /tmp/Graph.obj
+/etc/init.d/tomcat6 stop
+rm -rfv /usr/share/tomcat6/webapps/opentripplanner*
+wget http://s3-ap-southeast-1.amazonaws.com/busresources/testing/opentripplanner-webapp.war \
+-O /usr/share/tomcat6/webapps/opentripplanner-webapp.war
+wget http://s3-ap-southeast-1.amazonaws.com/busresources/testing/opentripplanner-api-webapp.war \
+-O /usr/share/tomcat6/webapps/opentripplanner-api-webapp.war
+/etc/init.d/tomcat6 restart
--- /dev/null
+++ b/aws/busuiphp.sh
@@ -1,1 +1,10 @@
-
+cp /root/aws.php /tmp/
+mkdir /var/www/lib/staticmaplite/cache
+chcon -h system_u:object_r:httpd_sys_content_t /var/www
+chcon -R -h root:object_r:httpd_sys_content_t /var/www/*
+chcon -R -t httpd_sys_content_rw_t /var/www/lib/staticmaplite/cache
+chmod -R 777 /var/www/lib/staticmaplite/cache
+chcon -R -t httpd_sys_content_rw_t /var/www/labs/tiles
+chmod -R 777 /var/www/labs/tiles
+wget http://s3-ap-southeast-1.amazonaws.com/busresources/cbrfeed.zip \
+-O /var/www/cbrfeed.zip
--- /dev/null
+++ b/aws/data-sources.xml
@@ -1,1 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
+ <!-- Single graph -->
+ <import resource="classpath:org/opentripplanner/api/application-context.xml" />
+
+ <bean id="graphBundle" class="org.opentripplanner.model.GraphBundle">
+ <property name="path" value="/tmp/" />
+ </bean>
+
+</beans>
+
--- a/include/common.inc.php
+++ b/include/common.inc.php
@@ -31,7 +31,8 @@
function isDebugServer()
{
- return !isset($_SERVER['SERVER_NAME']) || $_SERVER['SERVER_NAME'] == "10.0.1.154" || $_SERVER['SERVER_NAME'] == "10.1.0.4" || $_SERVER['SERVER_NAME'] == "localhost" || $_SERVER['SERVER_NAME'] == "127.0.0.1" ;
+ return php_sapi_name() == "cli" || isset($_SERVER['SERVER_NAME']) && ( $_SERVER['SERVER_NAME'] == "10.0.1.154" || $_SERVER['SERVER_NAME'] == "10.1.0.4" || $_SERVER['SERVER_NAME'] ==
+"localhost" || $_SERVER['SERVER_NAME'] == "127.0.0.1") ;
}
include_once ("common-geo.inc.php");
--- a/include/db/trip-dao.inc.php
+++ b/include/db/trip-dao.inc.php
@@ -173,6 +173,22 @@
$r = $query->fetch(PDO::FETCH_ASSOC);
return $r['arrival_time'];
}
+function getTripEndTime($tripID)
+{
+ global $conn;
+ $query = "SELECT trip_id,max(arrival_time) as arrival_time from stop_times
+ WHERE stop_times.arrival_time IS NOT NULL and trip_id = :tripID group by trip_id";
+ debug($query, "database");
+ $query = $conn->prepare($query);
+ $query->bindParam(":tripID", $tripID);
+ $query->execute();
+ if (!$query) {
+ databaseError($conn->errorInfo());
+ return Array();
+ }
+ $r = $query->fetch(PDO::FETCH_ASSOC);
+ return $r['arrival_time'];
+}
function getActiveTrips($time)
{
global $conn;
--- a/labs/myway_timeliness_calculate.php
+++ b/labs/myway_timeliness_calculate.php
@@ -1,6 +1,8 @@
<?php
include ('../include/common.inc.php');
include_header("MyWay Delta Calculate", "mywayDeltaCalc");
+flush();
+ob_flush();
function abssort($a, $b)
{
if ($a['timeDiff'] == $b['timeDiff']) {
@@ -40,8 +42,10 @@
echo "error, route '{$obsv['myway_route']}' unknown";
continue;
}
- // :convert timestamp into time of day and date
+ // 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
$date = date("c", strtotime($obsv['time']));
$timing_period = service_period(strtotime($date));
@@ -102,6 +106,8 @@
//print out that stops/does not stop
echo "No matching routes found at {$potentialStop['stop_code']}<br>";
var_dump($stopRoutes);
+ flush();
+
}
}
// lowest delta is recorded delta
@@ -119,7 +125,7 @@
$stmt->bindParam(':route_full_name', $route_full_name);
$stmt->bindParam(':stop_code', $stop_code);
$stmt->bindParam(':timing_delta', $lowestDelta);
- $stmt->bindParam(':time', $time);
+ $stmt->bindParam(':time', $time_tz);
$stmt->bindParam(':date', $date);
$stmt->bindParam(':timing_period', $timing_period);
$stmt->bindParam(':stop_sequence', $stop_sequence);
@@ -129,6 +135,7 @@
echo "Recorded.<br>";
}
var_dump($conn->errorInfo());
+ flush();
}
flush();
}
--- a/labs/myway_timeliness_route.php
+++ b/labs/myway_timeliness_route.php
@@ -34,6 +34,10 @@
tickFormatter: yformatter
},
grid: { hoverable: true, clickable: true, labelMargin: 32 },
+series: {
+ lines: { show: false },
+ points: { show: true }
+ }
};
var plot = $.plot(placeholder, data, options);
@@ -118,3 +122,4 @@
});
</script>
+
--- a/labs/myway_timeliness_stop.json.php
+++ b/labs/myway_timeliness_stop.json.php
@@ -29,3 +29,4 @@
else echo "[".implode(",",$points)."]";
?>
}
+
--- a/labs/myway_timeliness_stop.php
+++ b/labs/myway_timeliness_stop.php
@@ -40,6 +40,10 @@
tickFormatter: yformatter
},
grid: { hoverable: true, clickable: true, labelMargin: 32 },
+ series: {
+ lines: { show: false },
+ points: { show: true }
+ }
};
var plot = $.plot(placeholder, data, options);
@@ -129,3 +133,4 @@
});
</script>
+
--- /dev/null
+++ b/labs/travelAllRoutes.php
@@ -1,1 +1,23 @@
+<?php
+include ('../include/common.inc.php');
+ $query = "Select route_short_name,max(route_id) as route_id from routes where route_short_name NOT LIKE '7__' AND route_short_name != '170' AND route_short_name NOT LIKE '9__' group by route_short_name order by route_short_name ;";
+ debug($query, "database");
+ $query = $conn->prepare($query);
+ $query->execute();
+echo "<table><tr><th>Route Number</th><th>First Trip Start</th><th>First Trip End</th><th>Length</th>";
+$total = 0;
+$count = 0;
+foreach($query->fetchAll() as $r) {
+ $trips = getRouteTrips($r['route_id']);
+ $startTime = $trips[0]['arrival_time'];
+ $endTime = getTripEndTime($trips[0]['trip_id']);
+ $timeDiff = strtotime($endTime) - strtotime($startTime);
+ $total += $timeDiff;
+ $count ++;
+ echo "<tr><td>{$r['route_short_name']}</td><td>$startTime</td><td>$endTime</td><td>$timeDiff seconds ie. ". ($timeDiff/60). " minutes</td></tr>";
+}
+echo "</table>";
+echo "Total time: $total seconds ie. " .($total/60/60). " hours<br>";
+echo "$count Routes";
+?>
--- a/updatedb.php
+++ b/updatedb.php
@@ -2,6 +2,18 @@
if ( php_sapi_name() == "cli") {
include ('include/common.inc.php');
$conn = pg_connect("dbname=transitdata user=postgres password=snmc host=localhost") or die('connection failed');
+$pdconn = new PDO("pgsql:dbname=transitdata;user=postgres;password=snmc;host=localhost");
+
+/*
+ delete from agency;
+ delete from calendar;
+ delete from calendar_dates;
+ delete from routes;
+ delete from shapes;
+ delete from stop_times;
+ delete from stops;
+ delete from trips;
+*/
// Unzip cbrfeed.zip, import all csv files to database
$unzip = true;
$zip = zip_open(dirname(__FILE__) . "/cbrfeed.zip");
@@ -31,8 +43,20 @@
echo "Opening $file \n";
$line = 0;
$handle = fopen($tmpdir . $file, "r");
+ if ($tablename =="stop_times") {
+ $stmt = $pdconn->prepare("insert into stop_times (trip_id,stop_id,stop_sequence,arrival_time,departure_time) values(:trip_id, :stop_id, :stop_sequence,:arrival_time,:departure_time);");
+ $stmt->bindParam(':trip_id',$trip_id);
+ $stmt->bindParam(':stop_id',$stop_id);
+ $stmt->bindParam(':stop_sequence',$stop_sequence);
+ $stmt->bindParam(':arrival_time',$time);
+ $stmt->bindParam(':departure_time',$time);
+ }
+
+
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
- if ($line > 0) {
+ if ($line == 0) {
+
+ } else {
$query = "insert into $tablename values(";
$valueCount = 0;
foreach ($data as $value) {
@@ -44,14 +68,23 @@
} else {
$query.= "');";
}
- if ($tablename =="stop_times" && $data[1] == "") {
- $query = "insert into $tablename (trip_id,stop_id,stop_sequence) values('{$data[0]}','{$data[3]}','{$data[4]}');";
- }
+ if ($tablename =="stop_times") {
+ // $query = "insert into $tablename (trip_id,stop_id,stop_sequence) values('{$data[0]}','{$data[3]}','{$data[4]}');";
+ $trip_id=$data[0];
+ $stop_id=$data[3];
+ $stop_sequence=$data[4];
+ $time=($data[1] == "" ? null : $data[1]);
+ }
}
- $result = pg_query($conn, $query);
+ if ($tablename =="stop_times") {
+ $stmt->execute();
+ }
+ else {
+ $result = pg_query($conn, $query);
+ }
$line++;
- if ($line % 10000 == 0) echo "$line records... \n";
+ if ($line % 10000 == 0) echo "$line records... ".date('c')."\n";
}
fclose($handle);
echo "Found a total of $line records in $file.\n";