[ トップ(日本語) ] [ top page (English) ] [ HMI データの手引きその2 ]



とても非公式な SDO/HMI データ取得の手引き

おしらせ
*) Linux のコマンドやスクリプトによる(GUI に依存しない、マウスを使わない)方法をいくつか列挙したページを追加しました。(2023年11月某日)
*) 太陽全面像に方位角不確定性除去プログラムを適用したデータが公開されました。詳しくはこちら (2014年5月15日号のSolarNews)。
*) 活動領域のベクトル磁場解析に特化したデータ系列 (SHARP : Space-weather HMI Active Region Patch) が公開されました。詳しくはこちら (2012年12月1日号の SolarNews)。このデータ系列は特に活動領域の研究にとても便利と思いますので、説明をすこしだけ加えました。
*) HMI の主に磁場のデータへのリンクをまとめたページができました (2012年12月)。



はじめに
HMI データベースの使い方を書いてみました。私の経験と理解を基にしているので、私が使ったことのある流儀以外の事はあまり書いていません。 また、なるべくそれとわかるように書いたつもりですが、特にデータ処理システムの技術的な部分では不正確を承知で用語を置き換えて説明しています。 マニュアルというよりは、初めて HMI データを利用する人が「とりあえず」ちゃんとした解析に耐えるデータファイルを取得できるようになるためのハウツーもの程度を企図したものと理解してください。おそらく日本語での説明は他にはあまり見かけないと思いますので、その希少価値で以って不親切さ・不正確さを相殺、という事にしています。 なお、英語版の正式な説明 (図解付きの PDF) はこちら
  項目や文章の逐次追加投入という、あまり褒められたものではない事をしているので、まあ、かなりごちゃごちゃになっています・・・が、気にしない気にしない・・・気にしては、いけない。いつか、そのうちちゃんとしたモノを作りたいですね。 (は)

HMI/AIA 統合データサイトの使いかた
SDO (Solar Dynamics Observatory) 衛星に搭載されてる3つの観測装置 (HMI : Helioseismic and Magnetic Imager,AIA : Atmospheric Imaging Assembly,EVE : EUV Variability Experiment) のうち、AIA と HMI のデータ処理過程には共通の部分が多く、合同のデータ処理システムを使っています。この頁では主に HMI データ取得手順について書いていますが、AIA データ取得の場合もほぼ同じ手順になります。なお、AIA については LMSAL のサイトで取得することもできます。多くの HMI と AIA の画像データは画素数 4096 x 4096 の FITS 形式で用意されています。データ値のとる深度や圧縮か非圧縮か (浮動小数データ値をある程度の刻みに丸めて、とりうる数値の値の数をうんと減らしてから可逆圧縮を施したもの、または浮動小数のままか) の違いにもよりますが、全般的にファイル・サイズはかなり大きいですので注意してください。
0) ブラウザを立ち上げる
Firefox を強く推奨。他のブラウザではおそらくまともに動きません。
そして http://jsoc.stanford.edu/ajax/lookdata.html に移動。
1) 取得したいデータの種類を大まかに指定
box 1 (find list of dataseries) に「hmi」または「aia」等の文字を入力して(黄色い)「Fetch Seriesname list」ボタンをクリック。すると、box 1 に入力した文字列と (部分) 一致するデータ名が box 2 に表示されます。case-sensitive ではありません。ピリオド "." とアスタリスク "*" はそれぞれ任意の一文字と任意長の任意文字列と解釈されるので、必要に応じて使ってください。
2) 取得したいデータを一つだけにしぼって指定
box 2 に表示された候補リストから希望のデータの種類 (最上位分類子で series と呼んでいます) を選びます。何のデータであるかについて短い説明がリストの右側にあります。なお、box 2 のリスト中のいずれかをクリックすると即座に「RecordSet Select」タブに自動で移動します。間違えた series name を選んでしまった場合には一番左端の「Series Select」タブをクリックすることで手順 (1) に戻る事ができます (ブラウザの「戻る」機能は使わない)。一度に複数の series name を選ぶ事は出来ません。
以下、頻繁に使われると思われる HMI と AIA データの series 名のリスト、簡単な説明、および手順 (3) まで進んだ状態のへのリンク表

