HI Molly,
I have identified the source of this bug and will be issuing a pull request
to fix it momentarily. Sorry for the inconvenience.
Britton
On Mon, Aug 29, 2016 at 7:56 PM, Nathan Goldbaum
A workaround that seems to work for me is to manually copy over the missing field_info data:
https://paste.yt-project.org/show/6792/
Keep in mind that you need to do it like I did, `profile = prof_ds.profile`, and then work with that profile object from then on, because `prof_ds.profile` is a property that doesn't cache its own result, so every time you access it you get back a new profile object.
On Mon, Aug 29, 2016 at 1:41 PM, Molly Peeples
wrote: Hey Nathan,
So currently there’s no way to save the profile and read it in later with this working? (The profile takes approximately forever to generate, so iterating on plotting while not in iPython is currently a p.i.t.a.)
—Molly
On August 29, 2016 at 2:37:56 PM, Nathan Goldbaum (nathan12343@gmail.com) wrote:
Hi Molly,
I think this is a bug in yt - the issue is that the field_info associated with the original profile object is not being saved to the profile dataset.
I've filed this issue here:
https://bitbucket.org/yt_analysis/yt/issues/1267
For now, you should be able to create a PhasePlot using the profile object you created from the original dataset:
nhT_prof_new = yt.create_profile(sph, [('gas', 'H_number_density'),('gas','temperature')], fields='cell_mass',
extrema=extrema,fractional=True, n_bins=6) plot = yt.PhasePlot.from_profile(nht_prof_new)
-Nathan
On Mon, Aug 29, 2016 at 12:45 PM, Molly Peeples
wrote: Hi folks,
I’m trying to construct and save a 2d profile container to make a phase plot. Here’s what I have:
nhT_prof_new = yt.create_profile(sph, [('gas', 'H_number_density'),('gas','temperature')], fields='cell_mass', extrema=extrema,fractional=True, n_bins=6)
nhT_prof_new.save_as_dataset()
prof_ds = yt.load("snap_047_z000p000_Profile2D.h5")
(just using a small number of bins for now to play with…)
In [115]: prof_ds.data["temperature"]
...: prof_ds.data["H_number_density"]
...: prof_ds.data["cell_mass"]
...:
Out[115]:
YTArray([[ 0.01685665, 0.0405085 , 0.03575519, 0.03091732, 0.02552936,
0.0230379 ],
[ 0.03770747, 0.05441198, 0.04859202, 0.03285325, 0.02385346,
0.04674817],
[ 0.03022001, 0.05150457, 0.03591368, 0.01974481, 0.01052408,
0.00331175],
[ 0.04278126, 0.01889035, 0.0177686 , 0.01644028, 0.01598129,
0.00578262],
[ 0.05010083, 0.06573628, 0.04247398, 0.03914208, 0. ,
0. ],
[ 0. , 0.11691224, 0. , 0. , 0. ,
0. ]]) dimensionless
but when I try to create a PhasePlot:
In [116]: p = yt.PhasePlot(prof_ds.data, "H_number_density", "temperature","cell_mass",weight_field=None)
...:
------------------------------------------------------------ ---------------
KeyError Traceback (most recent call last)
<ipython-input-116-37b81d75b563> in <module>()
----> 1 p = yt.PhasePlot(prof_ds.data,"H_number_density", "temperature","cell_mass",weight_field=None)
/Users/molly/anaconda2/envs/astroconda/lib/python2.7/site-pa ckages/yt/visualization/profile_plotter.pyc in __init__(self, data_source, x_field, y_field, z_fields, weight_field, x_bins, y_bins, accumulation, fractional, fontsize, figure_size)
756
757 type(self)._initialize_instance(self, data_source, profile, fontsize,
--> 758 figure_size)
759
760 @classmethod
/Users/molly/anaconda2/envs/astroconda/lib/python2.7/site-pa ckages/yt/visualization/profile_plotter.pyc in _initialize_instance(cls, obj, data_source, profile, fontsize, figure_size)
773 obj.profile = profile
774 super(PhasePlot, obj).__init__(data_source, figure_size, fontsize)
--> 775 obj._setup_plots()
776 obj._initfinished = True
777 return obj
/Users/molly/anaconda2/envs/astroconda/lib/python2.7/site-pa ckages/yt/visualization/profile_plotter.pyc in _setup_plots(self)
854 cax = self.plots[f].cax
855
--> 856 x_scale, y_scale, z_scale = self._get_field_log(f, self.profile)
857 x_title, y_title, z_title = self._get_field_title(f, self.profile)
858
/Users/molly/anaconda2/envs/astroconda/lib/python2.7/site-pa ckages/yt/visualization/profile_plotter.pyc in _get_field_log(self, field_z, profile)
813
814 def _get_field_log(self, field_z, profile):
--> 815 zfi = profile.field_info[field_z]
816 if self.x_log is None:
817 x_log = profile.x_log
KeyError: ('data', 'cell_mass')
Suggestions? —Molly
_______________________________________________ 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
_______________________________________________ yt-users mailing list yt-users@lists.spacepope.org http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org