前言

ISIS软件是NASA提供的,用于处理其发布的全系列行星探测原始数据的软件,其主要的特性是为各个遥感原始数据块提供地理坐标,实现了部分EDR和CDR的地理配准。为了实现后续对月球南极地区、其他深空领域数据集的自定义使用,必须要将该软件安装并使用,以获取更加丰富的遥感数据集。

安装说明

该软件安装的官方文档的表述有点让人难以理解,以下是正常方便的安装。

首先,需要保证当前系统的环境是Linux系统(Windows系统下可使用WSL实现之),然后且预装了Anaconda或Miniconda。接下来,打开终端,执行以下命令:

1
2
3
4
5
6
7
8
9
conda create -n isis python=3.9
conda activate isis
# Add conda-forge and usgs-astrogeology channels
conda config --env --add channels conda-forge
conda config --env --add channels usgs-astrogeology
# Check channel order
conda config --show channels
# Install ISIS
conda install -c usgs-astrogeology isis

注意到此时基本就完成安装了,但是问题往往出在安装的最后一步,文档里对ISISROOTISISDATA的设置没有说明清楚,如果将这两个路径随意设置,则将会产生这样的错误结果:

1
**USER ERROR** The preference file $ISISROOT/IsisPreferences was not found or does not exist in Preference.cpp at 39.

实际上,ISISROOT是指向当前虚拟环境的路径,而ISISDATA是指向数据目录的路径。可以通过以下命令设置:

1
2
3
4
5
conda env config vars set ISISROOT=$CONDA_PREFIX
conda env config vars set ISISDATA=<自定义的数据目录>
# 重新激活当前conda环境
conda deactivate
conda activate isis

理论上这时才完成正确安装。然后可能会遇到的第二个问题是:

1
error while loading shared libraries: libgsl.so.25: cannot open shared object file: No such file or directory

这个问题是当前系统中缺少GSL库,但是该软件所需要的libgsl.so.25版本的GSL库已经停止支持并从apt的源中移除了,这里用较高版本的libgsl-dev库代替,并手工配置软链接到libgsl.so.25,执行以下命令:

1
2
sudo apt install libgsl-dev
sudo ln -s /usr/lib/x86_64-linux-gnu/libgsl.so.27 /usr/lib/x86_64-linux-gnu/libgsl.so.25

处理完这一步后,运行命令qview,如能正确打开可视化界面,则说明安装成功。
qview界面示意

From Scratch

教程的目录从这里起步,教程认为ISIS的最大作用是把探测数据的原始格式转为带有地理参考坐标的图像产品,并可进一步实现图像拼接、光度模型校正以及系统噪声去除等遥感图像操作。

加载EDR和CDR数据

pds2isis命令可加载EDR和CDR下载所得IMG数据,将其转换为.cub格式文件后,可使用qview打开为图像。

需要把IMG的标签文件如*.lbl*.xml文件放在同一目录下,否则会找不到Instrument字段内容。

由于CDR和EDR文件不带有地理信息。且EDR文件辐射并未校正,因此这两种类型的文件必须额外进行以下步骤才能完成后续操作。在使用中以CDR 为例,不需要进行辐射校正,但是需要附加航天器轨迹姿态与位置信息,首先运行命令spiceinit为CDR文件添加姿态和轨迹信息,命令格式如下:

1
spiceinit from=<CDR文件名> to=<输出的cub文件名>