惑星探査機の画像解析ツールISISの使い方（基礎）

# はじめに
筆者は研究室配属されてからISISを知ったが、日本語での説明を全然見つけられなかった。また、[本家によって提供されるコマンドの説明](https://isis.astrogeology.usgs.gov/Application/index.html)も全く理解できなかった。以前の筆者と同様にISIS（とテクニカルな英語）全然わからん！となっている人に役立てば幸いである。また、間違っている点や、もっと効率のいい点などあれば是非教えていただきたい。

2022年現在、しばらく見ないうちにとても[ISISのチュートリアル](https://github.com/USGS-Astrogeology/ISIS3/wiki/Introduction_to_ISIS)が充実してきた（以前はチュートリアルのサイトに飛べなかった）。が、当然ながら本家は英語であり、なじみのない単語と表現が飛び交うので読むand/or読み直すのが正直億劫である。そこで、近未来の自分に向けてメモを残そうと思った。

一つの記事ではあまりに長くなってしまうため、記事を分ける。
本稿では、一番初歩的なところを攻める。

# 前提
基本的に本家のチュートリアルに沿った流れでのメモになる。また、筆者の気分と気力次第で続きを書いていくことをお許し願いたい。できるだけ頑張ります。

# 念の為：そもそもISISとは
 [ISIS](https://isis.astrogeology.usgs.gov/7.0.0/index.html)とは"Integrated Software for Imagers and Spectrometers"の略であり、探査機の取得したデータの中でも画像解析に主眼を置いたUSGSが管理するソフトウェアである。

緯線経線をひいたり、画像の投影方法を変えたり（たのしい）、画像をつなぎ合わせてモザイクを作れる。あとは、DEM（Degital Elevation Model）を作ることもできる（正確にはISISでいじった後に[Ames stereo pipeline](https://stereopipeline.readthedocs.io/en/latest/introduction.html)を使う。これも難しいので誰か易しい日本語の解説作って欲しい）。

# インストール
インストールは[こちら](https://isis.astrogeology.usgs.gov/Installation/index.html)から。言われた通りにやっていけばなんとかなる、はず...。
無事にインストールできたかどうかは、ターミナルで
```shell:インストールが無事できたかの確認
conda activate isis #もうisisモードに入ってたらしなくていい
qveiw & #最後の&はお好みで
```
を入力してqviewというタイトル？の画面がひらけばOK。


# コマンド一般について
ここでは、[各種コマンド](https://isis.astrogeology.usgs.gov/Application/index.html)のほとんどに共通する一般的なところを箇条書きで説明していく。
- コマンドをターミナルで直打ちで操作するのが基本。そのためシェルなどにまとめておいて一気に投入して一気に処理させたりできる。

- コマンド単体を入力すると、GUIで処理が行える（Graphical mode）。出てきた画面でぽちぽち操作したら、左上の緑のマークを押して実行できる。出てきた画面の最下部には、行っている処理のコマンドラインが載っており、次回からはそれのコピペ編集で作業の効率化が狙える。
```shell:GUI画面の出し方の例
cam2map & #例によって&はお好みで
```

- 処理の詳細(argument)の入力は二種類。
1. reserved argument
必ずハイフン(dash, -)で始まる。たとえば、-help。大文字小文字は区別ないので-HElpなどでも大丈夫。-restore=filenameのように、イコールが必要な時は=の前and/or後にスペースを入れても入れなくてもどっちでも大丈夫。ちなみに-helpはそのコマンドで使うparameterのデフォルト設定を教えてくれる。
1.  parameter argument
二つ目のparameter argumentはハイフンなしで始まる。reserved argumentにおいてイコールは必須ではないが、こちらでは必須である。入力ファイルや出力用ファイルなど所為rにおいて非常に重要な情報を入力するところである。細かい使い方は先述の通り一度GUIでやってみて、出てきたコマンドラインを参考にしていけば良い。
parameterで扱うものは大体下記の種類に収まる。
(1)入力・出力・参照(基準)用cubeファイル
   ISISでは、cube(.cub)という形式で画像を扱う(下図、例えば[ここ](https://isis.astrogeology.usgs.gov/Application/presentation/Tabbed/speclowpass/speclowpass.html))。
   縦(Lines)横(Samples)はいいとして、奥行き(Bands)もあるのが特徴。Bandsはスペクトルの情報を保持するところで、複数のフィルターで得られた画像（図では赤緑青で表現）を収納できる。

![cube.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2743363/4f48a667-3ddc-466b-1091-5f705a9358d7.png "cubeファイルのイメージ")

(2)データファイル（.txtや.datなど）
　データファイルの種類（拡張子）は本家の説明を見ながら調整する。
(3)theパラメータ(例えば天体半径や緯度経度とか)
　この手の数字は浮動小数か整数か本家の説明を見ながら調整する。
(4)ブーリアン型(Boolean)
　真偽（TRUE/YES、FALSE/NO）を入力する。
　それぞれT、Y、F、Nと省略可能。大文字小文字どちらでも大丈夫。
(5)文字列(String)
　これは普通の文字列。天体名や補正・補完手法とか。

```shell:reservedの例 -help
cam2map -help
FROM          = Null
MAP           = $ISISROOT/appdata/templates/maps/sinusoidal.map
TO            = Null
MATCHMAP      = false
PIXRES        = (*CAMERA, MAP, MPP, PPD)
RESOLUTION    = Null
DEFAULTRANGE  = (*MINIMIZE, CAMERA, MAP)
MINLAT        = Null
MAXLAT        = Null
MINLON        = Null
MAXLON        = Null
TRIM          = FALSE
LONSEAM       = (*AUTO, ERROR, CONTINUE)
INTERP        = (NEARESTNEIGHBOR, BILINEAR, *CUBICCONVOLUTION)
WARPALGORITHM = (FORWARDPATCH, REVERSEPATCH, *AUTOMATIC)
PATCHSIZE     = Null
OCCLUSION     = false
```   
```shell:parameterの例
cam2map from=PATH/INPUT.cub to=PATH2/OUTPUT.cub
```


# おわり

本稿は大まかに本家のチュートリアルの"Introduction_to_ISIS"を翻訳・要約したようなものである。本家は英語ではあるが非常に丁寧に書かれているので是非参照していただきたい。

# 参考
- [Introduction_to_ISIS](https://github.com/USGS-Astrogeology/ISIS3/wiki/Introduction_to_ISIS)
- [ISISのホームページ](https://isis.astrogeology.usgs.gov/7.0.0/index.html)