HyperStudyの標準リーダーでCAE結果ファイルの読み取りがうまくいかない場合は
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]
サンプルファイルは下記よりダウンロードいただけます。