hmi.Ic_45s太陽光球面輝度(全面像、45秒間隔)
hmi.V_45s視線成分ドップラー速度 (全面像、45秒間隔)
hmi.M_45s視線成分磁場 (全面像、45秒間隔)
hmi.M_720s同 (12分間隔)
hmi.S_720sStokes 変数 (全面像、12分間隔)
hmi.ME_720sME (Milne-Eddington) 太陽磁気大気モデル逆算解 (全面像、12分間隔)。JSOC では HAO によって開発されたモデルを元に、HMI データ処理のために改良が加えられたモデルを使っています。磁場に関する3つの情報 (強度・方位角・視線にたいする角度) 等がデータに含まれます。磁場の方位角について 180 度不確定性が残っているので、不確定除去モデルを独自に持っている場合や磁場の視線と垂直な成分の強さだけについて解析する場合など限られたケース以外では、この処理段階でのデータを直に使って解析する事は少ないのではないでしょうか。元の観測がフィルタグラムによるものであるため、いろいろな要素を加味する必要があり最終版に至るのは難しいようですが、その時点でもっとも良好と判断されたモデルパラメータ・手法によるものを公開しています。
(*) 2012年6月に、FD10 という(内部モデルの符号をうしろにつけた)名前の series (hmi.ME_720s_fd10) が公開されました。これは最小残差探索法について改良がなされたもので、残差が複数の局所極小値を持つ場合に明らかに非物理的な極小値点へ収斂する事態を出来るだけ避ける工夫が加えられたものです。この部分の改良により。要求される計算時間がかなり短縮し、より多くのデータについて処理することが可能となりました。2015年時点ではこれが最新の公式版となっています。
hmi.B_720s3成分磁場の太陽全面像データ (12分間隔)。上記 ME_720s_fd10 の ME 解がもつ (視線に対して垂直な) 方位角の不確定性を、NWRA/CoRA で開発された手法を用いて除去したもの。除去にあたり処理対象領域全体で足し合わせた残差を最小化するような大局的最適化の手順を用いています。ですから処理対象領域の大小の違いによって、得られる最適解が異なる場合があります。黒点やその近傍のように強い磁場の領域ではこの差異はほぼ無いようです。研究対象が黒点・太陽活動領域である場合には、次の SHARP データを用いる事をお薦めします。
hmi.SHARP_720s
または
hmi.SHARP_cea_720s
3成分磁場データ (12分間隔 ; 活動領域)。上記 hmi.ME_720s_fd10 データに対して、個々の活動領域に限定して方位角不確定性除去モデルを適用したデータが SHARP (Space-weather HMI Active Region Patch) というデータ系列名で公開されています。2つのデータ Series があります。そのうち、CEA と名の付いたものは、当該領域を直上から見続けるような視点から眺め続けた局所直交座標系 (円筒等積座標系) に変換されたベクトル成分のデータを格納もので、太陽微分回転を相殺するための位置合わせや、ベクトル成分の回転といった処理が施されています。活動領域のベクトル磁場データをすぐに使ってみたいという場合におそらく最適でしょう。また、識別された個々の領域ごとに領域の磁気的活動の程度の指標の値がそれぞれの時刻ごとに計算されています (値は FITS ファイルのヘッダ領域の格納されている)。ある時刻には複数の太陽活動領域があることが多いので、この SHAPR データを取得する場合には、時刻と活動領域番号の2つを指定する必要があります。特に下記の (3c) と (3e) を読んでください。 CEA データについては、座標変換に際して空間補間が施されている点と、特に大きな活動領域での座標系の疑似平面と太陽球面との差異 (一画素の占める面積等) がある点に留意してください。
AIAAIA データのうち、波長について「ある程度」のふるい分けがなされたデータへのリンク:
超紫外線領域、12秒間隔 : 94Å, 131Å, 171Å, 193Å, 211Å, 304Å, 335Å,
紫外線領域、24秒間隔 : 1600Å, 1700Å,
可視光領域、1時間間隔 : 4500Å
Synoptic MapMagnetogram 視線成分磁場データから作成された太陽全球面の磁場マップで、Radial 法を用いて動径成分に変換されたもの (視線成分ではない点に留意): NRT (near-real-time) daily (1日に1度、概ね UT で午後2時ごろ更新。速報性を重視したものです), daily (最終版), Carrington 自転数毎
太陽全面ベクトル磁場データから作成されたもの: Carrington 自転数毎
MHD手前味噌ですが。太陽光球面磁場の Synoptic Map を境界条件値に使い Polytrope 近似で計算した太陽コロナの MHD 解: NRT (near-real-time) daily (ある程度時間が経つと消去されます), daily (最終版磁場データを使ったもの), 1太陽自転周期毎

3) 取得したいデータの観測時刻や時間幅などの条件を設定
始めに、選んだ series name が box 3 に自動で入力されている (継承されている) 事を確認してください。また、record limit 欄で最小単位の観測データセット (record と呼んでいます。ほどんどの場合、時刻で個々の record を指定します) の数の上限を指定できます。初挑戦のときには 10 程度の数をいれておくと安心でしょう。query builder はこれと同じ事をすこし別な UI で行うものです。
3a) 観測時間範囲
欲しい・関心のある日時の範囲を指定するために box 3 内の文字列に追加をします。record limit を設定せずに且つ観測時刻・時間幅の指定をしないと、2010年4月以降から存在する全データが検索の対象になってしまうため、とても時間がかかるか処理を拒否されてしまう可能性があります。たいていの場合、ブラウザが応答しなくなります。
  時刻と時間幅は角括弧 "[]" を含んだ文字列 "[YYYY.MM.DD_hh:mm:ss_TAI/nx]" の形で指定します。 "YYYY.MM.DD" で年月日、 "hh:mm:ss" で時分秒を指定します。短い単位側は省略可で、省略した場合、月日については 01 で、時分秒については 00 で埋めたものとして解釈されます。 "_TAI" 部分は指定した時刻が TAI で定義されたものであることを明示するもので省略可です。HMI データベース内では特段他の定義時刻であることを明示しなければこの TAI で処理されており、省略した場合には TAI と仮定されます。私はほとんどの場合省略しています。最後に、"/nx" の部分で、n には数字 (2桁以上・小数点使用ともに可)、x には長さ1の文字 (d (日) h (時間) m (分) s (秒) のいずれか一つの時間単位だけ) を使って、時間の長さを指定します(省略可)。
  例えば2010年11月12日の13時00分00秒から14時29分59秒までの1時間半 (マイナス1秒) の時間帯に取得された HMI の 45 秒間隔撮像の太陽輝度データ (series name は "hmi.Ic_45s") が欲しい場合、series name と時間指定の文字列をくっつけた、
