計測データのメタ情報をデータベース化する
計測時の環境、条件、日時、試験者などのメタ情報が存在する計測データは、情報共有、解析、別のデータとの比較を効率良く行う事ができます。また、それぞれのファイルのメタ情報とリファレンス情報を集約し、データベース化する事で、検索の高速化とネットワーク上へのデータの共有を効率化する事ができます。メタ情報を使用したデータの検索について、DIAdemを使用する場合は
こちらの資料で確認できます。ここではまずデータプラグインを作成し、計測データからメタ情報を取得する方法を確認します。
1. データプラグインによる計測データとメタ情報の読み込み
ここでは*.ex1形式のデータの読み込みを行います。このデータを読み込むには
こちらの資料の手順でDataPluginExample1をVBScriptで作成する必要があります。
DataPluginExample1と*.ex1は下記の図のような対応となっています。VBScriptの赤枠、青枠、緑枠の部分は1.ex1ファイルから該当するメタ情報を読み込み、DIAdemのData Portal上でプロパティとして表示します。
上記のスクリプトは下記の物となります。このスクリプトをデータプラグインとして使用する方法については
こちらの資料で確認できます。
Option Explicit
Sub ReadStore(File)
'Provide the file object with information about the file format
File.Formatter.LineFeeds = vbNewLine
File.Formatter.IgnoreEmptyLines = true
File.Formatter.TrimCharacters = " "
File.Formatter.Delimiters = ";"
File.Formatter.ThousandSeparator = "."
'Read the name of the source out of the first line of the file.
Dim TitleValue : TitleValue = File.GetNextStringValue(eString)
Call Root.Properties.Add("Name", TitleValue)
'Read the description of the implicit channel out of the second line of the file.
File.SkipLine() 'Advance to the next line.
Dim ChannelName : ChannelName = File.GetNextStringValue(eString)
Dim StartValue : StartValue = File.GetNextStringValue(eI32)
Dim Increment : Increment = File.GetNextStringValue(eI32)
Dim ChannelSize : ChannelSize = File.GetNextStringValue(eI32)
'Create the implicit channel.
Dim ChannelGroup : Set ChannelGroup = Root.ChannelGroups.Add("MyChnGroup")
Call ChannelGroup.Channels.AddImplicitChannel(ChannelName, StartValue, Increment, ChannelSize, eI32)
'Read the root's properties out of the file
File.Formatter.Delimiters = ":" 'Properties and their values are seperated by a ":"
Dim PropertyName, PropertyValue, i
For i = 1 to 5
File.SkipLine() 'Advance to the next line.
PropertyName = File.GetNextStringValue(eString)
PropertyValue = File.GetNextStringValue(eString)
'Create the property on the root of the plugin.
Call Root.Properties.Add(PropertyName, PropertyValue)
Next
End Sub
データプラグインのVBScriptの内容を変更する事で、任意のプロパティを読み事ができます。例えば下記の様に編集したデータプラグインを使用する事でグループチャンネルのプロパティを読み込むことができます。
ここでは緑枠を編集し、紫枠を追加する事でグループチャンネルのカスタムプロパティを読み込みます。このスクリプトは下記の物になります。
Option Explicit
Sub ReadStore(File)
'Provide the file object with information about the file format
File.Formatter.LineFeeds = vbNewLine
File.Formatter.IgnoreEmptyLines = true
File.Formatter.TrimCharacters = " "
File.Formatter.Delimiters = ";"
File.Formatter.ThousandSeparator = "."
'Read the name of the source out of the first line of the file.
Dim TitleValue : TitleValue = File.GetNextStringValue(eString)
Call Root.Properties.Add("Name", TitleValue)
'Read the description of the implicit channel out of the second line of the file.
File.SkipLine() 'Advance to the next line.
Dim ChannelName : ChannelName = File.GetNextStringValue(eString)
Dim StartValue : StartValue = File.GetNextStringValue(eI32)
Dim Increment : Increment = File.GetNextStringValue(eI32)
Dim ChannelSize : ChannelSize = File.GetNextStringValue(eI32)
'Create the implicit channel.
Dim ChannelGroup : Set ChannelGroup = Root.ChannelGroups.Add("MyChnGroup")
Call ChannelGroup.Channels.AddImplicitChannel(ChannelName, StartValue, Increment, ChannelSize, eI32)
'Read the root's properties out of the file
File.Formatter.Delimiters = ":" 'Properties and their values are seperated by a ":"
Dim PropertyName, PropertyValue, i
For i = 1 to 5
File.SkipLine() 'Advance to the next line.
PropertyName = File.GetNextStringValue(eString)
PropertyValue = File.GetNextStringValue(eString)
'Create the property on the root of the plugin.
Call Root.Properties.Add(PropertyName, PropertyValue)
Next
File.Formatter.Delimiters = ";"
While (File.Position <> File.Size)
File.SkipLine() 'Advance to the next line.
PropertyName = File.GetNextStringValue(eString)
PropertyValue = File.GetNextStringValue(eString)
Call Root.ChannelGroups(1).Properties.Add(PropertyName, PropertyValue)
Wend
End Sub
2. データプラグインの更新
DIAdemとSystemLinkが同一のPCにインストールされている場合、DIAdemのデータプラグインを更新する事でSystemLinkでデータを閲覧する際に使用されるデータプラグインは更新後の物となります。DIAdemでデータプラグインのスクリプトを編集する場合、下記の手順でスクリプトを開き、編集後、保存します。
3. DataFinderインスタンスの作成を作成し、メタ情報をデータベース化する
SystemLinkにおけるDataFinderインスタンスの作成方法はこちらの記事で確認できます。ここではEXCalというDataFinderインスタンスを作成します。このDataFinderインスタンスでは下記の様にDataPluginExample1のみを使用する設定とします。
この状態でDataFinderインスタンスを開始し、検索対象のフォルダに*.ex1ファイルをドラッグ&ドロップすると、データプラグインで読み込むように指定したメタ情報がプロパティとしてデータベース化されます。ただし、デフォルトの仕様では基本プロパティ以外はデータベースに含まれていない点に注意が必要です。基本プロパティ以外もデータベースに追加し、検索、データ閲覧時に使用する場合、後述のカスタムプロパティの最適化を行う必要があります。
4. 計測データをDataFinderインスタンスに読み込ませてメタ情報をデータベース化する
ここではこのページの下部にあるAttachmentsのEX1SampleDataに含まれる、1.ex1をDataFinderインスタンスの検索対象のフォルダにドラッグ&ドロップし、SystemLinkで閲覧します。1.ex1をインデックス化し、DataFinderインスタンスの上級統計を確認すると下記の様にデータベースの状況を確認できます。
一般の項目の
インデックスサイズはデータベースの大きさを表示しています。データベースの大きさは主にプロパティの数とプロパティに書き込まれているデータサイズで決まっており、例えば1.ex1のDescriptionのプロパティの様に文章が書き込まれたプロパティが多数存在する場合、とても大きくなります。インデックスサイズは計測データをデータベースに加えていくたびに大きくなっていくのでSystemLinkによるデータ管理・解析自動化の長期運用を検討する場合、どの程度の速度で増加していくかを監視し、十分なハードウェアリソースを確保する必要があります。
インデックスステータスではDataFinderインスタンスによるインデックス化の状況を確認できます。正常に読み込むことができ、プロパティをデータベースに含むことが出来た場合、成功となります。TDMファイルの項目では読み込まれたデータのファイルプロパティについての情報を確認できます。ここではカスタムプロパティが3となっており、これはDataPluginExample1で読み込んでいるCompany, Created_on, Locationの3つのカスタムプロパティです。デフォルトの状態ではこれらのカスタムプロパティは最適化されていない状態です(基本プロパティは常に最適化されています)。
5. カスタムプロパティの最適化
DataFinderインスタンスで読み込んだ1.ex1を確認するにはデータナビゲーションにおいてEXCalのDataFinderインスタンスを選択し、1.ex1を右クリック>
ファイルを表示を選択します。
下記の様にデータ及び基本プロパティを確認できます。
また、データナビゲーションでは計測データのメタ情報であるプロパティを使用したデータの検索が可能です。ここでカスタムプロパティを使用した検索を行うにはカスタムプロパティの最適化を行う必要があります。カスタムプロパティの最適化後、一度、DataFinderインスタンスを停止し、インデックス化の最適化を行い、DataFinderインスタンスを再起動する必要があります。
この手順によりデータナビゲーションにおけるデータ検索において、カスタムプロパティを使用する事が出来るようになります。ここではCompany, Created_on, Locationの3つのカスタムプロパティが使用可能な状態となりました。
解析自動化でレポートを自動作成する
1. 解析自動化プロシージャを構成
このページの下部にあるAttachmentsからEX1SampleData.zipをダウンロードし、Sample.anpをDIAdemで開きます。解析自動化でデータフィルタを使用する場合、
データフィルタを有効にするにチェックマークを入れます。ここではデータファイルに.ex1が含まれている物のみを解析対象とする為、ワイルドカードの*と.ex1を組み合わせ、*.ex1を満たすデータのみを解析対象とします。また、パラメータ定義では
ResultsPathの初期値を設定します。解析自動化で作成されたPDFファイルはResultsPathの初期値で設定されたフォルダに出力されますが、SystemLink上でこのパスは上書きする事ができます。
2. 解析自動化プロシージャの編集と動作確認
次に、解析スクリプトを確認します。Main.pyは解析内容を記述したPythonファイルです。SingleFileReport.tdrはDIAdemで編集・作成できるPDFファイルのレポート形式を指定するファイルです。
Main.pyを確認すると、赤枠の部分において、データをData Portalにロードし、レポート形式を指定した*.tdrを読み込んでいる事が確認できます。青枠の部分ではPDFファイルのパスを作成し、PDFファイルを出力します。また、緑枠では結果のログを出力します。
Pythonで解析内容、*tdrファイルでレポートフォーマットを編集した後、動作を確認する場合、下記の手順で解析自動化プロシージャを実行します。ここでは解析対象の*.ex1ファイルをデータソースに追加する必要があります。My DataFinderの検索対象にフォルダを追加する方法は
こちらの資料で確認できます。
3. 解析自動化インスタンスの作成
上記の手順で*.anpファイルの挙動を確認できた場合、SystemLinkで解析自動化の設定を行います。解析自動化には下記の手順で解析自動化インスタンスを作成し、解析自動化プロシージャにSample.anpを設定します。
4. タスクの作成
次に、この解析が実行されるタイミングを
タスクで作成します。
トリガされたタスクを作成すると、DataFinderインスタンスの検索領域のデータに変更や新規データの書き込みが生じた際にそれらのファイルに対して自動解析が実行されます。
5. 解析自動化によるPDFレポートの作成
上記の設定を行った状態でDataFinderインスタンスの検索対象に*.ex1ファイルをドラッグ&ドロップすると、解析自動化の出力先フォルダにPDFファイルが作成されます。