PythonでAFSDKの呼び出しおける複数の要約統計量(Summaries)の取得について

お世話になっております。

 

 

下記URLにおいてpythonでの要約統計量(Summaries)の取得方法をご教示いただいているのですが、複数の統計量を同時に取得する方法を教えてください。

 

URL:PythonでAFSDKの呼び出し(PIthon!) 

 

【質問内容詳細】

※下記全てにおいて、できれば詳細が記載されているURLなども回答の中に併記いただくと助かります。

①下記のsummariesに複数の統計量(Average、Minimum、Maximum、Range、StdDevなど)を同時に入力する方法を教えてください。(統計量を選択する引数の部分を別のリストなどから呼び出したいです)

  1. summaries = pt.Summaries(timerange, span, AFSummaryTypes.Average, AFCalculationBasis.TimeWeighted, AFTimestampCalculation.Auto)  

 

②上記の統計量のうち、Minimum、Maximumは実際に最小だった時間と最大だった時間を返すようですが、要約したい日時を返すことは可能でしょうか?可能ならばその方法を教えてください。

 

③統計量の件とは直接関係ないのですが、取得した日時データをdatetimeに変換したいのですが、いろんな方法を試しましたが、できません。現状はcsvに書き出してかた再度読み込むようなことをしていますが、そのままdatetimeに変換する方法はないでしょうか?

 

④同じく統計量の件とは直接関係ないのですが、1日よりも多い日数のデータを取得すると、「I/O timeout」になって途中でデータ取得が途切れてしまいます。1秒サンプリングでも1分サンプリングでも1日よりも多い日数だと同じことが起きるのですが、「I/O timeout」が発生する詳細仕様を教えてください。

 

⑤同じく統計量の件とは直接関係ないのですが、PI Systemがメンテなどのときにデータが存在しない場合、返り値として「I/O timeout」や「Commu err(詳細覚えていません)」などの数値が入ります。それらの値(数字でなく文字列)だけを後から検索して該当データのみ削除する方法を教えてください。「I/O timeout」などとpythonで検索してもヒットしません。

 

以上、多数あって申し訳ないですが、ご回答のほどよろしくお願いします。

Parents
  • 1.

     

    AFSummaryTypesでAllを指定すると、全ての統計データを取得することが可能です。

     

    また特定の統計データを選択して取得することも可能です。

     

    詳細につきましてはAFSDKのリファレンスのAFSummaryTypes Enumerationをご参照ください。

     

    2.

     

    要約したい日時とはどのようなものでしょうか?

     

    申し訳ございませんが具体的にご説明くださればと思います。

     

    3.

     

    AFSDKで日時としてデータを取得すると、AFTimeやAFTimerangeといった型として取得されますが、

     

    こちらをDatetime型に変換する必要があります。

     

    AFTime.LocalTimeやAFTime.UTCTimeのPropertyを使用してDatetime型に変換できます。

     

    詳細はAFSDKのリファレンスをご参照ください。

     

    4.

    I/O Timeoutとは一般的にインターフェイスがデータソースとの通信が切れたなどでデータが収集できない状態になると、

     

    データの代わりにエラーの値としてPI Data Archiveに送信するものとなります。

     

    AFSDK側の問題ではないものと考えられます。

     

    取得する対象のPIタグまたはAFの属性の、実際に記録された値にI/O Timeoutの値などはあるかご確認ください。

     

    5.

    こちらもAFSDK側ではなくPI Data Archive側にそのような値が記録されているものと思われます。

     

    PI Data Archiveに記録されたこれらのエラーの値を削除する場合は、

     

    PI System Management ToolsのArchive Editorを使用して手動で一つ一つ削除するか、

     

    AFSDKやPowershellを使用して対象のPIタグの値を検索して消すという方法が考えられます。

     

    AFSDKを使用してタグの値を削除するサンプルが下記の記事にございますのでご参照ください:

     

     

    何かご不明な点等ございましたらご連絡ください。

     

    以上、よろしくお願いいたします。
  • 5の質問について補足させていただきます。

    取得したAFValueにはStatusプロパティがあり、この型はAFValueStatusです。ですので、このAFVAlueStatusがGoodのAFValueのみ抽出する処理を入れていただければ期待通りの値が取得できると思います。

Reply Children
No Data