from astropy.table import Table
from astropy import log
log.setLevel('WARNING')
table1 = Table([[0.0, 1.0, 2.0, 3.0], ["un", "deux", "trois", "quatre"]], names=("value", "name"))
print (table1)
print (table1["value"])
print (table1[0])
from astropy.table import Column
newcol = Column([1.1, 3.3, 5., 0.], name="newcol")
table1.add_column(newcol)
table1.remove_column("name")
print (table1)
table2 = Table([[1,2,3,4], [1.1, None, None,0]],
names=("col1", "col2"))
matable = Table([table1["value"], table1["newcol"], table2["col1"], table2["col2"]])
print (matable)
table1["value"] *=2
print (table1)
print (matable) # matable n'est pas modifiee
matable["value"] *=2
print (matable)
le format choisit dans l'exemple est VOTable, mais TSV, FITS sont aussi disponibles!
tab = Table.read("http://vizier.u-strasbg.fr/viz-bin/votable?-source=I/298/lspm_n&-out.max=500")
print (tab[0:5])
#tab["V-J"].info() -- devrait fonctionner!!!!
print (tab["V-J"].meta)
print (tab["V-J"].description)
tab.show_in_browser(jsviewer=True)
print (tab["V-J"].meta)
tab["V-J"].meta["madescription"]="color Vmag - Jmag"
print (tab["V-J"].meta)
exemple Gaia mag autour d'une position 0+0
from astropy.io.votable import parse
votable = parse("http://vizier.u-strasbg.fr/viz-bin/votable?-source=I/345/gaia2&-c=0+0")
table = votable.get_first_table()
print (table)
for field in table.fields:
print("column {:20s}: ucd={}".format(field.name, field.ucd))
def get_ucd(table, ucd):
cols = []
for field in table.fields:
if field.ucd.find(ucd)>-1:
cols.append(field)
return cols
magcols = get_ucd(table,"phot.mag")
for rec in table.array:
s = "({},{}):".format(rec["RA_ICRS"], rec["DE_ICRS"])
for i in range(len(magcols)):
s += " {}={} ({})".format(magcols[i].name, rec[i], magcols[i].ucd)
print (s)
import numpy as np
ind = np.where(tab["V-J"]<2)
print (tab[ind])
from astropy import units as u
tab["V-J"].convert_unit_to(u.mmag)
print (tab)
from astropy.coordinates import SkyCoord
pos = SkyCoord(tab["RAJ2000"], tab["DEJ2000"], frame='icrs')
print (pos.to_string('hmsdms')[:3])
gal = pos.transform_to('galactic')
#tab.remove_column("l")
#tab.remove_column("b")
tab.add_column(Column(gal.l, name="l"))
tab.add_column(Column(gal.b, name="b"))
print (tab[:3])
from astropy.table import MaskedColumn
b = MaskedColumn(tab["Vemag"], mask=tab["Vemag"]<15, name="Vemag")
tab.remove_column("Vemag")
tab.add_column(b)
print (tab[:10])
tab["Vemag"].fill_value = 99.99
print (tab.filled()[:10])
tab.write("matable.ascii", format="ascii.fixed_width")
tab.mask = False
print (tab[:10])