在Linux系统中使用GAMMA Software
GAMMA Software是瑞士GAMMA Remote Sensing公司开发的商用软件,处理SAR数据时功能十分强大。曾经口罩期间没法返校,在WSL2-Ubuntu22.04环境下安装了GAMMA_update_20111201
版本完成了上机操作实习课。其中disras
等功能需要用到界面的功能则利用了WSLg,配合微软商店中的付费软件GWSL显示界面,比之前记录的利用xrdp远程连接使用桌面的方法更流畅。折腾Manjaro时回忆记录一下安装过程。
本机环境:Manjaro 22.1.3,Linux 6.1内核,GNome 44桌面环境
1 配置环境变量
解压到本地,在$HOME
目录下建一个文件夹Software
,将JetBrains全家桶以及控制台应用(如gfzrnx)、各种AppImage等等放在这个文件夹下,GAMMA软件也是如此。
1.1 授予可执行权限
sudo chmod -R 777 ~/Software/GAMMA_update_20111201
1.2 将bin目录和scripts目录加入$PATH
变量
例如想要使用GAMMA软件的stat_pt
功能,需要进行如下步骤:
# 进入某个功能所在目录
cd ~/Software/GAMMA_update_20111201/IPTA/bin
# 执行`stat_pt`程序
./stat_pt
要处理数据的话,还需要输入一长串路径,比较麻烦。
为了无论在哪个目录下都可以像使用cd
一样直接输入功能的名字来使用,需要将所有功能所在目录加入环境变量$PATH
中。Manjaro默认使用zsh作为shell,可以修改$HOME
目录下的.zshrc
文件:
cd
# vim已装好,也可以直接在文件管理器中用gedit打开
vim .zshrc
在.zshrc
中添加如下内容:
# 简化路径,用变量存储
export GAMMA_HOME=$HOME/Software/GAMMA_update_20111201
export MSP_HOME=$GAMMA_HOME/MSP
export ISP_HOME=$GAMMA_HOME/ISP
export DIFF_HOME=$GAMMA_HOME/DIFF
export DISP_HOME=$GAMMA_HOME/DISP
export LAT_HOME=$GAMMA_HOME/LAT
export IPTA_HOME=$GAMMA_HOME/IPTA
# 将bin中的可执行程序和scripts中的批处理脚本加入$PATH中方便调用
export PATH=$PATH:\
$DISP_HOME/bin:$MSP_HOME/bin:$ISP_HOME/bin:$DIFF_HOME/bin:$LAT_HOME/bin:$IPTA_HOME/bin:\
$MSP_HOME/scripts:$ISP_HOME/scripts/:$DIFF_HOME/scripts:$LAT_HOME/scripts:$IPTA_HOME/scripts
:wq
保存退出,而后使得shell加载.zshrc
中的环境变量:
source .zshrc
进行如是操作后,在任意目录下都可以调用GAMMA软件的各种功能。某种意义上的“安装”此时已经完成。
图1 zsh中可以联想到GAMMA的相关功能
图2 运行时报错
2 安装与处理依赖项
$GAMMA_HOME
目录下的INSTALL_BINARY.txt
文件详细地介绍了安装流程以及GAMMA所需的各种依赖。在本科上机实习课也可能用不到所有的功能,只需要其中的几个可执行文件。可以使用ldd
命令查看某个可执行文件所需的依赖:
ldd $DISP_HOME/bin/data2geotiff
部分结果如下:
图3 ldd
命令查询结果
其中,=> not found
即为缺少的依赖项,结合google就可以解决 。接下来还是把课上用到的依赖项的解决方法记录一下。
2.1 fftw
快速傅里叶变换库,所需版本为2.1.5。pacman中的版本为3.3.10,所以选择找资源下载。为了不污染本地环境,把头文件放进/usr/local/include
文件夹,链接库及文件链接放入/usr/local/lib
文件夹中。
sudo cp ./include/* /usr/local/include/
sudo cp ./lib/* /usr/local/lib
复制进去之后再次执行par_ACS_ERS
测试,如果发现还是找不到,则需要将/usr/local/lib
加入$LD_LIBRARY_PATH
变量。
cd
vim .zshrc
在.zshrc
文件中追加
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
:wq
保存退出后使用点命令:
source .zshrc
此时继续执行par_ACS_ERS
,可以发现,输出了用法信息,可以使用了。
图4 正常情况下返回usage
2.2 libgtk与libgdk
GUI库,使用disras
等命令查看图像时需要用到,所需版本为gtk2。
系统自带的GNome环境使用的是gtk4,版本比较新,需要自行使用pacman安装老版本。
sudo pacman -S gtk2
2.3 gdal与hdf5
gdal是一个开源GIS库,所需版本为1.5。libhdf5是对HDF5格式数据进行支持的库,所需版本为1.6.6。
libgdal1.5.0.so.1 => not found
libhdf5-1.6.6.so.0 => not found
在使用data2geotiff
将数据转为geotiff格式时需要使用到gdal,在处理HDF5格式的COSMO-SkyMed数据时需要用到libhdf5。同样使用pacman可以安装新版本:
sudo pacman -S gdal hdf5
由于依赖项指定了版本号,在这里通过建立软链接的方式解决。
cd /usr/lib
ls -lah
可以找到libgdal
和libhdf5
的文件链接:
libgdal.so.33.3.7.0
libhdf5.so.310.1.0
为libgdal.so.33.3.7.0
建立软链接libgdal1.5.0.so.1
:
sudo ln -s libgdal.so.33.3.7.0 libgdal1.5.0.so.1
为libhdf5.so.310.1.0
建立软链接libhdf5-1.6.6.so.0
:
sudo ln -s libhdf5.so.310.1.0 libhdf5-1.6.6.so.0
2.4 xmgrace
画图软件,可以绘制干涉像对组合和每个点的形变速率等图。Manjaro官方仓库中没有此软件,需要到AUR源中编译安装。
# 需要先安装AUR源管理器yay
sudo pacman -S yay
yay -S grace
2.5 tcsh
增强版C Shell,有一些脚本需要使用csh环境运行。使用pacman安装即可。
sudo pacman -S tcsh
3 温馨提示
强烈建议选择正版软件!
本文仅对安装过程作了回顾,软件使用方法请参考教材。
参考文献
[1] 杨红磊, 彭军还, 康志忠, 等. InSAR技术原理及实践[M]. 北京 : 科学出版社, 2021