[AstroPy] extracting column names from VOtable

Erik Tollerud erik.tollerud at gmail.com
Mon Feb 25 10:47:20 EST 2013


This is probably the easiest way:

[f.name for f in table.fields]

``table.fields`` is a list of `astropy.io.votable.tree.Field` objects, and
those objects have all the information about the columns (including
things like units).

An alternative is to use `array` to get the numpy array from the
votable, and the `dtype` has the column names.  I.e.,
``table.array.dtype.names`` should give the same thing.  That won't
include extra VO information like units and such, though.



On Mon, Feb 25, 2013 at 6:26 AM, Susana Sanchez <susanasanche at gmail.com> wrote:
> Hi all,
>
> Probably this is a newbie question, but how can I extract the names of
> the columns from the VOtable with the Astropy library?
>
> I want to show the VOTable data in a nice way, using the Qt library,
> so I need to extract the names of the columns and the data from a
> VOTable. I have tried it using the Numpy record array associated to
> the votable, see code below.  But I have problems when the votable
> fields have 'ID' and also 'name'. I am wondering if there is a better
> way to find the column names.
>
> I would be very gratefully, If anyone can help me or give me any hint.
>
> Thanks,
> Susana.
>
>
>
> table = parse_single_table("/home/susana/Documents/examples/tables/cig22.xml",pedantic=False)
> data = table.array
> dtype_a=data.dtype
> column_names=[]
> for k,v in dtype_a.fields.iteritems():
>     column_names.append(k)
> _______________________________________________
> AstroPy mailing list
> AstroPy at scipy.org
> http://mail.scipy.org/mailman/listinfo/astropy



--
Erik



More information about the AstroPy mailing list