示例#1
0
文件: test.py 项目: amou269/heatmap
def test_sim( route, zoom, image="images/train.png" ):
    time_window,bbox = find_bounds(route)
    
    def getLL(time):
        if time <= time_window[0]:
            return route[0][:2]
        elif time > time_window[1]:
            return route[-1][:2]

        for (lat1,lon1,time1),(lat2,lon2,time2) in zip(route[:-1],route[1:]):
            if time1 < time <= time2:
                break

        frac = (time-time1) / (time2-time1)
        lat = lat1 + frac * (lat2-lat1)
        lon = lon1 + frac * (lon2-lon1)
        return lat,lon

    viz = TrackingViz("Test Train",
                      image,
                      getLL,
                      time_window,
                      bbox,
                      1);
    sim = Simulation([viz],[],0)
    sim.run(speed=0,refresh_rate=0.1,osmzoom=zoom,windowsize=(600,600))
示例#2
0
def test_GPS(route_short_name,rte=None,num=None):
  import GPSBusTrack as gps
  import GTFSBusTrack as gtfs
  if rte is None:
    rte = gps.Route(route_short_name);
  segs = [s for s in rte.segments(True)];
  btsegs=[]

  for i,seg in enumerate(segs):
    if num and i>=num: break
    bt = gps.GPSBusTrack(seg);
    btv = BusTrackViz(bt,'test',"images/bus_small.png");
    gtfs_trip_id,offset,error=bt.getMatchingGTFSTripID()
    bt2 = gtfs.GTFSBusTrack(gtfs_trip_id);
    print "BEST MATCHING TRIP ID: %s (error: %d)"%(bt2.trip_id,error)
    btv2 = BusTrackViz(bt2,'test',"images/bus.png");
    btsegs.extend([btv,btv2]);
  sim = Simulation(btsegs)
  sim.run(speed=0,refresh_rate=0.1);
示例#3
0
def test_GTFS(tids=range(2912979-9,2912979+1)):
  import GTFSBusTrack as tracker
  import sys
  btvs=[]
  print "Loading GTFS data for %d routes..." % (len(tids),)
  ix=0
  for tid in tids:
    ix+=1
    bt = tracker.GTFSBusTrack(tid);
    btv = BusTrackViz(bt,'test',"images/bus_small.png");
    if bt.__dict__.get('interpolation') is not None:
      btvs.append(btv);
      print "+",ix
    else:
      print "-",ix
    sys.stdout.flush()
  print "...done. Begining simulation..."
  sim = Simulation(btvs);
  sim.run(speed=0,refresh_rate=0.02);
示例#4
0
def test_matched_GPS(segment_ids):
  import GPSBusTrack as gps
  gtfs_tracks = {}
  gps_tracks = []
  vizs = []
  stops = set()
  for i,segid in enumerate(segment_ids):
    print "Loading segment %s (%d/%d)..." %(segid,i+1,len(segment_ids))
    bus = gps.GPSBusSchedule(segid);
    gps_track = bus.getGPSBusTrack();
    gtfs_schedule = bus.getGTFSSchedule();
    service_id = gtfs_schedule.service_id;

    viz1 = BusTrackViz(gps_track,'tracked:'+str(segid),
                       "images/bus_small.png");
    
    gps_tracks.append(viz1);

    gtfs_key = (gtfs_schedule.trip_id,gtfs_schedule.offset)
    if not gtfs_tracks.has_key( gtfs_key ):
      gtfs_track = bus.getGTFSBusTrack();
      viz2 = BusTrackViz(gtfs_track,'scheduled:'+str(gtfs_track.trip_id),
                         "images/bus.png");
      gtfs_tracks[gtfs_key] = viz2
    else:
      viz2 = gtfs_tracks[gtfs_key]

    mviz = BusMatchupViz(viz1,viz2,service_colors[service_id]);
    arriv_viz = BusArrivalViz(bus,service_colors[service_id],duration=5);
    for stop in bus.getGPSSchedule():
      stops.add( (stop['stop_lat'],stop['stop_lon']) )
    vizs.append(mviz);
    vizs.append(arriv_viz);

    print "ok"

  print "Loading stops..."
  for stop in stops:
    vizs.append(BusStopViz(stop,'asdf',pygame.Color(0,0,0),5))
  print "ok"
  sim = Simulation(gtfs_tracks.values()+gps_tracks,vizs);
  sim.run(speed=0,refresh_rate=0.1,windowsize=(1200,1200));
示例#5
0
文件: test.py 项目: ozzie00/osmviz
def test_sim(route, zoom, image="images/train.png"):
    time_window, bbox = find_bounds(route)

    def getLL(time):
        if time <= time_window[0]:
            return route[0][:2]
        elif time > time_window[1]:
            return route[-1][:2]

        for (lat1, lon1, time1), (lat2, lon2,
                                  time2) in zip(route[:-1], route[1:]):
            if time1 < time <= time2:
                break

        frac = (time - time1) / (time2 - time1)
        lat = lat1 + frac * (lat2 - lat1)
        lon = lon1 + frac * (lon2 - lon1)
        return lat, lon

    viz = TrackingViz("Test Train", image, getLL, time_window, bbox, 1)
    sim = Simulation([viz], [], 0)
    sim.run(speed=0, refresh_rate=0.1, osmzoom=zoom, windowsize=(600, 600))