"hmi.Ic_45s[2010.11.12_13/1.5h]" または "hmi.Ic_45s[2010.11.12_13:00:00/90m]"
などが box 3 に入力されることになります。起算の時刻から一時間半後の 14:30:00 は範囲に含まれません。時刻のみ指定した ("/" 以降の時間幅を指定しなかった) 場合、その時刻またはそれより後で且つ最も近い時刻に観測されたデータひとつだけを指定した事になります。d h m s の時間の長さの単位をふたつ以上混ぜて使うこと (1h30m など) はできないようです。時間の長さではなく、
"hmi.Ic_45s[2010.11.12_13:00:00_TAI-2010.11.12_14:30:00_TAI]"
と "-" でつないだ2つの時刻の間、という指定の方法もあります。この場合には終わりの時刻も範囲に含まれます。必要に応じて使い分ければよいでしょう。
3b) 時間間隔の設定
指定した時間での全てのデータではなく、たとえば1時間に1枚の頻度でデータが欲しいという場合には
"hmi.Ic_45s[2010.11.12_13:00:00/1d@1h]"
のように "@" を付け加えて時刻の間隔を指定する事が出来ます。
3c) データ識別子が2つ以上ある場合の指定方法
多くの(特に太陽全面像の)データ series では、時刻だけを指定すれば唯一の record を指定したことになります。しかし、データによっては時刻以外の数字・番号が record 指定のために必要になることがあります。上に例に挙げた3成分の磁場データのうち活動領域のみを切り出したデータ群 (SHARP データ、活動領域の通し番号を指定する必要がある) や AIA データ (時刻以外に波長を指定する) が一例でしょうか。つまり、同一時刻に2つ以上のデータ record が存在する可能性がある場合には、時刻だけではただひとつの record を指定することができませんから、時刻にプラスした2つ以上の条件で(2つ以上鈎括弧の組で)一つのデータ record を指定する必要があるわけです。
  それぞれの series ごとに指定方法の流儀があるので注意してください。SHARP データ系列では
"hmi.SHARP_cea_720s[377][2011.02.15_01:00:00_TAI/2h]"
のように活動領域番号が先 (左側) に来ますが、AIA のデータでは
"aia.lev1_euv_12s[2011.02.15_01:45:00_TAI/10m][211]"
と、波長が時刻指定の後 (右側) に来ます。SHARP データについてはもう少し詳しい記述を (3e) にしています。
3d) 条件追加
データによっては観測時間に加えて、付帯情報 (keyword と呼ばれています) の値をふるい分けの条件に追加した方が都合のいい場合があります。
  例として AIA データのうち低処理レベルのものをここではあげます。この低処理レベルのデータは波長ごとの series に分けていません。ですから、keyword に格納されている波長の数字を条件に加えずに時間幅だけで指定すると、波長ごとに整理されていない (観測時間だけで整理された) データ一覧がずらりと出てきて困ってしまいます。AIA データのうち 211 Å のデータだけを指定したい場合、そのための識別文字列は
"aia.lev1[2010.11.12_13:00:00_UTC/90m][?wavelnth=211?]"
という具合に、後ろに条件論理式を "[? ?]" で挟んだものを追加したものになります。Keyword は内部処理の都合で原則8文字までとなっているため、必ずしも物理学での英文命名のとおりとは限らないという点に注意してください。条件を絞る論理式には等号以外に不等号も使えます。個々の条件式を作る際には空白 (スペース) を使う事は避けた方が安全です。複数の条件を
"aia.lev1[2010.11.12_13:00:00_UTC/90m][? xxxx ?][? yyyy ?][? zzzz ?]"
と右側に追記する、または
"aia.lev1[2010.11.12_13:00:00_UTC/90m][? xxxx and yyyy and zzzz ?]"
のように " and " でつなげる事で条件をさらに絞る事もできます。これらの例では3条件 xxxx yyyy zzzz が AND (「且つ」)で結合されます。OR (「または」) による条件結合も
"aia.lev1[2010.11.12_13:00:00_UTC/90m][? wavelnth=211 or wavelnth=195 ?]"
のようにできます。JSOC データベースの中の妖精さんはなかなかに賢い。HMI データについても "[? ?]" で囲ったふるい分け条件の追加が出来ます。
  なお、一部の AIA データは上記の例のように時間管理は原則 UTC で行っています。時刻定義の変換は JSOC 内部で行うことが出来ますから、たとえば HMI と AIA 両方をつかって何か比較をしたいというような場合、 AIA データ取得の際に TAI で時刻・時間の指定をして「おおまかな」同期をとる事が出来ます。同様に HMI データ取得の際に UTC で時刻指定することもできます。注意すべき点は、AIA と HMI の観測シーケンスの関係上、まったく同時に観測が行われるという事が非常に稀だという事です。あった場合それは偶然です。異なるデータ群の間で時刻の同期をとるには時間に関する補間などが必要になるでしょうが、どうするかは利用者の判断に委ねられています。
