爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 19987|回复: 31

[作图] 求助!!ncl6.3.0画云顶温度ctt

[复制链接]

新浪微博达人勋

发表于 2015-5-26 21:03:09 | 显示全部楼层 |阅读模式

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

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

x
用ncl6.3.0画wrfout云顶温度ctt,但是出的结果值全是负的,不是很理解,单位标的是开尔文,但是数值不可能这么小,大神知道的给解释下,先谢了~~
本来想看wrf_user_getvar里面计算ctt的函数代码,但是在官网上没有找到,大神知道的给发个链接,再次感谢!!
wrf_contour_map.000059.png
这是ncl6.3.0画的,看数值都是负的,对比下图FY-2E TBB图,明显不同
201008tbb_14.png
FY-2E TBB
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-5-27 18:32:57 来自手机 | 显示全部楼层
楼主你好,像这些诊断量你是在哪里看到的呢?
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2015-5-26 21:42:35 | 显示全部楼层
你的脚本没问题?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-5-27 08:09:10 | 显示全部楼层
本帖最后由 夏朗的芒果 于 2015-5-27 08:10 编辑

LZ ,你可以考虑把你的脚本贴出来,说不定是那块的问题。
关于 wrf_user_getvar 计算 ctt 的程序,你可以在 WRFUserARW.ncl 中找到相关调用步骤,主要是调用了一个 wrf_ctt 的子程序。
该程序源代码可以在 ncl 6.3.0 的 source code (非预编译) 中的 ncl_ncarg-6.3.0/ni/src/lib/nfpfort 目录下 wrf_fctt.f 中找到。
祝 LZ 好运。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-5-27 11:13:18 | 显示全部楼层
夏朗的芒果 发表于 2015-5-27 08:09
LZ ,你可以考虑把你的脚本贴出来,说不定是那块的问题。
关于 wrf_user_getvar 计算 ctt 的程序,你可以 ...

首先感谢你的帮助!
我已经找到WRFUserARW.ncl 中的调用步骤,但是在你说的相应的lib目录下,没有nfpfort目录,也就没有找到wrf_ctt.f程序,我是用的学校大型机上的ncl,在上面找了好久,还是没有发现。
不好意思,可否麻烦你帮我找下wrf_ctt.f,给我一份这个程序啊,非常感谢!
另外我的脚本,如下,(初学较乱!,且本来是画mdbz,我只是把mdbz改成ctt,出的结果就是如上面一样,全是负值)
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/wrf/WRFUserARW.ncl"

begin

  USE_WRF_MAP_PROJECTION = False

  dir      = "/nuist/scratch/m/wrf/wrfout/2010/"
  filename = "wrfout_d02_2010-08-06_18:00:00.nc"
  a        = addfile(dir+filename,"r")

  wks = gsn_open_wks("png","wrf_contour_map")   ; "ps", "pdf", "png"
  

  cmap=(/"white","black",\
         "(/1.,.294,.0/)",\
         "(/.988,.635,.035/)",\
         "(/.996,.820,.125/)",\
         "(/.992,.976,.075/)",\
         "(/.910,.953,.624/)",\
         "(/.996,.996,.996/)"/)
  gsn_define_colormap(wks,cmap)   


  times = wrf_user_getvar(a,"times",-1)  ; get all times in the file
  ntimes = dimsizes(times)         ; number of times in the file

  do nt = 0, ntimes-1               ; TIME LOOP
     print("Working on time: " + times(nt) )
     ;res@TimeLabel = times(nt)   ; Set Valid time to use on plots


  ;nt        = 22     ; first time step
  dbz       = wrf_user_getvar(a,"ctt",nt)
  dbz@lat2d = wrf_user_getvar(a,"XLAT",nt)
  dbz@lon2d = wrf_user_getvar(a,"XLONG",nt)


;---Set some resources
  res                      = True

  res@gsnMaximize          = True     ; maximize plot in frame
  res@cnFillOn             = True     ; turn on contour fill
  res@cnLinesOn            = False    ; turn off contour lines
  res@cnLineLabelsOn       = False    ; turn off line labels
  res@gsnAddCyclic          = False   ; set to False if plotting regional data
  ;res@tiMainString         = filename


;---THESE VALUES WILL LIKELY NEED TO BE CHANGED OR COMMENTED
  ;res@cnLevelSelectionMode = "ManualLevels"
  ;res@cnMinLevelValF       = 220
  ;res@cnMaxLevelValF       = 260
  ;res@cnLevelSpacingF      = 10

;res@mpSpecifiedFillColors     = (/"white","transparent","white"/)
;res@mpInlandWaterFillColor      = 238   
;res@mpLandFillColor             = -1     
res@mpOutlineOn                 = True     
res@mpDataBaseVersion       = "MediumRes"
res@mpDataSetName           = "Earth..4"  
;res@mpOutlineSpecifiers   = (/"China:states","Taiwan"/)  
res@mpGeophysicalLineThicknessF= 2.              
res@mpNationalLineThicknessF= 2.                 
res@mpOutlineBoundarySets = "AllBoundaries"

res@pmTickMarkDisplayMode = "Always"
res@lbOrientation="Vertical"

res@vpXF            = 0.2         
res@vpWidthF        = 0.6   
res@vpYF            = 0.8   
res@vpHeightF       = 0.8   


  if(USE_WRF_MAP_PROJECTION) then
