|
From: Giovanni L. C. <glc...@gm...> - 2013-08-06 15:07:08
|
hi Anthony and Antonio,
thanks for the explanations. I was hoping I could do it programmatically, but if
it is an inherent limitation of HDF5 there is little I can do. Compression plus
a sensible chunk size should help though.
Best,
Giovanni
On 08/06/2013 04:11 AM, pyt...@li... wrote:
> Hi Anthony, hi Giovanni,
>
> Il giorno 06/ago/2013, alle ore 00:45, Anthony Scopatz<sc...@gm...> ha scritto:
>
>> On Mon, Aug 5, 2013 at 3:14 PM, Giovanni Luca Ciampaglia<glc...@gm...> wrote:
>> Hi Anthony,
>>
>> what do you mean precisely? I tried
>>
>> del ca[:,:]
>>
>> but CArray does not support __delitem__. Looking in the documentation I could
>> only find a method called remove_rows, but it's in Table, not CArray. Maybe I am
>> missing something?
>>
>> Huh, it should... This is definitely an oversight on our part. If you could please open an issue for this -- or better yet -- write a pull request that implements delitem, that'd be great!
>>
>> So I think you are right that there is no current way to delete rows from a CArray. Oops! (Of course, I may still be missing something as well).
>>
>> It looks like EArray also has this problem too, otherwise I would just tell you to use that.
> I'm not sure to understand the problem.
>
> The "truncate" method of arrays can be used to remove rows from an extendable array.
> It seems to me that it is not documented but we should add it to the UG.
>
> CArrays cannot be resized.
>
>> Be Well
>> Anthony
>>
>>
>> Thank,
>>
>> Giovanni
>>
>> On Mon 05 Aug 2013 03:43:42 PM EDT,pyt...@li...
>> wrote:
>>>> Hello Giovanni, I think you may need to del that slice and then possibly
>>>> repack. Hope this helps. Be Well Anthony On Mon, Aug 5, 2013 at 2:09 PM,
>>>> Giovanni Luca Ciampaglia <glc...@gm...> wrote:
>>>>> Hello all,
>>>>>
>>>>> is there a way to clear out a chunk from a CArray? I noticed that setting
>>>>> the
>>>>> data to zero actually takes disk space, i.e.
>>>>>
>>>>> ***
>>>>> from tables import open_file, BoolAtom
>>>>>
>>>>> h5f = open_file('test.h5', 'w')
>>>>> ca = h5f.create_carray(h5f.root, 'carray', BoolAtom(), shape=(1000,1000),
>>>>> chunkshape=(1,1000))
>>>>> ca[:,:] = False
>>>>> h5f.close()
>>>>> ***
>>>>>
>>>>> The resulting file takes 249K ...
>>>>>
>>>>> Best,
>>>>>
>>>>> --
>>>>> Giovanni Luca Ciampaglia
> HDF5 handles efficiently chunks that have never been written saving some disk space but I doubt that chunks can be "de-initializad".
> If my understanding is correct, once one write some value in a chunk (even if it is the default value) the chunk is allocated at HDF5 level and written to disk.
> At they point one can only change item values.
> Also I doubt that a repack can help in this case (not tested).
>
> The only solution IMO is compression.
>
>
> cheers
>
> --
> Antonio Valentino
--
Giovanni Luca Ciampaglia
Postdoctoral fellow
Center for Complex Networks and Systems Research
Indiana University
✎ 910 E 10th St ∙ Bloomington ∙ IN 47408
☞ http://cnets.indiana.edu/
✉ gci...@in...
|