3e) SHAPR (Spaceweather HMI Active Region Patch) について
この series は HMI ベクトル磁場データのうちでおそらく最も頻繁に使われると思われるので、ここですこしだけ説明を付け加えます。担当者による英語の説明もあります。このデータ series には宇宙天気 (space weather) にとって重要な太陽活動領域の活動の程度を表す指標が多数 keyword として格納されています。と、同時にその指標を計算する際に用いた活動領域ごとに切り出されたベクトル磁場のデータも格納されています。具体的には、活動領域自動認識モデル (HARP と呼んでいます) で識別された活動領域について、円筒等積 (CEA) 投影による座標系での位置合わせ・方位角不確定性除去、極座標 (局所的な直交座標系) への変換などを済ませたデータが格納されています。かなり、便利です。
  データファイルの取得のためには、まずは hmi.sharp_cea_720s に移動し、たとえば、
"hmi.sharp_cea_720s[][2011.02.15/1h][?NOAA_AR=11158?]"
あるいは
"hmi.sharp_cea_720s[][2011.02.15/1h][?NOAA_ARS~'11158'?]"
のように識別子を追加してください。3つある鈎括弧の対のうちの最初 (一番左) の対には本来は HMI データ処理系内部における活動領域の通し番号が入るのですが、これは NOAA 番号とは一致しておらず、また一対一にも対応していません。ですからこの例では最初の鈎括弧対内はカラとし、そのかわりに "[? NOAA_AR=11158 ?]" (整数値 keyword との一致判定) または "[? NOAA_ARS~'11158' ?]" (複数のAR番号を格納した文字列 keyword である NOAA_ARS との文字列部分一致判定) というふうに5桁の NOAA 活動領域番号の keyword 値による条件篩い分けを追加しています。ひとつの HARP 領域に複数の NOAA 活動領域がある事が多いので、後者の文字列 keyword によるふるい分けの方法が確実でしょう。この HMI データ処理系内での通し番号と NOAA 活動領域番号の 対応表 から内部通し番号がわかるので、それを使い、
"hmi.sharp_cea_720s[377][2011.02.15/1h]"
などと記述すると、検索・ふるい分けの処理が (かなり) 速いですから、JSOC の使い方に慣れたらこの方法を使ってください。活動領域指標の値や太陽像における見かけの位置など他の条件を "[? ?]" で挟んだ論理表現の形で更に追加する事もできます。
  CEA 系に変換する際に空間補間が生じています。それは嫌だ、こまる、なんちゅうことをしてくれたんや、という場合には位置合わせを一切していない CCD 格子番地を保持した活動領域部分切り出しデータである hmi.sharp_720s を使ってみてください。
4) (必要なら) ブラウザで表示させたい付帯情報の項目を指定
box 4 に観測とデータの付帯情報 (keyword) の項目一覧がでるので、値を表示したいものがあれば選んでください。Ctrl+クリックで複数選ぶ事ができます。また、個々の keyword の意味については左から2つめのタブ「Series Content」で一覧がありますので参考にしてください。初めての場合には「NONE」を選べばいいでしょう。なお、ここでの keyword 項目の選択はあくまで選択されたものの値を手順 (7) に達した時点で表示させるためのもので、手順 (3d) でのふるい分けの条件追加とはまた別なものです。
5) データ物理量を選択
box 5 に観測される物理量 (segment) の一覧がでるので、選んでください。この segment はデータの種類によっては一つだけの事もあれば複数の場合もあります。Ctrl+クリックで複数の segment を選択できます。
6) 指定したデータの数の確認
「GetRecordCount」ボタンを押して、上記手順で指定した時間帯に観測が行われた record の数を調べます。例えば、上記 (3a) の例では1時間半 (5400秒) の間に45秒で一巡する観測シーケンスのデータをリクエストしているので 120 個の record があるはずです (さまざまな理由でこれより少ないこともあります)。あまりに数が多いと (経験上、300 個を超えたあたりから) 時間が非常にかかるか処理が途中で止まってしまう事があるので、できればこの時点である程度数を絞りこむために手順 (3) ∼ (6) を繰り返してください。
7) 選択したデータファイル(と付帯情報)の一覧を表示させる
黄色の「Fetch Keyword Values for RecordSet」ボタンを押します。すると、「Value Display」タブに自動で移動し、 手順 (4) で選んだ Keyword の値とともに FITS 形式のデータのリストが表示されます(/SUM* なるディレクトリ名も現れますが、これは外部の人にはあまり意味の無いものです)。この時点で「とりあえず」AIA や HMI のデータを FITS 形式で取得して画像として閲覧可能ですから、意図したデータをちゃんと指定出来たかのチェックができます。

