#!/usr/bin/env python # coding: utf-8 # # Intro # This notebook demonstrates basic usage of the firefly_client API method `show_table` for a file with multiple tables. # # Note that it may be necessary to wait for some cells (like those displaying an table) to complete before executing later cells. # ## Setup # Call the imports for firefly_client: # In[ ]: from firefly_client import FireflyClient # In this example, we use the IRSA Viewer - a public firefly server. The firefly server can also be run locally, e.g. via a Firefly Docker image obtained from https://hub.docker.com/r/ipac/firefly/tags/. # In[ ]: url='https://irsa.ipac.caltech.edu/irsaviewer' # url=http://127.0.0.1:8080/firefly # if you have firefly server running locally fc = FireflyClient.make_client(url) # The following example involves 2 files in different formats that contain multiple tables, 1 FITS and 1 VOTable (in XML style). If none are present, try to get a FITS from KOA (https://koa.ipac.caltech.edu/cgi-bin/KOA/nph-KOAlogin) and a XML VOTable through an Extended Name search on the classic version of NED (https://ned.ipac.caltech.edu/classic) and save them to a local computer path. To obtain the files directly, follow the links below: # FITS: https://koa.ipac.caltech.edu/cgi-bin/getKOA/nph-getKOA?filehand=/koadata40/MOSFIRE/20210502/lev0/MF.20210502.18830.fits #

# VOTable: https://ned.ipac.caltech.edu/cgi-bin/objsearch?objname=M31&extend=no&hconst=73&omegam=0.27&omegav=0.73&corr_z=1&out_csys=Equatorial&out_equinox=J2000.0&obj_sort=RA+or+Longitude&of=xml_all&zv_breaker=30000.0&list_limit=5&img_stamp=YES # Please set `testdata_repo_path` to be the local path where the FITS and VOTable files are located: # In[ ]: import os testdata_repo_path = '/hydra/cm' # to be reset to where test files are located on your system # ## Load a FITS containing multiple tables # Upload a file in FITS format that contains multiple tables and display it within the browser (noting that it may likely appear as though only the initial one is visible): # In[ ]: localfile = os.path.join(testdata_repo_path, 'MF.20210502.18830.fits') filename = fc.upload_file(localfile) fc.show_table(filename) # Look at another table within the FITS file in the browser (simply the only other one included for the case being looked at): # In[ ]: fc.show_table(filename, table_index=2) # ## Load a VOTable containing multiple tables # Upload a file in XML format which functions as a VOTable that contains multiple tables display it within the browser (noting that it may likely appear as though only the initial one is visible): # In[ ]: localfile = os.path.join(testdata_repo_path, 'Mr31objsearch.xml') filename = fc.upload_file(localfile) fc.show_table(filename, tbl_id='votable-0') # Look at another table within the VOTable in the broswer (simply the only other one included for the case being looked at): # In[ ]: fc.show_table(filename, tbl_id='votable-1', table_index=1) # In[ ]: