爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
楼主: supersupergirl

[其他] 求问画panel组图时wrf_contour和gsn_csm_xy无法兼容问题

[复制链接]

新浪微博达人勋

发表于 2019-9-1 10:35:06 | 显示全部楼层
supersupergirl 发表于 2019-9-1 09:37
不行的 wrf_overlays的描述就是最后要是true才行 还有我加上这两行也是没有用的 下面是wrf_overlays的描 ...

Description

This function overlays a number of graphical plots, and returns the base plot that contains all the overlaid plots. This is typically used for idealized ARW WRF model runs.

Some special resources are recognized for the res resource list:

    NoTitles (default: False)

    If set to True, then the top left titles will not be drawn. The main titles will be left alone.

    This resource can be useful if you are planning to panel the plots.

    CommonTitle (default: True)

    If set to False, then the top field titles will not be drawn.

    FramePlot (default: True)

    If set to False, then the plot will be drawn, but the frame will not be advanced. This allows you to draw more graphical objects on the same page.

    PanelPlot (default: False)

    If set to True, then this flags to wrf_map_overlays that these plots are going to be eventually paneled (likely by gsn_panel.) Hence, the plot will not be drawn, nor will the frame be advanced, unless gsnDraw and/or gsnFrame are explicitly set to True.

不是说非得是True,是属性res,有很多属性设置的,下面的例子是最简单的情况
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2019-9-1 10:45:51 | 显示全部楼层
yusw 发表于 2019-9-1 10:35
Description

This function overlays a number of graphical plots, and returns the base plot that  ...

是呀 下面那个例子就是直接用的true
Examples
Example 1

  load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
  load "$NCARG_ROOT/lib/ncarg/nclscripts/wrf/WRFUserARW.ncl"

  ; Open ARW WRF output for the quarter supercell idealized case
  a = addfile("wrfout_qss.nc","r")

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

  time = 1
  tc2 = wrf_user_getvar(a,"T2",time)   ; T2 in Kelvin
  u10 = wrf_user_getvar(a,"U10",time)  ; u at 10 m
  v10 = wrf_user_getvar(a,"V10",time)  ; v at 10 m

  rest = True
  rest@cnFillOn = True
  contour = wrf_contour(a,wks,tc2,rest)

  resw = True
  vector = wrf_vector(a,wks,u10,v10,resw)

  overid = wrf_overlays(a,wks,(/contour,vector/),True)
而且我改成了res之后就不出图了
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-9-1 11:21:33 | 显示全部楼层
res  =True
res@gnsDraw  =False
res@gsnFrame =False
plots(i)= wrf_overlays(a,wks,(/contour,vector/),res);暂时不出图,是为了在panel里出图

。然后再用panel把图画出来
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2019-9-1 11:37:04 | 显示全部楼层
yusw 发表于 2019-9-1 11:21
res  =True
res@gnsDraw  =False
res@gsnFrame =False

按照你说的方法做了 结果没有报错也没有出图
脚本如下:
countour_dv  = wrf_contour(a,wks, dv_plane(0:zmax_pos,:), opts_dv)
countour_dv1 = wrf_contour(a1,wks, dv_plane1(0:zmax_pos1,:), opts_dv1)
countour_dv2 = wrf_contour(a2,wks, dv_plane2(0:zmax_pos2,:), opts_dv2)
contour_ter  = gsn_csm_xy(wks,X_plane,ter_plane,opts_ter)
contour_ter1 = gsn_csm_xy(wks,X_plane1,ter_plane1,opts_ter1)
contour_ter2 = gsn_csm_xy(wks,X_plane2,ter_plane2,opts_ter2)
vector  = wrf_vector(a,wks,u_plane(0:zmax_pos,:),w_plane(0:zmax_pos,:)*10.,vcres)
vector1 = wrf_vector(a1,wks,u_plane1(0:zmax_pos1,:),w_plane1(0:zmax_pos1,:)*10.,vcres1)
vector2 = wrf_vector(a2,wks,u_plane2(0:zmax_pos2,:),w_plane2(0:zmax_pos2,:)*10.,vcres2)

res = True
res@gsnDraw = False
res@gsnFrame = False
plots(0) = wrf_overlays(a,wks,(/countour_dv,vector,contour_ter/),res)    ; plot x-section
plots(1) = wrf_overlays(a1,wks,(/countour_dv1,vector1,contour_ter/),res)    ; plot x-section
plots(2) = wrf_overlays(a2,wks,(/countour_dv2,vector2,contour_ter2/),res)    ; plot x-section
; Delete options and fields, so we don't have carry over
delete(opts_xy)
delete(ter_plane)
delete(opts_xy1)
delete(ter_plane1)
delete(opts_xy2)
delete(ter_plane2)
  ;set panel
  pnlres = res
  pnlres@gsnPanelCenter             = True
  pnlres@gsnPanelLabelBar           = True
  pnlres@lbOrientation              = "Vertical"
  pnlres@lbLabelPosition            = "Right"
  pnlres@pmLabelBarParallelPosF     = 0.0
  pnlres@pmLabelBarOrthogonalPosF   = 0.0
  pnlres@pmLabelBarWidthF           = 0.05
  pnlres@pmLabelBarHeightF          = 0.15
  pnlres@gsnPanelRowSpec            = True
  pnlres@gsnPanelYWhiteSpacePercent = 5
  pnlres@gsnPanelScalePlotIndex     = 1
  pnlres@amJust                     = "TopLeft"
  gsn_panel(wks, (/plots/), (/3/), pnlres)

end
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2019-9-1 13:21:23 | 显示全部楼层
yusw 发表于 2019-9-1 11:21
res  =True
res@gnsDraw  =False
res@gsnFrame =False

但我要是把res这三句去掉 然后wrf_overlays改成true的话就会出图 但也只是等值线图而已 风场和地形都没有
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-9-4 11:06:42 | 显示全部楼层
最近也画过这类图,确实有点麻烦,不过我都是用gsn系列叠起来的,你也可以试试。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2019-9-4 11:25:20 | 显示全部楼层
愛、星晴 发表于 2019-9-4 11:06
最近也画过这类图,确实有点麻烦,不过我都是用gsn系列叠起来的,你也可以试试。

感谢回复 用gsn后再用overlay会出现叠加不起来的情况 而且我画的是剖面图 所以没有map打底 求问怎么办 还有个问题就是我想在wrf图里添加gsn_add系列 结果会出现位置偏差 请问你是否遇到过这样的问题呢
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-9-4 15:25:36 | 显示全部楼层
supersupergirl 发表于 2019-9-4 11:25
感谢回复 用gsn后再用overlay会出现叠加不起来的情况 而且我画的是剖面图 所以没有map打底 求问怎么办 还 ...

我不知道你gsn_add要加什么,但是gsn剖面叠加还是可以实现的。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2019-9-4 20:47:35 | 显示全部楼层
愛、星晴 发表于 2019-9-4 15:25
我不知道你gsn_add要加什么,但是gsn剖面叠加还是可以实现的。

添加polymarker和text 结果错位 显示经纬度没有问题 但是出图位置却不对
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-9-4 22:06:20 | 显示全部楼层
剖面按说y的高度和x的经度或者纬度都是确定的,添加应该不会出问题,你可能哪里没有弄清楚才会加错。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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