나는 파이썬에서 해양학 데이터로 작업하고 있습니다. 저는 현재 x 축에 시간, y 축에 압력, 윤곽선으로 온도 등고선 그래프를 작성하려고합니다. 지금은 데이터 자체에서 얻은 값으로 시간 배열의 형식을 지정하려고합니다. 내가 가지고있는 코드는 해당 시간이 추가되지 않은 채 연중 날을 생성합니다. 매일 6 시간, 12 시간, 18 시간을 추가 할 수있는 방법이 필요합니다. 그 이유는 데이터가 매일 4 시간 씩 실행되고 6 시간 간격으로 분리 된 물 기둥의 프로파일에서 나온 것이기 때문입니다. 1260 개의 프로필이 있고 각 프로필의 파일에 해당합니다.올해의 요일에 시간을 추가하는 방법
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.25
102.5
102.75
103.0
103.25
103.5
103.75
104.0
및 삼았 보이도록
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
등등 ...
나는 올해 각각 전날에 6 시간 추가 도움이 필요합니다.
'i'란 무엇입니까? 이것이 함수 안에 있습니까? 그렇다면 어떻게 그 기능을 적용하고 있습니까? – roganjosh