数据分析软件安装指南v2.01(中文)

Insight-HXMT用户分析软件安装指南[v2.01]  [pdf]

注:以下操作主要针对bash shell用户,如果用户使用其他shell请对命令做相应修改,或者通过网站helpdesk获得技术支持

1. 只安装HXMT用户分析软件(推荐SLC,支持MAC,Ubuntu)

适用于单独安装HXMT用户分析软件,没有安装HEAsoft(Headas)或不与已安装HEAsoft同时使用的用户

(1)下载HXMT分析软件安装包 [download]
(2)解压
          gunzip hxmtsoftv2.01.tar.gz
          tar vxf hxmtsoftv2.01.tar
(3)安装
          cd hxmtsoftv2.01/BUILD_DIR/
          ./configure    (可用--prefix参数指定安装路径,本例中假定安装到/path/to/hxmtsoft/目录下)
          make
          make install

(4)安装本底模块

        详细步骤见第三节

(5)下载和安装CALDB [download]

       下载标定数据库文件并解压

          gunzip CALDB2.01.tar.gz
          tar vxf CALDB2.01.tar

       复制标定数据库到指定目录下(可以自己选择目录,建议复制到hxmtsoft安装后的目录下)

          cp -r  CALDB2.01  /path/to/store/caldb

(6)设置环境变量

      修改~/.bashrc文件,加入以下内容

         export HEADAS=/path/to/hxmtsoft/x86_64-pc-linux-gnu-libc2.12

         export CALDB=/path/to/store/caldb/CALDB2.01

         export CALDBCONFIG=$CALDB/caldb.config

         source $HEADAS/headas-init.sh (Bash shell)

    注意第一行的黑体部分,这段内容会根据不同的操作系统有所变化,修改应该以安装时实际生成的目录为准

 

提醒:这个安装只包括慧眼卫星的分析软件和少量的ftools,不包括Xspec、Xronos等在内的大部分HEAsoft工具。

 

2. 与HEAsoft同时安装

适用于同时安装HEAsoft软件包和HXMT数据分析软件。
(1) 下载HXMT分析软件安装包[download]并解压,解压后可以看到:

      ls -1

  • attitude
  • BUILD_DIR
  • CMakeLists.txt
  • demo
  • ftools
  • heacore
  • heagen
  • HEASOFT-INSTALL.TXT
  • heasptools
  • heatools
  • hxmt
  • Release_Notes_6.26
  • tcltk

