II型多功能天文经纬仪图像采集系统*
2021-07-15张益恭王建成陈林飞程向明张冠军
张益恭,苏 婕,杨 磊,王建成, 陈林飞,程向明,张冠军
(1. 中国科学院云南天文台,云南 昆明 650216;2. 中国科学院天体结构与演化重点实验室,云南 昆明 650216; 3. 中国科学院天文大科学研究中心,北京 100101;4. 中国科学院大学,北京 100049)
随着空间科学技术的发展,地面天体测量仪器在天球参考架建立[1-2]、地球自转参数测定[3-4]等领域已经逐步退出,但地面天体测量仪器在测量地球参数方面仍然发挥重要作用,仪器通过测量恒星方向确定测站铅垂线在天球坐标中的指向,监测本地铅垂线方向的变化信息[5-6]。国内外相关研究团队利用地面天体测量仪器开展了对观测地点天文经纬度的测定工作,测定结果可以获得垂线偏差资料[7-8],并且通过分析所测时纬残差异常波动(本地铅垂线方向的异常变化)表明,铅垂线方向的异常变化可能是一种有效的地震前兆信息[9-10]。
针对云南地区严峻的强震形势,利用地面天体测量仪器开展本地铅垂线变化监测工作,提供铅垂线方向的异常变化资料作为可能的地震前兆信息,为地震研究提供参考,对防震减灾工作有重要意义。基于以上研究背景,中国科学院云南天文台联合国内多家单位开展了多功能天文经纬仪的研制工作,主要用于监测本地铅垂线的变化,在2012年完成了第1台I型多功能天文经纬仪[11-12]的研制,2019年完成了后续两台II型多功能天文经纬仪的研制,仪器调试完成后通过组网联测的方式开展本地铅垂线变化信息监测。
数据采集系统是天体测量仪器的重要组成部分。在天文观测数据获取方面,天体测量仪器的数据采集终端经历了从照相底片[13]到光电倍增管[14],再到CCD相机[15]的一系列变革。在误差测量系统方面,不同天体测量仪器使用的数据采集方案不尽相同,其中美国海军天文台旗杆镇子午环采用激光干涉仪和视频CCD构成的误差测量方案[15],低纬子午环采用雷迪康探测器(Reticon)为核心部件的误差测量方案[16],数字天顶筒则采用高精度倾斜仪和倾角传感器作为误差测量的核心部件[17-18]。I型多功能天文经纬仪的图像采集系统[12]采用一台数字相机和两台模拟相机作为误差测量系统和天文观测的数据采集终端。两台模拟相机仅具有8位的像素深度,动态范围较小,并且自身本底噪声较高,量子效率较低,不利于获取高信噪比的图像数据。此外,使用不同型号的图像采集终端增加了硬件维护和软件开发的难度。针对I型多功能天文经纬仪图像采集系统的不足,II型多功能天文经纬仪图像采集系统对采集终端硬件和配套软件都进行了升级,对程序设计方法进行了优化。
本文主要介绍II型多功能天文经纬仪图像采集系统的硬件构成与软件实现方法,并对程序设计方法相较于I型多功能天文经纬仪的变化与改进进行说明。
1 II型多功能天文经纬仪的工作模式
II型多功能天文经纬仪采用与I型多功能天文经纬仪相同的转轴观测模式。针对观测纲要中的单个被测星目标,在被测星星像通过视场垂直中线之前开始露光,先用主光路CCD相机采集50幅主光路的人造星像,再采集100幅被测星图像,采集被测星的同时,电水准和轴准直光路的CCD相机也采集100幅图像。之后仪器绕方位轴(垂直方向)转置180°,镜筒随着高度轴旋转预置天顶距两倍的角度,使望远镜仍指向被测星,同时采集被测星、电水准人造星像和轴准直器人造星像各100幅图像,最后采集50幅主光路人造星像。
望远镜控制系统按照给定的观测纲要文件执行观测任务,对于单个观测目标,以设定的观测时序,通过外触发的方式控制相机进行露光并同步记录全球定位系统时间、高度轴码盘和方位轴码盘的读数。通过将气温气压信息采集模块集成到望远镜控制系统,实现在每颗星的转轴观测前对观测室气温气压信息的自动记录。II型多功能天文经纬仪的工作模式如图1。
图1 II型多功能天文经纬仪的工作模式Fig.1 Block diagram of the operation mode of the Multi-function Astronomical Theodolite II
2 系统的硬件
II型多功能天文经纬仪图像采集系统包含3个图像采集子系统,分别为采集恒星像和主光路人造星像的主光路图像采集系统,用于拍摄恒星像和测定望远镜光轴的指向变化;采集电水准人造星像的电水准光路图像采集系统,用于测定望远镜的水平差;采集轴准直器人造星像的轴准直图像采集系统,用于检测仪器高度轴的跳动引起的误差。3个子系统配备了同型号的非制冷CCD数字相机。
CCD相机采用Imperx公司的BOBCAT CLB-B1410M-SC000面阵相机。该相机采用的芯片为Sony公司的ICX-285AL,是尺寸为2/3″ 的行间转移CCD,像素大小为6.45 μm × 6.45 μm,在1 392 × 1 040分辨率、像素深度为12 bit时,采集帧频可以达到23 frame/s[19]。相机由12 V直流电源供电,支持外触发等多种触发模式。相机支持的数据传输协议为Base Cameralink,配套的图像采集卡为Dalas公司的Xtium-CL_MX4,该采集卡可以支持两个基本配置的Cameralink相机、一个中等配置或者完全配置的Cameralink相机,数据传输速度能够达到1.7 GB/s[20]。
图像采集系统采用外触发模式控制相机采集,由望远镜控制系统按照设定时序发送触发信号到采集卡,采集卡将TTL(Transistor-Transistor Logic)信号转换为低压差分信号(Low-Voltage Differential Signaling, LVDS)触发相机采集。图像采集系统框图如图2。
3 系统的软件框架
II型多功能天文经纬仪图像采集系统使用Microsoft Visual Studio 2010开发,结合图像采集卡厂家Teledyne Dalsa公司的Sapera LT 8.30 Release开发包进行图像采集软件的编写。Sapera LT是Teledyne Dalsa公司开发的与其硬件产品配套的软件开发工具,包含图像采集环境配置、图像采集、图像处理和图像显示等功能模块。在II型多功能天文经纬仪图像采集系统中,使用Sapera LT提供的相机配置工具CamExpert配置相机的触发模式、采集卡内存等信息,并生成配置文件。此外,相机工作在外触发模式下,还需要使用相机厂商Imperx公司提供的相机控制软件Bobcat Configurator CL,对相机触发参数进行设置,使之与CamExpert设置的相机配置文件匹配。相机控制软件触发参数配置界面如图3。
图3 相机控制软件触发参数配置Fig.3 Configuration of external trigger of digital camera
II型多功能天文经纬仪图像采集系统的3个子系统采用相同的软件开发框架,不同之处在于图像采集软件所开辟存储内存的大小。由图1可知,电水准光路图像采集系统和轴准直光路图像采集系统相较于主光路图像采集系统在转轴前后分别少采集50幅图像,所开辟的内存空间为100幅图像的大小,主光路图像采集系统所开辟的内存空间为150幅图像的大小。
4 程序设计方法
在程序设计方面,图像采集系统使用Teledyne Dalsa公司提供的Sapera LT++高级C++库,主要包含基础应用类(Basic Class)和图形用户界面类(Graphical User Interface Classes, GUI Classes)[21-22],其中基础应用类提供用于图像功能开发的基本函数,图形用户界面类提供常用的图形用户界面接口供开发者使用。II型多功能天文经纬仪图像采集系统相较于I型多功能天文经纬仪在图像采集流程方面没有太大变化。改进之处主要体现在两方面:
(1)在自定义图像采集函数Save()中添加了图像数据存储后内存的清零函数,防止出现图像数据重复保存问题,以主光路图像采集子系统为例,实现该函数功能的关键代码语句如下:
m_Buffers->Next();
m_StartFrame=(m_Buffers == NULL) ? 0 : m_Buffers->GetIndex(); //Get index number
m_Buffers->Save(FileName, m_Options); //Save image
m_Buffers->Clear(m_StartFrame); //Clear buffer
图像采集函数调用SapBuffer类中的4个函数GetIndex(),Next(),Save()和Clear()。首先使用Next()找到第1块图像内存,然后利用GetIndex()获取该内存的索引,随后用Save()将图像数据按照图像采集系统设定的RAW格式存储到磁盘阵列,最后将该块图像内存清零。
(2)II型多功能天文经纬仪图像采集系统通过建立专用的图像存储线程,实现图像数据的自动存储。具体方法是将图像采集工作站的时间(观测之前需要利用全球定位系统时间进行校准)和纲要的时间进行比对,等待观测时刻的到来。对于时间比对判断的实现方法,II型多功能天文经纬仪图像采集系统使用Win32 API函数GetCurrentTime()获取当前机器时间的秒计数;使用Windows 标准C++类CTime类的构造函数CTime(int nYear, int nMonth, int nDay, int nHour, int nMin, int nSec, int nDST=-1)构造CTime对象,输入从纲要文件中得到的年、月、日、时、分、秒等时间信息,将纲要时间换算为以秒为单位,避免了I型多功能天文经纬仪出现的 “过午夜24点的问题”[12],之后按照所设定观测时序通过WIN32 API函数Sleep()实现时间控制,分别在望远镜转轴期间、转轴后等待下颗星观测的时间间隔,对转轴前后的图像数据进行存储。
5 测试结果
目前,两台II型多功能天文经纬仪已经开展了一年多的观测实验,单台仪器一个晴夜观测4 h约120颗恒星,采集图像数据量约为250 GB,所有图像存储在图像处理工作站的磁盘阵列中。观测完成后,由观测人员利用项目组开发的图像处理软件进行图像批量自动处理。图4为主光路图像采集系统的软件界面。
图4 II型多功能天文经纬仪图像采集软件界面Fig.4 A screenshot of the user interface of the software for recording images
图5是II型多功能天文经纬仪调试阶段拍摄的月面局部图像,能够清晰地看到月球表面的环形山和陨石坑,表明经过装调的望远镜光学系统状态良好。图6是电水准光路的CCD相机拍摄的电水准人造星像经放大后的图像,人造星像由单个光斑构成。图7是主光路的CCD相机拍摄的一颗视星等为5.01的恒星经放大后的图像,曝光时间为43 ms,星像的亮度基本符合高斯分布,轮廓的平整度为0.26(表示对该星像进行圆拟合,有26%的点落在圆外)。造成星像不圆的原因主要有光学系统焦长发生变化、大气视宁度影响、望远镜的跟踪误差等。II型多功能天文经纬仪的观测原理要求仪器在固定指向对目标进行观测,恒星相对望远镜的移动会导致星像轮廓不圆,大气抖动导致的随机误差会影响恒星像中心量度坐标的测量。仪器采用对观测目标进行连续多幅图像采集的方式,减小误差。
图5 II型多功能天文经纬仪主相机拍摄的月面局部图像Fig.5 Parts of Moon images recorded by the digital camera
图6 电水准光路相机拍摄的人造星像图像Fig.6 An artificial light spot image recorded by the digital camera of leveler collimating optical path
图7 主光路相机拍摄的恒星像Fig.7 A stellar image recorded by the digital camera of main optical path
6 结束语
为了满足利用多台仪器组网监测本地铅垂线变化的需求,中国科学院云南天文台根据望远镜的总体技术要求,在I型多功能天文经纬仪图像采集系统的基础上研制开发了II型多功能天文经纬仪图像采集系统。3台数字相机及配套的图像采集卡和图像处理工作站作为主要硬件,Microsoft Visual Studio 2010和 Sapera LT 8.30 Release作为软件开发框架,开发了系统的软件部分。一年多的观测实验过程中,系统运行情况良好,所获得图像数据能够满足后续的使用要求。