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("RedshiftOutput0063")

#vl=pf["RefineRegionLeftEdge"]
#vr=pf["RefineRegionRightEdge"]
#width=(vr-vl).max()
#c=(vl+vr)/2
z=pf["CosmologyCurrentRedshift"]
wkpc=3000.0/(z+1.0)
width=wkpc*(z+1.0)/40.0/1000
#c=np.array([4.442412274e-01,4.399203178e-01,4.539913005e-01])
c=[0.5,0.5,0.5]
RL=[0.425, 0.425, 0.425]
RR=[0.575, 0.575, 0.575]
sv = pf.h.region(c, RL, RR)
#haloes = LoadHaloes(pf, "RD0057")

#pc = PlotCollection(pf, center=c)
#p=pc.add_projection('Density',2,data_source=sv)
#p = ProjectionPlot(pf, 2, "Density", c, width=(2*wkpc, 'kpc'),data_source=sv)
#pc.add_projection('Density',1,data_source=sv)
#pc.add_projection('Density',0,data_source=sv)


p = ProjectionPlot(pf, 0, ["Density"], c, width=(2*wkpc, 'kpc'),data_source=sv)
p.annotate_particles(2*wkpc/pf['kpc'],stars_only=True)
#p.annotate_hop_circles(haloes,min_size=200,width=wkpc/pf['kpc'])
p.set_zlim('all',5e-4,1e-2)
p.save('%3.1fMpc_%3.1f'%(2*wkpc*(z+1.0)/1000,z))
#p = ProjectionPlot(pf, 1, ["Density","TotalMetallicity"], c, width=(2*wkpc, 'kpc'),data_source=sv)
#p.annotate_particles(2*wkpc/pf['kpc'],ptype=5)#,stars_only=True)
#p.annotate_hop_circles(haloes,min_size=200,width=wkpc/pf['kpc'])
#p.save('%3.1fkpc_%3.1f'%(2*wkpc,z))
#p = ProjectionPlot(pf, 0, ["Density","TotalMetallicity"], c, width=(2*wkpc, 'kpc'),data_source=sv)
#p.annotate_particles(2*wkpc/pf['kpc'],ptype=5)#,stars_only=True)
#p.annotate_hop_circles(haloes,min_size=200,width=wkpc/pf['kpc'])
#p.save('%3.1fkpc_%3.1f'%(2*wkpc,z))

#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*wkpc,'kpc')
#pc.set_zlim(1e-1,1e-3)
#pc.save('%3.1fkpc_%3.1f'%(2*wkpc,z))
#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

