SGDASS的安装教程

2022-02-01

SGDASS全称为Space Geodesy Data Analysis Software System,是Leonid Petrov博士开发的空间测地数据分析软件套装。 Leonid已经写了非常详细的安装教程,并写了自动化安装脚本sgdass_install.py,其目的我想也是为了简化用户的安装过程,省去不必要的麻烦。 本文试图在Leonid写的教程的基础上进行简化,以方便国内的同行安装SGDASS。

说明

尽管Leonid在安装教程中提到

SGDASS fully supports Linux and MACOS,

但是,SGDASS在MacOS上的安装并不顺利。

我和Leonid近期(2023年11月)曾在MacOS Sonoma(版本号为14.1.1)进行了尝试,但以失败告终。

因此,我个人建议不要再花时间在MacOS上进行尝试了。

I. 安装库函数依赖

SGDASS需要的库函数分为两类:

  • 需要由安装包管理器来安装,因而需要root用户的权限;

  • 可以通过安装包管理器安装(需要root用户权限)或使用源代码进行编译安装(不需要root访问权限)。

前者包括

  • tcsh。相应地,csh应为指向tcsh的符号链接;
  • X11头文件;
  • perl;
  • python3(3.4或更高版本)。

后者包括

  • PostScript阅读器,例如ImageMagic;
  • GIF阅读器,例如ImageMagic;
  • gcc;
  • g++。

接下来分别以Fedora和Ubuntu为例,给出安装这些软件包的命令。 在Fedora 36(工作站版)上,安装命令为


yum install tcsh, g++, perl-File-Compare, perl-FindBin, libX11-devel, libXp-devel, libXt-devel, xwd, xrdb, ImageMagick-devel

在Ubuntu 22.04.2 LTS上,相应的命令为


sudo apt-get install tcsh gcc gfortran cmake g++ libx11-dev libxt-dev x11-xserver-utils imagemagick autoconf m4 libtirpc-dev

此外,SGDASS需要使用许多第三方开源软件包。 这些软件包可能已经存在于Linux系统中,但并非所有的都可以与SGDASS一起协作,因为SGDASS要求它们以与大多数Linux发行版不同的方式进行编译。 所以,这里建议对所有的这些开源软件包进行编译安装。

安装SGDASS需要较新的gcc和gfortran(8.0.0及更高版本),更低的版本可能无法工作。 SGDASS提供了安装新版本gcc/g++/gfortran的方法,因此,这里也建议对这些编译器进行编译安装。

II. 安装前的准备

首先要创建相应的工作目录。 SGDASS使用固定的目录名称,而且这些目录均在根目录下。 因此,需要创建这些目录或设置软符号链接。 这里推荐的是第二种。 首先要设置SGDASS的根目录:

sgdass_home="YOUR_DIRECTORY" 

然后运行下列代码

#!bin/bash

dirs=("apr" "auto" "cont" "dist" "images" "image_orig" "incoming" "l0" "l1a" \
    "l1b" "l2" "l3" "logs" "opt64" "progs" "scr" "sde" "sol" "vlbi" "imls")

for dir in ${dirs[@]};
do
    mkdir ${sgdass_home}/${dir}
    chmod 775 ${sgdass_home}/${dir}
    sudo rm /${dir}
    sudo ln -s ${sgdass_home}/${dir} /${dir}
    chmod 775 /${dir}
done

mkdir ${sgdass_home}/apr/eop       # apriori Earth orientation paramers
mkdir ${sgdass_home}/apr/eph       # apriori ephemerides
mkdir ${sgdass_home}/apr/iono      # apriori ionosphere data
mkdir ${sgdass_home}/apr/load_bds  # apriori mass loading time series in bindisp format
mkdir ${sgdass_home}/apr/load_hps  # apriori mass loading harmonic variations
mkdir ${sgdass_home}/apr/psolve    # apriori files for psolve
mkdir ${sgdass_home}/apr/sou       # apriori source positions
mkdir ${sgdass_home}/apr/spd       # apriori station path delays
mkdir ${sgdass_home}/apr/sta       # apriori station positions
mkdir ${sgdass_home}/apr/temp      # apriori temporary files
mkdir ${sgdass_home}/l2/gvf        # Level 2 VLBI data in GVF format
mkdir ${sgdass_home}/l2/vda        # Level 2 VLBI data in vgosda format
mkdir ${sgdass_home}/l2/vdb        # Level 2 VLBI data in vgosdb format
mkdir ${sgdass_home}/logs/sgdass              # logs from sgdass installation
mkdir ${sgdass_home}/scr/pima                 # PIMA related files created during processing experiments.
mkdir ${sgdass_home}/scr/psolve               # temporary files created by psolve
mkdir ${sgdass_home}/scr/psolve/cgm_dir       # auxilliary combined glboal matrices created by psolve
mkdir ${sgdass_home}/scr/psolve/tpd           # auxilliary files with path delay created by psolve
mkdir ${sgdass_home}/scr/psolve/spool_dir     # listing of solutions generated by psolve
mkdir ${sgdass_home}/scr/psolve/sub_matrices  # auxilliary temporary files created by psolve
mkdir ${sgdass_home}/scr/psolve/work_dir      # auxilliary files by psolve
mkdir ${sgdass_home}/sol/heo                  # High frequency Earth Orientation parameter VLBI solutions
mkdir ${sgdass_home}/sol/qua                  # Quarterly VLBI solutions
mkdir ${sgdass_home}/sol/rewei                # Reweighting VLBI solutions
mkdir ${sgdass_home}/sol/rfc                  # astrometric VLBI solutions
mkdir ${sgdass_home}/vlbi/vtd_data            # data files for VTD
mkdir ${sgdass_home}/imls/oper_model          # IMLS operational models
mkdir ${sgdass_home}/imls/devel_model         # IMLS development models

