爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 21524|回复: 35

[秀图] 利用wmbarb作一种有意思的组合图

[复制链接]

新浪微博达人勋

发表于 2014-3-19 15:09:38 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 longlivehj 于 2014-3-19 18:49 编辑

目的不是秀图,而是介绍wmbarb。

在解决帖子中gsn_csm_xy时间坐标轴的求助后,楼主又提出了一个很有意思的要求:在每个数据点上面加上风向杆,指示风向和风速。尝试用gsn_vector等常用方式,都一一失败了,最后发现了wmbarb,成功化解了楼主的“刁难”!

因为wmbarb是ncl的内置过程,就不过多说明了,详情看帮助!直接上图和程序。


time_axis.png


load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/contrib/cd_string.ncl"

begin

    units = "hours since 1-1-1 00:00:0.0"
    xbrange = tointeger(cd_inv_calendar((/1, 1/), (/1, 1/), (/12, 15/), (/12, 18/), (/0, 0/), (/0, 0/), units, 0))
    xbvalues = ispan(xbrange(0), xbrange(1), 6)
    xbvalues@units = units
    xblabels = cd_string(xbvalues, "%d.%H")

    npts = dimsizes(xbvalues)
    random = new(npts, "float")
    do i = 0, npts - 1
        random(i) = rand()
    end do

    low  = -20.0
    high = 20.0
    con  = (high - low) / 32766.0

    srand(1234)

    uwnd = new(npts, "float")
    do i = 0, npts - 1
        uwnd(i)= low + con * rand()
    end do

    srand(5678)

    vwnd = uwnd
    do i = 0, npts - 1
        vwnd(i) = low + con * rand()
    end do

    xyres = True
    xyres@gsnFrame = False

    xyres@tmXBMode = "Explicit"
    xyres@tmXBValues = xbvalues
    xyres@tmXBLabels = xblabels

    xyres@tmXBLabelFontHeightF = .01
    xyres@tmYLLabelFontHeightF = .01

    xyres@trXMinF = xbvalues(0)
    xyres@trXMaxF = xbvalues(npts - 1)

    wks = gsn_open_wks ("x11", "time_axis")
    gsn_define_colormap(wks, "amwg_blueyellowred")

    xyplot = gsn_csm_xy(wks, xbvalues, random, xyres)

    wmsetp("wdf", 1)
    wmsetp("col", 14)
    wmbarb(wks, tofloat(xbvalues), random, uwnd, vwnd)


    frame(wks)
end
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-3-19 15:22:58 | 显示全部楼层
不错,美化美化是有创意的
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-3-19 17:15:19 | 显示全部楼层
gsn_vector肯定不能实现,楼主厉害啊!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-3-19 18:39:57 | 显示全部楼层

gsn_vector可以基本解决,就是风失的位置不能和数据点重合不是太好,我有效果图,要不要给你看看?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-3-20 08:27:20 | 显示全部楼层
longlivehj 发表于 2014-3-19 18:39
gsn_vector可以基本解决,就是风失的位置不能和数据点重合不是太好,我有效果图,要不要给你看看?

这样啊,我想错了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-3-26 10:58:34 | 显示全部楼层
给楼主点个赞!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-3-26 14:21:41 | 显示全部楼层
这幅图的内容似曾相识
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-3-29 16:01:40 | 显示全部楼层
这个不错啊!!!!!!!!!!!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-3-30 20:50:14 | 显示全部楼层
学习了!一直想画这样的图,一直没思路
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-4-11 16:22:19 | 显示全部楼层
这里有疑问,查看了wmbarb该函数,这个画出来的风矢windbarb默认的应该是knots单位吧,如何改为m/s啊????
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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