質問編集履歴

1

可視化したグラフの前後を記載しました。 またいただいた回答を参考に、fortran形式の4次元配列に直しました。

2018/05/19 04:23

投稿

YoshitoIshii
YoshitoIshii

スコア6

test CHANGED
File without changes
test CHANGED
@@ -4,13 +4,17 @@
4
4
 
5
5
  数値計算データを可視化するためにanacondaで描画プログラムを書いています。
6
6
 
7
- 下記のURLを参考に、fortranで計算したデータを読み込ませようとしいるのですが、配列のデータの切方が間違っているめ、正しい描画ができません
7
+ 以前は地球流体電脳ライブラリ(DCL)用いて、fortranで計算したデータから以下のようなグラフを可視化できました。![イメージ説明](870c435da1102cb2eb6075e098bf660c.png)
8
8
 
9
- http://ig.hateblo.jp/entry/2014/05/30/225607
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形式の3次元配列に
95
+ # %% 1.読み込んだn番目の要素を取り出し、fortran形式の4次元配列に
94
96
 
95
- uvhpy = ary.reshape(jm,im,3,20)#, order='F') # 4byte×202*481*3=4×291486=1165944
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(20):
115
+ for i in range(nstep):
114
116
 
115
117
  Z = uvhpy[:, :,2,i]
116
118