「とりあえず」と鈎括弧をつけた理由は、手順 (1) ∼ (7) で取得できる FITS ファイルのヘッダには FITS であるための要件を満たすだけの最低限必要な情報しか格納されてないからです。HMI のように膨大な数のデータを取り扱う場合、サイズの大きな数値データ本体とサイズの小さな付帯情報 (keyword) を分離して管理する方がシステムとして都合がよく、手順 (7) の時点で閲覧できる FITS ファイルはその数値データ本体の部分だけなのです。したがって観測の付帯情報は一切含まれていませんから、このままではちょっと研究には使いにくいです。というか、使っちゃダメです (なお、AIA については解析に必要な最低限の観測情報は手順 (7) の時点で得られるファイルについてくるようになったようです)。
  また、手順 (7) の時点で取得したデータファイルの多くは Rice 圧縮されたもので、読み込みの際に一工夫 (というか一苦労) 必要なようです。FITS 画像データ表示閲覧のソフトである ds9 ではちゃんと表示されます。ファイル読み込みのためのライブラリ等がありますが、私自身があまり詳しいわけではないのでこの点については省略します。

観測諸情報をヘッダ領域に含んだ FITS ファイルを取得するには、
8) データファイル作成専用のサイト・ページに移動
右から2つめの「Export Data」タブをクリックして移動。そこにある 「Export」ボタンをクリックします。すると、新しくブラウザのウィンドウ (またはタブ) が開き、exportdata.html なるページに自動で移動します。
9) データ選択の条件等を入力
この exportdata.html ページで、複数のデータファイルを一括取得するにあたって必要な条件入力を行います。項目全部について書いていますが、デフォルト値からの変更は (9e) ぐらいでしょうか。特に初めての場合には他は標準値のままでよいでしょう。
9a) Check box to allow upload ... のチェックボックス
・・・よくわかりませんのでパス。
9b) RequestSet 欄
必要なら手順 (7) から継承されたデータの種類や観測時間範囲などを変更します。この時点で波括弧 {} 間に手順 (5) にて指定した segment 名 (複数の場合、","で区切られて全部) が右端に追加されているはずですから確認してください。
9c) Record limit 欄
record 数 (データ数・観測シーケンスの数) の上限を指定します。特段なければ「none」のままでかまいませんが、ファイルサイズの合計が2ギガバイトを超えるあたりから、データベース内の妖精さんたちが癇癪をおこして・・・処理が強制中断される事がとても多くなります。ですから初めて使う場合には数個程度を上限として設定しておくと安全です。
9d) Record Count の recount ボタン
これまでに設定した条件に合致する record 数がいくつあるかの再チェックができます。手順 (9b) にて変更をおこなった場合、ここで record 数の再カウントし、内部処理ソフトが取得すべきファイルのリストを再構成(+変更した条件を満たすデータがちゃんとあるかのチェック)をします。
9e) Method メニュー
最終的に一つの tar ファイルにまとめる (合計のファイルサイズがあまり大きくないときに便利です) 、個別に http アドレスとしてリスト化 (した後で wget などで取得) するかなどデータファイルの転送の方法を選ぶ事ができます。(9c) で表示されるデータ枚数があまり多くない (データの種類にもよりますが 10 程度の) 場合には「url-tar」がお薦めです。
9f) Filename Format 欄
(必要なら) 個々のデータファイルの命名規則を変更します。手順 (7) の時点で得られる FITS ファイルはファイル名は観測時刻にかかわらずみな同じ (segment 名 + ".fits" で固定) だったわけですが、ここでできあがるファイルの名前には観測時刻や波長などの情報をファイル名に含ませる事が出来ます。デフォルトのままでいいでしょう。
9g) Processing 欄
トラッキング機能を使うかどうかなど付加的な処理を選択ができます。トラッキングは太陽自転・微分回転による見かけの移動を相殺する、太陽中心極座標表現に変換する等たいへんに便利な機能ですが、これはある程度の予備知識が必要で、また適用可能なデータの種類に制限があります。ここでは「none」のままという事にします。後日詳しく書きたいと思います。
9h) Protocol メニュー
全ての Keyword 情報を FITS のヘッダとして取り込むかどうかを決めます。「FITS」形式を選ぶと全ての観測付帯情報がヘッダ領域に格納された FITS ファイルができます。「as-is」(現状渡し) 形式を選ぶと上記手順 (7) までと同じく付帯情報無しの FITS ファイルができます。取り込む Keyword を選ぶ事はできないようです (無し・全部のニ択だけ)。
9i) Requestor 欄、Notify 欄
に名前 (ニックネーム可、別に本名である必要はありません)・メールアドレス (強制ではないようですが有効なものを入力してください) を入力すると、データファイルが準備出来た時にメールで通知してくれます。データ量が多く時間がかかると予想される場合に便利です。
10) FITS データファイルを作成
「Submit Export Request」ボタンを「一度だけ」押します。ガチガチ何度も押すと中の妖精さんたちが暴走してしまうか何もしなくなる事が多々あるそうです。お願いですから「一度だけ」押してください。即座に RequestID が発行・表示され、直後から Stanford 大内某所にある機械がうんうんうなり始めるはずです。RequestID は「JSOC_yyyymmdd_nnn_IN」(yyyy mm dd nnn はそれぞれ、現在の年月日と通し番号) という文字列です。処理終了までにかかる時間は依頼されたデータ量により数秒 ∼ 数時間と幅があります。また特に低処理のデータは観測後概ね半年経つと読み込み速度の遅い磁気テープに移動していますので、それにアクセスする必要があるケースでも処理時間が長くなります。
11) データファイルを取得・転送
「Submit Status Request」ボタンを押すことで、ファイルが Web-accessible な場所に準備されたかどうかを確認ができます。準備ができた場合には作成されたファイルへのリンク一覧が表示されます。手順 (9e) にて「url-tar」を選んだ場合には、RequestID の文字列に拡張子 .tar がついたファイルへのリンクが現れるはずです。

