1. GDA简介

本指南旨在概述GDA框架,并解释其中嵌入的Jython脚本环境的功能。这包括如何编写脚本、通过扫描执行数据收集以及绘制扫描数据。它不包括GDA的光束线或技术特定部分。

本指南解释:如何使用GDA。您的数据将存储在何处以及如何存储。如何使用基本命令(如扫描)执行实验。关于编写Jython脚本和Jython模块的指导原则。编码和文档标准。高级脚本工具。如何编写您自己的扫描程序-由扫描控制的对象。

注解

这一章的一些内容是针对钻石公司的GDA使用的。

1.1. GDA项目

通用数据采集(GDA)框架是一个基于Java的分布式系统,用于钻石公司的光束线来控制实验和收集数据。开发该软件的项目是在达累斯伯里的SRS启动的,直到2003年10月发布4.2版。从那时起,它一直由这两个设施的团队共同开发,直到2007年底发布7.0.0版。从那时起,戴蒙德的GDA完全是由数据采集和科学计算小组开发的。

每条光束线都使用为其特定硬件和实验要求配置的GDA软件副本。可以使用特定于光束线或技术的GUI面板、命令行终端或通过编写和运行脚本(宏)来控制实验。

1.2. 登录到光束线工作站

GDA软件从光束线上的工作站运行。光束线使用以下两种方法之一登录到这些工作站:

  1. 共享用户帐户登录。在某些光束线上,您将登录到相同的共享用户帐户。此帐户的名称是光束线的名称,后跟‘user’,全部为小写。例如,如果您的光束线是I01,则帐户将是‘i01user’。使用此类型帐户登录的密码将由光束线工作人员提供给您。但是请注意,使用此方法的光束线上的工作站在启动或重新启动时将自动登录到此帐户。

  2. FedID帐户登录。在其他波束线路上,您将使用您自己的设施、用户FedID、用户名和用户办公室发给您的密码进行登录。

从2007年3月1日起,所有光束线都使用第一种共享帐户方法,但这种情况将会改变。有时可以通过远程登录到这些工作站之一,从外部控制光束线。

无论您如何登录光束线,GDA系统都会将您的数据(和其他一些文件)存储在您的光束线存储服务器上的共享位置。对此数据的读访问控制将由光束线工作人员决定。如果您担心您的数据安全,请让他们知道。此存储服务器将在下一节中介绍。

1.3. 启动GDA

在启动GDA软件之前,您可能需要设置shell环境。如果您使用自己的FedID帐户登录,请键入::

source /dls/ixx/etc/ixx-profile.sh

启动GDA是一个两步过程。大量GDA软件通过键入以下命令从终端启动:

gdaservers

从Linux终端或:

gdaservers.bat

从Windows终端。这将在其中一台光束线的中央控制服务器机器上启动GDA服务器软件。在您开始使用系统之前,此软件可能正在运行,但要求它重新启动不会造成损害。GUI客户端用于与此服务器交互。启动服务器大约30秒后,您应该会看到消息“Server Initialization Complete”(服务器初始化完成)。然后键入::

gdaclient

从Linux终端,或:

gdaclient.bat

从Windows终端启动GUI客户端。GUI客户端在启动时会要求您输入名称和密码。GDA使用此名称来确定将数据放在哪里。如果您已使用FedID登录到您自己的用户帐户,请选择自动使用该帐户的FedID的选项。否则,如果您登录到共享用户帐户,请提供您的FedID和用户办公室分配的密码。

如果您尝试启动GDA客户端并得到一串连接错误,然后出现最后一个“Can‘t find a Command Server”错误,则可能是服务器没有运行,需要启动,或者您在启动客户端之前等待的时间不够长。您可以关闭工作站上运行的GDA客户端软件,而不会影响命令服务器的操作。如果您需要离开计算机,而不是锁定屏幕以阻止访问GDA命令服务器,您可以关闭客户端软件并注销。然后,您可以登录并重新启动客户端服务器,并从上次停止的地方开始。

1.4. GDA客户端

GDA客户端充当命令服务器的接口。客户端有一个GUI,其中包含许多可通过选项卡访问的面板。可用的面板因光束线而异。根据实验和光束线的性质,您可以使用特定于实验的面板来控制光束线。其他有用的面板包括:

  • 具有多张图片的配置面板,显示光束线上的每个可控硬件(或光学元件)。这些图片还提供了一种移动这些元素的机制。

  • 一种脚本终端面板,提供了一种控制这些元素和执行实验的通用方式。

  • 一个Jython编辑器面板,提供了一种编写脚本的方法,这些脚本可以保存,然后使用此面板中的按钮运行。

使用这些面板控制光束线的方法在本手册的睡觉中介绍。

1.5. 基本控制

可由光束线上的GDA控制的硬件显示在配置面板上。无论您是否打算使用此面板,本节都将介绍如何控制光束线上的硬件。在配置面板中,单击每个可用的光学元件(OE)将显示该元件的交互式图片。

