###前提・実現したいこと
3次元の等高線データ(1,500,000点)を空間微分して出力したい
想定しているのは
Z軸に垂直になるように面を取得したいため、
3次元データをZ軸でソートした後、
座標値ごとに行列を作成
行列で差分計算を行った後
行列を結合させる np.r_を利用し、
いったん全データを行列にまとめ、
np.savetxt()でファイルに出力したいと考えています
###発生している問題・エラーメッセージ
エラーの内容を見ると np.r_ で行列の結合が出来ないようです
アドバイス、コメントなどをよろしくお願いします。
[エラーメッセージ]
Traceback (most recent call last):
File "<ipython-input-45-c7b2303f60bb>", line 1, in <module>
runfile('D:/20170621/vor/sort.py', wdir='D:/20170621/vor')
File "C:\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 866, in runfile
execfile(filename, namespace)
File "C:\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 102, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "D:/20170621/vor/sort.py", line 34, in <module>
dvorz = np.r_(dvorz,dvorz1)
TypeError: 'RClass' object is not callable
###該当のソースコード
import numpy as np a = 'He_re1000_vor-' f = 100 line = 0 for file in range(0,2): data = np.loadtxt(a+str(f),delimiter=',',skiprows=1) print('sort_z-'+str(f)) sortz = data[data[:,3].argsort()] '''最初の面を前進差分''' surface1 = sortz[line:line+25000,4:7] surface2 = sortz[line+25000:line+50000,4:7] dz = sortz[line+5000,3]-sortz[line+25000,3] dvorz = (surface2-surface1)/(dz) print(dvorz) '''以降の面を中心差分''' for line in range(58): surface1 = sortz[line:line+25000,3:7] surface2 = sortz[line+50000:line+75000,3:7] dz1 = sortz[line+75000,3]-sortz[line+50000,3] dz2 = sortz[line+25000,3]-sortz[line,3] dz = dz1+dz2 dvorz1 = (surface2-surface1)/(dz) dvorz = np.r_(dvorz,dvorz1) line += 25000 print(dvorz) '''最後の面を後進差分''' data1 = sortz[line:line+25000,3:7] data2 = sortz[line+25000:line+50000,3:7] dz = sortz[line+25000,3]-sortz[line,3] dvorz1 = (data2-data1)/(dz) dvorz = np.r_(dvorz,dvorz1) print(dvorz) np.savetxt('He_re1000_dvor-'+str(f),dvorz,delimiter=',',header="dvorx,dvory,dvorz") f += 100
###試したこと
最初はノード1つごとに計算するやり方を想定していましたが、
手間と時間を考えて、面ごとに計算するように工夫してみました
###補足情報(言語/FW/ツール等のバージョンなど)
環境 Python3.5 Spyder
操作したいファイル名
He_re1000_vor-0100
He_re1000_vor-0200
He_re1000_vor-0300
・・・
He_re1000_vor-10900
※それぞれのファイル内には
点番号,座標データx,y,z,数値データ①,②,③
というデータが1,500,000行入っています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/07/13 01:56