Space Geodesy Data Analysis Software System (astrogeo.org)页面下载软件包,并将其保存在${sgdass_home}/incoming下:

cd ${sgdass_home}/incoming
wget http://astrogeo.org/data_archive/sgdass-20231122.tar

需要将上面命令行中的sgdass-20231122.tar替换成最新的版本。 在${sgdass_home}/progs下进行解压:

cd ${sgdass_home}/progs
tar -xvf ../incoming/sgdass-20231122.tar

软件包中包括:

  • 第三方软件的源代码;
  • SGDASS安装包;
  • 安装配置示例文件。

设置用户组权限

umask 002

~/.cshrc(如果该文件,则需要创建新文件)中添加一行

setenv LD_LIBRARY_PATH "/opt64/lib:/opt64/lib64:/usr/lib64:/usr/lib"
setenv PATH "/opt64/bin:/opt64/psolve/bin:${PATH}"

III. 安装编译器和cmake

注意:编译器和SGDASS的安装需要在tcsh中进行。

通过编译源代码,将gcc和gfortran安装在/opt64目录下。 在${sgdass_home}/progs/sgdass下,复制gcc安装配置示例文件,将新文件命名为gcc_linux.cnf(任意名字都可以):

cd ${sgdass_home}/progs/sgdass
cp example_gcc_linux.cnf gcc_linux.cnf

打开gcc_linux.cnf,根据实际情况进行修改。通常情况下,不需要做任何修改或只需更改num_proc变量的值(Leonid已经将其设为all)。 运行命令:

python3 sgdass_install.py -c gcc_linux.cnf build all

IV. 安装

同样地,SGDASS的安装过程也是由配置文件控制,示例文件为example_sgdass_linux.cnf。复制该文件:

cp example_sgdass_linux.cnf sgdass_linux.cnf

检查并根据机器实际情况进行修改。

注意:配置文件中软件包的顺序很重要,不可以随意修改。

自动安装的命令为

python3 sgdass_install.py -c sgdass_linux.cnf build       all
python3 sgdass_install.py -c sgdass_linux.cnf postinstall all

如果机器上已经安装过SGDASS,那么在执行安装指令之前,需要先关闭SGDASS(尤其是pSolve)的所有进程。 整个过程可能需要花费相当长的时间(从几小时到几天不等)。

V. 安装后的设置

建议使用tcsh来启动SGDASS里面的所有程序。 假设使用tcsh,那么建议作如下配置。

  • ~/.login中添加以下语句:
limit coredumpsize     0
limit stacksize        8000000
limit maxproc          16384
limit descriptors      2048
setenv GOMP_STACKSIZE  2000000

如果没有~/.login这一文件,请新建一个。后面同理。

  • ~/.Xdefaults中添加以下语句:
pgxwin.Win.iconize:     True
pgxwin.Win.geometry: 1080x750+0+50
pgxwin.server.visible: True
pgxwin.Win.maxColors:   230

其中,第二行确定了DIAGI软件的窗口尺寸,可以根据实际的显示器尺寸进行修改。

  • ~/.tcshrc中添加以下语句:
# For SGDASS
setenv PGPLOT_DEV  "/XW"                      # tells that default is to print
                                              # the graphics to the screen
setenv PGPLOT_XW_MARGIN "1.0"                 # sets display margins
setenv PGPLOT_XSIZE_MM 400.0                  # specifies with width of the PGPLOT window

setenv LD_LIBRARY_PATH /opt64/lib:/opt64/lib64:/usr/lib:/usr/lib64
setenv PATH "/opt64/bin:/opt64/psolve/bin:${PATH}"
setenv PSOLVE_SAVE_DIR "/opt64/share/psolve"
xrdb -merge ~/.Xdefaults

VI. 说明

需要指出的是,在安装过程中也许会遇到其他问题。 “安装SGDASS可能遇到的问题及解决方案”一文对这些问题进行了总结,欢迎参考。