爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 13503|回复: 13

关于NCL 使用FNL数据画位势高度场的问题

[复制链接]
发表于 2016-11-16 21:42:35 | 显示全部楼层 |阅读模式

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

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

x
fnl数据是1*1度的,我画的位势高度场设置的等值线间隔为5gpm,画出来的图看起来太丑了,设置了平滑更丑,而且等值线间隔不能再设置更小了,如果间隔设置小于5,NCL运行结果就会提醒“warning:ContourPlotSetValues: cnLevelSpacingF value causes level count to exceed maximum: defaulting
”,请问各位行家,这是因为数据精度粗吗????ncl 为什么不能像GRADS一样能将间隔再设置小一点呢?

等值线间隔

等值线间隔
密码修改失败请联系微信:mofangbao
发表于 2016-11-17 09:16:49 | 显示全部楼层
{:eb502:}
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

发表于 2016-11-24 09:24:03 | 显示全部楼层
楼主的图,为什么等值线看起来比较僵硬
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2016-12-1 21:24:45 | 显示全部楼层
自导自演 发表于 2016-11-24 09:24
楼主的图,为什么等值线看起来比较僵硬

最后做了平滑处理 效果就好些了
密码修改失败请联系微信:mofangbao
发表于 2017-3-1 11:43:49 | 显示全部楼层
已经很好看了 求分享程序
密码修改失败请联系微信:mofangbao
发表于 2017-7-6 17:49:54 | 显示全部楼层
求分享脚本哇
密码修改失败请联系微信:mofangbao
发表于 2017-11-27 20:59:13 | 显示全部楼层
求分享脚本,几天都没搞出来
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2017-11-27 22:36:25 | 显示全部楼层
本帖最后由 哈库拉玛塔塔000 于 2017-11-27 22:44 编辑
气象草鸟 发表于 2017-11-27 20:59
求分享脚本,几天都没搞出来

之前那个不在了 可以给你发个其他版本的  有地形的那块 去掉了数据 1楼那个黑的地形数据来源于这个orog.nc 见附件
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

  a = addfile("/cygdrive/g/Data/fnl/2015/wrf_fnl/fnl_20150816_18_00.grib2","r")
  b = addfile("/cygdrive/g/Data/fnl/2015/wrf_fnl/fnl_20150817_00_00.grib2","r")
  c = addfile("/cygdrive/g/Data/fnl/2015/wrf_fnl/fnl_20150818_00_00.grib2","r")
  d = addfile("/cygdrive/g/Data/fnl/2015/wrf_fnl/fnl_20150818_18_00.grib2","r")
  

   h      = a->HGT_P0_L1_GLL0
   wrf_smooth_2d(h, 9)
   hgt    = a->HGT_P0_L100_GLL0({70000},:,:)
   u      = a->UGRD_P0_L100_GLL0({70000},:,:)
   v      = a->VGRD_P0_L100_GLL0({70000},:,:)
   lat_0  = a->lat_0
   lon_0  = a->lon_0
   hMask  = hgt
   hMask  = (/mask(hgt,h.gt.hgt,False)/);
   uMask  = u
   uMask  = (/mask(u,h.gt.hgt,False)/)
   vMask  = v
   vMask  = (/mask(v,h.gt.hgt,False)/)

   h1     = b->HGT_P0_L1_GLL0
   wrf_smooth_2d(h1, 9)
   hgt1   = b->HGT_P0_L100_GLL0({70000},:,:)
   u1     = b->UGRD_P0_L100_GLL0({70000},:,:)
   v1     = b->VGRD_P0_L100_GLL0({70000},:,:)
   hMask1 = hgt1
   hMask1 = (/mask(hgt1,h1.gt.hgt1,False)/)
   uMask1 = u1
   uMask1 = (/mask(u1,h1.gt.hgt1,False)/)
   vMask1 = v1
   vMask1 = (/mask(v1,h1.gt.hgt1,False)/)

   h2     = c->HGT_P0_L1_GLL0
   wrf_smooth_2d(h2, 9)
   hgt2   = c->HGT_P0_L100_GLL0({70000},:,:)
   u2     = c->UGRD_P0_L100_GLL0({70000},:,:)
   v2     = c->VGRD_P0_L100_GLL0({70000},:,:)
   hMask2 = hgt2
   hMask2 = (/mask(hgt2,h2.gt.hgt2,False)/)
   uMask2 = u2
   uMask2 = (/mask(u2,h2.gt.hgt2,False)/)
   vMask2 = v2
   vMask2 = (/mask(v2,h2.gt.hgt2,False)/)

   h3     = d->HGT_P0_L1_GLL0
   wrf_smooth_2d(h3, 9)
   hgt3   = d->HGT_P0_L100_GLL0({70000},:,:)
   u3     = d->UGRD_P0_L100_GLL0({70000},:,:)
   v3     = d->VGRD_P0_L100_GLL0({70000},:,:)
   hMask3 = hgt3
   hMask3 = (/mask(hgt3,h3.gt.hgt2,False)/)
   uMask3 = u3
   uMask3 = (/mask(u3,h3.gt.hgt2,False)/)
   vMask3 = v3
   vMask3 = (/mask(v3,h3.gt.hgt2,False)/)

; type = "x11"
; type = "pdf"
  type = "ps"
