Hi Joel,
The type of linking exposed in the Glue GUI is not designed for 1-to-1 linking but instead if you currently made a histogram of ID and selected from that histogram, it would select that range of IDs from the image. For 1-to-1 linking you instead need (for now) to resort to using the Python method 'join_on_key' - write a small script to load the data, set up the link, and start up glue:
from glue.app.qt import GlueApplication
app = GlueApplication()
d1 = app.add_data('labels.fits')
d2 = app.add_data('catalog.csv')
d1, d2 = app.data_collection
d1.join_on_key(d2, 'PRIMARY', 'id')
app.start()
Run the script - once glue opens, you will then be able to select entries in the scatter plot or table viewer and have these entries be highlighted in the image. Likewise if you select pixels in the image, it will select the entries in the catalog with corresponding ID.
If you want to also load in the original image (in my example this is MSX_E.fits), you can do this with the following:
from glue.app.qt import GlueApplication
app = GlueApplication()
d1 = app.add_data('labels.fits')
d2 = app.add_data('catalog.csv')
# Say yes when asked to merge the datasets
d3 = app.add_data('MSX_E.fits')
# The merging has swapped the order of the datasets
d2, d1 = app.data_collection
# Note that the component names have changed a little
d1.join_on_key(d2, 'labels[PRIMARY]', 'id')
app.start()
Of course, we want to expose all this through the GUI, and it is a work in progress, but for now the above code should (I think) do the trick in your case. Could you let us know if it works?
Thanks!
Tom