HyperStudyの標準リーダーでCAE結果ファイルの読み取りがうまくいかない場合は

Kosuke_IKEDA
Kosuke_IKEDA
Altair Employee

Altair HyperStudyを用いることで、様々なCAEツールと連携させてDOE・最適化が実行できます。

ただし、たまに、HyperStudyの標準リーダーでCAE結果ファイルの読み取りがうまくいかない場合があります。その場合は、Pythonツールをご利用ください。

例えば、あるCAE結果として、下記のようなCSVファイルが生成されたとします。赤枠のベクトルデータを読み取りたいのですが、ヘッダ情報があったり、ラベルが複数行ある場合は、標準リーダではうまく読み取れません。

ElectronicsThermal_smart_objects.csv

この場合は、Pythonを使用します。

出力応答の定義のデータセットを追加して、ツールをPythonとしてください。Python構文、Pythonライブラリを使用して、CSVファイルから値を読み取ることができます。

ファイルでCAE結果のCSVファイルを指定し、左下のpythonコードの欄に下記の4行のコードを貼り付けます。すると、プレビュー欄に読み取りたかったベクトルデータが表示されます。

~pythonコード~

import pandas as pd


file=hsturi()

df=pd.read_csv(file,skiprows=4)

return df.iloc[:,4]

では、コードを解説していきます。

1行目:import pandas as pd

pandasのライブラリを読み込みます。

2行目:file=hsturi()

HyperStudy独自の関数で、ファイル欄で指定したパスを参照します。

3行目:df=pd.read_csv(file,skiprows=4)

pandasのread_csv()関数を用いて、パスで指定したcsvファイルの内容をデータフレームdfに格納します。skiprowオプションが使えますので、冒頭4行をスキップして、5行目をラベルとして取り込んでいます。

4行目:return df.iloc[:,4]

データフレームの中から、取り出したい列ベクトルを選択してreturnでHyperStudyに戻します。pandasのiloc関数を使用します。pandasのindexは0始まりとなるため、5行目の列を取り出す場合は。iloc[:,4]となります。

このpythonコードはスキップする行数と取り出したい列のindexを変更するだけで、他のcsvファイルにも使用できます。

下記のcsvファイルの赤枠のベクトルを取り込んでみましょう。

edem_result.csv

pythonコードのskiprows=16、df.iloc[:,2]で取り出すことができました。

~pythonコード~

import pandas as pd


file=hsturi()

df=pd.read_csv(file,skiprows=16)

return df.iloc[:,2]

サンプルファイルは下記よりダウンロードいただけます。

使用ソフト:設計性能およびロバスト性の最適化ソフトウェア|Altair HyperStudy