from params import *
import matplotlib
matplotlib.use('Agg')
from matplotlib import pyplot as plt
from mpl_toolkits.axes_grid1 import AxesGrid
import numpy as np
import yt
from yt.units.yt_array import YTQuantity
from functions import *
"""
The datapath,numhalos,halos,halolist,sourcelist, etc are defined in the params file.
I've also made my own function file which uses the yt functions and adds the units I want and so on but I've stripped away that part here.
There's also a ton of numpy arrays for different stuff, so just assume the proj_plot_halo_plot[l,i,j,k] actually exist.
"""
for l,simpath in enumerate(datapath):
ts = yt.load(simpath)
for i,index in enumerate(sourcelist):
ds = ts[index-1]
for j in range(numhalos):
curr_halo = halolist[l][j]
cen = halos[l][curr_halo] #Center of current halo
rad = haloradius[l][curr_halo]
wid = 2.*rad # diameter of current halo
if ('ramses', 'Density') in ds.field_list: #Check for gas density in sim
#Make the cube around the halo
left_edge = cen - wid #A bit larger than the halo but we want that
right_edge = cen + wid #A bit larger than the halo but we want that
cube = ds.region(cen, left_edge, right_edge, fields=None, ds=ds, field_parameters=None, data_source=None)
#Make projection through cube along each axis
for k,dim in enumerate(['x','y','z']):
fieldtype = 'gas'
field = 'density'
proj_plot_halo_plot[l,i,j,k] =yt.ProjectionPlot(ds, dim, (fieldtype,field), center=cen, width=wid, data_source=cube)
#proj_plot_halo_plot[l,i,j,k] =yt.ProjectionPlot(ds, dim, (fieldtype,field), center=cen, width=wid) #No difference between this and above.
#radial density profile
sph = ds.sphere(cen, 1.*rad)
fieldtype = 'gas'
field = 'density'
weight = None
prof_density_halo_plot[l,i,j] = yt.create_profile(sph,'radius',(fieldtype,field),weight_field=weight)
prof_density_halo_plot_specs[l,i,j] = dict(linewidth=2, alpha=0.7)
prof_density_halo_plot_labels[l,i,j] = 'Halo #%d'%curr_halo
"""After this there's some code where I combine the plots into a larger figure to compare them but that's not important."""