Example #1
0
  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'])
Example #2
0
    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'])