Thank you all, now it is much more clear.

On Wed, Nov 28, 2012 at 12:30 AM, Anthony Scopatz <scop...@gmail.com> wrote:
>
> On Wed, Nov 28, 2012 at 1:03 AM, Antonio Valentino
> <antonio.valent...@tiscali.it> wrote:
>>
>> Hi Anthony, hi dashesy,
>>
>>
>> Il giorno 28/nov/2012, alle ore 00:57, Anthony Scopatz <scop...@gmail.com>
>> ha scritto:
>>
>> > This [1] seems to indicate that this kind of thing should be supported
>> > via numpy structured arrays.  However, I bet that this data set did not
>> > start out as a numpy structured array.  This might explain the problem if
>> > the flavor is wrong.  I would think that a fix should be relatively easy.
>> >
>> > Be Well
>> > Anthony
>> >
>> > 1.
>> > http://pytables.github.com/usersguide/libref/declarative_classes.html?highlight=attr#the-attributeset-class
>> >
>>
>> I'm not sure that PyTables is able to handle variable length strings in
>> compound data types at the moment.
>
>
> Oops, I didn't notice that...  Antonio is right, the variable length part of
> this is probably your issue.
>
>>
>>
>> >
>> > On Tue, Nov 27, 2012 at 5:17 PM, dashesy <dash...@gmail.com> wrote:
>> > I have a file that has attributes with nested compound type, when
>> > reading it with PyTables 2.4.0 I get this error:
>> >
>> > C:\Python27\lib\site-packages\tables\attributeset.py:293:
>> > DataTypeWarning: Unsupported type for attribute 'BmiRoot' in node '/'.
>> > Offending HDF5 class: 6
>> >   value = self._g_getAttr(self._v_node, name)
>> > C:\Python27\lib\site-packages\tables\attributeset.py:293:
>> > DataTypeWarning: Unsupported type for attribute 'BmiChanExt' in node
>> > 'channel00001'. Offending HDF5 class: 6
>> >   value = self._g_getAttr(self._v_node, name)
>> >
>>
>> Yes, it is not clear
>>
>> > Hard to say what exactly happens, just wanted to know if this is not
>> > already fixed in newer versions I will be more than happy to work on
>> > it, any pointers as to where to look is appreciated.
>> >
>>
>> I don't thing that there are changes that can impact on this issue.
>> Anyway you can give a try to the development branch [1]
>>
>> Any help is very appreciated
>>
>> [1] https://github.com/PyTables/PyTables
>>

I found the issues 48 and 54 on GitHub and 122 on Sourceforge refer to
the same problem.
It seems there is a potential solution using VLTables which I will
look into first,

I have created my vl string type using:

hid_t tid_attr_vl_str = H5Tcopy(H5T_C_S1);
ret = H5Tset_size(tid_attr_vl_str, H5T_VARIABLE);

I will first look at this (and add a test for in /tables/tests), but
reading the trac it seems there might be other form of vl strings in
the wild.
I appreciate if you have any comments or advice

