Example #1
0
def mvp_for_peter(master_sink,args):	
	#write MVP data to file for Peter
	rate=master_sink.mdot/mdotB()
	time=(master_sink.mdotTime-master_sink.mdotTime[0])/get_tBH()
	fout=open(os.path.join(os.path.dirname(args.master_sink),'%s.pickle' % args.str_beta),'w')
	master_sink=dump((rate,time),fout)
	fout.close()
Example #2
0
def get_nmad(time,mdot,str_beta):
	'''str_beta is a string, options: bInf,b100,b10,b1,b01,b001'''
	min_tBH= dict(bInf=5.,b100=5.,b10=3.,b1=2.,b01=2.,b001=2.)
	t= (time-time[0])/get_tBH()
	imin=np.where(t >= min_tBH[str_beta])[0][0]
	nmad= np.zeros(64)-1
	med=np.median(mdot[:,imin:],axis=1)
	for i in range(mdot.shape[0]):
		nmad[i]= np.median(np.absolute(mdot[i,imin:]-med[i]))
	return nmad,med
Example #3
0
import os

from modules.sink.rates_and_tscales import get_tBH  

def make_dir(name):
    if os.path.exists(name): raise ValueError
    else: os.makedirs(name)

parser = argparse.ArgumentParser(description="test")
parser.add_argument("-hdf5_dir",action="store",help='path to hdf5 file(s)')
parser.add_argument("-freq",type=float,action="store",help='ex) 0.1, fraction of tBH to grab hdf5 files for')
args = parser.parse_args()

outdir= os.path.join(args.hdf5_dir,'hdf5_every_10th_tBH/')
make_dir(outdir)
freq=args.freq*get_tBH() #fraction of tBH

fnames= glob.glob(os.path.join(args.hdf5_dir,'data*.hdf5'))
fnames= np.sort(fnames)
print 'first 5 sorted fnames'
for fn in fnames: print fn
cp_list=[]
for cnt,fname in enumerate(fnames):
    print 'reading %d of %d files' % (cnt+1,len(fnames))
    ds=yt.load(fname)
    new_time= float(ds.current_time)
    if cnt == 0: 
        cp_list.append(fname)
        prev_time= new_time
    else: 
        if new_time-prev_time >= freq:
Example #4
0
	def tnorm(self):
		'''return normalized time'''
		return (self.mdotTime-self.mdotTime[0])/get_tBH()
Example #5
0
#correlated sinks
master={}
for sink_dir,str_beta in zip(args.dirs,args.labels):
	fin=open(os.path.join(sink_dir,'master_sink.pickle'),'r')
	master[str_beta]=pickle.load(fin)
	master[str_beta].sink_xyz(args.init_sink)
	fin.close()
sizes=range(len(args.labels))
for i,str_beta in enumerate(args.labels):
	sizes[i]= master[str_beta].mdotTime.shape[0]
junk=args.labels[0]
x= np.empty( (master[junk].mdot.shape[0],)+(max(sizes),)+(len(args.labels),))*np.nan
y=x.copy()
for i,str_beta in enumerate(args.labels):
	time=(master[str_beta].mdotTime-master[str_beta].mdotTime[0])/get_tBH()
	x[:,:sizes[i],i]= np.transpose(np.repeat(time[:,np.newaxis], x.shape[0], axis=1)) #(npts,) array to (64,npts,)
	y[:,:sizes[i],i]= master[str_beta].mdot/mdotB()
titles= np.core.defchararray.add(np.array(['sid ']*len(master[str_beta].init.sid)),master[str_beta].init.sid.astype(str))
nrow,ncol=8,8
multi_plot(nrow,ncol,x,y,titles=titles,logy=True,ylim=args.ylim)

print 'exiting after correlated sinks'
sys.exit(0)

#nmad plot
print 'plotting nmad'
for sink_dir,label in zip(args.dirs,args.labels):
	fin=open(os.path.join(sink_dir,'master_sink.pickle'),'r')
	master=pickle.load(fin)
	fin.close()