コマンドライン・コンソールからデータを取得する例
上記例は GUI を経由したものですから、手と目を使うことになります。大量のデータを順次取得したい、など多くの場面では GUI では不便な事も多いはずです。というわけで、コマンドラインにてデータを取得するためのスクリプトや使用方法・説明が公式のページにありますから参考にしてください。 また、手短な例をいくつか別の頁にまとめてみましたので参考にしてください。

用語
膨大な数と量のデータを扱うためにそれ専門のシステムが組まれています。そのため、あまり馴染のない用語や用法を見かけることになると思います。以下、私の理解。
series
JSOC データベースで最上位の分類子で、文字列で処理されます。観測装置 (hmi か aia) や観測物理量 (磁場・ドップラー速度など) が命名に使われていますが、うちわでの略称や短縮表現がそのまま使われている事が多く・・・手順 (2) の段階で一覧に短い説明があるので参考になるかと思いますが、それでも初挑戦で欲しいデータにすんなりたどり着くのはなかなか・・・幸運を!
record
一観測シーケンスによって得られた一つのデータを示すと思ってよいです。series 名と観測シーケンス個々が固有に持つ識別子が与えられてはじめて唯一つの record を指定できます。ほとんどの観測データでは上記例のように [] ではさんだ観測時刻文字列を固有識別子に用いますが、高度な解析処理を受けたデータにはそれ以外の、Carrington 自転数、通し番号または処理を終えた時刻などを用いている場合もあります。
segment
最下位の分類子。複数の物理量データを同じ record に格納する場合、この segment 階層で個々のデータを区別します。たとえばベクトル量なら個々の成分の名前 Bx By Bz 等が segment 名に使われています。また、1 series が 1 種類のデータしか持たない場合には単に "data" という名前の segment も多いです。
keyword
データベース全体でのデータ量が膨大なので、個別のデータを特定・抽出する際の項目はデータ本体とは分離して保存されています。JSOC の場合には観測の付帯情報全般の事で、一つあるいは一組の record には必ず一組の keyword が付随しています。手順 (11) にて取得された FITS ファイルのヘッダ領域にはほぼ全ての keyword が含まれていますから、FITS ヘッダ情報と同じ、という理解でもよいでしょう。含まれる項目には、時刻、波長、露光時間、どの CCD・望遠鏡・光学系で撮像したか、宇宙線によると思われる異常値を持った画素の数、SDO 衛星の太陽との相対速度、SDO 衛星と太陽中心との距離、1画素が対応する太陽上での実距離、太陽像の中心位置の画素番地、みかけの太陽半径、P 角 ・・・等があります。また、物理単位や解析処理モデルの内部パラメータなど、それぞれの series や segment に固有の情報もたくさんあります。非常に基本的であり多くの series に共通した keyword についての詳細は こちら(pdf)。データについてのデータ、ですからメタデータと書いても大間違いではないのでしょうが・・・まあ、この頁では keyword という用語だけを使っています。

大事な事
多くの場合、異なる複数の観測装置のデータと使うでしょうが、そうなると必ず画像データの位置合わせが必要になるはずです。
B0 角
地球公転面と太陽赤道(面)が一致していないため、地球(近傍)から観測する場合には、時刻によってみかけの太陽像中心が太陽赤道から最大で南北に約 7.3 度ずれます。そのズレの角度の事。時刻の関数として計算できる (観測装置の状態に依存しない) ため、これを keyword に含まない series も多いです。
P 角
この頁では、感光面 (CCD 素子) に投影された太陽自転軸と CCD 格子の縦方向の並びとの角度の違いのことをP 角と呼ぶことにしています。本来は、地上観測装置のための数字で地球自転軸に対する観測座標系との違いをあらわしますが、人工衛星による太陽観測では、便宜的に P 角の定義を変えて用いることが多いようで、ここではその慣例に沿っています。画像データをこの角度だけ回転させると、標準的な向きにそろえることができるという点では同じだからでしょうか。混乱防止のために、すぐ下の例にあるように、SDO データベースではこの角度は CROTA2 という名前がついていて P 角とは違うのだ、という事を明示していますが、この頁ではあまり区別していません・・。
  B0 角と違い、衛星の姿勢でそのつど変化する値であり解析には必須の情報ですから、データ keyword にはほぼ必ず含まれています。SDO の場合、衛星本体の姿勢制御機構により太陽の南北と CCD 格子上下方向との差は最悪の場合でも 0.1 度以下におさまるようです。また、画像安定化機構の寄与も微小ですがこの値に寄与するそうです。0.01 度より大きなズレになることは非常に稀ですが、大まかに 0.03 度のずれは太陽像円盤の最外辺縁部で画素サイズと同程度の位置のずれに相当するので、太陽像の端っこ部分を解析する際には(周縁減光とともに)この値を考慮する必要があるでしょう。また、SDO 衛星本体の設計時のなにかの都合により、頻度は高くないはずですが衛星本体がくるりと 180 度回転することがあり、その場合データファイル上の太陽像も見かけ上 180 度くるりんと回転します。そのため、北を上・西を右とする(太陽物理で標準的な)座標・方位の定義と同じ時と見かけ上 180 度異なる時とがあります。が、データベース内では (180 度回転などせず) 衛星本体に対して固定された CCD で読み取った順のままになっています。どちらの状態だったのかは、keyword 内の P 角の値が 180 度または0度に近い値になっている事で判別できます。
