class ParticleLists(object):
[docs]
def __init__(self,obj):
self.obj = obj
def deleteAttribute(self,attrib):
[docs] if hasattr(self, attrib):
delattr(self,attrib)
def deleteParticleLists(self):
[docs] self.deleteAttribute('halo_glist')
self.deleteAttribute('halo_slist')
self.deleteAttribute('halo_dmlist')
self.deleteAttribute('halo_lrlist')
if not self.obj.snapAttribs.DM_ONLY:
self.deleteAttribute('galaxy_glist')
self.deleteAttribute('galaxy_slist')
self.deleteAttribute('haloParentIndexes')
self.deleteAttribute('haloChildIndexes')
def getParticleLists(self):
[docs] import numpy as np
import os,sys
## enable legacy support ##
if '.npz' in self.obj.locs.particlelist:
self.obj.locs.particlelist = '%s.hdf5' % self.obj.locs.particlelist[:-4]
if os.path.isfile(self.obj.locs.particlelist):
import h5py
infile = h5py.File(self.obj.locs.particlelist,'r')
self.halo_glist = np.asarray(infile['halo/halo_glist'])
self.halo_slist = np.asarray(infile['halo/halo_slist'])
self.halo_dmlist = np.asarray(infile['halo/halo_dmlist'])
self.halo_lrlist = np.asarray(infile['halo/halo_lrlist'])
self.haloParentIndexes = np.asarray(infile['halo/haloParentIndexes'])
#self.haloChildIndexes = np.asarray(infile['halo/haloChildIndexes'])
if not self.obj.snapAttribs.DM_ONLY:
self.galaxy_glist = np.asarray(infile['galaxy/galaxy_glist'])
self.galaxy_slist = np.asarray(infile['galaxy/galaxy_slist'])
infile.close()
elif os.path.isfile('%s.npz' % self.obj.locs.particlelist[:-5]):
""" OUTDATED NUMPY LEGACY SUPPORT """
data = np.load('%s.npz' % self.obj.locs.particlelist[:-5])
self.halo_glist = data['halo_glist']
self.halo_slist = data['halo_slist']
self.halo_dmlist = data['halo_dmlist']
self.halo_lrlist = data['halo_lrlist']
if not self.obj.snapAttribs.DM_ONLY:
self.galaxy_glist = data['galaxy_glist']
self.galaxy_slist = data['galaxy_slist']
self.haloParentIndexes = data['haloParentIndexes']
#self.haloChildIndexes = data['haloChildIndexes']
#if not os.path.isfile(self.obj.locs.particlelist):
else:
self.obj.logOutput('cannot locate %s!' % self.obj.locs.particlelist)
return
def saveParticleLists(self):
[docs] import numpy as np
import h5py
outfile = h5py.File(self.obj.locs.particlelist,'w')
hd = outfile.create_group('halo')
hd.create_dataset('halo_glist', data = self.halo_glist)
hd.create_dataset('halo_slist', data = self.halo_slist)
hd.create_dataset('halo_dmlist',data = self.halo_dmlist)
hd.create_dataset('halo_lrlist',data = self.halo_lrlist)
hd.create_dataset('haloParentIndexes', data = self.haloParentIndexes)
#hd.create_dataset('haloChildIndexes' , data = self.haloChildIndexes)
if not self.obj.snapAttribs.DM_ONLY:
gd = outfile.create_group('galaxy')
gd.create_dataset('galaxy_glist', data = self.galaxy_glist)
gd.create_dataset('galaxy_slist', data = self.galaxy_slist)
outfile.close()
""" OUTDATED NUMPY
halo_glist = self.halo_glist
halo_slist = self.halo_slist
halo_dmlist = self.halo_dmlist
halo_lrlist = self.halo_lrlist
haloparentIndexes = self.haloParentIndexes
if not self.obj.snapAttribs.DM_ONLY:
galaxy_glist = self.galaxy_glist
galaxy_slist = self.galaxy_slist
np.savez(self.obj.locs.particlelist,
halo_glist = halo_glist,
halo_slist = halo_slist,
halo_dmlist = halo_dmlist,
halo_lrlist = halo_lrlist,
galaxy_glist = galaxy_glist,
galaxy_slist = galaxy_slist,
haloParentIndexes = haloparentIndexes)
else:
np.savez(self.obj.locs.particlelist,
halo_glist = halo_glist,
halo_slist = halo_slist,
halo_dmlist = halo_dmlist,
halo_lrlist = halo_lrlist,
haloParentIndexes = haloparentIndexes)
"""