def samplepairs( T, rategraph, roadmap, rate_attr='rate' ) : pairs = [] point_on = lambda road : roadprob.sample_onroad( road, roadmap, 'length' ) for road1, road2, data in rategraph.edges_iter( data=True ) : lam = data.get( rate_attr, 0. ) n = np.random.poisson( lam * T ) SS = [ point_on( road1 ) for i in xrange(n) ] TT = [ point_on( road2 ) for i in xrange(n) ] newp = zip(SS,TT) pairs.extend( newp ) return pairs
def sample_demands( T, rategraph, roadnet, rate='rate' ) : demands = [] point_on = lambda road : roadprob.sample_onroad( road, roadnet, 'length' ) for road1, road2, data in rategraph.edges_iter( data=True ) : n = np.random.poisson( data.get( rate, 0. ) * T ) #newdems = [ demand( point_on( road1 ), point_on( road2 ) ) for i in range(n) ] newdems = [ ( point_on( road1 ), point_on( road2 ) ) for i in range(n) ] demands.extend( newdems ) numdem = len( demands ) print 'sampled %d' % numdem debug_input() times = T * np.random.rand(numdem) script = sorted( zip( times, demands ) ) return script
def sample(self) : road1, road2 = self.wset.sample() x = roadprob.sample_onroad( road1, self.roadmap, self.length_attr ) y = roadprob.sample_onroad( road2, self.roadmap, self.length_attr ) return x,y