def truth(basedir): """ Returns the ground truth, interpolated and everything, for a given data directory """ positions_file = os.path.join(basedir, "positions.npy") positions = np.load(positions_file) cf = pickle.load(open(os.path.join(basedir, "config.pickle"))) invalid_sep = measure.detect_invalid_sep(positions) positions_cleaned = positions.copy() positions_cleaned[invalid_sep] = ((np.nan, np.nan), (np.nan, np.nan), np.nan, np.nan) positions_interp, missing = measure.interpolate(positions) pci, cleaned_missing = measure.interpolate(positions_cleaned) # extract out the fields that matter d = np.zeros(len(pci), dtype=DTYPE_POS_CONF) d['x'] = pci['x'] d['y'] = pci['y'] d['confidence'] = 1.0 return d
r"\1.pickle"), os.path.join(SYNTH_DIR, "fl", r"\1.avi")] ) def fl_to_sim(positions_file, (out_pickle, out_avi)): print "THIS IS", positions_file positions = np.load(positions_file) # frames thing directory = positions_file[:-len('positions.npy')] cf = pickle.load(open(os.path.join(directory, "config.pickle"))) start_f = cf['start_f'] # open the frame tarball tf = tarfile.open(os.path.join(directory, "%08d.tar.gz" % start_f), "r:gz") positions_interp, missing = measure.interpolate(positions) pos_derived = measure.compute_derived(positions_interp) N = len(positions) state = np.zeros(N, dtype=util.DTYPE_STATE) state['x'] = positions_interp['x'] state['y'] = positions_interp['y'] state['phi'] = pos_derived['phi'] state['theta'] = np.pi/2.0 env = util.Environmentz((1.5, 2), (240, 320)) images = simulate.render(env, state[:100]) NOISE = 0
@transform(os.path.join(DATA_DIR, "fl/*/positions.npy"), regex(r".+/(.+)/positions.npy$"), [ os.path.join(SYNTH_DIR, "fl", r"\1.pickle"), os.path.join(SYNTH_DIR, "fl", r"\1.avi") ]) def fl_to_sim(positions_file, (out_pickle, out_avi)): print "THIS IS", positions_file positions = np.load(positions_file) # frames thing directory = positions_file[:-len('positions.npy')] cf = pickle.load(open(os.path.join(directory, "config.pickle"))) start_f = cf['start_f'] # open the frame tarball tf = tarfile.open(os.path.join(directory, "%08d.tar.gz" % start_f), "r:gz") positions_interp, missing = measure.interpolate(positions) pos_derived = measure.compute_derived(positions_interp) N = len(positions) state = np.zeros(N, dtype=util.DTYPE_STATE) state['x'] = positions_interp['x'] state['y'] = positions_interp['y'] state['phi'] = pos_derived['phi'] state['theta'] = np.pi / 2.0 env = util.Environmentz((1.5, 2), (240, 320)) images = simulate.render(env, state[:100]) NOISE = 0 new_images = simulate.add_noise_background(images, NOISE, NOISE, [])
frame_start, frame_end): np.random.seed(0) cf = pickle.load(open(epoch_config_filename, 'r')) region = pickle.load(open(region_filename, 'r')) env = util.Environmentz(cf['field_dim_m'], cf['frame_dim_pix']) led_params = pickle.load(open(led_params_filename, 'r')) eo_params = measure.led_params_to_EO(cf, led_params) if frame_end > cf['end_f']: frame_end = cf['end_f'] truth = np.load(os.path.join(epoch_dir, 'positions.npy')) truth_interp, missing = measure.interpolate(truth) derived_truth = measure.compute_derived(truth_interp, T_DELTA) frame_pos = np.arange(frame_start, frame_end) # load frames frames = organizedata.get_frames(epoch_dir, frame_pos) FRAMEN = len(frames) coordinates = [] regions = np.zeros((FRAMEN, frames[0].shape[0], frames[0].shape[1]), dtype=np.uint8) point_est_track_data = []
led_params_filename = os.path.join(epoch_dir, "led.params.pickle") cf = pickle.load(open(epoch_config_filename)) truth = np.load(os.path.join(epoch_dir, 'positions.npy')) env = util.Environmentz(cf['field_dim_m'], cf['frame_dim_pix']) led_params = pickle.load(open(led_params_filename, 'r')) eoparams = enlarge_sep(measure.led_params_to_EO(cf, led_params)) tr = TemplateObj() tr.set_params(*eoparams) led_sep_pix = eoparams[0] led_sep_m = led_sep_pix / env.gc.pix_per_meter[0] truth_interp, missing = measure.interpolate(truth) STATEVARS = ['x', 'y', 'xdot', 'ydot', 'phi', 'theta'] # convert types vals = dict([(x, []) for x in STATEVARS]) for p in particles: for v in STATEVARS: vals[v].append([s[v] for s in p]) for v in STATEVARS: if v == 'phi': vals[v] = np.array(vals[v]) % (2 * np.pi) else: vals[v] = np.array(vals[v]) vals_dict = {}