def generate_artificial_data(xdata,tdata,x,t,I_xt,v,sigma_d): lim = {'x':xdata,'y':x,'t':tdata,'u':t} for s in lim.keys(): lim['N'+s] = len(lim[s]) lim['d'+s] = lim[s][1]- lim[s][0] lim['v'] = v R = past_light_cone_matrix_area(lim=lim) s = np.exp(-np.dot(R,I_xt.ravel())) # s reshaped as a Nx*Nt matrix: true_s = s.reshape(len(xdata),len(tdata)) # add gaussian noise data = true_s + np.random.normal(scale=sigma_d, size = true_s.shape) return true_s, data
def _compute_theta_MAP(self, verbose=False): """Utility function. Compute the hidden attribute theta_MAP (from which I_MAP can be computed). """ tic = time.clock() lim={'v':self.v, 'x':self.xdata, 't':self.tdata, 'u':self.t} lim['du'] = lim['u'][1]-lim['u'][0] # if FixedOris, I_iu (ori i, time u) is in ini/min, RI = integral of I*(dy=1)*du lim['y'] = self.x_oris if self.FixedOris else self.x lim['dy'] = 1 if self.FixedOris else lim['y'][1]-lim['y'][0] self._param['R'] = past_light_cone_matrix_area(lim) if verbose: print "R computed in {}s".format(time.clock()-tic) tic = time.clock() compute_C0_y_C0_u_for_param(param = self._param) if verbose: print "C0 computed in {}s".format(time.clock()-tic) tic = time.clock() self._theta_MAP = compute_theta_MAP_estimate(param = self._param) if verbose: print "theta_MAP found in {}s".format(time.clock()-tic)