from yt.mods import *
from matplotlib import use; use('Agg')
import matplotlib.pyplot as plt
import numpy as np
from yt.analysis_modules.halo_finding.api import *

pf = load("RedshiftOutput0066")
haloes = LoadHaloes(pf, "RD0066")
#vl=pf["RefineRegionLeftEdge"]
#vr=pf["RefineRegionRightEdge"]
#width=(vr-vl).max()
#c=(vl+vr)/2
wkpc=10.0
z=pf['CosmologyCurrentRedshift']
width=wkpc*(z+1.0)/40.0/1000
c=np.array([4.468541421e-01,4.300955076e-01,5.538299609e-01])#([0.4441978731, 0.439532107, 0.454682259])
sv = pf.h.region(c, c-width, c+width)

p = ProjectionPlot(pf, 2, "Density", c, width=(2*wkpc, 'kpc'),data_source=sv)
p.annotate_particles(2*wkpc/pf['kpc'],ptype=7)#,stars_only=True)
p.annotate_hop_circles(haloes,min_size=10000,width=wkpc/pf['kpc'])
p.save('1_%3.1fkpc_%3.1f'%(2*wkpc,z))

p = ProjectionPlot(pf, 1, "Density", c, width=(2*wkpc, 'kpc'),data_source=sv)
p.annotate_particles(2*wkpc/pf['kpc'],ptype=7)#,stars_only=True)
p.annotate_hop_circles(haloes,min_size=10000,width=wkpc/pf['kpc'])
p.save('1_%3.1fkpc_%3.1f'%(2*wkpc,z))

p = ProjectionPlot(pf, 0, "Density", c, width=(2*wkpc, 'kpc'),data_source=sv)
p.annotate_particles(2*wkpc/pf['kpc'],ptype=7)#,stars_only=True)
p.annotate_hop_circles(haloes,min_size=10000,width=wkpc/pf['kpc'])
p.save('1_%3.1fkpc_%3.1f'%(2*wkpc,z))


#pc = PlotCollection(pf, center=c)
#pc.add_projection('Density',2,data_source=sv)
#pc.add_projection('Density',1,data_source=sv)
#pc.add_projection('Density',0,data_source=sv)
#p = ProjectionPlot(pf, 2, "Density", c, width=(5, 'kpc'),data_source=sv)
#p.annotate_particles(5/pf['kpc'],stars_only=True)
#p.save()

#pc.add_projection('TotalMetallicity',2,data_source=sv)
#pc.add_projection('Temperature',2,weight_field='Density',data_source=sv)
#pc.add_projection('TotalMetallicity',2,weight_field='Density',data_source=sv)
#pc.set_width(2*width,'1')
#pc.set_zlim(1e-1,1e-3)
#pc.save("Halo")
#del pc

#pc = PlotCollection(pf, center=c)
#pc.add_projection('Density',2,data_source=sv)
#pc.add_projection('TotalMetallicity',2,data_source=sv)
#pc.add_projection('Temperature',2,weight_field='Density',data_source=sv)
#pc.add_projection('Temperature',1,weight_field='Density',data_source=sv)
#pc.add_projection('Temperature',0,weight_field='Density',data_source=sv)
#pc.add_projection('TotalMetallicity',2,weight_field='Density',data_source=sv)
#pc.set_width(2*width,'1')
#pc.set_zlim(1e-1,1e-3)
#pc.save("Halo")
#del pc

#pc = PlotCollection(pf, center=c)
#pc.add_projection('Density',2,data_source=sv)
#pc.add_projection('TotalMetallicity',2,data_source=sv)
#pc.add_projection('Temperature',2,weight_field='Density',data_source=sv)
#pc.add_projection('TotalMetallicity',2,weight_field='Density',data_source=sv)
#pc.add_projection('TotalMetallicity',1,weight_field='Density',data_source=sv)
#pc.add_projection('TotalMetallicity',0,weight_field='Density',data_source=sv)
#pc.set_width(2*width,'1')
#pc.set_zlim(1e-1,1e-6)
#pc.save("Halo")
#del pc

#c=na.array([0.4882009076, 0.4725569205, 0.4654072348])
#pc = PlotCollection(pf, center=c)
#sv = pf.h.region(c,c-5.0/pf['kpc'],c+5.0/pf['kpc'])
#pc.add_projection('Density',2,data_source=sv)
#pc.add_projection('Temperature',2,weight_field='Density',data_source=sv)
#pc.add_projection('TotalMetallicity',2,weight_field='Density',data_source=sv)
#pc.set_width(10,'kpc')
#pc.set_zlim(2e-1,1e-4)
#pc.save("most_massive_halo")
#del pc