;
; This function looks at the global attributes on the WRF output
; file and sets some map resources based on their values.
;
    res = wrf_map_resources(a,res)
    res@tfDoNDCOverlay = True                ; No lat/lon coordinates required
  else
     dbz@lat2d             = a->XLAT(nt,:,:)    ; Lat/lon coordinates required
     dbz@lon2d             = a->XLONG(nt,:,:)

     res@mpProjection      = "CylindricalEquidistant"   ; default for gsn_csm_contour_map
     res@mpMinLatF         = 30
     res@mpMaxLatF         = 43
     res@mpMinLonF         = 90
     res@mpMaxLonF         = 108
     res@mpCenterLonF      = (res@mpMinLonF + res@mpMaxLonF) / 2.
     ;res@mpDataBaseVersion = "MediumRes"                ; better map outlines
  end if

  plot = gsn_csm_contour_map(wks,dbz,res)
end do

end
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-5-27 11:15:47 | 显示全部楼层
andrewsoong 发表于 2015-5-26 21:42
你的脚本没问题?

先谢谢了!这个脚本本来是画mdbz的,而且画出来没问题,后把变量mdbz改成ctt,画ctt就感觉不对了,脚本如下:
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/wrf/WRFUserARW.ncl"

begin

  USE_WRF_MAP_PROJECTION = False

  dir      = "/nuist/scratch/m/wrf/wrfout/2010/"
  filename = "wrfout_d02_2010-08-06_18:00:00.nc"
  a        = addfile(dir+filename,"r")

  wks = gsn_open_wks("png","wrf_contour_map")   ; "ps", "pdf", "png"
  

  cmap=(/"white","black",\
         "(/1.,.294,.0/)",\
         "(/.988,.635,.035/)",\
         "(/.996,.820,.125/)",\
         "(/.992,.976,.075/)",\
         "(/.910,.953,.624/)",\
         "(/.996,.996,.996/)"/)
  gsn_define_colormap(wks,cmap)   


  times = wrf_user_getvar(a,"times",-1)  ; get all times in the file
  ntimes = dimsizes(times)         ; number of times in the file

  do nt = 0, ntimes-1               ; TIME LOOP
     print("Working on time: " + times(nt) )
     ;res@TimeLabel = times(nt)   ; Set Valid time to use on plots


  ;nt        = 22     ; first time step
  dbz       = wrf_user_getvar(a,"ctt",nt)
  dbz@lat2d = wrf_user_getvar(a,"XLAT",nt)
  dbz@lon2d = wrf_user_getvar(a,"XLONG",nt)


;---Set some resources
  res                      = True

  res@gsnMaximize          = True     ; maximize plot in frame
  res@cnFillOn             = True     ; turn on contour fill
  res@cnLinesOn            = False    ; turn off contour lines
  res@cnLineLabelsOn       = False    ; turn off line labels
  res@gsnAddCyclic          = False   ; set to False if plotting regional data
  ;res@tiMainString         = filename


;---THESE VALUES WILL LIKELY NEED TO BE CHANGED OR COMMENTED
  ;res@cnLevelSelectionMode = "ManualLevels"
  ;res@cnMinLevelValF       = 220
  ;res@cnMaxLevelValF       = 260
  ;res@cnLevelSpacingF      = 10

;res@mpSpecifiedFillColors     = (/"white","transparent","white"/)
;res@mpInlandWaterFillColor      = 238   
;res@mpLandFillColor             = -1     
res@mpOutlineOn                 = True     
res@mpDataBaseVersion       = "MediumRes"
res@mpDataSetName           = "Earth..4"  
;res@mpOutlineSpecifiers   = (/"China:states","Taiwan"/)  
res@mpGeophysicalLineThicknessF= 2.              
res@mpNationalLineThicknessF= 2.                 
res@mpOutlineBoundarySets = "AllBoundaries"

res@pmTickMarkDisplayMode = "Always"
res@lbOrientation="Vertical"

res@vpXF            = 0.2         
res@vpWidthF        = 0.6   
res@vpYF            = 0.8   
res@vpHeightF       = 0.8   


  if(USE_WRF_MAP_PROJECTION) then
;
; This function looks at the global attributes on the WRF output
; file and sets some map resources based on their values.
;
    res = wrf_map_resources(a,res)
    res@tfDoNDCOverlay = True                ; No lat/lon coordinates required
  else
     dbz@lat2d             = a->XLAT(nt,:,:)    ; Lat/lon coordinates required
     dbz@lon2d             = a->XLONG(nt,:,:)

     res@mpProjection      = "CylindricalEquidistant"   ; default for gsn_csm_contour_map
     res@mpMinLatF         = 30
     res@mpMaxLatF         = 43
     res@mpMinLonF         = 90
     res@mpMaxLonF         = 108
     res@mpCenterLonF      = (res@mpMinLonF + res@mpMaxLonF) / 2.
     ;res@mpDataBaseVersion = "MediumRes"                ; better map outlines
  end if

  plot = gsn_csm_contour_map(wks,dbz,res)
end do

end
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-5-27 11:41:17 | 显示全部楼层
我也发现ncl算出的温度不像K值!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-5-27 16:40:52 | 显示全部楼层
diandian 发表于 2015-5-27 11:15
先谢谢了!这个脚本本来是画mdbz的,而且画出来没问题,后把变量mdbz改成ctt,画ctt就感觉不对了,脚本如 ...

既然 Ncl 没有报错,就不是语法方面的问题,只可能是逻辑错误或是它本身程序的错误。在这个方面就爱莫能助了。
关于 wrf_fctt.f 的源代码,之前说了要下载 ncl-6.3.0 的源代码,而不是预编译版本。预编译版本是下载后直接解压,配置相关环境变量就能用了。而 源代码是需要进行 configure ,compile 才能进行安装的。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-5-27 16:52:50 | 显示全部楼层
我也发现ncl算出的温度不像K值!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-5-27 20:25:19 | 显示全部楼层
ytj584684235 发表于 2015-5-27 18:32
楼主你好,像这些诊断量你是在哪里看到的呢?

ncl官网 http://www.ncl.ucar.edu/Document ... f_user_getvar.shtml
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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