Advanced: Callbacks and Extensions¶
Callback functions can be added to FireflyClient
. Here is a simple
example of defining and registering a callback that prints world coordinates
to the Python session:
def print_coords(event):
if 'wpt' in event['data']:
wpt = event['data']['wpt']
wdata = wpt.split(';')
ra = float(wdata[0])
dec = float(wdata[1])
print('ra={:.6f}, dec={:.6f}'.format(ra,dec))
fc.add_listener(print_coords)
To activate the callback in point-selection mode, add it as an extension
with ext_type='POINT'
. By default, the title of the extension will appear
as a clickable icon when the Firefly viewer is in point mode. A small image
can be passed in instead via the img_src
parameter.
fc.add_extension(ext_type='POINT', plot_id=None, title='Print coords',
extension_id='pickit')
To activate point-selection mode, in the Firefly browser tab, select the ‘Lock by click’ checkbox at the upper right. Then selecting any point in an image will overlay a box at that point. Finally, click on the ‘Print coords’ icon in the image display window to cause the callback to be triggered, and coordinates to be printed out.
The callback can be deleted with FireflyClient.remove_listener
:
fc.remove_listener(print_coords)