(2) 按照正常流程下载HEAsoft安装包并解压,需要选择源码安装包;

      (下例中,解压后的安装包位于~/heasoft-6.26/下

(3) 将hxmt模块(从HXMT分析软件包中)拷贝到HEAsoft中

          cp –r hxmtsoftv2.01/hxmt  ~/heasoft-6.26/

(4) 修改配置文件

          cd ~/heasoft-6.26/BUILD_DIR
    将configure文件中的mpfit_required=no 修改为mpfit_required=yes

(5) 安装

          ./configure --with-components="heacore tcltk external attitude heasptools heatools heagen demo suzaku swift Xspec integral maxi nicer nustar hitomi xmm glast ftools GSSC heasim hxmt"
          make
          make install

注意:此处黑体部分选择的模块应该和下载hEAsoft安装包时选择的Mission一致。可以设定--prefix参数指定安装目录,本例中假定软件安装在/path/to/heasoft/目录下.

(6) 安装hxmt本底模块

         详细步骤见第三节

(7)安装标定数据库

        首先安装其他Mission的标定数据库。安装目录可以由用户指定。本例中假定标定数据库已经安装到/path/to/store/caldb/目录下。这时,该目录下应该包含data和software两个目录

        下载解压hxmt卫星的标定数据库 [download]

          gunzip CALDB2.01.tar.gz
          tar vxf CALDB2.01.tar

      复制标定数据库数据到data下

          cp -r  CALDB2.01/data/hxmt   /path/to/store/caldb/data/

      修改caldb.config文件

          cat CALDB2.01/caldb.config  >>/path/to/store/caldb/software/tools/caldb.config

(8)修改~/.bashrc文件,设置环境变量

          export HEADAS=/path/to/heasoft/x86_64-pc-linux-gnu-libc2.12

          export CALDB=/path/to/store/caldb/

          export CALDBCONFIG=$CALDB/software/tools/caldb.config

          source $HEADAS/headas-init.sh

     注意第一行的黑体部分,这段内容会根据不同的操作系统有所变化,修改应该以安装时实际生成的目录为准

 

注意:

    上述操作建议在全新下载的HEAsoft安装包的基础上进行,如果利用本机已经安装过的HEAsoft软件代码, 在进行操作时可能会出现编译错误. 

 

3,本底软件的安装和配置

    本底软件包括hebkgmap.py、mebkgmap.py、lebkgmap.py三个命令,分别用于HE、ME和LE望远镜的本底处理。本底软件需要单独复制安装。复制内容包括两部分:

  • 软件代码在hxmtsoftv2.01/hxmt/HXMTBKG/soft/ 下
  • 参数文件:hxmtsoftv2.01/hxmt/HXMTBKG/refdata/ 下

    安装时,需要在目标位置(通常选择hxmtsoft安装后的位置,本例中选择在/path/to/heasoft/hxmt/下,也可以自定义其他位置)新建目录,然后复制代码和参数文件到新建目录下。

      mkdir /path/to/heasoft/hxmt/bkgsoft

      cp  hxmtsoftv2.01/hxmt/HXMTBKG/soft/*  /path/to/heasoft/hxmt/bkgsoft

      cp  -r  hxmtsoftv2.01/hxmt/HXMTBKG/refdata  /path/to/heasoft/hxmt/bkgsoft

  修改~/.bashrc文件,加入

      export REFPATH="/path/to/heasoft/hxmt/bkgsoft/refdata/"

    这时本底软件可以通过完整路径调用,例如:

            python /path/to/heasoft/hxmt/bkgsoft/hebkgmap.py lc screen.FITS ehkfile.fits gtifile.fits deadtime.fits lcname 50 200 outname

    为了使用更加方便,也可以在~/.bashrc文件中建立alias链接,之后就可以直接使用无需输入完整路径:
      alias hebkgmap="python /path/to/heasoft/hxmt/bkgsoft/hebkgmap.py"
      alias mebkgmap="python /path/to/heasoft/hxmt/bkgsoft/mebkgmap.py"
      alias lebkgmap="python /path/to/heasoft/hxmt/bkgsoft/lebkgmap.py"

4,安装过程中遇到的问题及解决方法

      软件目前在多个操作系统中可成功安装和运行,包括Scientific Linux 6, Ubuntu 16.04, Ubuntu 18.04, macOS 10.14.x。安装过程中可能出现如下问题:

1) make进行编译过程中报错,报错信息为:
    readline/lib/libreadline.so: undefined reference to 'tputs'
    readline/lib/libreadline.so: undefined reference to 'tgoto'
    readline/lib/libreadline.so: undefined reference to 'tgetflag'
    readline/lib/libreadline.so: undefined reference to 'UP'
    readline/lib/libreadline.so: undefined reference to 'tgetent'
    readline/lib/libreadline.so: undefined reference to 'tgetnum'
    readline/lib/libreadline.so: undefined reference to 'PC'
    readline/lib/libreadline.so: undefined reference to 'tgetstr'

【解决方式】:
    这可能是所依赖的库和软件未预安装导致的,在系统上安装 libreadline6-dev, libncurses5-dev,然后重新运行make进行编译。
如在Ubuntu系统中执行(不同系统命令不同,使用对等的命令即可):
    sudo apt-get –y install libreadline6-dev
    sudo apt-get –y install libncurses5-dev
在SLC系统中则执行:
    sudo yum –y install ncurses-devel
    sudo yum –y install readline-devel

 

2. make进行编译过程中报错,报错信息为:
/home/user/heasoft-6.24_hxmtsoft/hxmt/BLD/x86_64-pc-linux-gnu-libc2.23-0/lib/libhxmtlib.so: undefined reference to 'atRotVect'
/home/user/heasoft-6.24_hxmtsoft/hxmt/BLD/x86_64-pc-linux-gnu-libc2.23-0/lib/libhxmtlib.so: undefined reference to 'atQuatToEuler'
/home/user/heasoft-6.24_hxmtsoft/hxmt/BLD/x86_64-pc-linux-gnu-libc2.23-0/lib/libhxmtlib.so: undefined reference to 'atInterpolateEuler'
/home/user/heasoft-6.24_hxmtsoft/hxmt/BLD/x86_64-pc-linux-gnu-libc2.23-0/lib/libhxmtlib.so: undefined reference to 'atNormVect'
/home/user/heasoft-6.24_hxmtsoft/hxmt/BLD/x86_64-pc-linux-gnu-libc2.23-0/lib/libhxmtlib.so: undefined reference to 'atEulerToQuat'
/home/user/heasoft-6.24_hxmtsoft/hxmt/BLD/x86_64-pc-linux-gnu-libc2.23-0/lib/libhxmtlib.so: undefined reference to 'atQuatToRM'

【解决方式】:
这是编译过程中未正确指定所需库导致的错误,在报错的编译指令后加入
–latFunction3.3,手动编译该指令,成功后再重新运行make即可。
如Ubuntu系统下,错误信息显示安装程序在路径/path/hxmt/hxmtscreen/下执行编译命令
    g++ -o hxmtscreen hxmtscreen.o ...... -lhxmtlib -lhxmtHElib -lhxmtMElib -lhxmtLElib -lhxmtHEmodule -lhxmtMEmodule -lhxmtLEmodule -lhxmttoolslib -lmpfit
时报错。所以进入报错路径:
    cd /path/hxmt/hxmtscreen/
加上-laFunction3.3重新编译:
    g++ -o hxmtscreen hxmtscreen.o ...... -lhxmtlib -lhxmtHElib -lhxmtMElib -lhxmtLElib -lhxmtHEmodule -lhxmtMEmodule -lhxmtLEmodule -lhxmttoolslib –lmpfit –laFunction3.3
运行成功(无任何信息,无报错)后,回到最初的安装目录~/heasoft-6.26/BUILD_DIR路径下重新运行make即可。

 

3. Ubuntu安装成功后,安装路径中有两个x86_64-pc-linux-gnu-libc2.23文件夹。一个为x86_64-pc-linux-gnu-libc2.23,一个为x86_64-pc-linux-gnu-libc2.23-0
【解决方式】:
将这两个文件夹合并即可,并删去冗余的文件夹:
$ rsync -av --progress x86_64-pc-linux-gnu-libc2.23-0/* x86_64-pc-linux-gnu-libc2.23/ --ignore-existing
$ rm –rf x86_64-pc-linux-gnu-libc2.23-0

 

4. Mac下动态库报错,"dyld not loaded":
MacOS系统下,成功执行make, make install无任何报错,但是运行hxmtsoft的命令,诸如hegtigen,出现错误信息:
dyld: Library not loaded: libhxmtHEmodule.dylib
Referenced from: /home/user/heasoft_hxmtsoft2/x86_64-apple-darwin17.7.0/bin/hegtigen
Reason: image not found
这是由于安装后程序无法找到HEADAS所需的动态库,可通过手动指定动态库的路径解决。

【解决方式】:
首先查看某一程序的动态库依赖(以hegtigen为例):
otool –LD $HEADAS/bin/hegtigen
显示结果为:
libhxmtHEmodule.dylib (compatibility version 0.0.0, current version 0.0.0)
libhxmtlib.dylib (compatibility version 0.0.0, current version 0.0.0)
libhxmtHElib.dylib (compatibility version 0.0.0, current version 0.0.0)
@rpath/libhdinit_2.7.dylib (compatibility version 0.0.0, current version 0.0.0)
......
其中三个动态库libhxmtHEmodule.dylib, libhxmtlib.dylib, libhxmtHElib.dylib未指定动态路径,故程序无法找到该库。我们指定这三个的路径:
install_name_tool -change libhxmtHEmodule.dylib $HEADAS/lib/libhxmtHEmodule.dylib $HEADAS/bin/hegtigen
install_name_tool -change libhxmtlib.dylib $HEADAS/lib/libhxmtlib.dylib $HEADAS/bin/hegtigen
install_name_tool -change libhxmtHElib.dylib $HEADAS/lib/libhxmtHElib.dylib $HEADAS/bin/hegtigen
并将$HEADAS/lib该路径加入动态路径:
install_name_tool -add_rpath "$HEADAS/lib" $HEADAS/bin/hegtigen