for PV-WAVE/IDL ver.15.0.1 |
- Retrieveってなに?
- PV-WAVEってなに?
- IDLってなに?
- Retrieveのインストール
- 計測データ/パラメータの取得
- エラーコードの取得
- 時間軸の取得
- 電圧に変換して表示
- 画像データの表示
- WAITモードでのデータ取得
- リアルタイムデータを取得
- デモジュレータのパラメータを取得
- 参照サイトの切り替え
- Retrieveのアンインストール
- クイズに挑戦!
Retrieveってなに?
Retrieveとは、PV-WAVEまたはIDLから直接呼出し可能なプロシージャで、計測データベースに格納されている計測データを取得するために使用します。実体はランタイム共有ライブラリRetrieve.DLL(Linux版は libretrieve.so)とそれをPV-WAVE/IDLから呼び出すプロシージャ(.pro)ファイルより構成されています。
ですからユーザが共有ライブラリを呼び出す専用アプリケーションを作ることもできます。
計測データを取得するために使うんだね。 | |||
PV-WAVEってなに?
PV-WAVEは配列ベースのプログラミング言語であり、可視化データ解析アプリケーションの開発、配布に使用されています。PV-WAVE は、画像及び信号処理、データの入出力、3次元サーフェス、プロット、ヒストグラム、コンター、アニメーション、カラーエディット、データベーステーブルの表示などの強力な機能を提供します。
LABCOMグループでは、Windows版 および Linux版の PV-WAVE Extreme Advantage 年間サイトライセンスを購入しています。NIFS所内であれば、自由に使用することができます。
ダウンロードはこちらから。
NIFS所内ならPV-WAVEが使えるんだね。 | |||
IDLってなに?
IDL(The Interactive Data Language)は計測・実験、数値計算、統計解析、シミュレーション、ビジュアライゼーションなど様々な分野で使用されている非常に柔軟なソフトウェアです。IDLはデータ解析、可視化、アプリケーション開発などを含んだ統合環境を提供します。またIDLが持つIDL言語は対話形式(インタプリタ)、実行形式(テキスト、バイナリ)双方が可能です。解析情報グループにて、Windows および Linux 版の IDL のサイトライセンスを購入しています。 NIFS所内であれば、自由に使用することができます。
ダウンロードはこちらから。
IDLもNIFS所内なら使えるんだね。 | |||
Retrieveのインストール
計測データ・パラメータを取得するには、Retrieveを利用します。 次の手順に沿って、Retrieveをインストールしましょう。 |
|
- Retrieve+dbStoreをダウンロードし適当なフォルダに保存し ます。ダウンロードはこちらから。
- インストールするPCに旧版のRetrieve+dbStoreがインストールされている場合は、必ず旧版をアンインストールしてください。
- ダウンロードしたファイルをダブルクリックするとインストールが始まります。手順に沿ってインストールを行ってください。
- Retrieve+dbStoreをインストールすると、参照サイトが自動的に「LHD」に設定されます。デフォルトの参照サイトを変更したい場合はこちらをご覧ください。
なお、可視化ソフト(PV-WAVE/IDL)では参照サイトを変更するコマンドが用意されています。詳しくはこちらをご覧ください。 - 可視化ソフトがインストールされていない場合は、以下を行ってください。
- 可視化ソフトをダウンロードしインストールを行ってください。
- 可視化ソフトを起動したときにRetrieve+dbStoreが利用できるよう、起動時の実行ファイルの指定を行ってください。
- PV-WAVE
wavestartupファイルをRetrieveのインストールされているフォルダから、PV-WAVEのインストールされているフォルダにコピーします。
コピー元(デフォルト)
C:\LABCOM\Retrieve\lib\pv-wave\wavestartup
コピー先(デフォルト)
C:\VNI\wave\bin\wavestartup - IDL
IDLを起動後、[file]-[Preferences..]を選択し、[Startup]タブの[Startup file]にstartup_user_idl.proを指定します。
指定場所(デフォルト)
C:\LABCOM\Retrieve\lib\idl\startup_user_idl.pro
- PV-WAVE
計測データ/パラメータの取得
PV-WAVE/IDLを起動し、Retrieveで計測データ・パラメータを取得してみましょう。(Retrieveの使用方法はこちらをご覧ください)
|
■図-1 |
||||||||||
では、計測データとパラメータを取得してみましょう。(図-1参照) params = 1 …パラメータ格納変数の定義(初期化)をしておきます retrieve, 'Bolometer', 48000, 1, 1, shot, param=params …shotに計測データ、paramsにパラメータの情報を取得します これで、shotに計測データ、paramsにパラメータ情報が取得されました。 |
|||||||||||
では次に、取得した計測データを表示してみましょう。(図-2参照) |
|||||||||||
次に、取得したパラメータを参照してみましょう。(図-4参照) |
■図-4 |
||||||||||
パラメータ(パラメータ名、パラメータ値)は文字列として格納されているため、取得したパラメータを表示・変換するために次のファンクションが用意されています。(変換方法はこちらをご覧ください) |
|||||||||||
getParamLong getParamInt getParamFloat getParamDouble getParamString |
■図-5 |
||||||||||
では試しに、取得したパラメータの'Range'の値をFloatに変換してみましょう。(図-5参照) 次に、infoでFloatValueの内容を確認してみましょう。(図-5参照) |
|||||||||||
|
エラーコードの取得
Retrieveではエラーコードを取得することによって、データが正しく取得できたかどうか、またエラーの場合どういう内容なのかを知ることができます。 データが正しく取得できた場合、エラーコードは 0 が返されます。 |
|||||||||||
では、データを取得しエラーコードを参照してみましょう。(図-6参照) |
■図-6 |
||||||||||
retrieve, 'Bolometer', 48000, 1, 1, shot, code
…codeにエラーコードを取得します print, code …codeを表示します |
|||||||||||
エラーコードは 0 でした。(図-6参照) このデータは正しく取得できたことがわかります。 |
■図-7 |
||||||||||
他のデータも取得してみましょう。(図-7参照) retrieve, 'Bolometer', 48830, 1, 1, shot, code …codeにエラーコードを取得します print, code …codeを表示します エラーコードが 0以外 ですのでデータは正しく取得されていません。(図-7参照) エラーの内容をRetrieve Error Codesで確認してみましょう。 これでデータが取得できなかった原因がわかりましたね。
|
時間軸の取得
PV-WAVE/IDL上にて時間軸を取得するには、Retrieve(ver.15.0.0以降)(※推奨)で計測データと同時に取得する方法(Retrieveの使用方法はこちら)と、Retrieve_tまたはRetrieve_tdで時間軸のみ取得する方法(Retrieve_tまたはRetrieve_tdの使用方法はこちら)があります。 | |||||||||||||
Retrieve、Retrieve_tは、モジュール設定にDTSとのリンク情報がある第7サイクル以降の時間軸データの情報を取得することができます。(※注意) Retrieve_tdは、DTSとのリンク情報がない第6サイクルまでのデータを取得することができます。 ※未対応データに関してはこちらをご覧ください。 |
|
||||||||||||
(※推奨) (※注意) |
|||||||||||||
|
|||||||||||||
RetrieveでFLOAT型の時間軸を取得してみましょう。(図-8参照) p=1 …計測データパラメータ格納変数の定義(初期化)をしておきます time=1 …時間軸格納配列の定義(初期化)をしておきます t=1 …時間軸パラメータ格納変数の定義(初期化)をしておきます |
■図-8 |
||||||||||||
retrieve, 'Bolometer', 48000, 1, 1, data, param=p, tarray=time, tparam=t …timeにFLOAT型の時間軸、tに時間軸パラメータの情報を取得します printparam, t …取得した時間軸パラメータを表示します パラメータのArrayDataTypeを見ると、Floatとなっています。 これで、FLOAT型の時間軸情報が取得できたことが分かりますね。(図-8参照) |
|||||||||||||
では次に、DOUBLE型で時間軸を取得してみましょう。(図-9参照) retrieve, 'Bolometer', 48000, 1, 1, data, param=p, tarray=time, tparam=t, /double …timeにDOUBLE型の時間軸、tに時間軸パラメータの情報を取得します printparam, t …取得した時間軸パラメータを表示します パラメータのArrayDataTypeを見ると、Doubleとなっています。 |
■図-9 |
||||||||||||
これで、DOUBLE型の時間軸情報が取得できたことが分かりますね。(図-9参照) |
|||||||||||||
では、Retrieveでデータと一緒に時間軸を取得しグラフを表示してみましょう。(図-10参照) retrieve, 'Bolometer', 48000, 1, 1, data, tarray=time …dataに計測データ、timeに時間軸の情報を取得します plot, time, data …取得した計測データを時間軸で表示します 横軸が時間(秒)に変わっているのがわかりますね。(図-11参照)
|
■図-10 ■図-11 |
||||||||||||
|
|||||||||||||
Retrieve_tでFLOAT型の時間軸を取得してみましょう。 (図-12参照) t=1 …パラメータ格納変数の定義(初期化)をしておきます retrieve_t, 'Bolometer', 48000, 1, 1, time, param=t …timeにFLOAT型の時間軸、tに時間軸パラメータの情報を取得します printparam, t …取得した時間軸パラメータを表示します |
■図-12 |
||||||||||||
パラメータのArrayDataTypeを見ると、Floatとなっています。 これで、FLOAT型の時間軸情報が取得できたことが分かりますね。(図-12参照) DOUBLE型の時間軸情報を取得したい場合は、Retrieveと同様に/doubleを指定します。 retrieve_t, 'Bolometer', 48000, 1, 1, time, param=t, /double …timeにDOUBLE型の時間軸、tに時間軸パラメータの情報を取得します
取得した時間軸を使い、横軸を時間(秒)にしてデータを表示してみましょう。 retrieve, 'Bolometer', 48000, 1, 1, data …計測データを取得します retrieve_t, 'Bolometer', 48000, 1, 1, time …時間軸を取得します plot, time, data …取得した計測データを時間軸で表示します |
|||||||||||||
|
|||||||||||||
Retrieve_tdは使用しているDTSを直接指定することで時間軸情報を取得することができます。 |
|||||||||||||
では、Retrieve_tdでFLOAT型の時間軸を取得してみましょう。 内部クロックとサンプリング数を定義後、時間軸を取得します。(図-13参照) |
■図-13 |
||||||||||||
clk = long(1000000) …1kHzサンプリングの場合 samp = long(128)*long(1024) …128Kの収集をした場合(Aurora14 128Kモジュールなど) retrieve_td, 38000, 1, 'VME', '133.75.175.156', 'DMOD0', 1, 1, 'External', clk, samp, time …timeにFLOAT型の時間軸の情報を取得します これで、timeにFLOAT型の時間軸情報が取得されました。 DOUBLE型の時間軸情報を取得したい場合は、Retrieveと同様に/doubleを指定します。 retrieve_td, 38000, 1, 'VME', '133.75.175.156', 'DMOD0', 1, 1, 'External', clk, samp, time, /double …timeにDOUBLE型の時間軸の情報を取得します |
|||||||||||||
取得した時間軸を使い、横軸を時間(秒)にしてデータを表示してみましょう。(図-13参照) clk = long(1000000) …1kHzサンプリングの場合 samp = long(128)*long(1024) …128Kの収集をした場合(Aurora14 128Kモジュールなど) |
■図-14 |
||||||||||||
retrieve_td, 38000, 1, 'VME', '133.75.175.156', 'DMOD0',
1, 1, 'External', clk, samp, time
…時間軸を取得します retrieve, 'ECH', 38000, 1, 1, data …計測データを取得します plot, time, data …取得した計測データを時間軸で表示します 横軸が時間(秒)に変わっているのがわかりますね。(図-14参照) |
電圧に変換して表示
電圧(ボルト)に変換した計測データをFLOAT型もしくはDOUBLE型のデータ配列で取得することができます。(電圧値変換できるのは、Retrieve ver.13.2.0以降です。Retrieveの使用方法はこちらをご覧ください) 電圧値変換ができるモジュールは、以下のモジュールです。(2011-08-04現在) Aurora14, SEGADC, HOUSIN_C012, WE72XX, PXI6115, PXI6132, PXI6133, PXI6143, PXI6225, PXI6255, PXIe5186, (PXIe4300)
電圧値に変換したFLOAT型の計測データと時間軸を取得してみましょう。(図-15参照) |
|
||||||||||||||
p = 1
…パラメータ格納変数の定義(初期化)をしておきます retrieve, 'Bolometer', 48000, 1, 1, data, param=p, /vflt …計測データをFLOAT型の電圧値に変換して取得します retrieve_t, 'Bolometer', 48000, 1, 1, time …時間軸を取得します DOUBLE型で計測データを取得したい場合は次のように指定します。 retrieve, 'Bolometer', 48000, 1, 1, data, param=p, /vdbl …計測データをDOUBLE型の電圧値に変換して取得します |
|||||||||||||||
電圧値変換した計測データと時間軸で表示してみましょう。(図-15参照) |
■図-16 |
画像データの表示
カメラで収集された画像データのを表示してみましょう。
Retrieveで画像データを取得します。(図-17参照) p = 1 …パラメータ格納変数の定義(初期化)をしておきます |
■図-17 |
||||||||||||||||||||||||||||
retrieve, 'IRcamera-edge', 48702, 1, 1, data, param=p
…画像データ、パラメータを取得します
(注意) 11サイクル以降のデータは3次元配列のデータが格納されるようになりましたので、この処理は必要ありません。STEP3にお進みください。11サイクルより前のデータは1次元配列で格納されますので次の通りreformを行ってください。 |
|||||||||||||||||||||||||||||
取得したデータは1次元配列で格納されているため、3次元配列に変更します。 まずはパラメータを参照します。 printparam, p …取得したパラメータを表示します ここで必要なのは、SampledFrame(収集したフレーム数)、RegionOfInterestWidth(画像幅)、RegionOfInterestHeigh(画像高さ)の3つのパラメータです。 それぞれ値は次のようになっていました。(図-18参照) 1 SampledFrame 300 Integer 1 RegionOfInterestWidth 580 Integer 1 RegionOfInterestHeight 480 Integer |
■図-18 ■図-19
|
||||||||||||||||||||||||||||
先程参照した3つのパラメータの値で、画像データが格納されている1次元配列dataを3次元配列に変更します。(図-19参照) data = reform(data, 580, 480, 300) …取得したデータを画像幅、画像高さ、フレーム数で3次元配列に変更します |
|||||||||||||||||||||||||||||
画像の輝度をカラーに変更します。(図-20参照) loadct, 15 …カラーテーブルを呼び出します |
■図-20 |
||||||||||||||||||||||||||||
画像を表示する方法は、次の3つがあります。 tvscl (静止画) movie (動画) WgAnimateTool (アニメーション・ウィジェット)(PV-WAVEのみ)
|
WAITモードでのデータ取得
現在実験中のショット番号でまだデータが存在しない場合、出現を待ってデータを取得したい場合があります。その場合、WAITモードで待ち時間を設定しデータを取得することができます。(Retrieveの使用方法はこちらをご覧ください)
|
■図-26 ■図-27 |
||||||||||||
では、WAITモードで現在実験中のショットデータを取得してみましょう。(図-26参照) retrieve, 'Bolometer', 92848, 1, 1, shot, /wait, timeout=30 …待ち時間を30秒に設定しデータを取得します このショット番号はまだデータが無いため、データが出現するまで待ちます。(図-26参照) データが出現した時点でデータを取得します。(図-27参照) |
リアルタイムデータの取得(PV-WAVEのみ)
WE7000 および PXI デジタイザを用いる計測において、定常実験時などにリアルタイムデータ収集モードでサーバが動作している場合に、リアルタイムでのデータを取得することができます。リアルタイムデータの取得には、波形データの取得(WaveMonitor) と、カメラ画像データの取得(TVMonitor) の2種類があります。(WaveMonitor、TVMonitorの使用方法はこちらをご覧ください)
|
■図-28 |
||||||||||||
では、波形データをリアルタイムで取得してみましょう。(図-28参照) WaveMonitor, 'CDP', 82 …波形データを取得します 新しいウィンドウが開き、波形データがリアルタイム表示されます。 |
|||||||||||||
終了する時は、'q'または'Q'を押します。
|
■図-29 |
||||||||||||
次は、カメラ画像データをリアルタイムで取得してみましょう。(図-29参照) TVMonitor, 'PXITEST', 1, mode='YUV422' …カメラ画像データを画像フォーマット'YUV422'で取得します 新しいウィンドウが開き、カメラ画像データが画像フォーマット'YUV422'でリアルタイム表示されます。
|
デモジュレータのパラメータを取得
Retrieve_t(Ver.14.0.0以降)で、DTSモジュールを直接指定することにより、デモジュレータのパラメータを取得することができます。(Retrieve_tの使用方法はこちらをご覧ください) |
|||||||||||||
では、デモジュレータのパラメータを取得してみましょう。 |
■図-30 |
||||||||||||
計測名を指定する代わりに、'DTS:'を付けてからDTSホスト名:DTSモジュール名を指定します。(図-30参照) ※時間軸データ配列には有効なデータは入りません。 ※FPGA-DTSでは、TRG#1-6がCH#1-6、CLK#1-6がCH#7-12になっています。 params = 1 …パラメータ格納変数の定義(初期化)をしておきます retrieve_t, 'DTS:VME01:DMOD0', 90000, 1, 1, data, param=params …dtsモジュールを指定し、paramsにパラメータの情報を取得します これで、paramsにパラメータ情報が取得されました。 |
|||||||||||||
次に、取得したパラメータを参照してみましょう。(図-31参照) printParam, params …取得したパラメータを表示します デモジュレータのパラメータが表示されましたね。(図-31参照)
|
■図-31 |
参照サイトの切り替え
環境変数「INDEXSERVERNAME」で設定されているサイト以外のデータを参照する場合には、参照サイトを切り替える必要があります。 (データ利用者の各々PC端末には、所属するサイトの実験データにのみアクセスが可能になっており、他サイトの実験データ参照には、別途、アクセス許可を得る必要があります。詳しくはこちらをご覧ください) 参照サイトを切り替えるにはChangeSiteコマンド、現在の参照サイト名を表示するには、CurrentSiteコマンドを使用します。(ChangeSite、CurrentSiteの使用方法はこちらをご覧ください) |
|
||||||||||||
参照サイトを切り替えてみましょう。(図-32参照) ChangeSite,'LHD' …参照サイトを切り替えます |
■図-32 |
||||||||||||
現在の参照サイト名を表示してみましょう。(図-33参照) CurrentSite …参照サイトを表示します LHD …現在の参照サイトが表示されます と表示されましたね。 (図-31参照) これで現在の参照サイトが確認できました。 |
■図-33 |
Retrieveのアンインストール
アンインストールは「コントロールパネル」-「アプリケーションの追加と削除」で行なってください。アンインストールを行うと、環境変数も自動的に削除されますが、うまく削除されない場合があります。
その場合は、手動で次の環境変数を削除してください。
- Retrieve
- INDEXSERVERNAME
アンインストールで自動的に環境変数も削除してくれるんだね。 | |||
クイズに挑戦!
こちらで勉強したことが理解できているかどうか、クイズに挑戦してみましょう!*全問正解者にはもれなくLABCOMより豪華記念品を贈呈します!皆さん、ふるってご解答ください。
クイズの実行にはJRE(Java Runtime Environment)が必要です。
Sunのサイトから最新版のJREをダウンロードし、インストールを行ってください。
また、IEをご利用の場合は、「ツール」→「インターネットオプション」で「詳細設定」タブをクリックし、「設定」で「Java(Sun)」の「<applet>にJava2を使用(再起動が必要)」にチェックを入れ「適用」をクリックし、その後IEを再起動してください。