示例#6
0
def makeInterpolator(begin_ll, end_ll, begin_t, end_t):
    def ret(t):
        if t < begin_t:
            return begin_ll
        elif t > end_t:
            return end_ll
        else:
            blat, blon = begin_ll
            elat, elon = end_ll
            frac = float(t) / (end_t - begin_t)
            return (blat + frac * (elat - blat), blon + frac * (elon - blon))

    return ret


for i in range(num_trains):
    lat = bottom_lat + i * (top_lat - bottom_lat) / (num_trains - 1)

    locAtTime = makeInterpolator((lat, left_lon), (lat, right_lon), begin_time,
                                 end_time)

    tviz = TrackingViz("Train %d" % (i + 1, ), image_f, locAtTime,
                       (begin_time, end_time), (30, 46, -119, -68.5),
                       1)  # drawing order doesn't really matter here

    trackvizs.append(tviz)

sim = Simulation(trackvizs, [], 0)
sim.run(speed=1, refresh_rate=0.1, osmzoom=zoom)
示例#7
0
        phase = float(time % self.frequency) / self.frequency
        if phase < 0.25:
            blat = self.clat - self.lat_dist
            elat = self.clat + self.lat_dist
            blon = elon = self.clon - self.lon_dist
            frac = phase / 0.25
        elif phase < 0.5:
            blat = elat = self.clat + self.lat_dist
            blon = self.clon - self.lon_dist
            elon = self.clon + self.lon_dist
            frac = (phase - 0.25) / 0.25
        elif phase < 0.75:
            blat = self.clat + self.lat_dist
            elat = self.clat - self.lat_dist
            blon = elon = self.clon + self.lon_dist
            frac = (phase - 0.5) / 0.25
        else:
            blat = elat = self.clat - self.lat_dist
            blon = self.clon + self.lon_dist
            elon = self.clon - self.lon_dist
            frac = (phase - 0.75) / 0.25
        return blat + frac * (elat - blat), blon + frac * (elon - blon)


denver = 39.756111, -104.994167
train = TiedTrain(denver, 5.0, 5.0, 60, (0, 600), "Denver Bound")
lasso = LassoViz(train.get_loc_at_time, lambda t: denver)

sim = Simulation([train], [lasso], 0)
sim.run(refresh_rate=0.01, speed=1, osmzoom=7)
示例#8
0
      blat = self.clat - self.lat_dist
      elat = self.clat + self.lat_dist
      blon = elon = self.clon - self.lon_dist
      frac = phase/0.25
    elif phase < 0.5:
      blat = elat = self.clat + self.lat_dist
      blon = self.clon - self.lon_dist
      elon = self.clon + self.lon_dist
      frac = (phase-0.25)/0.25
    elif phase < 0.75:
      blat = self.clat + self.lat_dist
      elat = self.clat - self.lat_dist
      blon = elon = self.clon + self.lon_dist
      frac = (phase-0.5)/0.25
    else:
      blat = elat = self.clat - self.lat_dist
      blon = self.clon + self.lon_dist
      elon = self.clon - self.lon_dist
      frac = (phase-0.75)/0.25
    return blat + frac*(elat-blat), blon + frac*(elon-blon)



denver = 39.756111, -104.994167
train = TiedTrain(denver, 5.0, 5.0, 60, (0, 600), "Denver Bound")
lasso = LassoViz(train.getLocAtTime,
                 lambda t: denver)

sim = Simulation( [train,], [lasso,], 0)
sim.run(refresh_rate = 0.01, speed = 1, osmzoom = 7)
示例#9
0
        else:
            blat, blon = begin_ll
            elat, elon = end_ll
            frac = float(t) / (end_t - begin_t)
            return (blat + frac * (elat - blat), blon + frac * (elon - blon))

    return ret


for i in range(num_trains):
    lat = bottom_lat + i * (top_lat - bottom_lat) / (num_trains - 1)

    locAtTime = makeInterpolator(
        (lat, left_lon), (lat, right_lon), begin_time, end_time
    )

    tviz = TrackingViz(
        "Train %d" % (i + 1,),
        image_f,
        locAtTime,
        (begin_time, end_time),
        (30, 46, -119, -68.5),
        1,
    )  # drawing order doesn't really matter here

    trackvizs.append(tviz)


sim = Simulation(trackvizs, [], 0)
sim.run(speed=1, refresh_rate=0.1, osmzoom=zoom)
示例#10
0
  def ret(t):
    loc= None #a['loc'][0][1] # initialization
    if a['loc'][-1][0] < t:
      return
    for e in a['loc']:
      if e[0] > t:
        break
      loc= e[1]
    print a['name'] + " in " + str(loc)
    return loc
  return ret

# create 10 stupid functions
for k,a in actors.iteritems():
  a['fun']= make_callb(a)

image_f = "images/train.png"
trackvizs = []

for name,a in actors.iteritems():
  tviz = LLamaViz(name, image_f, a['fun'], 
                   (min(time),max(time)),
                   (min(a['lats']),max(a['lats']),min(a['lons']),max(a['lons'])),
                   1) #drawing order doesn't really matter here

  trackvizs.append(tviz)

sim = Simulation(trackvizs,[],0)
sim.run(speed=2,refresh_rate=0.4,osmzoom=18)
#sim.run(speed=10,refresh_rate=0.1,osmzoom=16)