Hey all, I am trying to to have yt load up a data set, and then create phase plots with varying weighted fields like the script below. The problem is that when reaches the 'for item in field' loop, after each image output, the loop starts over instead of continuing to the next field... for instance, the output for a series of numbers representing the images would look like this: 1 1 2 1 2 3 1 2 3 4 etc I am not quite sure how to remedy this, so I'm hoping someone could point me in the right direction. Thanks for your efforts! Nicholas Earl from yt.mods import * # set up our namespace #field = ['Temperature','Cooling_Time'] field = ['Cooling_Time','Density','Electron_Fraction','Gas_Energy','H2II_Fraction','H2I_Fraction','HII_Fraction','HI_Fraction','HM_Fraction','HeIII_Fraction','HeII_Fraction','HeI_Fraction','Metal_Fraction','Temperature','Total_Energy','x-velocity','y-velocity'] for n in range(1,402): #for item in field: pf = load("DD%04i/DD%04i" % (n,n)) # load dataset #for item in field: pc = PlotCollection(pf, center=[1.0, 0.5, 0.5]) # defaults to center at most dense point for item in field: #value, position = pf.h.find_max("Density") #print value, position pc.add_phase_sphere(10.0, "pc", # how many of which unit at pc.center ["Density", "Temperature", "CellMassMsun"], # our fields: x, y, color weight="%s" % (item))# don't take the average value in a cell, just sum them up #print item pc.save('./denstemp_weighted/%s' % (pf)) # save all plots
Hi Nick.
I believe the problem is related to the fact that you define the
PlotCollection outside of the (for item in field) loop. Each time you do
pc.add_phase_sphere, you are adding another item to the PlotCollection,
which contains everything that has been added since it was created. Thus,
when you call pc.save, it is saving each item in the collection. To remedy
this, all you need to do is move the pc = PlotCollection line inside the
loop. Also, adding a "del pc" line at the end of the loop, while probably
not totally necessary, couldn't hurt either.
Britton
On Thu, Dec 30, 2010 at 4:05 PM, Nicholas Earl
Hey all,
I am trying to to have yt load up a data set, and then create phase plots with varying weighted fields like the script below.
The problem is that when reaches the 'for item in field' loop, after each image output, the loop starts over instead of continuing to the next field... for instance, the output for a series of numbers representing the images would look like this:
1 1 2 1 2 3 1 2 3 4 etc
I am not quite sure how to remedy this, so I'm hoping someone could point me in the right direction.
Thanks for your efforts! Nicholas Earl
from yt.mods import * # set up our namespace
#field = ['Temperature','Cooling_Time']
field = ['Cooling_Time','Density','Electron_Fraction','Gas_Energy','H2II_Fraction','H2I_Fraction','HII_Fraction','HI_Fraction','HM_Fraction','HeIII_Fraction','HeII_Fraction','HeI_Fraction','Metal_Fraction','Temperature','Total_Energy','x-velocity','y-velocity']
for n in range(1,402): #for item in field: pf = load("DD%04i/DD%04i" % (n,n)) # load dataset #for item in field: pc = PlotCollection(pf, center=[1.0, 0.5, 0.5]) # defaults to center at most dense point for item in field: #value, position = pf.h.find_max("Density") #print value, position pc.add_phase_sphere(10.0, "pc", # how many of which unit at pc.center ["Density", "Temperature", "CellMassMsun"], # our fields: x, y, color weight="%s" % (item))# don't take the average value in a cell, just sum them up #print item pc.save('./denstemp_weighted/%s' % (pf)) # save all plots
_______________________________________________ yt-users mailing list yt-users@lists.spacepope.org http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
Hi Nicholas,
Alternatively, and possibly preferably, you could move the
pc.save() call outside of the "for item in field" loop.
j
On Thu, Dec 30, 2010 at 1:11 PM, Britton Smith
Hi Nick.
I believe the problem is related to the fact that you define the PlotCollection outside of the (for item in field) loop. Each time you do pc.add_phase_sphere, you are adding another item to the PlotCollection, which contains everything that has been added since it was created. Thus, when you call pc.save, it is saving each item in the collection. To remedy this, all you need to do is move the pc = PlotCollection line inside the loop. Also, adding a "del pc" line at the end of the loop, while probably not totally necessary, couldn't hurt either.
Britton
On Thu, Dec 30, 2010 at 4:05 PM, Nicholas Earl
wrote: Hey all, I am trying to to have yt load up a data set, and then create phase plots with varying weighted fields like the script below. The problem is that when reaches the 'for item in field' loop, after each image output, the loop starts over instead of continuing to the next field... for instance, the output for a series of numbers representing the images would look like this: 1 1 2 1 2 3 1 2 3 4 etc I am not quite sure how to remedy this, so I'm hoping someone could point me in the right direction. Thanks for your efforts! Nicholas Earl
from yt.mods import * # set up our namespace #field = ['Temperature','Cooling_Time'] field = ['Cooling_Time','Density','Electron_Fraction','Gas_Energy','H2II_Fraction','H2I_Fraction','HII_Fraction','HI_Fraction','HM_Fraction','HeIII_Fraction','HeII_Fraction','HeI_Fraction','Metal_Fraction','Temperature','Total_Energy','x-velocity','y-velocity'] for n in range(1,402): #for item in field: pf = load("DD%04i/DD%04i" % (n,n)) # load dataset #for item in field: pc = PlotCollection(pf, center=[1.0, 0.5, 0.5]) # defaults to center at most dense point for item in field: #value, position = pf.h.find_max("Density") #print value, position pc.add_phase_sphere(10.0, "pc", # how many of which unit at pc.center ["Density", "Temperature", "CellMassMsun"], # our fields: x, y, color weight="%s" % (item))# don't take the average value in a cell, just sum them up #print item pc.save('./denstemp_weighted/%s' % (pf)) # save all plots
_______________________________________________ yt-users mailing list yt-users@lists.spacepope.org http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
_______________________________________________ yt-users mailing list yt-users@lists.spacepope.org http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
Thank you! Worked like a charm. Nick On Dec 30, 2010, at 4:13 PM, j s oishi wrote:
Hi Nicholas,
Alternatively, and possibly preferably, you could move the
pc.save() call outside of the "for item in field" loop.
j
On Thu, Dec 30, 2010 at 1:11 PM, Britton Smith
wrote: Hi Nick.
I believe the problem is related to the fact that you define the PlotCollection outside of the (for item in field) loop. Each time you do pc.add_phase_sphere, you are adding another item to the PlotCollection, which contains everything that has been added since it was created. Thus, when you call pc.save, it is saving each item in the collection. To remedy this, all you need to do is move the pc = PlotCollection line inside the loop. Also, adding a "del pc" line at the end of the loop, while probably not totally necessary, couldn't hurt either.
Britton
On Thu, Dec 30, 2010 at 4:05 PM, Nicholas Earl
wrote: Hey all, I am trying to to have yt load up a data set, and then create phase plots with varying weighted fields like the script below. The problem is that when reaches the 'for item in field' loop, after each image output, the loop starts over instead of continuing to the next field... for instance, the output for a series of numbers representing the images would look like this: 1 1 2 1 2 3 1 2 3 4 etc I am not quite sure how to remedy this, so I'm hoping someone could point me in the right direction. Thanks for your efforts! Nicholas Earl
from yt.mods import * # set up our namespace #field = ['Temperature','Cooling_Time'] field = ['Cooling_Time','Density','Electron_Fraction','Gas_Energy','H2II_Fraction','H2I_Fraction','HII_Fraction','HI_Fraction','HM_Fraction','HeIII_Fraction','HeII_Fraction','HeI_Fraction','Metal_Fraction','Temperature','Total_Energy','x-velocity','y-velocity'] for n in range(1,402): #for item in field: pf = load("DD%04i/DD%04i" % (n,n)) # load dataset #for item in field: pc = PlotCollection(pf, center=[1.0, 0.5, 0.5]) # defaults to center at most dense point for item in field: #value, position = pf.h.find_max("Density") #print value, position pc.add_phase_sphere(10.0, "pc", # how many of which unit at pc.center ["Density", "Temperature", "CellMassMsun"], # our fields: x, y, color weight="%s" % (item))# don't take the average value in a cell, just sum them up #print item pc.save('./denstemp_weighted/%s' % (pf)) # save all plots
_______________________________________________ yt-users mailing list yt-users@lists.spacepope.org http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
_______________________________________________ yt-users mailing list yt-users@lists.spacepope.org http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
_______________________________________________ yt-users mailing list yt-users@lists.spacepope.org http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
participants (3)
-
Britton Smith
-
j s oishi
-
Nicholas Earl