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