爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
楼主: 海蓝蓝

[分享资料] 传说版主,利用u,v计算风向的代码似乎有bug

[复制链接]

新浪微博达人勋

 楼主| 发表于 2012-2-1 08:49:49 | 显示全部楼层
也不知道传说版主看到此贴没有
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-2-29 22:15:59 | 显示全部楼层

点评

呵呵 希望是正确的  发表于 2012-3-1 09:04
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-11-16 10:11:10 | 显示全部楼层
本帖最后由 bighug 于 2012-11-16 21:48 编辑

atan2函数的值域是多少?我从网上找到一个fortran函数的日志,说此值域是-π~π,但正常反正切函数的值域应该是-π/2~π/2。对atan2函数不够了解,所以不知道你的答案对不对,我个人认为不对。我是用正常的反正切函数atan(v/u)来算的:
FORTRAN:
if (u>0..and.v>0.) dir=270-atan(v/u)*180/pi
if (u<0..and.v>0.) dir=90-atan(v/u)*180/pi
if (u<0..and.v<0.) dir=90-atan(v/u)*180/pi
if (u>0..and.v<0.) dir=270-atan(v/u)*180/pi
if (u==0..and.v>0.) dir=180
if (u==0..and.v<0.) dir=0
if (u>0..and.v==0.) dir=270
if (u<0..and.v==0.) dir=90
if (u==0..and.v==0.) dir=999
其中uv等于零的五种情况要单独挑出来,不然程序会有瑕疵。atan函数换成atand函数的话直接是度数,不用*180/pi
我四个象限和轴都试了,应该没错。
最需要注意的问题,一个是函数值域,另一个是uv矢量方向和风向是反着的,并且风向角度数是从正Y轴开始顺时针算,和三角函数里度数从正X轴开始逆时针算不一样。
密码修改失败请联系微信:mofangbao
回复 支持 3 反对 0

使用道具 举报

新浪微博达人勋

发表于 2012-11-16 18:33:44 | 显示全部楼层
@传说中的谁你怎么看?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-11-17 00:09:19 | 显示全部楼层
是要好好验证一下再用
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-11-17 00:17:30 | 显示全部楼层
很可能是我算错了,当时只是初略的跟MICAPS的探空对比了一下。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-1-30 16:38:29 | 显示全部楼层
这个贴很有意思啊
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-2-15 23:49:29 | 显示全部楼层
楼上,你的回复好有意思啊
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-3-2 12:38:34 | 显示全部楼层
请教下LZ,如果我有模式输出的u10和v10风场,要插值到站点上(也就是站点要插出一个u,v值),但是我用define dire=180+atan2(u,v)*180/pi' 是算不出来的。

不知道能不能跟LZ讨论一下代码?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-3-3 16:01:47 | 显示全部楼层
红河岸 发表于 2013-3-2 12:38
请教下LZ,如果我有模式输出的u10和v10风场,要插值到站点上(也就是站点要插出一个u,v值),但是我用defi ...

你这个u和v是插值之后的?
难道是插值除了问题
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表