このページは、花山天文台のSolar SoftWareの管理者用です。
作業は kipsup にユーザー yohkoh でログインして行う (rootで行わないこと!)
$SSW/site/setup/, $SSW/optical/hida/
以下のファイルは常にバックアップを取っておくこと!!
現在花山天文台では $SSW
の値は /opt/ssw
、$SSWDB
の値は /opt/sswdb
となっている。
原則として$SSW/gen/
以下のファイルは変更せず、$SSW/site/
以下のファイルを変更するようにする。変更してよいファイルは枠で囲っている。通常のcshスクリプトのように見えて、setenv
以外の行が無視される設定ファイルがあることに注意。以下、SolarSoft 起動時にファイルが読み込まれる順に説明する。
source $SSW/gen/setup/setup.ssw
とした時に読み込まれるファイル (読み込まれる順に記載)あらかじめ $SSW
環境変数と $SSW_INSTR
(省略時の値は gen
) が設定されている必要がある。
$SSW/gen/setup/setup.ssw
: SSWの環境変数設定設定スクリプト2以下の各ファイルを読み込むcshスクリプト。最後にエイリアス sswidl, sswidlde
を追加する。
$SSW/site/setup/setup.ssw_paths
: サイト固有の path 設定ファイルSolarSoft DataBase の場所を指す $SSWDB
環境変数、SOHOのデータの場所を指す$SOHO_DATA
環境変数などをここで設定する。
このファイルはcshスクリプトのように見えるが、cshスクリプトではない。このファイルは $SSW/gen/bin/setenv_list2
により処理されるため、setenv
以外の行は無視される。複数のパスをカンマ区切りで記載した場合、存在するディレクトリのうち、最も左に書いたディレクトリが選ばれる。
$SSW/gen/setup/setup.ssw_env
: SSWのグローバルな環境変数設定ファイルSSWがサポートする全てのミッション ($SSW_MISSIONS
環境変数)、各ミッションに含まれる装置 ($SSW_SOHO_INSTR, $SSW_YOHKOH_INSTR
環境変数など)、SSWがサポートする全ての装置 ($SSW_INSTR_ALL
環境変数) などの重要な環境変数を設定するファイル。これらの環境変数は実際に対応する装置のファイルがインストールされているかに関わらず設定される。
このファイルは、$SSW/gen/setup/setup.ssw
からは通常のcshスクリプトとして読み込まれるので全ての行が処理されるが、ssw_load_instr.pro
、ssw_instr_info.pro
、ssw_setup_windows.pro
から読み込まれる際にはfile_setenv
またはset_logenv
により処理されるためSETENV
以外の行は無視される。
$SSW/gen/setup/setup.<MISSION>_env, $SSW/site/setup/setup.<MISSION>_env, ~/setup.<MISSION>_env
: ミッションごとの環境変数設定スクリプトミッションごとに環境変数を設定するcshスクリプト。<MISSION>
はsoho, yohkoh
等のミッション名。$SSW_INSTR
の設定値に関わらず全てのミッションについて処理される。
カスタマイズするときは、$SSW/gen/setup/setup.<MISSION>_env
ではなく $SSW/site/setup/setup.<MISSION>_env
または ~/setup.<MISSION>_env
(ユーザーごと) を編集する。
例えば、RHESSI level 0 データの場所を指す HSI_DATA_ARCHIVE
環境変数 を変更するときには、$SSW/gen/setup/setup.hessi_env は直接編集せず、
$SSW/site/setup/setup.hessi_env
にコピーしてから編集する。
$SSW/site/setup/setup.optical_env
: 飛騨のデータ解析用プログラムの path 設定スクリプトSSW_OPTICAL_INSTR, SSW_INSTR_ALL
環境変数に optical/hida
を追加するためのcshスクリプト。
$SSW/site/setup/setup.ssw
: サイト固有の環境変数設定スクリプトSSWデフォルトの環境変数を上書きする際などに用いるcshスクリプト。
$SSW/site/setup/setup.<INSTR>_paths, <観測装置のディレクトリ>/setup/setup.<INSTR>, <観測装置のディレクトリ>/setup/setup.<INSTR>_env, $SSW/site/setup/setup.<INSTR>, $SSW/site/setup/setup.<INSTR>_env, ~/setup.<INSTR>, ~/setup.<INSTR>_env
: 観測装置ごとの環境変数設定ファイル・スクリプト<INSTR>
は sxt, sot
等の観測装置・パッケージ名。$SSW_INSTR
で指定された観測装置・パッケージのみ、その装置・パッケージの設定ファイルが処理される。各ディレクトリの setup.<INSTR>_env
は、setup.<INSTR>
が存在しない場合のみ読み込まれる。
$SSW/site/setup/setup.<INSTR>_paths
は setenv_list2
で処理される設定ファイル。その他のファイルはcshスクリプト。
$SSW_INSTR
に gen が含まれていない場合、$SSW_INSTR
の先頭に gen
が挿入される。
最後に、$SSW/gen/setup/setup.ssw_device, $SSW/site/setup/setup.ssw_device, ~/setup.ssw_device
(プリンタ・テープドライブ等のデバイスの設定スクリプト。花山では未使用), $SSW/gen/setup/setup.ssw_alias, $SSW/site/setup/setup.ssw_alias, ~/setup.ssw_alias
(エイリアスの設定スクリプト)の各cshスクリプトが処理される。
sswidl
($SSW/gen/setup/ssw_idl
) を実行したときに読み込まれるファイル (読み込まれる順に記載)sswidlde (
$SSW/gen/setup/ssw_idl/ssw_idlde
) の場合も同様。
$SSW/gen/setup/ssw_idl
: sswidl
起動スクリプト環境変数 $SSW_INSTR
で指定された装置・パッケージごと(gen
を含む)に $SSW/<MISSION>/<INSTR>/idl/atest:+$SSW/<MISSION>/<INSTR>/idl
(iris
のように1ミッション=1装置の場合は、$SSW/<INSTR>/idl/atest:+$SSW/<INSTR>/idl
) を $IDL_PATH
に順番に追加する。
IDLのバッチファイルを ~/ssw_idl.<PID>
(<PID>
はssw_idl
のPID) という名前でユーザーのホームディレクトリに自動生成(後述)し、$IDL_STARTUP
環境変数の値ににこのバッチファイルを設定し、IDLを起動する。IDLは起動時に$IDL_STARTUP
環境変数で指定されたバッチファイルを実行する。
環境変数 $IDL_DIR
が設定されていない場合自動設定を試みるが、最近のIDLのデフォルトのインストールパスではうまく動かない(Cannot find idl directory - (IDL_DIR)
というエラーメッセージが表示されてssw_idl
が起動しない)ので、あらかじめ $IDL_DIR
を前もってどこかで設定しておく。
$SSW/site/setup/ssw_motd
: 起動メッセージファイルssw_idl
開始直後(IDL起動前)にコンソールに表示されるユーザー向けのメッセージを書くファイル。ただし、すぐに大量の起動メッセージにより画面外に流されてしまうため、多分誰も読んでくれない。
~/ssw_idl.<PID>
: IDL起動時に実行されるIDLバッチファイル (自動生成)毎回起動時に自動生成される。ssw_idl
のPIDが末尾につく。ssw_idl
が正常終了した場合自動的に削除されるが、異常終了すると残ってしまうことがある。sswidlde
利用時の場合のファイル名は~/ssw_idlde.<PID>
となり、正常終了時でも自動的に削除されない。
中身は以下のファイルを結合したもの:
$SSW/gen/setup/IDL_STARTUP
IDL_STARTUP
($SSW/<MISSION>/<INSTR>/setup/IDL_STARTUP
または $SSW/<INSTR>/setup/IDL_STARTUP
)$SSW/site/setup/IDL_STARTUP
ssw_idl
実行前にあらかじめ定義されていた場合)ユーザー定義の $IDL_STARTUP
が指すファイルgen
と各装置の IDL_STARTUP
は $SSW_INSTR
で指定された順に結合される(必ずしもgen
が先頭になるとは限らない)。$SSW_INSTR
に gen
が含まれていない場合、$SSW_INSTR
の先頭に gen
が挿入されるため、$SSW/gen/setup/IDL_STARTUP
は必ず含まれる。
$SSW/gen/setup/IDL_STARTUP
: グローバルなIDL起動ファイル$SSW_CONTRIBUTED
を !path
の先頭に挿入する。
ssw_addmm_gen を呼び出し、$SSW_INSTR 変数に含まれる観測装置が所属するミッション(MISSION)ごとに、!path に$SSW/<MISSION>/gen/idl/ を追加し、$SSW/<MISSION>/setup/IDL_STARTUP を実行する。
stereo, vobs, radio, optical, solarb, hinode, so が対象。soho, yohkoh, sdo はここでは対象外であることに注意。
$SSW/<MISSION>/<INSTR>/setup/IDL_STARTUP, $SSW/<INSTR>/setup/IDL_STARTUP
: 各観測装置のIDL起動ファイル各装置のためのさまざまな!pathや環境変数が設定される。依存関係にあるパッケージの設定が追加される場合もある。
sdo/aia, sdo/eve, sdo/hmi
それぞれのIDL_STARTUP
中で、!path
に $SSW/sdo/gen/idl
が追加される。
$SSW/gen/setup/setup.sswdb_env
: Yohkoh関連のデータベースの場所を設定する~/ssw_idl.<PID>
(元ファイルは $SSW/gen/setup/IDL_STARTUP
) から ssw_setsswdb_gen
経由で参照される。
$SSW/site/setup/IDL_STARTUP
: サイト固有のIDL起動ファイル$SSW/site
以下にあるサイト固有のファイルだが、デフォルトで重要な処理が入っているので変更する際は注意。
$SSW_INSTR
に、soho, yohkoh
の装置(ミッション名でも装置名でも可)が含まれている場合には、$SSW/soho/gen/idl, $SSW/spartan/idl
または $SSW/yohkoh/gen/idl, $SSW/yohkoh/ucon/idl, $SSW/spartan/idl
を !path
に追加する。
$SSW/site/setup/setup.ssw_upgrade
: SSWアップデート対象を指定このファイルの SSW_INSTR
から始まる行で列挙された装置が、go_update_ssw.pro
による更新対象となる。(ssw_upgrade.pro
を直接利用する場合には無視される)
デフォルトでは存在しないので $SSW/site/setup/setup.ssw_upgrade_template
をコピーして編集する。
$SSW_INSTR に hida
を追加しないこと。もし追加した状態でアップデートを実行すると、$SSW/optical/hida
が削除されてしまう。
$SSW/site/setup/setup.sswdb_upgrade
: SSWDBアップデート対象を指定go_update_ssw.pro, sswdb_upgrade.pro
による更新対象とするデータベースを指定する。親子関係にあるデータベースを両方とも指定すると、ファイルのダウンロードが複数回行われてネットワーク帯域と時間の無駄なので、どちらか一方のみ指定する。(例: soho/gen
と soho/gen/spice
の両方を指定すると、soho/gen/spice
以下のファイルは2回ダウンロードされるので、soho/gen
のみを指定する)
デフォルトでは存在しないので $SSW/site/setup/setup.sswdb_upgrade_template
をコピーして編集するか、SolarSoft Data Base (SSWDB) Configuration Form で作成することができる。
$SSW/site/setup/ssw_site.config
: インストール時に用いられた config ファイルインストール時の設定が記載されている。インストール完了後は不要。
$SSW/site/setup/setup.ssw_env
: サイト固有の環境変数設定ファイル現在、Unix系OSでは原則として利用されない。Windows上でのSolarSoft起動時 ($SSW/gen/idl/ssw_system/IDL_STARTUP_WINDOWS.pro
->ssw_setup_windows.pro
)のみ利用されるように見える。set_logenv
(またはfile_setenv
)により処理されるためSETENV
以外の行は無視される。
$SSW/optical/hida/*
: 飛騨のデータ解析用プログラム飛騨の共通解析用ツールを置く。現在はメンテナンスされていないので、利用する際は要注意。
ユーザーの利便性のため、SSW 起動用スクリプト SSWidl
と IDLDE(開発環境)版のSSW 起動用スクリプト SSWidlde
を用意している。各マシンの /opt/bin に置く。歴史的経緯とユーザーの利便性のため、sswidl
と idlh
コマンドで SSWidl
が、sswidlde
コマンドで SSWidlde
が起動される。
SSWidl
の中身は以下のようになっている。
#!/bin/csh if (! $?IDL_DIR) setenv IDL_DIR /opt/idl/idl if (! -x "$IDL_DIR/bin/idl") then echo incorrect value for IDL_DIR environment variable. exit endif if (! $?SSW) setenv SSW /opt/ssw if (! -f "$SSW/gen/setup/setup.ssw") then echo incorrect value for SSW environment variable. exit endif if (! $?SSW_INSTR) then setenv SSW_INSTR "aia hmi sot xrt eis iris secchi lasco eit hessi xray spex chianti" endif source $SSW/gen/setup/setup.ssw onintr - sswidl $argv[*]
SSWidlde
の中身は以下のようになっている。
#!/bin/csh if (! $?IDL_DIR) setenv IDL_DIR /opt/idl/idl if (! -x "$IDL_DIR/bin/idlde") then echo incorrect value for IDL_DIR environment variable. exit endif if (! $?SSW) setenv SSW /opt/ssw if (! -f "$SSW/gen/setup/setup.ssw") then echo incorrect value for SSW environment variable. exit endif if (! $?SSW_INSTR) then setenv SSW_INSTR "aia hmi sot xrt eis iris secchi lasco eit hessi xray spex chianti" endif source $SSW/gen/setup/setup.ssw onintr - $SSW/gen/setup/ssw_idlde $argv[*] & set pid=$! wait set temp_startup=~/ssw_idlde.$pid if (-e $temp_startup) rm -f $temp_startup
$IDL_DIR
環境変数を起動スクリプト中で設定していることに注意。
sswidl
を起動する直前で onintr -
としているのは、ユーザーがSSW使用中に Ctrl + C を押下すると、ユーザーがログアウトした後もIDLのプロセスがバックグラウンドで残り続けてライセンスを浪費するという現象が発生していたため。(Ctrl + C で idl
の親プロセスの SSWidl
が終了した結果、孤児になりバックグラウンドで実行中のidl
に対しては、ログアウト・回線切断時にも SIGHUP
が送出されない)
特定のバージョンのIDL上でSSWを起動する SSWidl85
(IDL 8.5を利用)~SSWidl90
(IDL 9.0を利用)、SSWidlde85
~SSWidlde90
などもある。
/opt/etc/profile.d/idl.sh, /opt/etc/profile.d/idl.csh
でIDLの一般的な環境設定を行っている。例えば、IDLが用いるスレッド数(IDL_CPU_TPOOL_NTHREADS
)を各マシンのNUMAノードごとの物理コア数に設定している。
2019年8月からアップデートにFTPを使えなくなったので、それ以降一度もSSWのアップデートを行っていない場合には、以下の操作を行う前にあらかじめ SSWのダウンロードページからアップグレード用スクリプトをダウンロードし実行することで、ssw_upgrade.pro 等をwget対応版に更新しておく必要がある。
以下のファイルでアップデート対象を指定する。
$SSW/site/setup/setup.ssw_upgrade
: SSWアップデート対象を指定
$SSW/site/setup/setup.sswdb_upgrade
: SSWDBアップデート対象を指定
IDLで以下のコマンドを実行する。
IDL> .run go_update_ssw
go_update_ssw
は、setup.ssw_upgrade
を読み込み SSW_INSTR
環境変数をセットした上で、ssw_upgrade.pro
と sswdb_upgrade.pro
を呼び出している。
ssw_upgrade.pro
を直接実行した場合には、実行の時点での SSW_INSTR
環境変数の値が使われる。(setup.ssw_upgrade
は参照されない)
パーミッションが 444 (書き込み保護)などのファイルや、更新日時が未来となっているファイルがあると、当該ファイルは以後更新されない場合があるので修正しておく。また、他のユーザーが読み込み不可、または書き込み可能となっているファイル・ディレクトリがあれば、ついでにパーミッションを修正しておく。
現在のssw_upgrade.pro
では、シンボリックリンクは考慮されくなったため、アップデート前にローカルのシンボリックリンクは削除しておくほうが安全かもしれない。latestfile -> oldfile.dat
というシンボリックリンクがサーバー・ローカルの両方にあったとして、サーバー側のシンボリックリンクが latestfile -> newfile.dat
と変更された場合、ローカルでは oldfile.dat の内容が newfile.dat の内容に置き替わってしまう可能性がある。(具体例としては $SSW/stereo/gen/data/spice/other/bc_mpo_fcp_latest.bsp
)
SSW treeの外を指しているシンボリックリンク (例: $SSW/soho/gen/data/attitude/nominal_roll_attitude.dat -> ../../../../../soho/public/data/ancillary/attitude/roll/nominal_roll_attitude.dat
) は削除しておく。リンク切れの無効なシンボリックリンクは find $SSW -xtype l
で探すことができる。
$SSW/gen/bin/ssw_batch go_update_ssw $SSW/site/logs/update_ssw.log
IDL でパラメータなしで
IDL> ssw_upgrade,/spawn
を実行すれば SSW_INSTR
環境変数で指定された観測装置・パッケージのファイルをアップデートしてくれる。(setup.ssw_upgrade
は参照されない)
$SSW_INSTR に hida
を追加しないこと。もし追加した状態でアップデートを実行すると、$SSW/optical/hida
が削除されてしまう。
特定の観測装置・パッケージみ更新するには
IDL> ssw_upgrade,/装置・パッケージ名,/spawn
とする。(例えば、ssw_upgrade,/psp,/spawn
)
IDL> ssw_upgrade,/装置・パッケージ名,/spawn
とする。例えば、IRIS の場合、IDL> ssw_upgrade,/iris,/spawn
観測装置名・パッケージ名の一覧は SSW INSTALLATION FORM か、setup.ssw_env を参照。
ファイル数が多いと時間がかかるので、SSW INSTALLATION FORMでInstallation Type = Upgrade Exsisting とし、追加する装置・パッケージにチェックを入れてダウンロードしたスクリプトを用いて、インストールするほうが早いかもしれない。このインストールスクリプトはhttps://soho.nascom.nasa.gov/solarsoft/offline/swmaint/tar/からtarファイルをダウンロードして展開しているので、手動でダウンロードと展開を行ってもよい。(ssw_ssw_site.tar.Z
を上書きで展開してしまうと、ローカルでカスタマイズした設定が消えてしまうので注意)
追加後は $SSW_INSTR
環境変数に装置・パッケージ名を追加する。
$SSW/site/setup/setup.ssw_upgrade
の編集も忘れずに。
ミラー先: 花山 | ミラー元: https://soho.nascom.nasa.gov/ | |
gen | $SSW/gen/ |
/solarsoft/gen/ |
binaries | $SSW/packages/binaries/ |
/solarsoft/packages/binaries/ |
soho | $SSW/soho/ |
/solarsoft/soho/ |
yohkoh | $SSW/yohkoh/ |
/solarsoft/yohkoh/ |
他の観測装置・パッケージについても同様 |
例えば次のようにして同期を行う:
wget -np -nH -N -r -l inf -P /opt/ssw/gen --cut-dirs=2 https://soho.nascom.nasa.gov/solarsoft/gen/
wget -np -nH -N -r -l inf -P /opt/ssw/hinode/xrt --cut-dirs=3 https://soho.nascom.nasa.gov/solarsoft/hinode/xrt/
$SSW/site/
以下にはカスタマイズされた設定ファイルが保存されているので、同期してしまわないよう注意。
IDL でパラメータなしで
IDL> sswdb_upgrade,/spawn
を実行すれば $SSW/site/setup/setup.sswdb_upgrade
に記載されたデータベースをアップデートしてくれる。
特定のデータベースのみをアップデートするときは
IDL> sswdb_upgrade,['ydb','tdb'],/spawn
などとする。
IDL> sswdb_upgrade,'データベース名',/spawn
今後の自動アップデートの対象に加えるため、$SSW/site/setup/setup.sswdb_upgrade
の編集も行う必要がある。
全てのデータベースの一覧は SolarSoft Data Base (SSWDB) Configuration Form を参照。インストールに必要な容量(日々増加する)はsswdb_sizes.datで確認する。
ミラー先: 花山 | ミラー元: https://soho.nascom.nasa.gov/ | |
TRACE | $SSWDB/tdb/ |
/sdb/tdb/ |
HESSI | $SSWDB/hessi/ |
/sdb/hessi/ |
SOHO | $SSWDB/soho/ |
/sdb/soho/ |
STEREO | $SSWDB/stereo/ |
/sdb/stereo/ |
Hinode | $SSWDB/hinode/ |
/sdb/hinode/ |
GOES | $SSWDB/goes/ |
/sdb/goes/ |
ACE | $SSWDB/ace/ |
/sdb/ace/ |
IRIS | $SSWDB/iris/
| /sdb/iris/ |
Yohkoh & GOES | $SSWDB/ydb/ |
/sdb/ydb/ |
他のデータベースについても同様 |
例えば次のようにして同期を行う:
wget -np -nH -N -r -l inf -P /opt/sswdb/stereo --cut-dirs=2 https://soho.nascom.nasa.gov/sdb/stereo/
現在の花山・飛騨の環境ではSSW
環境変数は自動的に設定されるため、一般ユーザーは明示的に指定する必要はない。
SSW_INSTR
環境変数で、対象とする観測装置・パッケージ名を指定する。シェルの設定ファイル (cshの場合 ~/.cshrc
)で、SSW_INSTR
環境変数に、必要な観測装置の名前を指定する。
例: setenv SSW_INSTR "sot xrt eis iris aia hmi"
SSW_INSTR
環境変数で gen
を省略すると、先頭に書いたものとして扱われる。
必要以上に装置を登録しすぎると、ファイル・サブルーチン・関数の名前が衝突する可能性が高まる。登録する装置は必要最小限にしておき、用途に応じて切り替えるとよい。衝突しているファイル名の一覧は check_conflict
で出力できる。
名前の衝突により、IDL標準ライブラリやユーザーのライブラリ関数を使えない場合の対処法として、sswidl (ssw_idl) を実行する際に ahead
オプションをつけることで、IDL標準ライブラリとユーザーのライブラリの優先順位を高くすることができる。
衝突の例として、IDL 8.0 でIDL標準ライブラリに追加された plot
関数 ($IDL_DIR/lib/graphics/plot.pro
) と $SSW/soho/mdi/idl/egse/plot.pro
はファイル名が同じなので、SSW_INSTR
環境変数で mdi
を有効にしていると、そのままでは前者の plot
関数を利用できない。
~/.cshrc
の編集が終わったらsource ~/.cshrc
を実行することで新しい設定を反映する。
花山・飛騨でのSolarSoftの起動コマンドはsswidl
、SSWidl
、idlh
のいずれか。現在はこれらの動作は同一となっている。
IDLDE版SolarSoftの起動コマンドはsswidlde
またはSSWidlde
。これらの動作は同一となっている。
SolarSoft起動後に装置を追加するには ssw_path,/trace,/sot
などのようにする。
Last update : 2024/01/24