私はまだpythonを使いこなそうとしていますが、この問題は私の知識を超えています:
トピック: 流体力学的後処理: 配列への油圧ソフトウェアの csv 出力、タイムステップの分割
ここにデータと、私が作業コードをどこまで持ってきたかがあります:
入力ファイル (以下を参照):
最初の行: 結果ノードの数
2 行目: ヘッダー
3 行目: timestep @ time=
以下: このタイムステップのすべての結果 (このファイル: 13541 ノード、変数) ....次のタイムステップでも同じです。
# Number of Nodes: 13541
#X Y Z depth wse
# Output at t = 0
5603.7598 4474.4902 37.470001 0 37.470001
5610.5 4461.6001 36.020001 0 36.020001
5617.25 4448.71 35.130001 0 35.130001
5623.9902 4435.8198 35.07 0 35.07
5630.7402 4422.9199 35.07 0 35.07
5761.5801 4402.79 35.369999 0 35.369999
COMMENT:....................13541 timesteps...........
# Output at t = 120.04446
5603.7598 4474.4902 37.470001 3.6977223 41.167724
5610.5 4461.6001 36.020001 4.1377293 40.15773
5617.25 4448.71 35.130001 3.9119012 39.041902
5623.9902 4435.8198 35.07 3.7923947 38.862394
5630.7402 4422.9199 35.07 3.998436 39.068436
5761.5801 4402.79 35.369999 3.9750571 39.345056
COMMENT:....................13541 timesteps...........
# Output at t = 240.06036
5603.7598 4474.4902 37.470001 11.131587 48.601588
5610.5 4461.6001 36.020001 12.564266 48.584266
5617.25 4448.71 35.130001 13.498463 48.628464
5623.9902 4435.8198 35.07 13.443041 48.513041
5630.7402 4422.9199 35.07 11.625824 46.695824
5761.5801 4402.79 35.369999 19.49551 54.865508
問題: n タイムステップを配列に読み込むループが必要です。
結果は次のようになります: 各タイムステップの配列: この場合、それぞれ 13541 要素の 27 タイムステップ。
timestep_1=[このタイムステップのすべての要素: shape=13541,5]
timestep_2=[]
timestep_3[]
.........
timestep_n=[]
これまでの私のコード:
import numpy as np
import csv
from numpy import *
import itertools
#read file to big array
array=np.array([row for row in csv.reader(open("ascii-full.csv", "rb"), delimiter='\t')])
firstRow=array[0]
secondRow=array[1]
# find out how many nodes
strfirstRow=' '.join(map(str,firstRow))
first=strfirstRow.split()
print first[4]
nodes=first[4]
nodes=float(nodes)
#count timesteps
temp=(len(array)-3)/nodes
timesteps=int(temp)+1
#split array into timesteps:
# X Y Z h(t1) h(t2) h(tn)
ts1=array[3:nodes+3]#13541
#print ts1
ts2=array[nodes+4:nodes*2+4]
#print ts2
.......
read ts3 to last timestep to arrays with loop....
多分誰かが私を助けることができます、ありがとう!!!