Ejemplo n.º 1
0
    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"
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
    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)
Ejemplo n.º 4
0
 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)
Ejemplo n.º 5
0
 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)
Ejemplo n.º 6
0
 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)
Ejemplo n.º 7
0
    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)
Ejemplo n.º 8
0
 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)
Ejemplo n.º 9
0
 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)
Ejemplo n.º 10
0
 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)
Ejemplo n.º 11
0
 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)