[yt-users] pickle
Matthew Turk
matthewturk at gmail.com
Thu Aug 11 11:27:33 PDT 2011
On Thu, Aug 11, 2011 at 11:41 AM, Elizabeth Tasker <taskere at mcmaster.ca> wrote:
> Hi Matt and Stephen,
>
> While typing out what Matt asked for, I inadvertently fixed the problem! It
> turns out that the equivalent to:
>
> -------> print(cloudcores[40]["Density"])
> yt : [INFO ] 2011-08-11 13:39:59,985 Getting field Density from 2
> [ 3.80336226e-23 4.31254788e-23 3.87927154e-23 ..., 1.26533774e-22
> 2.13753864e-22 2.74680682e-22]
>
>
> once pickled and de-pickled into 'core' is:
>
> -------> print(core[40][1]["Density"])
> yt : [INFO ] 2011-08-11 13:38:48,531 Getting field Density from 2
> [ 3.80336226e-23 4.31254788e-23 3.87927154e-23 ..., 1.26533774e-22
> 2.13753864e-22 2.74680682e-22]
>
>
> since
>
> In [29]: print core[40][0]
> -------> print(core[40][0])
> GT_BTAccel_256AMR4_PeHeat_sf5_SNe_0301
>
> -------> print(core[40][1])
> ExtractedRegion (GT_BTAccel_256AMR4_PeHeat_sf5_SNe_0301):
> _base_region=AMRRegion (GT_BTAccel_256AMR4_PeHeat_sf5_SNe_0301): center=[
> 16. 16. 16.], left_edge=[ 0. 0. 0.], right_edge=[ 32. 32. 32.]
>
> As a matter of interest, I couldn't get the yt-approved object storage to
> work. I just got:
>
> In [14]: pf.h.save_object("cloudcores", "myclouds")
> ---------------------------------------------------------------------------
> AttributeError Traceback (most recent call last)
>
> /1/home/taskere/yt/scripts/iyt in <module>()
> ----> 1
> 2
> 3
> 4
> 5
>
> AttributeError: 'NoneType' object has no attribute 'h'
This error looks like pf is None, which is a different issue...
>
> I tried also:
>
> In [15]: dd.save_object("cloudcores", "myclouds")
> ---------------------------------------------------------------------------
> NameError Traceback (most recent call last)
>
> /1/home/taskere/yt/scripts/iyt in <module>()
> ----> 1
> 2
> 3
> 4
> 5
>
> /1/home/taskere/yt/yt/data_objects/data_containers.py in save_object(self,
> name, filename)
> 329 """
> 330 if filename is not None:
> --> 331 ds = shelve.open(filename, protocol=-1)
> 332 if name in ds:
> 333 mylog.info("Overwriting %s in %s", name, filename)
>
> NameError: global name 'shelve' is not defined
Fixed in tip, thanks!
-Matt
>
> (I added in an 'import shelve' for good measure, but it didn't help).
>
> Finally, I tried:
>
> In [18]: cloudcores.save_object("myclouds", "cloudstored.cpkl")
> ---------------------------------------------------------------------------
> AttributeError Traceback (most recent call last)
>
> /1/home/taskere/yt/scripts/iyt in <module>()
> ----> 1
> 2
> 3
> 4
> 5
>
> AttributeError: 'dict' object has no attribute 'save_object'
>
>
> Thanks once again,
>
> Elizabeth
>
>
>
>
> Matthew Turk wrote:
>>
>> It might also be worthwhile to see what, exactly, core is ...
>>
>> print core
>>
>> Depending on how it is loaded/unloaded, it might be a tuple of the
>> parameter file, or might be something slightly other than you are
>> expecting. This comes about because it tries really hard to make sure
>> that the parameter file doesn't disappear.
>>
>> -Matt
>>
>> On Thu, Aug 11, 2011 at 9:20 AM, Stephen Skory <s at skory.us> wrote:
>>
>>>
>>> Elizabeth,
>>>
>>> have you tried using the yt-approved object storage?
>>>
>>>
>>> http://yt.enzotools.org/doc/analyzing/objects.html?#storing-and-loading-objects
>>>
>>> On Thu, Aug 11, 2011 at 9:09 AM, Elizabeth Tasker <taskere at mcmaster.ca>
>>> wrote:
>>>
>>>>
>>>> Hi,
>>>>
>>>> (Another day a different problem!): I'd like to pickle the results from
>>>> extract_connected_sets, but I can't seem to retrieve what I pickle
>>>> properly.
>>>> I have:
>>>>
>>>> contours = dd.extract_connected_sets("NegEscapeVelocity", 1, 30.0, maxv,
>>>> log_space=False)
>>>> cloudcores = contours[1][0] #cores defined by contour 0
>>>>
>>>> file = open('testa.pickle','wb')
>>>> cPickle.dump(cloudcores,file,protocol=-1)
>>>> file.close()
>>>>
>>>> file = open('testa.pickle','rb')
>>>> core = cPickle.load(file)
>>>> file.close()
>>>>
>>>> But while:
>>>>
>>>> In [76]: cloudcores[40]["Density"]
>>>> Out[76]:
>>>> array([ 3.80336226e-23, 4.31254788e-23, 3.87927154e-23, ...,
>>>> 1.26533774e-22, 2.13753864e-22, 2.74680682e-22])
>>>>
>>>>
>>>>
>>>> In [77]: core[40]["Density"]
>>>>
>>>> ---------------------------------------------------------------------------
>>>> KeyError Traceback (most recent call
>>>> last)
>>>>
>>>> /1/home/taskere/yt/scripts/iyt in <module>()
>>>> ----> 1
>>>> 2
>>>> 3
>>>> 4
>>>> 5
>>>>
>>>> KeyError: 40
>>>>
>>>>
>>>> Is it not possible to pickle a contour object or is there something else
>>>> I
>>>> have to do when un-pickling?
>>>>
>>>> Thank you,
>>>>
>>>> Elizabeth
>>>> _______________________________________________
>>>> yt-users mailing list
>>>> yt-users at lists.spacepope.org
>>>> http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
>>>>
>>>>
>>>
>>> --
>>> Stephen Skory
>>> s at skory.us
>>> http://stephenskory.com/
>>> 510.621.3687 (google voice)
>>> _______________________________________________
>>> yt-users mailing list
>>> yt-users at lists.spacepope.org
>>> http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
>>>
>>>
>>
>> _______________________________________________
>> yt-users mailing list
>> yt-users at lists.spacepope.org
>> http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
>>
>
> _______________________________________________
> 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