def load(self, file_name): """ Loads a snapshot storage Args: file_name: Can be either a directory with numbered .csv files, or a numpy pickle (.pkl) """ if not self.in_memory: raise IOError("Can't load from file because in-memory storage is disabled.") if not os.path.exists(file_name): raise IOError("Specified file does not exist.") if file_name.endswith(".pkl"): self._snapshots = np.load(file_name) else: self._snapshots = util.load_snapshots(file_name) self.snapshot_shape = self._snapshots.shape[1:] self.max_snapshots = self._snapshots.shape[0] self._reserved_length = self.max_snapshots self._current_index = self.max_snapshots self.snapshot_count = self.max_snapshots
parser = argparse.ArgumentParser(description="Render nbody simulation results.") parser.add_argument("directory", help="directory with all of the simulation files in a .csv format, or a pickled snapshot file") parser.add_argument("-c", "--color", type=str, help="specifies in what color to draw the bodies. If not set all bodies are drawn in different colors", choices=['b', 'g', 'r', 'c', 'm', 'y', 'k', 'w']) parser.add_argument("-s", "--speed", metavar="fps", type=int, default=20) parser.add_argument("-t", "--timesteps", metavar="num", type=int, default=1, help="displays previous body states up to the amount specified. Set to 0 to display all states") parser.add_argument("-f", "--fade", action="store_true", help="specifies whether bodies from previous time steps should fade") parser.add_argument("-o", "--out", metavar="path", type=str, help="if specified will output video to file") parser.add_argument("-v", "--verbose", action="store_true", help="prints the current frame number to the terminal while drawing") args = parser.parse_args() bodies = None if args.directory.endswith(".pkl"): bodies = cPickle.load(args.directory) else: bodies = util.load_snapshots(args.directory) color = cm.get_cmap() if args.color: color = args.color verbose_level = 1 if args.verbose: verbose_level = 2 body_renderer = SnapshotRenderer(bodies, line_style="-", marker_style=".", history_length=args.timesteps, fade=args.fade, color=color, fps=args.speed, verbose=verbose_level) body_renderer.run(out_file=args.out) '''