def use(self, snapname, format, periodic=False, origin=[0,0,0.], boxsize=None, mapfile=None, **kwargs): """ kwargs will be passed to reader, only particles within origin and boxsize are loaded. """ self.snapname = snapname if format == 'hdf5': self.format = 'hdf5' elif format == 'bigfile': self.format = 'bigfile' else: self.format = Reader(format, **kwargs) try: snapname = self.snapname % 0 except TypeError: snapname = self.snapname snap = Snapshot(snapname, self.format) self.C = snap.C self._template = snap self._schema = snap.schema self.origin[...] = numpy.ones(3) * origin if boxsize is not None: self.need_cut = True else: self.need_cut = False if mapfile is not None: self.map = MeshIndex.fromfile(mapfile) else: self.map = None if boxsize is None and 'boxsize' in self.C: boxsize = numpy.ones(3) * self.C['boxsize'] if boxsize is not None: self.boxsize[...] = boxsize else: self.boxsize[...] = 1.0 self.periodic = periodic self.cosmology = create_cosmology(self.C) try: self.redshift = self.C['redshift'] except: self.redshift = 0.0 self.schema('gas', 0, ['sml', 'mass', 'id', 'ye', 'ie', 'entropy']) self.schema('bh', 5, ['bhmass', 'bhmdot', 'id']) self.schema('dark', 1, ['mass', 'id']) self.schema('star', 4, ['mass', 'sft', 'id'])
def use(self, snapname, format, periodic=False, origin=[0, 0, 0.], boxsize=None, mapfile=None, **kwargs): """ kwargs will be passed to reader, only particles within origin and boxsize are loaded. """ self.snapname = snapname if format == 'hdf5': self.format = 'hdf5' elif format == 'bigfile': self.format = 'bigfile' else: self.format = Reader(format, **kwargs) try: snapname = self.snapname % 0 except TypeError: snapname = self.snapname snap = Snapshot(snapname, self.format) self.C = snap.C self._template = snap self._schema = snap.schema self.origin[...] = numpy.ones(3) * origin if boxsize is not None: self.need_cut = True else: self.need_cut = False if mapfile is not None: self.map = MeshIndex.fromfile(mapfile) else: self.map = None if boxsize is None and 'boxsize' in self.C: boxsize = numpy.ones(3) * self.C['boxsize'] if boxsize is not None: self.boxsize[...] = boxsize else: self.boxsize[...] = 1.0 self.periodic = periodic self.cosmology = create_cosmology(self.C) try: self.redshift = self.C['redshift'] except: self.redshift = 0.0 self.schema('gas', 0, ['sml', 'mass', 'id', 'ye', 'ie', 'entropy']) self.schema('bh', 5, ['bhmass', 'bhmdot', 'id']) self.schema('dark', 1, ['mass', 'id']) self.schema('star', 4, ['mass', 'sft', 'id'])