Python 倒钩错误的方向

标签 python

对此可能有一个非常简单的答案,我只是作为最后的手段才问,因为我通常通过搜索获得答案,但我无法弄清楚或找到答案。基本上我在 Python 中绘制了一些风刺,但它们指向错误的方向,我不知道为什么。

数据从文件导入并放入列表中,我在另一篇 stackoverflow 帖子中发现如何使用 np.sin 和 np.cos 为倒钩设置 U、V,这导致风速正确但方向错误.我基本上是在绘制一个非常简单的 tephigram 或 Skew-T。

# Program to read in radiosonde data from a file named "raob.dat"

# Import numpy since we are going to use numpy arrays and the loadtxt
# function.
import numpy as np
import matplotlib.pyplot as plt

# Open the file for reading and store the file handle as "f"
# The filename is 'raob.dat'

f=open('data.dat')
# Read the data from the file handle f.  np.loadtxt() is useful for reading
# simply-formatted text files.
datain=np.loadtxt(f)
# Close the file.
f.close();

# We can copy the different columns into
# pressure, temperature and dewpoint temperature

# Note that the colon means consider all elements in that dimension.
# and remember indices start from zero
p=datain[:,0]
temp=datain[:,1]
temp_dew=datain[:,2]
wind_dir=datain[:,3]
wind_spd=datain[:,4]

print 'Pressure/hPa: ', p
print 'Temperature/C: ', temp
print 'Dewpoint temperature: ', temp_dew
print 'Wind Direction/Deg: ', wind_dir
print 'Wind Speed/kts: ', wind_spd

# for the barb vectors. This is the bit I think it causing the problem
u=wind_spd*np.sin(wind_dir)
v=wind_spd*np.cos(wind_dir)

#change units
#p=p/10
#temp=temp/10
#temp_dew=temp_dew/10

#plot graphs
fig1=plt.figure()
x1=temp
x2=temp_dew
y1=p
y2=p
x=np.linspace(50,50,len(y1))
#print x
plt.plot(x1,y1,'r',label='Temp')
plt.plot(x2,y2,'g',label='Dew Point Temp')
plt.legend(loc=3,fontsize='x-small')
plt.gca().invert_yaxis()
#fig2=plt.figure()
plt.barbs(x,y1,u,v)
plt.yticks(y1)
plt.grid(axis='y')
plt.show()

倒钩的方向应该与您从数据中看到的方向(以度为单位)大致相同。

感谢任何帮助。谢谢。

这里是使用的数据:

996 25.2    24.9    290 12
963.2   24.5    22.6    315 42
930.4   23.8    20.1    325 43
929 23.8    20  325 43
925 23.4    19.6    325 43
900 22  17  325 43
898.6   21.9    17  325 43
867.6   20.1    16.5    320 41
850 19  16.2    320 44
807.9   16.8    14  320 43
779.4   15.2    12.4    320 44
752 13.7    10.9    325 43
725.5   12.2    9.3 320 44
700 10.6    7.8 325 45
649.7   7   4.9 315 44
603.2   3.4 1.9 325 49
563 0   -0.8    325 50
559.6   -0.2    -1  325 50
500 -3.5    -4.9    335 52
499.3   -3.5    -5  330 54
491 -4.1    -5.5    332 52
480.3   -5  -6.4    335 50
427.2   -9.7    -11 330 45
413 -11.1   -12.3   335 43
400 -12.7   -14.4   340 42
363.9   -16.9   -19.2   350 37
300 -26.3   -30.2   325 40
250 -36.7   -41.2   330 35
200 -49.9   0   335 0
150 -66.6   0   0   10
100 -83.5   0   0   30

利亚姆

最佳答案

# for the barb vectors. This is the bit I think it causing the problem
u=wind_spd*np.sin(wind_dir)
v=wind_spd*np.cos(wind_dir)

改为尝试:

u=wind_spd*np.sin((np.pi/180)*wind_dir)
v=wind_spd*np.cos((np.pi/180)*wind_dir)

( http://tornado.sfsu.edu/geosciences/classes/m430/Wind/WindDirection.html )

关于Python 倒钩错误的方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32303817/

相关文章:

python - 有人可以向我展示一个不在循环中使用 pysimplegui 的示例 - 也许作为我可以手动更新的定义设置

Python PLY 多条规则

python - 将多个 numpy 文件附加到 python 中的一个大 numpy 文件

python - 无法在具有其他数值和分类变量的数据集中创建基于时间的特征

python - 类型错误:在字符串格式化期间并非所有参数都被转换

python - Keras LSTM 输入维度设置

python - 具有离散颜色的 2D 数组不适用于一个中间值

python - 使用 Autobahn/Twisted 在 Tornado HTTP Handler 中建立 websocket 连接

python - Scipy:尝试写入 wav 文件,AttributeError: 'list' 对象没有属性 'dtype'

python - 为 csv 文件中的每个元素添加引号和制表符