質問編集履歴
1
可視化したグラフの前後を記載しました。 またいただいた回答を参考に、fortran形式の4次元配列に直しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -4,13 +4,17 @@
|
|
4
4
|
|
5
5
|
数値計算データを可視化するためにanacondaで描画プログラムを書いています。
|
6
6
|
|
7
|
-
|
7
|
+
以前は地球流体電脳ライブラリ(DCL)を用いて、fortranで計算したデータから以下のようなグラフを可視化できておりました。![イメージ説明](870c435da1102cb2eb6075e098bf660c.png)
|
8
8
|
|
9
|
-
|
9
|
+
今回はfortranで計算したデータをpythonを用いて読み込ませようとしているのですが、配列のデータの切り方が間違っているため、正しい描画ができません。![イメージ説明](4973201430612aa9e4e6cde01ea9e230.png)
|
10
10
|
|
11
11
|
|
12
12
|
|
13
13
|
fortranで一定ステップ計算した後、下記のサブルーチンから(200回程度)出力させているのですが、20回分のデータをpythonで読み込み作図しようとしているがうまくいきません。
|
14
|
+
|
15
|
+
pythonのソースコードは以下のリンクを参照して作りました。
|
16
|
+
|
17
|
+
http://ig.hateblo.jp/entry/2014/05/30/225607
|
14
18
|
|
15
19
|
|
16
20
|
|
@@ -70,8 +74,6 @@
|
|
70
74
|
|
71
75
|
import numpy as np
|
72
76
|
|
73
|
-
from scipy.io import FortranFile
|
74
|
-
|
75
77
|
|
76
78
|
|
77
79
|
im = 202
|
@@ -82,7 +84,7 @@
|
|
82
84
|
|
83
85
|
|
84
86
|
|
85
|
-
# %% fromfileを用いたファイル読み込み
|
87
|
+
# %% 0.fromfileを用いたファイル読み込み
|
86
88
|
|
87
89
|
f90 = open('uvh.dat', 'rb')
|
88
90
|
|
@@ -90,9 +92,9 @@
|
|
90
92
|
|
91
93
|
|
92
94
|
|
93
|
-
# %% 読み込んだn番目の要素を取り出し、fortran形式の
|
95
|
+
# %% 1.読み込んだn番目の要素を取り出し、fortran形式の4次元配列に
|
94
96
|
|
95
|
-
uvhpy = ary.reshape(jm,im,3,
|
97
|
+
uvhpy = ary.reshape(jm,im,3,nstep, order='F') # 1要素あたり4byte×202*481*3=4×291486=1165944byte
|
96
98
|
|
97
99
|
|
98
100
|
|
@@ -110,7 +112,7 @@
|
|
110
112
|
|
111
113
|
|
112
114
|
|
113
|
-
for i in range(
|
115
|
+
for i in range(nstep):
|
114
116
|
|
115
117
|
Z = uvhpy[:, :,2,i]
|
116
118
|
|