请选择 进入手机版 | 继续访问电脑版
爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 29259|回复: 30

ncl画风场图

[复制链接]

新浪微博达人勋

发表于 2014-8-19 15:54:20 | 显示全部楼层 |阅读模式

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

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

x
   u=f[:]->UGRD_P0_L100_GLL0(:,14,:,:)
   v=f[:]->VGRD_P0_L100_GLL0(:,14,:,:)(上图)
和   u=f[:]->UGRD_P0_L100_GLL0(:,{50000},:,:)
   v=f[:]->VGRD_P0_L100_GLL0(:,{50000},:,:)(下图)
请问一下用这两种读取方式画出来的风场图怎么不一样呢,都是500hpa上的啊

UU5~~}VQT)BB`QU%@KCZE~H.jpg
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-8-19 16:36:53 | 显示全部楼层
风之牧语 发表于 2014-8-19 16:33
嗯,对头!我习惯性的从1000hpa往上数,结果里面的数据是从上往下的,没有注意。再请教一个问题,在画850 ...

仍然赋值为missing value,然后用cnMissingValFillColor设置颜色。
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2014-8-19 16:08:42 | 显示全部楼层
首先可以肯定的是采用{50000}方式画出来的肯定是正确的。那么,第一种方式的问题估计处在14这个下标上。楼主把变量第二维的坐标变量打印出来,仔细数数看500hPa到底是不是第15层。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-8-19 16:33:40 | 显示全部楼层
longlivehj 发表于 2014-8-19 16:08
首先可以肯定的是采用{50000}方式画出来的肯定是正确的。那么,第一种方式的问题估计处在14这个下标上。楼 ...

嗯,对头!我习惯性的从1000hpa往上数,结果里面的数据是从上往下的,没有注意。再请教一个问题,在画850hpa风场图的时候屏蔽青藏高原那些地区的数据后怎么用一种比如灰色来掩盖,而不是直接附为缺省值之后不画这部分!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-8-20 10:44:01 | 显示全部楼层
longlivehj 发表于 2014-8-19 16:36
仍然赋值为missing value,然后用cnMissingValFillColor设置颜色。

不是很明白,你说的cnMissingValFillColor是不是需要先画一个等值线图图啊,比如地形图什么的,再把风场叠加在上面啊!还有风场怎么去除边界啊,res@mpAreaMaskingOn = True    res@mpMaskAreaSpecifiers = (/"Guangzhou"/)   我记得当时在图等值线图的时候你给说用这个可以去除边界,我去网上看了也是用的这个,但是就是去除不掉,不知道我哪里弄错了。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-8-20 16:39:51 | 显示全部楼层
风之牧语 发表于 2014-8-20 10:44
不是很明白,你说的cnMissingValFillColor是不是需要先画一个等值线图图啊,比如地形图什么的,再把风场 ...

是要作等值线图,可以就用全风速,不是缺测的地方都设为透明填充就好。
mask的问题,要看代码和图,有些属性是配合其它一起起作用的。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-8-20 17:57:46 | 显示全部楼层
longlivehj 发表于 2014-8-20 16:39
是要作等值线图,可以就用全风速,不是缺测的地方都设为透明填充就好。
mask的问题,要看代码和图,有些 ...

请问一下叠加后是锯齿的啊!怎么可以让它是平滑的啊!还有map是这样设置的  res@mpMinLatF               = 16.                        
   res@mpMaxLatF               = 54.

   res@mpMinLonF               = 73.

   res@mpMaxLonF               = 135.

   res@mpDataBaseVersion       = "MediumRes"

   res@mpDataSetName           = "Earth..4"

   res@mpOutlineOn           = True         ; Turn on map outlines

   res@mpOutlineSpecifiers   = (/"China","Taiwan"/)       ;China:states

   res@mpAreaMaskingOn = True   ;cover it

   res@mpMaskAreaSpecifiers = (/"China","Taiwan"/)   ;China:states

   res@mpLandFillColor         = "white"

   res@mpInlandWaterFillColor  = "white"

   res@mpOceanFillColor        = "white"

   res@mpOutlineBoundarySets   = "NoBoundaries"怎么去除不了边界啊?


S}Y~P@%OGUU1hP9JNL~OS.jpg
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-8-20 17:59:07 | 显示全部楼层
longlivehj 发表于 2014-8-20 16:39
是要作等值线图,可以就用全风速,不是缺测的地方都设为透明填充就好。
mask的问题,要看代码和图,有些 ...

不好意思哈!我现在在学习ncl,问你的问题有点多哈!实在不好意思
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-8-20 22:20:10 | 显示全部楼层
风之牧语 发表于 2014-8-20 17:57
请问一下叠加后是锯齿的啊!怎么可以让它是平滑的啊!还有map是这样设置的  res@mpMinLatF               ...

res@mpFillDrawOrder = "PostDraw"
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-8-26 11:05:06 | 显示全部楼层
这个程序是按照官网上改的,我想做到的是850hpa上青藏高原等地区虚假值用特定的颜色标示出来!但是画出来的图怎么是这样的啊,请大神们帮忙看一下,谢谢!
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"

begin

   files=systemfunc("ls -1 fnl_20130501*" )

   f=addfiles(files + ".grb2","r")

   ListSetType(f,"join")

   u=f[:]->UGRD_P0_L100_GLL0(:,20,:,:)

   v=f[:]->VGRD_P0_L100_GLL0(:,20,:,:)

   hgt = f[:]->HGT_P0_L1_GLL0

   z = f[:]->HGT_P0_L100_GLL0(:,{85000},:,:)

   avg_hgt=dim_avg_n_Wrap(hgt,0)

   avg_z=dim_avg_n_Wrap(z,0)

   avg_u=dim_avg_n_Wrap(u,0)

   avg_v=dim_avg_n_Wrap(v,0)

   uMask = mask(avg_u,avg_hgt.gt.avg_z,False)

   vMask = mask(avg_v,avg_hgt.gt.avg_z,False)

   spd=sqrt(uMask*uMask+vMask*vMask)

   gsmth_spd = smth9(spd, 0.50, -0.25, False)

   copy_VarMeta(avg_u,uMask)

   copy_VarMeta(avg_v,vMask)

   copy_VarMeta(avg_u,gsmth_spd)

   wks = gsn_open_wks("x11","wind_May_850hpa")

   ;gsn_define_colormap(wks,"BlAqGrYeOrReVi200")

   uMask@long_name="avg of uv at 850hpa in May"

   vMask@long_name="avg of uv at 850hpa in May"
;---Set common resources for all plots
   res                = True
   res@gsnFrame       = False
   res@gsnDraw        = False
   res@gsnLeftString  = ""
   res@gsnRightString = ""



;>--------------------------------------------<

;            set for the map

;>--------------------------------------------<
   mpres = res
   ;mpres@gsnAddCyclic = False

   mpres@mpMinLatF               = 0.                        

   mpres@mpMaxLatF               = 60.

   mpres@mpMinLonF               = 50.

   mpres@mpMaxLonF               = 140.

   mpres@mpDataBaseVersion       = "MediumRes"

   mpres@mpDataSetName           = "Earth..4"

   mpres@mpOutlineOn           = True         ; Turn on map outlines

   mpres@mpOutlineSpecifiers   = (/"China","Taiwan"/)       ;China:states

   ;mpres@mpAreaMaskingOn = True   ;cover it

   ;mpres@mpMaskAreaSpecifiers = (/"China","Taiwan"/)   ;China:states

   mpres@mpLandFillColor         = "white"

   mpres@mpInlandWaterFillColor  = "white"

   mpres@mpOceanFillColor        = "white"

   mpres@mpOutlineBoundarySets   = "NoBoundaries"

   ;res@mpFillDrawOrder = "PostDraw"
   mpplot=gsn_csm_map(wks,mpres)

   ;vector

   vcres = res

   vcres@vcRefMagnitudeF         = 10.                ; make vectors larger

   vcres@vcRefLengthF            = 0.032              ; ref vec length

   ;vcres@vcGlyphStyle            = "WindBarb"         ; select wind barbs

   vcres@vcMinDistanceF        = 0.015                ; thin out vectors

   vcres@vcGlyphStyle          = "CurlyVector"   

   vcres@vcWindBarbColor     = "Blue"

   vcres@vcRefAnnoString1On = True

   vcres@vcRefAnnoString1   = "10m/s"

   ;vcres@vcLevelColors = True

   vcres@vpXF = 0     ;左边距

   vcres@vpYF = 0      ;上边距

   vcres@vpWidthF  = 1.0              ; height and width of plot

   vcres@vpHeightF = 0.8

   ;res@vcVectorDrawOrder = "PostDraw"

   vcplot = gsn_csm_vector(wks,uMask,vMask,vcres)

   ;contour

   cnres = res

   cnres@cnFillOn = True

   cnres@cnLinesOn               = False

   cnres@cnMonoFillColor = True

   cnres@cnFillColor = "white"

   cnres@cnMissingValFillColor = "gray"

   cnres@gsnAddCyclic = False

   gsmth_spd@long_name=""

   gsmth_spd@units=""

   cnres@lbLabelsOn = False

   cnres@lbLabelBarOn = False

   cnres@lbBoxLinesOn = False

   cnres@lbPerimFillColor=False

   cnres@cnLineLabelsOn   = False                     ; no contour line labels

   cnres@cnInfoLabelOn    = False   
   cnres@cnInfoLabelPerimOn             = False                  ; no info label

   colors = (/"white","white","white","white","white","white"/)

   gsn_define_colormap(wks, colors)

   cnplot=gsn_csm_contour(wks,gsmth_spd,cnres)

   overlay(mpplot,cnplot)
   overlay(mpplot,vcplot)

   draw(mpplot)

   frame(wks)

end

QQ图片20140826110049.jpg
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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