; type = "ncgm"
  wks = gsn_open_wks(type,"/cygdrive/i/WRFoutDATA/fnl_700")
  vector = new(4,graphic)


  res = True
  res@gsnDraw        = False
  res@gsnFrame     =  False                   ; do not advance the frame
  res@tmXTOn                    = False ;关闭上刻度
  res@tmYROn                    = False ;关闭右刻度
  res@mpDataSetName               = "Earth..4"
  res@mpDataBaseVersion           = "MediumRes"
  res@mpOutlineOn                 = True
  res@mpFillOn                    = True
  res@mpOutlineBoundarySets   = "AllBoundaries"
  res@mpOutlineOn             = True
  res@mpFillAreaSpecifiers    = (/"Land"/)
  res@mpSpecifiedFillColors   = (/"white"/)
  res@mpFillOn     = False                  
  res@mpOutlineOn  = True               
  res@mpMinLatF    = 22.                     
  res@mpMaxLatF    = 36.
  res@mpMinLonF    = 96.
  res@mpMaxLonF    = 116.
  res@tmXTOn                = False ;关闭上刻度
  res@tmYROn                = False ;关闭右刻度
  res@tmYLLabelFontHeightF      = 0.02
  res@tmXBLabelFontHeightF      = 0.02

  res_vc                           = res   
  res_vc@vcGlyphStyle              = "CurlyVector"     ; vector样式 WindBarb CurlyVector
  res_vc@vcLineArrowThicknessF     = 1            ;箭头的粗细
  res_vc@vcMinDistanceF            = 0.02
  res_vc@vcRefLengthF              = 0.06            ;定义矢量参考箭头的长度 0.007
  res_vc@vcRefAnnoOn               = False
  res_vc@vcRefAnnoOn               = True             ;打开矢量参考箭头
  res_vc@vcRefMagnitudeF           = 20.               ;定义矢量参考箭头的量
  res_vc@vcRefAnnoString1          = "20"             ;参考箭头注解文本1
  res_vc@vcRefAnnoSide             = "Bottom"
  res_vc@vcRefAnnoBackgroundColor  = "white"         ;参考箭头的背景
  res_vc@vcRefAnnoFontHeightF      = 0.014
  res_vc@vcRefAnnoFontThicknessF   = 1.5
  res_vc@vcRefAnnoString2On        = False
  ;res_vc@vcRefAnnoPerimOn          = True
  res_vc@vcRefAnnoOrthogonalPosF   = -1            ;参考箭头的垂直位置
  res_vc@vcRefAnnoParallelPosF     = 0.999            ;参考箭头的水平位置
  ;res_vc@vcLineArrowColor          = "black"
  ;res_vc@vcRefAnnoFont             = 21
  ;res_vc@vcRefAnnoArrowUseVecColor = False           ; don't use vec color for ref
  res_vc@gsnLeftString  = ""                      ; do not draw the left sub-title
  res_vc@gsnRightString = ""                     ; do not draw the right sub-title

  vector(0)    = gsn_csm_vector_map(wks, uMask, vMask, res_vc)
  
  vector(1)    = gsn_csm_vector_map(wks, uMask1, vMask1, res_vc)
  
  vector(2)    = gsn_csm_vector_map(wks, uMask2, vMask2, res_vc)

  vector(3)    = gsn_csm_vector_map(wks, uMask3, vMask3, res_vc)
  
  sres                       = True
  sres@gsnDraw               = False
  sres@gsnFrame              = False
  sres@cnFillOn              = False                       ; do not color fill
  sres@cnLinesOn             = True                       ; turn the contour lines on
  sres@cnLineLabelsOn        = True                 ; turn the line labels on
  sres@cnLevelSelectionMode       = "ManualLevels"
  sres@cnLevelSpacingF            = 5
  sres@cnInfoLabelOn              = False        ; push the InfoLabel down below the label bar
  sres@cnLineThicknessF     = 1.7
  sres@gsnLeftString        = ""                     
  sres@gsnRightString       = ""  
  sres@cnLineColor          = "black"                 
  sres@cnSmoothingOn                 = True      
  sres@cnSmoothingDistanceF          = 0.01
  sres@cnSmoothingTensionF           = 0.1
  sres@cnLineLabelBackgroundColor     = -1
  sres@cnLineLabelPlacementMode       ="Constant"
  sres@cnLineLabelFontHeightF         = 0.013
  sres@cnLineLabelInterval            = 3
  sres@tiMainFontHeightF       = 0.02
  sres@tiMainFontThicknessF    = 0.01
  sres@tiMainString            = "(a) 2015_08_16_18:00:00"
  contour    = gsn_csm_contour(wks, hMask, sres)  
  sres@tiMainString            = "(b) 2015_08_17_00:00:00"
  contour1   = gsn_csm_contour(wks, hMask1, sres)
  sres@tiMainString            = "(c) 2015_08_18_00:00:00"
  contour2   = gsn_csm_contour(wks, hMask2, sres)
  sres@tiMainString            = "(d) 2015_08_18_18:00:00"
  contour3   = gsn_csm_contour(wks, hMask3, sres)

  overlay(vector(0),contour)

  overlay(vector(1),contour1)

  overlay(vector(2),contour2)

  overlay(vector(3),contour3)
  
  resP                        = True
  gsn_panel(wks,vector,(/2,2/),resP)


end
QQ截图20171129210443.png

orog.nc

700.98 KB, 下载次数: 7, 下载积分: 金钱 -5

地形数据

密码修改失败请联系微信:mofangbao
发表于 2017-11-27 22:43:35 | 显示全部楼层
哈库拉玛塔塔000 发表于 2017-11-27 22:36
之前那个不在了 可以给你发个其他版本的  有地形的那块 去掉了数据
load "$NCARG_ROOT/lib/ncarg/nclscr ...

恩恩,真的太谢谢啦。大好人呢,开森
密码修改失败请联系微信:mofangbao
发表于 2017-11-27 23:31:13 | 显示全部楼层
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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