CUIの使い方(後編):calcコマンド、get_dataやstore_dataの使い方、時系列データのフィルター処理、スペクトル/相関解析方法

Similar documents
Microsoft PowerPoint - データ解析講習会 _CUI編.pptx

Microsoft PowerPoint - SPEDAS_lecture_05_CUI2_shinbori_ pptx

コマンド入力による操作1(ロード、プロット、画像ファイル出力等)

Microsoft PowerPoint - SPEDAS_lecture_04_CUI_abe_ pptx

untitled

Microsoft PowerPoint - IDL_SPEDAS_lecture_event pptx

九州大学学術情報リポジトリ Kyushu University Institutional Repository TDAS,UDAS 入門 : インストール & セットアップ,IDL- VM 環境での GUI の使い方 田中, 良昌国立極地研究所

PowerPoint プレゼンテーション

クエリの作成が楽になるUDF

理工学図書館後期 LS 講習会 きれいなグラフを作ろう! gnuplot 入門

sinfI2005_VBA.doc

Microsoft Word - 18環設演付録0508.doc

初めてのプログラミング

書式に示すように表示したい文字列をダブルクォーテーション (") の間に書けば良い ダブルクォーテーションで囲まれた文字列は 文字列リテラル と呼ばれる プログラム中では以下のように用いる プログラム例 1 printf(" 情報処理基礎 "); printf("c 言語の練習 "); printf

例 e 指数関数的に減衰する信号を h( a < + a a すると, それらのラプラス変換は, H ( ) { e } e インパルス応答が h( a < ( ただし a >, U( ) { } となるシステムにステップ信号 ( y( のラプラス変換 Y () は, Y ( ) H ( ) X (

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

Microsoft PowerPoint - ip02_01.ppt [互換モード]

「統 計 数 学 3」

memo

PowerPoint プレゼンテーション

Microsoft Word - Cプログラミング演習(12)

Microsoft Word - VBA基礎(6).docx

Microsoft PowerPoint - program.ppt [互換モード]

char int float double の変数型はそれぞれ 文字あるいは小さな整数 整数 実数 より精度の高い ( 数値のより大きい より小さい ) 実数 を扱う時に用いる 備考 : 基本型の説明に示した 浮動小数点 とは数値を指数表現で表す方法である 例えば は指数表現で 3 書く

Microsoft Word - 簡単な計算と作図.doc

第4回

PowerPoint Presentation

Microsoft PowerPoint - 講義資料-mlib

第 4 週コンボリューションその 2, 正弦波による分解 教科書 p. 16~ 目標コンボリューションの演習. 正弦波による信号の分解の考え方の理解. 正弦波の複素表現を学ぶ. 演習問題 問 1. 以下の図にならって,1 と 2 の δ 関数を図示せよ δ (t) 2

分析のステップ Step 1: Y( 目的変数 ) に対する値の順序を確認 Step 2: モデルのあてはめ を実行 適切なモデルの指定 Step 3: オプションを指定し オッズ比とその信頼区間を表示 以下 このステップに沿って JMP の操作をご説明します Step 1: Y( 目的変数 ) の

JavaプログラミングⅠ

Microsoft PowerPoint - CSA_B3_EX2.pptx


開発・運用時のガイド JDK8への移行に伴う留意点 [UNIX]

ガイダンス

Microsoft Word - 頻度解析プログラム概要

今回のプログラミングの課題 ( 前回の課題で取り上げた )data.txt の要素をソートして sorted.txt というファイルに書出す ソート (sort) とは : 数の場合 小さいものから大きなもの ( 昇順 ) もしくは 大きなものから小さなもの ( 降順 ) になるよう 並び替えること

PowerPoint プレゼンテーション

C#の基本2 ~プログラムの制御構造~

Microsoft PowerPoint - Lec15 [互換モード]

プログラミング実習I

Java Bridgeを利用した他言語によるデータロード&プロットデモ

Matlab講習会

プログラミング基礎

Microsoft PowerPoint - chap10_OOP.ppt

計算機シミュレーション

微分方程式 モデリングとシミュレーション

EnSightのご紹介

RX ファミリ用 C/C++ コンパイラ V.1.00 Release 02 ご使用上のお願い RX ファミリ用 C/C++ コンパイラの使用上の注意事項 4 件を連絡します #pragma option 使用時の 1 または 2 バイトの整数型の関数戻り値に関する注意事項 (RXC#012) 共用

Microsoft PowerPoint - DigitalMedia2_3b.pptx

スペクトルに対応する英語はスペクトラム(spectrum)です

第 2 章インタフェース定義言語 (IDL) IDL とは 言語や OS に依存しないインタフェース定義を行うためのインタフェース定義言語です CORBA アプリケーションを作成する場合は インタフェースを定義した IDL ファイルを作成する必要があります ここでは IDL の文法や IDL ファイ

Microsoft PowerPoint - CproNt02.ppt [互換モード]

スクールCOBOL2002

計測コラム emm182号用

cp-7. 配列

情報処理概論(第二日目)

Microsoft Word - 操作マニュアル-Excel-2.doc

Microsoft Word - scilab_intro.doc

4 月 東京都立蔵前工業高等学校平成 30 年度教科 ( 工業 ) 科目 ( プログラミング技術 ) 年間授業計画 教科 :( 工業 ) 科目 :( プログラミング技術 ) 単位数 : 2 単位 対象学年組 :( 第 3 学年電気科 ) 教科担当者 :( 高橋寛 三枝明夫 ) 使用教科書 :( プロ

Microsoft PowerPoint - 時系列解析(11)_講義用.pptx

Transcription:

CUI の使い方 ( 後編 ):calc コマンド get_data や store_data の使い方 時系列データのフィルター処理 スペクトル / 相関解析方法 新堀淳樹 ( 京大生存研 )

1. はじめに 入門編 CUI の使い方 ( 前編 ) では データのロード プロットの基礎 およびプロットの画像出力方法などを行った CUI の使い方 ( 後編 ) では UDAS 上での汎用データ形式である "tplot 変数 " の中身について理解し 各自の手持ちのデータから独自の tplot 変数を生成する方法を学ぶ 非常に便利な tplot 変数を使った演算 ( 足し算 引き算 掛け算 時間微分等 ) について学ぶ 移動平均 バンドパスフィルター 周波数スペクトル導出など よく用いられる時系列解析のやり方を覚える GUI より CUI( コマンドラインでの操作 ) の方が自由度が高いことから UDAS に慣れてくるとコマンドを使う方が断然便利である!

2.1 tplot 変数とは 2. tplot 変数の取り扱いと演算 UDAS のベースになっている TDAS (THEMIS Data Analysis Software) での 汎用時系列データ形式 IDL 上では単なる文字列だが tplot 等のいわゆる t コマンドに与えると tplot 変数名に紐付けられた時系列データの実体に対して コマンド処理が実行される 時刻配列 時刻配列 IDLメモリーの中 時系列データ 1 データ配列 時系列データ 2 データ配列 メタデータ メタデータ tplot 変数名 1 tplot 変数名 2 TDAS 処理系 TDAS 処理系では tplot 変数名で 実体の時系列データが参照される 処理の際にデータ配列数は気にしなくてもよい!

2. tplot 変数の取り扱いと演算 2.2 get_data を用いて tplot 変数の中身を見る メタデータが入る get_data, 'tplot 変数名 ', data = d, dlimits = dl, lim = lim データ配列が入主に可視化情報が入るる tplot 変数名 のところはインデックス番号でも可 その場合はシングルクォーテーションは不要 THEMIS> timespan, '2012-11-11',7 THEMIS> iug_load_lfrto,site = 'ath' ド THEMIS> get_data, 'lfrto_ath_wwvb_pow30s', data = d, dlimits = dl, lim = lim THEMIS> help, d, /struct 時間幅として 2012 年 11 月 7 日から 3 日分を指定 LF 電波観測点の Athabasca (ATH) データをロー help コマンドは変数 構造体の情報を表示する /struct キーワードを付けると 構造体内の配列情報を表示する ** Structure <5841700>, 2 tags, length=239040, data length=239040, refs=1: X DOUBLE Array[19920] Y FLOAT Array[19920]

2. tplot 変数の取り扱いと演算 2.2 get_data を用いて tplot 変数の中身を見る THEMIS> help, d, /struct ** Structure <5841700>, 2 tags, length=239040, data length=239040, refs=1: X DOUBLE Array[19920] Y FLOAT Array[19920] tplot 変数の実体のデータ構造体 ( 今の場合は d ) は X, Y という 2 つのメンバーから構成されている X: 倍精度浮動小数点で表した Unix time (1970 年 1 月 1 日 0 時 0 分 0 秒 UT からの積算秒数 ) この例では 19920 個の 1 次元配列 つまりデータの time frame は 19920 個ある このデータは 30 秒値で 7 日分なので 1 日 =86400 秒 /30 秒 x 7 日分で 19920 Y: 実際にデータが入っている配列この場合 19920 の 1 次元配列

2. tplot 変数の取り扱いと演算 2.2 get_data を用いて tplot 変数の中身を見る THEMIS> help, dl, /struct ** Structure <81c32f0>, 4 tags, length=1128, data length=1122, refs=3: CDF STRUCT -> <Anonymous> Array[1] SPEC BYTE 0 LOG BYTE 0 YSUBTITLE STRING '[db] THEMIS> help, lim, /struct dlimits 構造体にはメタデータ ( データに関する各種情報 ) が格納される 例えば CDF はこれ自体も構造体であり 元データファイルである CDF ファイルの情報 ( ファイルのセーブ場所など ) が格納されている LIM LONG = 0 lim 構造体の方には主にプロット等に可視化する際に必要な情報が入っている 例えば tplot コマンドが tplot 変数をプロットする場合 ここの情報を参照して 線の色や縦軸のラベル 凡例等を描画する

2.3 store_data で新規 tplot 変数を作成 2. tplot 変数の取り扱いと演算 store_data, 'tplot 変数名 ', data = {x:time, y:data } time: データの時刻ラベルを倍精度浮動小数点の Unix time の配列にしたもの 1 次元配列 [N] N: 時刻ラベル数 val: データの配列 スカラーデータの場合は [N] (time と同じサイズ ) 1 次元ベクトルデータの場合は [N][J] (J がベクトルの成分数 ) という配列 というような time, val を用意すれば tplot 変数を作成できる THEMIS> time = d.x THEMIS> val = d.y/2.0 THEMIS> store_data, 'lfrto_ath_wwvb_pow30s_half', data = { x:time, y:val } THEMIS> tplot, ['lfrto_ath_wwvb_pow30s', 'lfrto_ath_wwvb_pow30s_half' ] 実際に tplot でプロットして確認してみる

2.3 store_data で新規 tplot 変数を作成 2. tplot 変数の取り扱いと演算 THEMIS> tplot, ['lfrto_ath_wwvb_pow30s','lfrto_ath_wwvb_pow30s_half'] 絶対値が半分になっている メタデータ 可視化情報 (dl, lim) が受け継がれなかったので 単位が表示されていない

2. tplot 変数の取り扱いと演算 2.4 calc コマンドによる tplot 変数の演算 calc, ' " 新 tplot 変数名 " = 計算式 ' ( 例 ) calc, ' "newvar" = "lfrto_ath_wwvb_pow30s" + 20. ' 時系列データである tplot 変数全体を使った演算を 直感的にわかり易い形で書いて実行することができる! 実は 前頁の store_data を使ってやったことは calc, ' "lfrto_ath_wwvb_pow30s_half" = "lfrto_ath_wwvb_pow30s" / 2.0 ' と わずか 1 行で実行できる!

2. tplot 変数の取り扱いと演算 2.4 calc コマンドによる tplot 変数の演算 calc, ' " 新 tplot 変数名 " = 計算式 ' ( 例 ) calc, ' "newvar" = "lfrto_ath_wwvb_pow30s" + 20. ' 計算式のルール フォーマットは普通の計算式と同じ 全体を単引用符 ( ' ) で囲む tplot 変数は二重引用符 ( " ) で囲む 使用可能な演算 : 四則 (+-*/), べき乗, sin/cos/tan(), exp(), log(), abs(), min(), max(), total(), mean(), median(), 注意点 複数の tplot 変数を演算に使う場合 実体の配列のサイズ 次元が同一でないといけない データの時刻数が異なる データの次元が異なる ( スカラーデータとベクトルデータの混在など ) とエラーになる

2.4 calc コマンドの練習 2. tplot 変数の取り扱いと演算 THEMIS> calc, '"lfrto_ath_wwvb_pow30s_d" = "lfrto_ath_wwvb_pow30s"- mean("lfrto_ath_wwvb_pow30s")' LF 電波強度の平均値を計算し それを元データから差し引く演算を calc で求めた タイトルやラベルは後で options コマンドで適宜変更

2. tplot 変数の取り扱いと演算 2.5 calcコマンドの応用電離圏 Pedersen, Hall 伝導度からCowling 電気伝導度を導出 calc, ' "sigmac" = "sigmap" + ("sigmah" ^2 / "sigmap")' 注 ) sigmap: Pedersen 伝導度 sigmah: Hall 伝導度 太陽風観測から太陽風動圧を導出 calc, ' "Pdyn" = "ace_np" * "ace_vp"^2 * 1.6726 * 1e-6 ' 注 ) ace_np: 太陽風密度 [/cc] ace_vp: 太陽風速度 [km/s] C P N dyn P 2 H P プロトンの質量 2 p * M * Vp 2 つ目の例の ace_np, ace_vp というデータは TDAS に収録されている ace_swe_load, datatype='h0' というコマンドでロードできる

3. tplot 変数への各種フィルター処理 3.1 tsub_average で平均値を差し引く tsub_average, 'tplot 変数名 ' ( 例 ) tsub_average, 'lfrto_ath_wwvb_pow30s' THEMIS> tsub_average, 'lfrto_ath_wwvb_pow30s' THEMIS> tplot, ['lfrto_ath_wwvb_pow30s', 'lfrto_ath_wwvb_pow30s-d'] 元の変数名に -d を付けた新しい tplot 変数に結果が格納される プロットする際にゼロ線を揃えたり周波数解析の前処理などで多用される

3. tplot 変数への各種フィルター処理 3.2 tsmooth_in_time でスムージング tsmooth_in_time, 'tplot 変数名 ', 平均幅 [ 秒 ] ( 例 ) tsmooth_in_time, 'lfrto_ath_wwvb_pow30s', 3600 THEMIS> tsmooth_in_time, 'lfrto_ath_wwvb_pow30s', 3600 THEMIS> tplot, ['lfrto_ath_wwvb_pow30s', 指定された時間幅で移動平均することでスムージングされた結果が _smoothed という名前の新しい tplot 変数に格納される 'lfrto_ath_wwvb_pow30s_smoothed'] 平均幅を秒数で与える点に注意 上の例は 3600 秒 =1 時間幅で移動平均している 簡便なローパスフィルターになる

3. tplot 変数への各種フィルター処理 3.3 thigh_pass_filter でハイパス フィルター thigh_pass_filter, 'tplot 変数名 ', 下限周期 [ 秒 ] ( 例 ) thigh_pass_filter, 'lfrto_ath_wwvb_pow30s', 3600 THEMIS> thigh_pass_filter, 'lfrto_ath_wwvb_pow30s', 3600 THEMIS> tplot, ['lfrto_ath_wwvb_pow30s', 結果が _hpfilt という名前の新しい tplot 変数に格納される ただしデジタルフィルターではなく 簡易的なもの 実際は前頁の tsmooth_in_time でローパスフィルターされたデータを元データから差し引いている 'lfrto_ath_wwvb_pow30s_hpfilt']

3. tplot 変数への各種フィルター処理 3.4 avg_data で ~ 分値 ~ 時間値に平均 avg_data, 'tplot 変数名 ', 平均時間幅 [ 秒 ] ( 例 ) avg_data, 'lfrto_ath_wwvb_pow30s', 3600 THEMIS> avg_data, 'lfrto_ath_wwvb_pow30s', 3600 THEMIS> tplot, ['lfrto_ath_wwvb_pow30s', 結果が _avg という名前の新しい tplot 変数に格納される 第 2 引数に平均の時間幅を与える 3600[ 秒 ] にすれば 1 時間平均 60 にすれば 1 分平均 元データの時間分解能より小さい時間幅を与えると 結果が歯抜けデータになってしまうので注意 'lfrto_ath_wwvb_pow30s_avg']

4. 周波数スペクトル解析 4.2 フーリエスペクトル解析 tdpwrspc tdpwrspc, 'tplot変数名' (例) tdpwrspc, 'lfrto_ath_wwvb_pow30s' 窓幅のデータ点数 ハニング窓を 使う/使わない など色々オプショ ンがある THEMIS> tdpwrspc, lfrto_ath_wwvb_pow30s' THEMIS> tplot, ['lfrto_ath_wwvb_pow30s', 'lfrto_ath_wwvb_pow30s_dpwrspc'] ハニング窓+FFTでダイナミック スペクトル求め, _dpwrspc と いう名前のtplot変数に結果を格 納する tplotによりカラーコンターでプ ロットされる コンターの単位 は元の値の単位の2乗/Hz (元: db db^2/hz) 縦軸のキャプションは optionsコマンドで適宜修正する

4.2 ウェーブレット変換 wav_data 4. 周波数スペクトル解析 wav_data, 'tplot 変数名 ' ( 例 ) wav_data, 'lfrto_ath_wwvb_pow30s' Wavelet 変換で周波数スペクトルを求める THEMIS> wav_data, 'lfrto_ath_wwvb_pow30s' THEMIS> tplot, ['lfrto_ath_wwvb_pow30s', 'lfrto_ath_wwvb_pow30s_wv_pow '] ウェーブレット変換を用いるので tdpwrspc よりは速い時間変動にも追随できる その代わり処理に時間がかかるので 1 度に変換するのは 1 万点くらいにしておいた方がよい

4. 周波数スペクトル解析 4.3 S(Stockwell) 変換 ustrans_pwrspc ustrans_pwrspc, 'tplot 変数名 ', /sampling, /abs ( 例 ) ustrans_pwrspc, 'lfrto_ath_wwvb_pow30s', /sampling, /abs THEMIS> avg_data, 'lfrto_ath_wwvb_pow30s', 60 1 分平均値の計算 THEMIS> ustrans_pwrspc, 'lfrto_ath_wwvb_pow30s_avg' THEMIS> options, 'lfrto_ath_wwvb_pow30s_avg_stpwrspc', 'ysubtitle', '[Min]' S 変換で周波数スペクトルを求める 単位の変更 THEMIS> ylim, 'lfrto_ath_wwvb_pow30s_avg_stpwrspc', 0, 24 THEMIS> zlim, 'lfrto_ath_wwvb_pow30s_avg_stpwrspc', 0, 1 THEMIS> tplot, ['lfrto_ath_wwvb_pow30s_avg', 'lfrto_ath_wwvb_pow30s_avg_stpwrspc'] 引数 /abs の代わりに /power とすると 振幅ではなくパワー値を算出する Y 軸の範囲変更 Z 軸の範囲変更 処理に時間がかかるので 1 度に変換するのは 1 万点くらいにしておいた方がよい

4. 周波数スペクトル解析 4.3 S(Stockwell) 変換 ustrans_pwrspc

5. 他のデータとの比較 5.1 地磁気指数との比較解析 THEMIS> iug_load_gmag_wdc, site= ['ae', 'sym'] 地磁気指数(AE SYM)のロード THEMIS>tplot,['wdc_mag_ae_prov_1min','wdc_mag_sym','lfrto_ath_wwvb _pow30s_avg','lfrto_ath_wwvb_pow30s_avg_stpwrspc'] 上記でロードしたデータと先ほどのS変換解析結果との並列プ ロット 11月13-14日に発 生した磁気嵐に対 応してLF電波強度 の変調が多様な周 波数域で発生して いることが分かる

6. まとめ tplot 変数とは TDAS 上の時系列データ参照の概念であり IDL のメモリー上にその実体となるメタデータ付きデータ構造体がある get_data および store_data により IDL の通常の配列とのやり取りが可能 calc コマンドにより tplot 変数の演算ができる 各種フィルター処理やスペクトル解析を行うことができる UDAS3.00.1 以降のバージョンでは IUGONET で独自に開発した描画や解析ツール ( 相互相関 無相関検定 コヒーレンス解析 トレンド検定 ) などが付け加わっている