_images/GDA-configuration-panel.png

OE配置面板

可由光束线上的GDA控制的硬件显示在配置面板上。无论您是否打算使用此面板,本节都将介绍如何控制光束线上的硬件。在配置面板中,单击每个可用的光学元件(OE)将显示该元件的交互式图片。

1.6. 数据存储

所有实验结果最初将保存在光束线的中央存储区。通常情况下,您在存储实验数据的位置上没有太多选择。GDA软件将每次实验或扫描的结果保存在标准位置。这种刚性使数据可以从光束线上迁移出来,并通过eScience和IGRID等项目进行备份、存档和访问。

1.6.1. 存储目录路径

每条光束线都有一个存储服务器,存储容量超过5T字节。当您登录到您的用户帐户时,将自动装载此存储服务器中的一个目录。此目录的名称和访问它的路径取决于光束线的名称。每条光束线都有一个三位小写标识符,如i01或b01。以i01为例,Linux工作站上的目录为:

i01-storage.diamond.ac.uk:/dls/i01, mounted as /dls/i01

在Windows工作站上,目录为::

//i01-storage.diamond.ac.uk/i01, mapped to X:

注意:如果您需要访问beamline的标识符,它将作为一个名为beamline的环境变量存储在您的帐户空间中。

1.6.2. 存储目录结构

在光束线的存储服务器上有一个公共目录。所有用户和实验的数据都存储在这里。它包含以下子目录:

storagedir
|_ data         The GDA stores data here
|_ scripts      GDA Scripts used to control experiments
|_ logs         The GDA stores log files here
|_ spool        Beamline systems store temporary files here

数据目录包含最近在光束线上执行的所有实验的数据。每个实验将通过执行年份、用户办公室分配的建议书编号和访问编号来标识。访问次数通常为1,除非实验需要多次访问戴蒙德才能完成。对于每个实验,GDA软件将根据以下模式在数据目录中创建一个子目录::

/dls/<beamline>/data/<year>/<sciencearea><proposal>-<visit>

例如,第一次访问时建议书标识符1243的光束线i18(光谱)上的数据将存储在Windows下Linux X:data2007sp1243-1下的:/dls/i18/data/2007/sp1234-1中。

1.6.3. 数据文件

大多数实验都是由若干次扫描组成的。典型的扫描包括旋转样本通过多个角度,在每个角度测量或拍摄图像。您执行的每个连续扫描都会分配一个序列号,称为扫描号。执行扫描的结果将存储在当前实验目录中,名称为::

<beamline>-<scan number>.<extension>

其中扩展取决于扫描类型。这样的文件通常是描述扫描点和某些测量参数的值的一组表格数据。

某些扫描(例如拍摄图像的扫描)将生成多个数据文件。在这种情况下,扫描产生的每个文件也会被赋予一个序列号,从而产生一组名为::

<beamline>-<scan number>-<sequence number>.<extension>

该系统将由Nexus系统取代,在该系统中,每次扫描只生成一个文件(见下文)。此外,在有时使用需要不同命名方案的分析软件的某些MX光束线上可能不遵守该命名方案。

1.6.4. 示例存储目录

下面示出了虚构光束线i01上的示例存储目录结构。

storage
|_ scripts
|_ logs
|_ spool
|_ data
|
|_ 2007
|  |
|  |_ expa-1           Proposal called exp1, first visit
|  |  |_i01-1.nxs      data from 1st scan
|  |  |_i01-2.nxs      data from 2nd scan
|  |  |_i01-3.nxs      data from 3rd scan
|  |
|  |_ expb-1           Proposal called expb, first visit
|     |_i01-1.nxs      tabular data from 1st scan
|     |_i01-1-1.jpg    1st CCD image
|     |_i01-1-2.jpg    2nd CCD image
|     |_i01-1-3.jpg    3rd CCD image
|     |_i01-2.nxs      tabular data from 2nd scan
|     |_i01-2-1.jpg    1st CCD image
|     |_i01-2-2.jpg    2nd CCD image
|     |_i01-2-3.jpg    3rd CCD image
|
|_ 2008
   |
   |_ expa-2           Expa's second visit
      |_i01-1.nxs      data from 1st scan
      |_i01-2.nxs      data from 2nd scan
      |_i01-3.nxs      data from 3rd scan

1.6.5. 过渡到Nexus数据文件

上述用于存储数据文件的系统正在被基于NEXUS格式的系统所取代,NEXUS格式是作为表示来自中子、X射线和µ子源的结果的国际标准而开发的。使用此方法,每次扫描始终只生成一个包含所有数据的文件。

这一新方法将在2008年分阶段实施,目前可用于测试。要打开Nexus文件写入,只需设置java属性::

gda.data.scan.datawriter.dataFormat=NexusDataWriter

在测试阶段,这还将生成遗留的SRS类型格式文件。