*) 2016年春ごろまでは、HMI データの P 角は約 180 度 (見かけ上、太陽南極が上) であることがほとんどです。
太陽全面像のCCD 上での位置、みかけの大きさ、位置合わせ、など
衛星の姿勢制御は完璧ではないので、データ上での太陽像の位置は一定しておらず短い時間のうちに1画素幅以上ずれる事が頻繁にあります。そのかわり、どの画素番地が太陽像中心にあたるかの情報が keyword に含まれています。本格的な解析を始める前にこの情報を使って位置の調整をする必要があると思います。通常、補正すべき位置の移動の距離は縦横方向それぞれに画素長きっかりにはならないですから、(線形)補間が発生したり CCD 画素番地の切り上げ・切り下げなどの処理が必要になるはずです。これらは不可逆で情報量減少を伴う上に、いくつかあるやり方・流儀のうちどれが普遍的・最適であるかを一意に決める事ができる種類の問題ではないですから、JSOC で配布されるデータの多くは位置調整の処理を意図的に全くしていません。
  また、太陽像直径は画素数で 3600 程度 (大まかには画素一つが 0.5 秒角) ですがこの値は一年で3%程度変動します。太陽上での緯度・経度に変換する作業にはこの見かけの大きさも考慮する事になると思います。
  長い観測時間(で且つ比較的狭い空間範囲)のデータを解析するような場合、太陽自転を考慮する必要があります。これは巨視的・統計的にはいわゆる微分回転をしています。非常に大雑把な値ですが、HMI の 4k x 4k 画素データでは、子午線近く・南北20度付近で 12 分毎に 3.3 画素幅、という数字が検算の参考になるでしょう。
IDL の例
ものすごく簡単に・・・上記手順 11 にて取得した FITS ファイル (ファイル名は hmimag.fits に改名したとします) のデータ本体とヘッダを読み込む例。
 1. mag = readfits('hmimag.fits',maghd)
    ; FITS ヘッダからデータの横・縦の大きさの値を取り出す。
    ; HMI 太陽全面像データではともに 4096 のはず。
 2. xsize  = sxpar(maghd,'NAXIS1')
 3. ysize  = sxpar(maghd,'NAXIS2')
    ; 太陽像中心の横・縦方向画素番地。
    ; 1引くのは IDL だから。Fortran なら要らない。
 4. cnterx = sxpar(maghd,'CRPIX1')-1.0
 5. cntery = sxpar(maghd,'CRPIX2')-1.0
    ; CCD 格子の縦方向と太陽自転軸のなす角。
    ; SDO 衛星ではほぼ全てのケースで 180 または 0 に近い値。
 6. pangle = sxpar(maghd,'CROTA2')
    ; 観測時刻に於ける、地球 (SDO) 位置の太陽緯度。
    ; B0 角と同じ。単位は度。
 7. bangle = sxpar(maghd,'CRLT_OBS')
    ; 観測時刻に於ける、Carrington 経度と自転数
 8. crlong = sxpar(maghd,'CRLN_OBS')
 9. cr_num = sxpar(maghd,'CAR_ROT')

    ; おまけ・1
    ; 通常、太陽像の縁からある程度離れた観測データの無い部分には
    ; NaN 値が埋め込まれています。NaN 値をそのままにしていると、
    ; 後々いろいろと面倒なのでここでてきとうな処理をする事にします。
    ;
    ; データが浮動小数型の場合には
10. nanlist=where(finite(mag,/nan))
    ; と NaN 値をもつ画素の配列番地リストを作ります。
    ;
    ; 実際の観測データには観測誤差その他があるため
    ; 単精度・倍精度の精度やデータ深度は無い事がほどんどですから、
    ; HMI データベースではファイルサイズ節約も兼ねて、
    ; 磁場データ始め多くのデータは整数型データとして格納されています。この場合、
11. bscale =sxpar(maghd,'BSCALE')
12. bzero  =sxpar(maghd,'BZERO')
13. nanval =sxpar(maghd,'BLANK')*bscale+bzero
14. nanlist=where(abs(mag-nanval) lt 0.9*bscale)
    ; などとし、観測データとして空白を意味する (NaN 値に対応する) 整数値を
    ; もつ画素の番地の一覧を作ります。
    ;
    ; そして・・・ NAN 値を0に置き換える。まあ、邪道。