>>
>> > Here is the (partial) dump of the file (for brevity I deleted
>> > non-related data parts but can provide the full file if needed):
>> >
>> > HDF5 "pause5-10-5.ns2.h5" {
>> > GROUP "/" {
>> >    ATTRIBUTE "BmiRoot" {
>> >       DATATYPE  "/BmiRootAttr_t"
>> >       DATASPACE  SIMPLE { ( 1 ) / ( 1 ) }
>> >       DATA {
>> >       (0): {
>> >             1,
>> >             0,
>> >             0,
>> >             1,
>> >             "2008-12-02 22:57:02.251000",
>> >             "1 kS/s",
>> >             ""
>> >          }
>> >       }
>> >    }
>> >    DATATYPE "BmiRootAttr_t" H5T_COMPOUND {
>> >       H5T_STD_U32LE "MajorVersion";
>> >       H5T_STD_U32LE "MinorVersion";
>> >       H5T_STD_U32LE "Flags";
>> >       H5T_STD_U32LE "GroupCount";
>> >       H5T_STRING {
>> >          STRSIZE H5T_VARIABLE;
>> >          STRPAD H5T_STR_NULLTERM;
>> >          CSET H5T_CSET_ASCII;
>> >          CTYPE H5T_C_S1;
>> >       } "Date";
>> >       H5T_STRING {
>> >          STRSIZE H5T_VARIABLE;
>> >          STRPAD H5T_STR_NULLTERM;
>> >          CSET H5T_CSET_ASCII;
>> >          CTYPE H5T_C_S1;
>> >       } "Application";
>> >       H5T_STRING {
>> >          STRSIZE H5T_VARIABLE;
>> >          STRPAD H5T_STR_NULLTERM;
>> >          CSET H5T_CSET_ASCII;
>> >          CTYPE H5T_C_S1;
>> >       } "Comment";
>> >    }
>> >    GROUP "channel" {
>> >       DATATYPE "BmiChanAttr_t" H5T_COMPOUND {
>> >          H5T_STD_U16LE "ID";
>> >          H5T_IEEE_F32LE "Clock";
>> >          H5T_IEEE_F32LE "SampleRate";
>> >          H5T_STD_U8LE "SampleBits";
>> >       }
>> >       DATATYPE "BmiChanExt2Attr_t" H5T_COMPOUND {
>> >          H5T_STD_I32LE "DigitalMin";
>> >          H5T_STD_I32LE "DigitalMax";
>> >          H5T_STD_I32LE "AnalogMin";
>> >          H5T_STD_I32LE "AnalogMax";
>> >          H5T_STRING {
>> >             STRSIZE 16;
>> >             STRPAD H5T_STR_NULLTERM;
>> >             CSET H5T_CSET_ASCII;
>> >             CTYPE H5T_C_S1;
>> >          } "AnalogUnit";
>> >       }
>> >       DATATYPE "BmiChanExtAttr_t" H5T_COMPOUND {
>> >          H5T_IEEE_F64LE "NanoVoltsPerLSB";
>> >          H5T_COMPOUND {
>> >             H5T_STD_U32LE "HighPassFreq";
>> >             H5T_STD_U32LE "HighPassOrder";
>> >             H5T_STD_U16LE "HighPassType";
>> >             H5T_STD_U32LE "LowPassFreq";
>> >             H5T_STD_U32LE "LowPassOrder";
>> >             H5T_STD_U16LE "LowPassType";
>> >          } "Filter";
>> >          H5T_STD_U8LE "PhysicalConnector";
>> >          H5T_STD_U8LE "ConnectorPin";
>> >          H5T_STRING {
>> >             STRSIZE H5T_VARIABLE;
>> >             STRPAD H5T_STR_NULLTERM;
>> >             CSET H5T_CSET_ASCII;
>> >             CTYPE H5T_C_S1;
>> >          } "Label";
>> >       }
>> >       DATATYPE "BmiChanFiltAttr_t" H5T_COMPOUND {
>> >          H5T_STD_U32LE "HighPassFreq";
>> >          H5T_STD_U32LE "HighPassOrder";
>> >          H5T_STD_U16LE "HighPassType";
>> >          H5T_STD_U32LE "LowPassFreq";
>> >          H5T_STD_U32LE "LowPassOrder";
>> >          H5T_STD_U16LE "LowPassType";
>> >       }
>> >       GROUP "channel00001" {
>> >          ATTRIBUTE "BmiChan" {
>> >             DATATYPE  "/channel/BmiChanAttr_t"
>> >             DATASPACE  SIMPLE { ( 1 ) / ( 1 ) }
>> >             DATA {
>> >             (0): {
>> >                   1,
>> >                   30000,
>> >                   1000,
>> >                   16
>> >                }
>> >             }
>> >          }
>> >          ATTRIBUTE "BmiChanExt" {
>> >             DATATYPE  "/channel/BmiChanExtAttr_t"
>> >             DATASPACE  SIMPLE { ( 1 ) / ( 1 ) }
>> >             DATA {
>> >             (0): {
>> >                   1000,
>> >                   {
>> >                      750000,
>> >                      4,
>> >                      1,
>> >                      7500,
>> >                      3,
>> >                      1
>> >                   },
>> >                   1,
>> >                   1,
>> >                   "elec1"
>> >                }
>> >             }
>> >          }
>> >          ATTRIBUTE "BmiChanExt2" {
>> >             DATATYPE  "/channel/BmiChanExt2Attr_t"
>> >             DATASPACE  SIMPLE { ( 1 ) / ( 1 ) }
>> >             DATA {
>> >             (0): {
>> >                   -8191,
>> >                   8191,
>> >                   -8191,
>> >                   8191,
>> >                   "uV"
>> >                }
>> >             }
>> >          }
>> >          DATASET "continuous_set" {
>> >             DATATYPE  H5T_STD_I16LE
>> >             DATASPACE  SIMPLE { ( 631 ) / ( H5S_UNLIMITED ) }
>> >             DATA {...
>> >             }
>> >          }
>> >       }
>> >    }
>> > }
>> > }
>>
>>
>> --
>> Antonio Valentino
>>
>>
>>

dashesy

------------------------------------------------------------------------------
Keep yourself connected to Go Parallel: 
INSIGHTS What's next for parallel hardware, programming and related areas?
Interviews and blogs by thought leaders keep you ahead of the curve.
http://goparallel.sourceforge.net
_______________________________________________
Pytables-users mailing list
Pytables-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pytables-users

Reply via email to