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可能遇到的问题及解决方案”一文对这些问题进行了总结,欢迎参考。