15. if (nanlist[0] ge 0) then mag(nanlist)=0.0

    ; おまけ・2
    ; 太陽像中心にあたる画素を中心にくるりん、と反時計回りに p-角だけ回転。
    ; これで太陽北極が画像データ上の上側にくる。空間補間が施されるので注意。
16. mag=rot(mag,-pangle,1.0,cnterx,cntery,/interp)
    ; 素の 4096 x 4096 のままだといろいろ困るので、
    ; 全体を小さくして(分解能を落として)表示
17. tvscl, congrid(mag,512,512)
    ; 一部分だけを元の分解能で表示
18. tvscl, mag(2000:2511,2000:2511)

19. end
    ; おわり
その他
FITS
Flexible Image Transport System。天文学では広く使われるデータ形式。データの画面表示や簡単な解析には ds9 というソフトが、サポートしている OS の多さなどが理由で、よく使われているようです。なによりタダなのが良いです。本格的な解析のためのデータの読み込み・書き出しには、Fortran や C には cfitsio なるライブラリがあり、また、これを利用した IDL の関数を使うこともできます。
Rice compression
FITS で採用されているデータ圧縮形式のひとつ。詳細(規格とかアルゴリズム)は知らないです。非常に大雑把には、データの浮動小数値を(観測誤差などを考慮した)刻み幅で丸めることで、必要とされるビット数を大幅に削減したのちに、適当な圧縮をかけているようです。この方法の利点のひとつは、本来の観測データのもつ物理上あるいは統計上の意味を損なう事なく、ファイルサイズが数分の一程度になり、取得・保存がより容易になることです。HMI データ配布サイトで取得した Rice 圧縮データファイルを IDL 等でうまく読みこめない事があると聞いています。いちおうSSW (Solar SoftWare) の read_sdo.pro なる関数が対応しているそうですが、どうも NaN 値と負値のとりまわしに問題があるようで私はほとんど使っていません。Linux 上では (iOS でも可だそうです) 、本家の cfitsio ライブラリに依存した (コンパイル等の手間がかかります) 代替の IDL 関数が用意されているので、こちら (PDF ファイル) を参考にしてください。Fortran や C 言語で本家の cfitsio ライブラリを直に使う場合には、少なくとも私自身の経験では、問題は無いようです。
JSOC
ここでは Joint Science Operations Center の事。外部からみた場合には、データを処理・配布する Web 上の場所という理解でよいかと。正確にはデータ処理・配布の他に、観測プラン等の運用に関する事も行う SDO の HMI や AIA 観測に関わる枠組み全体の事を JSOC と呼んでいるのですが、SDO 搭載の3つの観測装置 (HMI,AIA,EVE) は基本的に太陽全体を継続して観測するという思想なので、観測プランの作成やシーケンスを頻繁に書き換えるという事は今はあまりないようです。
データのない時間帯など
軌道の関係で3月および9月頃の UT で午前7時頃に地球の影に SDO 衛星が入ります。保温機構や焦点・波長調整等の手順もあるため、前後約30分を含む 1 ∼ 3 時間程度のデータの無い時間帯が発生します。また、この真っ暗な時間帯を利用してキャリブレーションが行われます。
TAI
国際原子時。英語では International Atomic Time ですが、フランス語 Temps Atomique International からの略称で TAI と呼ばれています、ざます。 HMI データの観測時刻は JSOC 内ではこの TAI で管理されているので、明示的に他の時刻定義を指定しなければ、JSOC 経由で取得される HMI データの時刻定義は TAI と仮定されます、ざます。UTC との違いは・・・34 ∼ 37 秒と意外とあります、ざます。
観測時刻
本頁ではあまり気にしないで観測時刻といういい方を多用してしまっています。が、JSOC で公開されている HMI のデータの大部分は 45 秒または135秒で一巡する観測シーケンス (のひとつまたは複数) から算出されるものが大部分なので、じつのところ「観測時刻」といういい方はあまり正しくないのです。JSOC データベースでは、その点を踏まえて、ひとつのデータを代表する時刻として T_REC という名前の keyword が当てられています。この時刻は原則として 45 秒または 720 秒刻みと非常に規則的で、データを捜す際の識別子として使われている時刻は実はこれです。T_REC の REC は Record のことで、データ目録作成上の代表時刻と解釈するとよいでしょう。AIA の場合には原則一回の露光でひとつの観測データがじか取りできるので露光時間帯の中心時刻がそのまま (あるいは秒単位程度で丸めた時刻の値が) 使われているようです。
上上下下左右左右
本頁では「太陽北極が上にくる」などの表現で書いてますが、あまり良い表現ではなかったかもしれない。太陽物理でよく使うソフトや処理系 (ds9 や IDL) では、2次元配列データを計算機モニタに表示する場合に、データ列の一番最初のものを画面左下端に、次のデータはその右隣・・・で、2次元データの横幅の個数分処理したら (=右端まで来たら)、一個上の画像列左端に移動して・・・・いちばん最後のデータ値が右上端に表示される、という事になっていると思うので、このルールを念頭に文章を書いてしまっています。


最終更新:令和元年12月
公開開始:平成22年12月
作成開始:平成22年4月