データ配列(Array data)は、以下のコードによりテキストまたはcsv形式に出力できます。
read d1 snapshot.flxdato data cddo d1/1/xdsp 'xdsp.csv'
注: 上記のコードは、x方向の変位に対応する配列データ「xdsp」がsnapshot.flxdatoファイルへ出力されていることを前提としています。
これにより、次のようなファイルへ出力されます。
CDDO コマンドは、Data Manager arrayのデータをカンマ区切りのファイルへ出力するためのものです。このコマンドは、2次元または3次元配列の2次元セクションを出力します。 また、配列が要求された場合、3次元領域を書き出します。
典型的なcddo構文は次のとおりです。
data
cddo dataname filename ibegin iend jbegin jend kbegin kend
配列が3次元データの場合、データをEXCELなどのプログラムにインポートする場合、指定されたインデックスは配列の2次元セクションを形成する必要があります。
書き込まれるデータが一定のI-indexを持つ場合、つまりJ-とK- indixのみが変化する場合、ファイルに書き込まれるデータの各行には一定のKインデックスがあり、J-indexはラインに沿って変化します。 定数J-indexセクションの場合、データの各行は定数K-index用です。 定数K-indexセクションの場合、データの各行は定数J-index用です。
3次元配列(または配列のサブ領域)がファイルに書き込まれる場合、データの各行には一定のJ-およびK-indexがあり、I-index は行に沿って変化します。 データの最初の行は、J = jbegin、K = kbegin用です。 2行目は、J = jbegin + 1、K = kbeginなどです。つまり、Jインデックスが最初に置換され、次にKインデックスが置換されます。
例:
read d1 snapshot.flxdato data cddo d1/1/xdsp 'xdsp.csv' 1 5 1 5 1 1
このコードは、たとえば、レイヤーk = 1の1 <i <5および1 <j <5のメッシュのメッシュ中心の結果のみをエクスポートします
以下のような出力になります。
1つのレイヤーk = 1のすべてのメッシュをエクスポートするには、次のコードを使用できます。
read d1 snapshot.flxdato data cddo d1/1/xdsp 'xdsp.csv' * * * * 1 1
特定の座標でデータを出力する方法は?
1. データ出力に「out modl」があることを確認します。 これは、結果のflxdatoファイル(座標、ノード...)にモデルデータも含んでいます。
data out modl out shap/all out pmax end
2. 以下ののreviewスクリプトを使用する
/* Read data file read d1 pzt_2D.flxdato /* Specify xy position to get pressure symb px = 2.e-3 symb py = 5.e-3 /* Plot max pressure grph plot d1/1/pmax end /* Get closest node to location symb #get { ii ij } clsnode d1 $px $py /* Get pressure symb #get { pval } array d1/1/pmax $ii $ij /* Report to user and write to file symb #msg 1 &> 'pres.txt' The pressure at x=$px y=$py is $pval Pa term
このスクリプトは、px、pyの位置に対応する最も近いノードを見つけ、その位置での圧力値を出力します
次に、これらの変数をテキストファイルに書き込みます。
注: より複雑な場合は, MATLABでデータを出力し and MATLABでスクリプトを使って結果処理する方が簡単な場合があります。(You can also MATLABファイルをPythonで開くもご参照下さい)