简单应用程序消息传递协议 (astropy.samp
)#
astropy.samp
是SAMP消息传递系统的Python实现。
简单应用程序消息传递协议(SAMP)是一种进程间通信系统,它允许通常在同一台计算机上运行的不同客户端程序通过交换可能引用外部数据文件的短消息来相互通信。该协议是在国际虚拟天文台联盟(IVOA)内制定的,许多桌面天文学工具都能理解该协议,包括 TOPCAT , SAO DS9 ,以及 Aladin 。
所以通过使用 astropy.samp
,Python代码可以与其他正在运行的桌面客户机交互,例如在DS9中显示一个命名的FITS文件,提示Aladin在给定的天空位置重新居中,或者在用户高亮显示TOPCAT中的打印点时接收到一条标识行的消息。
协议的工作方式是SAMP“Hub”进程必须在本地主机上运行,然后各种客户机程序才能连接到它。一旦连接起来,这些客户机就可以通过集线器互相发送消息。有关详细信息,请参阅 SAMP standard .
astropy.samp
提供的类既可以设置这样的集线器进程,也可以帮助实现可以发送和接收消息的客户端。它还提供了一个独立的程序 samp_hub
它可以在自己的进程中运行持久化集线器。注意,从Python设置hub并不总是必要的,因为其他各种支持SAMP的应用程序可能独立地启动一个hub;在大多数情况下,在SAMP会话期间只使用一个正在运行的hub。
以下类在中可用 astropy.samp
:
SAMPHubServer
,用于实例化客户端可以连接到的集线器服务器。SAMPHubProxy
,用于连接到现有集线器(包括从其他应用程序启动的集线器,例如 TOPCAT )。SAMPClient
,用于创建SAMP客户机。SAMPIntegratedClient
,与SAMPClient
只是它有一个独立的SAMPHubProxy
提供更简单的用户界面。
astropy.samp
is a full implementation of SAMP V1.3. As well as the Standard Profile, it supports the Web Profile, which means that it can be used to also communicate with web SAMP clients; see the sampjs 库示例以获取更多详细信息。
使用 astropy.samp
#
参考/API#
致谢#
此代码改编自 SAMPy 包由Luigi Paioro编写,他已经授予Astropy项目使用BSD许可证下的代码的权限。