def test_basic(self): assert TimeHelpers.localtime_to_unix(2008,10,12,6,0,0,"Europe/Paris") == 1223784000 assert str(TimeHelpers.unix_to_localtime(1199181360, "America/New_York")) == "2008-01-01 04:56:00-05:00" assert TimeHelpers.unixtime_to_daytimes(1219834260, "America/Los_Angeles") == (13860, 100260, 186660) assert str(TimeHelpers.unix_to_localtime(1221459000, "America/Chicago")) == "2008-09-15 01:10:00-05:00" assert TimeHelpers.unixtime_to_daytimes(1230354000, "America/Chicago") == (82800, 169200, 255600) assert TimeHelpers.unix_time(2008,8,27,12,0,0,-7*3600) == 1219863600 assert TimeHelpers.localtime_to_unix(2008,8,27,12,0,0,"America/Los_Angeles") == 1219863600 assert str(TimeHelpers.unix_to_localtime(1219863600, "America/Los_Angeles")) == "2008-08-27 12:00:00-07:00"
def __call__(self, vertex1, edge, vertex2, context): event_time = vertex2.state.time trip_id = vertex2.state.trip_id stop_id = vertex1.label.split("-")[-1] route_desc = "-".join([ str(x) for x in list( self.gtfsdb.execute( "SELECT routes.route_short_name, routes.route_long_name FROM routes, trips WHERE routes.route_id=trips.route_id AND trip_id=?", (trip_id, )))[0] ]) stop_desc = list( self.gtfsdb.execute( "SELECT stop_name FROM stops WHERE stop_id = ?", (stop_id, )))[0][0] lat, lon = list( self.gtfsdb.execute( "SELECT stop_lat, stop_lon FROM stops WHERE stop_id = ?", (stop_id, )))[0] what = "Board the %s" % route_desc where = stop_desc when = str( TimeHelpers.unix_to_localtime(event_time, self.timezone_name)) geom = (lon, lat) return NarrativeEvent(what, where, when, geom)
def __call__(self, edge1, vertex, edge2, context): context['streetgeom'] = [] context['sumlength'] = 0 context['sumrise'] = 0 context['sumfall'] = 0 context['lastturntime'] = vertex.state.time osm_way2 = edge2.payload.name.split("-")[0] street_name2 = self.osmdb.way(osm_way2).tags.get('name', "unnamed") osm_id = vertex.label.split("-")[1] osm_node_id, osm_node_tags, osm_node_lat, osm_node_lon, osm_node_refcount = self.osmdb.node( osm_id) osm_edge2 = self.osmdb.edge(edge2.payload.name) osm_edge2_startnode = osm_edge2[2] osm_edge2_geom = osm_edge2[5] if osm_id != osm_edge2_startnode: osm_edge2_geom.reverse() startseg = osm_edge2_geom[:2] direction = description_from_north(startseg[0], startseg[1]) what = "start walking" where = "on %s facing %s" % (street_name2, direction) when = "about %s" % str( TimeHelpers.unix_to_localtime(vertex.state.time, self.timezone_name)) geom = [osm_node_lon, osm_node_lat] return NarrativeEvent(what, where, when, geom)
def __call__(self, edge1, vertex, edge2, context): context['streetgeom'] = [] context['sumlength'] = 0 context['sumrise'] = 0 context['sumfall'] = 0 context['lastturntime'] = vertex.state.time osm_way2 = edge2.payload.name.split("-")[0] street_name2 = self.osmdb.way( osm_way2 ).tags.get('name', "unnamed") osm_id = vertex.label.split("-")[1] osm_node_id, osm_node_tags, osm_node_lat, osm_node_lon, osm_node_refcount = self.osmdb.node( osm_id ) osm_edge2 = self.osmdb.edge( edge2.payload.name ) osm_edge2_startnode = osm_edge2[2] osm_edge2_geom = osm_edge2[5] if osm_id != osm_edge2_startnode: osm_edge2_geom.reverse() startseg = osm_edge2_geom[:2] direction = description_from_north( startseg[0], startseg[1] ) what = "start walking" where = "on %s facing %s"%(street_name2, direction) when = "about %s"%str(TimeHelpers.unix_to_localtime( vertex.state.time, self.timezone_name )) geom = [osm_node_lon, osm_node_lat] return NarrativeEvent(what,where,when,geom)
def headwayalight_event(vertex1, edge, vertex2): event_time = vertex1.payload.time stop_id = vertex2.label.split("-")[-1] stop_desc = list( gtfsdb.execute( "SELECT stop_name FROM stops WHERE stop_id = ?", (stop_id,) ) )[0][0] lat, lon = list( gtfsdb.execute( "SELECT stop_lat, stop_lon FROM stops WHERE stop_id = ?", (stop_id,) ) )[0] what = "Alight" where = stop_desc when = "about %s"%str(TimeHelpers.unix_to_localtime( event_time, "America/Los_Angeles" )) loc = (lat,lon) return (what, where, when, loc)
def __call__(self, vertex1, edge, vertex2, context): event_time = vertex1.state.time stop_id = vertex2.label.split("-")[-1] stop_desc = list( self.gtfsdb.execute( "SELECT stop_name FROM stops WHERE stop_id = ?", (stop_id,) ) )[0][0] lat, lon = list( self.gtfsdb.execute( "SELECT stop_lat, stop_lon FROM stops WHERE stop_id = ?", (stop_id,) ) )[0] what = "Alight" where = stop_desc when = str(TimeHelpers.unix_to_localtime( event_time, self.timezone_name )) geom = (lon,lat) return NarrativeEvent(what, where, when, geom)
def __call__(self, edge1, vertex, edge2, context): osm_id = vertex.label.split("-")[1] # figure out which direction to turn osm_way_id1 = edge1.payload.name.split("-")[0] osm_way_id2 = edge2.payload.name.split("-")[0] osm_edge1 = self.osmdb.edge(edge1.payload.name) osm_edge2 = self.osmdb.edge(edge2.payload.name) osm_edge1_endnode = osm_edge1[3] osm_edge2_startnode = osm_edge2[2] osm_edge1_geom = osm_edge1[5] osm_edge2_geom = osm_edge2[5] if osm_id != osm_edge1_endnode: osm_edge1_geom.reverse() if osm_id != osm_edge2_startnode: osm_edge2_geom.reverse() endseg = osm_edge1_geom[-2:] startseg = osm_edge2_geom[:2] direction = turn_narrative(endseg[0], endseg[1], startseg[0], startseg[1]) street_name1 = self.osmdb.way(osm_way_id1).tags.get("name", "unnamed") street_name2 = self.osmdb.way(osm_way_id2).tags.get("name", "unnamed") osm_node_id, osm_node_tags, osm_node_lat, osm_node_lon, osm_node_refcount = self.osmdb.node( osm_id) average_speed = context['sumlength'] / ( vertex.state.time - context['lastturntime'] ) if vertex.state.time - context['lastturntime'] > 0 else 100000000 what = "%s onto %s after %dm, %0.1fm rise, %0.1fm fall (%0.1fm/s)" % ( direction, street_name2, context['sumlength'], context['sumrise'], context['sumfall'], average_speed) where = "%s & %s" % (street_name1, street_name2) when = "about %s" % str( TimeHelpers.unix_to_localtime(vertex.state.time, self.timezone_name)) geom = (osm_node_lon, osm_node_lat) context['sumlength'] = 0 context['sumrise'] = 0 context['sumfall'] = 0 context['lastturntime'] = vertex.state.time return NarrativeEvent(what, where, when, geom)
def __call__(self, edge1, vertex, edge2, context): osm_way1 = edge1.payload.name.split("-")[0] street_name1 = self.osmdb.way( osm_way1 ).tags.get('name', "unnamed") osm_id = vertex.label.split("-")[1] osm_node_id, osm_node_tags, osm_node_lat, osm_node_lon, osm_node_refcount = self.osmdb.node( osm_id ) average_speed = context['sumlength']/(vertex.state.time-context['lastturntime']) if vertex.state.time-context['lastturntime']>0 else 100000000 what = "arrive walking after %dm, %0.1f rise, %0.1f fall (%0.1fm/s)"%(context['sumlength'], context['sumrise'], context['sumfall'], average_speed) where = "on %s"%(street_name1) when = "about %s"%str(TimeHelpers.unix_to_localtime( vertex.state.time, self.timezone_name )) geom = [osm_node_lon, osm_node_lat] return NarrativeEvent(what,where,when,geom)
def headwayboard_event(vertex1, edge, vertex2): event_time = vertex2.payload.time trip_id = vertex2.payload.trip_id stop_id = vertex1.label.split("-")[-1] route_desc = "-".join(list( gtfsdb.execute( "SELECT routes.route_short_name, routes.route_long_name FROM routes, trips WHERE routes.route_id=trips.route_id AND trip_id=?", (trip_id,) ) )[0]) stop_desc = list( gtfsdb.execute( "SELECT stop_name FROM stops WHERE stop_id = ?", (stop_id,) ) )[0][0] lat, lon = list( gtfsdb.execute( "SELECT stop_lat, stop_lon FROM stops WHERE stop_id = ?", (stop_id,) ) )[0] what = "Board the %s"%route_desc where = stop_desc when = "about %s"%str(TimeHelpers.unix_to_localtime( event_time, "America/Los_Angeles" )) loc = (lat,lon) return (what, where, when, loc)
def __call__(self, vertex1, edge, vertex2, context): event_time = vertex2.state.time trip_id = vertex2.state.trip_id stop_id = vertex1.label.split("-")[-1] route_desc = "-".join(list( self.gtfsdb.execute( "SELECT routes.route_short_name, routes.route_long_name FROM routes, trips WHERE routes.route_id=trips.route_id AND trip_id=?", (trip_id,) ) )[0]) stop_desc = list( self.gtfsdb.execute( "SELECT stop_name FROM stops WHERE stop_id = ?", (stop_id,) ) )[0][0] lat, lon = list( self.gtfsdb.execute( "SELECT stop_lat, stop_lon FROM stops WHERE stop_id = ?", (stop_id,) ) )[0] what = "Board the %s"%route_desc where = stop_desc when = "about %s"%str(TimeHelpers.unix_to_localtime( event_time, self.timezone_name )) geom = (lon,lat) return NarrativeEvent(what, where, when, geom)
def __call__(self, edge1, vertex, edge2, context): osm_id = vertex.label.split("-")[1] # figure out which direction to turn osm_way_id1 = edge1.payload.name.split("-")[0] osm_way_id2 = edge2.payload.name.split("-")[0] osm_edge1 = self.osmdb.edge( edge1.payload.name ) osm_edge2 = self.osmdb.edge( edge2.payload.name ) osm_edge1_endnode = osm_edge1[3] osm_edge2_startnode = osm_edge2[2] osm_edge1_geom = osm_edge1[5] osm_edge2_geom = osm_edge2[5] if osm_id != osm_edge1_endnode: osm_edge1_geom.reverse() if osm_id != osm_edge2_startnode: osm_edge2_geom.reverse() endseg = osm_edge1_geom[-2:] startseg = osm_edge2_geom[:2] direction = turn_narrative( endseg[0], endseg[1], startseg[0], startseg[1] ) street_name1 = self.osmdb.way( osm_way_id1 ).tags.get("name", "unnamed") street_name2 = self.osmdb.way( osm_way_id2 ).tags.get("name", "unnamed") osm_node_id, osm_node_tags, osm_node_lat, osm_node_lon, osm_node_refcount = self.osmdb.node( osm_id ) average_speed = context['sumlength']/(vertex.state.time-context['lastturntime']) if vertex.state.time-context['lastturntime']>0 else 100000000 what = "%s onto %s after %dm, %0.1fm rise, %0.1fm fall (%0.1fm/s)"%(direction, street_name2, context['sumlength'], context['sumrise'], context['sumfall'], average_speed) where = "%s & %s"%(street_name1, street_name2) when = "about %s"%str(TimeHelpers.unix_to_localtime( vertex.state.time, self.timezone_name )) geom = (osm_node_lon, osm_node_lat) context['sumlength'] = 0 context['sumrise'] = 0 context['sumfall'] = 0 context['lastturntime'] = vertex.state.time return NarrativeEvent(what,where,when,geom)