詳しくはこちら
オックスフォード・インストゥルメンツー事業部ページ
拡張
NanoAnalysis | Blog
PythonによるH5OINAファイルフォーマットの活用

14th  April 2022 | Author: Richard McLaughlin 

PythonによるH5OINAファイルフォーマットの活用

AZtec EDSおよびEBSDは、大量のデータを生成できる強力なシステムです。AZtecはデータを様々な方法で分析し、表示するためのツールを提供していますが、ユーザーによっては、AZtecが出力していないデータ操作を必要とする独自のアプリケーションを持っている場合があります。このような場合、ユーザーは生データをエクスポートして、自分で処理する必要があります。幸いAZtecはカンマ区切りファイル(csv)、タブ区切りファイル(tsv)、EMSA、Rippleなど、様々なフォーマットでデータをエクスポートすることができます。

AZtecバージョン6.0から、新しいエクスポート方法として、H5OINAファイル形式が導入されました。H5OINAは、Hierarchical Data Format 5ファイルフォーマット・ライブラリを使用し、大容量のデータセットにアクセスする際のI/O速度を最適化したものです。またオープンな仕様であるため、データにアクセスするための独自の障壁がなく、最も一般的なプログラミング言語へのバインディングが可能であるなどの利点があります。

このブログでは、研究者の間で人気のあるプログラミング言語の一つであるPythonを使って、H5OINAファイルからデータを抽出するためのツールを初めて使う方のために設定する方法を説明いたします。

必要なツールのダウンロード

Pythonがまだインストールされていない場合は、www.python.org から最新版をダウンロードし、データ処理に使用する予定のコンピュータにインストールしてください。次にダウンロードするのはHDF5ライブラリで、わずかなプログラミング記述でH5OINAファイルに簡単にアクセスできます。Fortran、C、またはC++を使用している場合は、www.hdf5group.org からライブラリーをダウンロードする必要があります。必要ではありませんが、同じウェブサイトから公式のHDF Viewerをダウンロードすることもできます。これはファイルのデータ構造と含まれるデータ型を開いて表示することができる小さなアプリケーションです。何をどのように展開すればよいかを理解する上で、大きな手助けとなることでしょう。

Pythonの場合、ライブラリのダウンロードは「pip install h5py」と入力するだけで、簡単に行えます。下図は、PythonがインストールされたWindows10のパソコンでコマンドプロンプトを開き、コマンドを入力したところです。インターネットに接続されていれば、数秒でHDF5のライブラリが自動的にダウンロードされ、インストールされます。

Pythonスクリプトの記述

Pythonはその使いやすさとシンプルさでよく知られています。Windowsのメモ帳などのテキストエディタがあれば、スクリプトを書くことができます。一度書いたら、"python myscript.py "と入力すれば、スクリプトを実行することができます。myscript.py "は作成したスクリプトの名前に置き換えてください。

必ずしも必要ではありませんが、Visual Studio Codeをダウンロードし、スクリプトのエディターとして使用することができます。Visual Studio Codeは、スクリプトを作成するための便利なツールと優れたインターフェイスを提供します。ダウンロードはこちらです。  Python言語拡張を必ず追加してください。

簡単な2つの例

どちらの例でも、鋼鉄介在物のAZtecFeature解析データを含む同一のH5OINAファイルを使用する予定です。

例 1

まずは簡単な例として、1つの「未処理」スペクトルを抽出し、テキストファイルに保存することを目的とする場合について説明します。データが入っているファイル "Steel.h5oina "を読み込み用に開き、ファイル "spectrum.txt "を作成し、書き込み用に開きます。Feature 1000 のスペクトルを読み込み、各チャンネルのカウント値をカンマで区切ってテキストファイルに書き込みます。これを行うスクリプトが左の図で す。右側はSteel.h5oinaファイルのデータ構造をHDF Viewerで表示したものです。

example 1

最も重要なのは7行目から9行目です。7行目で変数「spectrum_Data」に目的のデータオブジェクト(1次元配列)を代入し、9行目と10行目で配列を繰り返しながら各値を読み込み、テキストファイルに書き出しています。

例 2

さて、1つのスペクトルを抽出するのは大変そうですが、何千ものスペクトルから生データを抽出したいとしたらどうでしょう?次の例は、まさにそれを行うものです。

以下のスクリプトは、Steel.h5oinaファイルからすべてのスペクトルデータを抽出し、spectra.txtというテキストファイルにデータを書き込んでいます。ここで課題となるのは、すべての介在物のFeature IDを把握し、その情報をもとに保存されている各スペクトルへのパスを作成することで す。幸いなことに、すべてのFeature IDを保持するIndexデータセットが存在します。その Index を変数 feature_Index に格納し、各 Feature ID を読み出してパスに追加します。各スペクトルについては、例 1 で行ったことを繰り返すだけです。下図は左がスクリプト、右がHDF Viewerで表示されるデータ構造です。

example 2

新しいH5oinaファイルフォーマットは、ユーザーのニーズの変化に対応し、現在そして将来にわたって、大きなデータセットに簡単かつ迅速にアクセスする方法を提供することを目的としています。このブログで紹介したように、誰でも数分もあれば、コンピュータをセットアップして、生のX線マップ、スペクトル、画像にアクセスし、思い通りに、何の制限もなく処理できるようになります。

H5OINAデータフォーマットへのエクスポートにより、お客様のニーズに合わせた方法で簡単にデータにアクセスし、処理することができることがお分かりいただけたと思います。AZtecの一般的なエクスポートオプションについて知りたい方は、最近のブログ投稿をご覧ください。

Ask me a question

Richard McLaughlin

Applications Specialist

お問い合わせはこちら

このブログはお楽しみいただけましたか?こちらもご覧ください。

メールマガジンのご案内

オックスフォード・インストゥルメンツでは、新製品やウェビナー、セミナー、展示会等のイベント情報を定期的にご案内するメールマガジンを発行しています。
配信をご希望されるお客様は、下記の記載事項をご記入いただきお申込みください。

 
※当社のメールマガジンです。当社の新製品、ウェビナー、展示会などの最新情報をお届けしています。
分析についてお困りですか?