老夫聊发少年狂,试试Python气象绘图。
现有数据为①记录能谱密度的二进制spect.dat;②记录均一化波数、均一化角波数和波长的aol.txt(奇怪的是aol.txt自动换成5个数值一行)。
import numpy as np
import struct
import matplotlib.pyplot as plt
def getbin(filename):
with open(filename,mode='rb') as f:
tmp1=f.read()
fsize=f.tell()
tmp11=list(struct.unpack('f'*26*479,tmp1))
#python没有二进制格式,所以需要用struck.unpack来把字符串转译成实数,f指float/float32
#26层,479点
tmp12=np.reshape(tmp11,(26,479))
#从一维列表变形成二维列表,注意python是行优先
sp=np.mean(tmp12,axis=0)
#按层平均
return sp
#传出动能谱密度
def getticks(filename):
with open(filename,mode='r') as f:
data=f.readlines()
d1=[]
for line in data:
arr=list(map(float,line.split()))
d1.extend(arr)
#不知道为