Table Access Protocol (TAP) queries: epochs
Ref: TAP
import numpy as np
from lsst.rsp import get_tap_service
import pandas as pd
import matplotlib.pyplot as plt
import time
service = get_tap_service ('tap')
assert service is not None
fields = pd.read_csv('LSSTComCam_fields.csv', index_col='field')
ddeg = .01
def grabcone(field):
return "CONTAINS(POINT('ICRS', coord_ra, coord_dec), " +\
f"CIRCLE('ICRS', {fields.loc[field, 'ra_deg']}, " +\
f"{fields.loc[field, 'dec_deg']}, {ddeg})) = 1"queries = pd.DataFrame(columns=['select', 'from', 'where'])
queries.loc['columns'] = ["column_name, datatype, description, unit",
"tap_schema.columns",
"table_name = 'dp1.Object'"]
qcols = queries.columns
query = ''
for col in qcols:
if queries.loc['columns'][col] != '':
query += f' {col.upper()} {queries.loc['columns'][col]}'
print(query)
job = service.submit_job(query)
job.run()
job.wait(phases=['COMPLETED', 'ERROR'])
if job.phase == 'ERROR':
job.raise_if_error()
elif job.phase == 'COMPLETED':
out = job.fetch_result().to_table()
queries.loc['columns', 'out'] = out
print(type(out), len(out))
# display(out)
print() SELECT column_name, datatype, description, unit FROM tap_schema.columns WHERE table_name = 'dp1.Object'
<class 'astropy.table.table.Table'> 1296
ocols = queries.loc['columns', 'out'].to_pandas()
ocolsLoading...
ocols.loc[ocols['column_name'].str.contains('epoch', case=False)]Loading...