astropy / astroquery

Functions and classes to access online data resources. Maintainers: @keflavich and @bsipocz and @ceb8
http://astroquery.readthedocs.org/en/latest/
BSD 3-Clause "New" or "Revised" License
695 stars 397 forks source link

Wrong datatype of simbad mesPLX.plx_err #3093

Closed sy-billa closed 8 hours ago

sy-billa commented 1 day ago

I'm trying to retrieve from Simbad all the parallax and error measures of a given object with the correspondent bibcode:

from astroquery.simbad import Simbad Simbad.query_tap("""SELECT plx,plx_err,bibcode from mesPLX JOIN ident USING(oidref) WHERE id = 'BD+30 2512'""")

This is the output: Schermata da 2024-09-18 12-37-09

The datatype of plx_err is int16 as confirmed also by the Simbad.list_columns() output: mesPLX plx_err SMALLINT

The correct datatype of plx_err should be float. (Moreover, the unit of the data are mas, not arcsec).

I did the same query on simbad webpage TAP service, and there the output is correct (plx_err datatype is float).

ManonMarchand commented 1 day ago

Good catch! Indeed, it's an issue with the VOtable output format of SIMBAD.

@aoberto , the query above returns the following VOTable:

<?xml version="1.0" encoding="utf-8"?>
<VOTABLE version="1.3" xmlns="http://www.ivoa.net/xml/VOTable/v1.3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ivoa.net/xml/VOTable/v1.3 http://www.ivoa.net/xml/VOTable/v1.3">
<RESOURCE type="results">
<INFO name="QUERY_STATUS" value="OK"/>
<INFO name="PROVIDER" value="CDS">SIMBAD TAP Service</INFO>
<INFO name="QUERY" value="SELECT plx,plx_err,bibcode from mesPLX
JOIN ident USING(oidref)
WHERE id = 'BD+30 2512'"/>
<TABLE name="result_1726659509740">
<FIELD datatype="float" name="plx" ucd="pos.parallax.trig" unit="arcsec">
<DESCRIPTION>Parallaxe</DESCRIPTION>
</FIELD>
<FIELD datatype="short" name="plx_err" ucd="stat.error" unit="arcsec">
<DESCRIPTION>sigma{plx}</DESCRIPTION>
</FIELD>
<FIELD arraysize="*" datatype="char" name="bibcode" ucd="meta.bib.bibcode">
<DESCRIPTION>measurement bibcode</DESCRIPTION>
</FIELD>
<DATA>
<TABLEDATA>
  <TR>
    <TD>68.8506</TD>
    <TD>0.0216</TD>
    <TD>2020yCat.1350....0G</TD>
  </TR>
  <TR>
    <TD>68.8608</TD>
    <TD>0.0398</TD>
    <TD>2018yCat.1345....0G</TD>
  </TR>
  <TR>
    <TD>63.3</TD>
    <TD>4.4</TD>
    <TD>1995GCTP..C......0V</TD>
  </TR>
  <TR>
    <TD>69.43</TD>
    <TD>1.08</TD>
    <TD>1997A&amp;A...323L..49P</TD>
  </TR>
  <TR>
    <TD>69.7</TD>
    <TD>0.82</TD>
    <TD>2007A&amp;A...474..653V</TD>
  </TR>
  <TR>
    <TD>69.08</TD>
    <TD>0.26</TD>
    <TD>2016A&amp;A...595A...2G</TD>
  </TR>
</TABLEDATA>
</DATA>
</TABLE>
</RESOURCE>
</VOTABLE>

The datatype of plx_err is short instead of float

EDIT: I'm not sure about the units though. Will check.

ManonMarchand commented 1 day ago

Indeed, the unit is also wrong (for both plx and plx_err), see the corresponding gaia entry https://vizier.unistra.fr/viz-bin/VizieR-5?-ref=VIZ66eabfde141409&-out.add=.&-source=I/350/gaiaedr3&-c=215.48517155062%20%2b29.62824483667,eq=ICRS,rs=2&-out.orig=o

sy-billa commented 1 day ago

I reported the issue to CDS. Meanwhile this workaround works:

Simbad.query_tap("""SELECT plx, plx_err*1000./1000., bibcode from mesPLX JOIN ident USING(oidref) WHERE id = 'BD+30 2512'""")

Schermata da 2024-09-18 15-39-03

aoberto commented 8 hours ago

Hello, thanks for having reported the issue, the configuration on SIMBAD has been fixed.

ManonMarchand commented 8 hours ago

Tested on my side, all solved! Thanks Anaïs :slightly_smiling_face: