私はPythonで海洋データを扱っています。私は現在、x軸に時間、y軸に圧力、輪郭として温度の等高線プロットを作成しようとしています。今私は、データ自体から得た値でタイム配列をフォーマットしようとしています。私が持っているコードは、それに対応する時間を追加しないで、その年の日だけを生成します。データは毎日4回ずつ水柱のプロファイルから得られ、6時間ごとに分けられているため、毎日6時間、12時間、18時間を追加する方法が必要です。 1260のプロファイルがあり、iは各プロファイルのファイルに対応しています。日に日を追加する方法
import numpy
from matplotlib import pyplot as plt
import math
from datetime import tzinfo, timedelta, datetime, time
import time
i = 1
temp = numpy.zeros((1260, 1000))
pressure = numpy.zeros((1260, 1000))
time2 = numpy.zeros(1260)
for i in range(1, 1260):
filename = '/Users/ryanschubert/InternProject/itp47final/itp47grd' + str(i).zfill(4) + '.dat'
if os.path.isfile(filename):
data = open(filename, "r")
else:
continue
depthcounter=-1
text = data.read()
data.close()
text = text.replace(' ', ',') #this line and the next 5 lines are
text = text.replace(' ', ',') #fixing formatting errors in the code
text = text.replace(' ', '')
text = text.replace('NaN', '-98')
text = text.replace(',,', ',')
text = text.split('\n')
for line in text:
depthcounter=depthcounter+1
if depthcounter == 1:
if i ==1:
words4 = line.split(',')
year = int(words4[0])
doy = float(words4[1]) - 1
hour = int((doy - math.floor(doy))*24)
t = datetime(year=year, month=1, day=1, hour=hour,tzinfo=utc) + timedelta(days=int(doy))
time1 = t.timetuple().tm_yday
timetemp = numpy.array([t + timedelta(days=j/4.) for j in xrange(1260)])
else:
time2[i] = timetemp[i].timetuple().tm_yday
print(time2[i])`
コードは現在、次のような値を返します。
102
102.0
102.0
103.0
103.0
103.0
103.0
104.0
104.0
104.0
104.0
105.0
105.0
105.0
105.0
106.0
106.0
106.0
106.0
107.0
107.0
107.0
107.0
のように...
配列がそうで
102
102.25
102.5
102.75
103.0
103.25
103.5
103.75
104.0
like-に見えるとなるように、私は今年の各前日に6時間を追加する助けを必要としています。
「i」とは何ですか?これは機能の中にありますか?もしそうなら、あなたはどのようにその機能を適用していますか? – roganjosh