[yt-users] Unpickling phase plots

Matthew Turk matthewturk at gmail.com
Fri Jul 1 09:00:29 PDT 2011


Hi David,

On Fri, Jul 1, 2011 at 8:55 AM, david collins <antpuncher at gmail.com> wrote:
> Hi there--
>
> I have a phase plot that I pickled on one machine, and moved to my
> laptop and want to re-plot.  I pickled it like this:
> fptr=open(filename,'rb')
> cPickle.dump(pc.plots[-1].data,fptr,protocol=-1)
>
> I want to unpickle it like this:
> obj = cPickle.load( open(filename) )
>
> but I get this parameter file error (full traceback below):
>
> return self._convert_pf(self._records[hash])
> KeyError: (('32aa7d1d4941760ffd8fdcab4ea97e1f',), <function
> _reconstruct_pf at 0x101f9d050>,
> ('32aa7d1d4941760ffd8fdcab4ea97e1f',))
>
> I suspect that the key error is because I don't have the original
> dataset on this machine (due to disk space) so the pf store on this
> machine doesn't have that key.  Does that sound right, and is there a
> work around for that?

Yup, sounds right.

Pickling phase plots is tricky.  Part of the plotting refactor is
designed to allow it, and I have been using successfully lately.  Use
yt.visualization.profile_plotter.PhasePlotter, which is substantially
more constraining in exposed methods, but also provides the attribute
.plot, which can be pickled and which itself provides a to_mpl
function that takes filenames, axes or figures.  You should read the
source to see how it works, but this is the "future" for pickling and
passing plots.

-Matt

>
> This is a technique I've used in the past, so in principle it's sound.
>
> Thanks,
> d.
>
> Full trace:
> Traceback (most recent call last):
>  File "<stdin>", line 1, in <module>
>  File "p8_theta_coarse.py", line 6, in <module>
>    phase = fPickle.load(infile)
>  File "/Users/dcollins/Sites/Research/CodeGames/yt2.0/fPickle.py",
> line 9, in load
>    output = cPickle.load(inputfile,*args,**kwargs)
>  File "/Users/dcollins/local/lib/python2.6/site-packages/yt-2.1dev-py2.6-macosx-10.4-i386.egg/yt/data_objects/static_output.py",
> line 192, in _reconstruct_pf
>    pf = pfs.get_pf_hash(*args)
>  File "/Users/dcollins/local/lib/python2.6/site-packages/yt-2.1dev-py2.6-macosx-10.4-i386.egg/yt/utilities/parameter_file_storage.py",
> line 104, in get_pf_hash
>    return self._convert_pf(self._records[hash])
> KeyError: (('32aa7d1d4941760ffd8fdcab4ea97e1f',), <function
> _reconstruct_pf at 0x101f9d050>,
> ('32aa7d1d4941760ffd8fdcab4ea97e1f',))
>
>
> --
> Sent from my computer.
> _______________________________________________
> yt-users mailing list
> yt-users at lists.spacepope.org
> http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
>



More information about the yt-users mailing list