立即注册 登录
气象家园 返回首页

meteowang的个人空间 http://bbs.06climate.com/?131856 [收藏] [复制] [分享] [RSS]

日志

提取PBLH

已有 45 次阅读2026-1-13 11:07

float PBLH(Time, south_north, west_east) ;
        PBLH:FieldType = 104 ;
        PBLH:MemoryOrder = "XY " ;
        PBLH:description = "PBL HEIGHT" ;
        PBLH:units = "m" ;
        PBLH:stagger = "" ;
        PBLH:coordinates = "XLONG XLAT XTIME" ;

WRF 输出文件(wrfout*)中的行星边界层高度(PBLH)变量


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


type = "png"
wks = gsn_open_wks(type,"2026PBLH")
gsn_define_colormap(wks,"BlAqGrYeOrRe")




  ; 1. 读取两组WRF输出文件
;  files1 = systemfunc("ls ../nobrc_fdda/wrfout_d01_2019-01-06_0*")  ; 第一组文件
;  files2 = systemfunc("ls ../yes_brc_fdda/wrfout_d01_2019-01-06_0*")  ; 第二组文件

;  files1 = systemfunc("ls ../yes_brc_nofdda/wrfout_d01_2019-*")  ; 第一组文件
;  files2 = systemfunc("ls ../nobrc_nofdda/wrfout_d01_2019-*")  ; 第二组文件
; 用短的文件代替减少运行时间
  files1 = systemfunc("ls ../yes_brc_nofdda/wrfout_d01_2019-01*")  ; 第一组文件
  files2 = systemfunc("ls ../nobrc_nofdda/wrfout_d01_2019-01*")  ; 第二组文件


  a = addfiles(files1, "r")  ; yes
  b = addfiles(files2, "r")  ; no

  wlat=a[0]->XLAT(0,:,:)
  wlon=a[0]->XLONG(0,:,:)


  ; 2. 读取边界层高度
  var1 = wrf_user_getvar(a,"PBLH",-1)  ; [time,lat,lon]  yes
  var2 = wrf_user_getvar(b,"PBLH",-1)  ; no

  delta_PBLH    = var1 - var2             ; yes - no
  delta_PBLH_2d = dim_avg_n_Wrap(delta_PBLH,0)  ; 对时间求平均


 ; 此时delta值没有属性,需要赋属性
 printVarSummary(var1)          ; [Time | 280] x [south_north | 202] x [west_east | 200]
 printVarSummary(delta_PBLH)    ; [280] x [202] x [200]
 printVarSummary(delta_PBLH_2d) ; [202] x [200]


 ; 赋属性
 files_ctl     = systemfunc("ls -1 ../yes_brc_nofdda/wrfout_d01_2019-01-12*")
 f_ctl = addfiles(files_ctl,"r")
 ;;;;;;;;;;;;;;获得属性
 PBLH_m    = wrf_user_getvar(f_ctl, "PBLH", -1)
 PBLH_m_2d   = PBLH_m(0,:,:)
 printVarSummary(PBLH_m_2d)
 ;;;;;用PBLH_m_2d给x赋属性
 copy_VarMeta(PBLH_m_2d , delta_PBLH_2d)
 printVarSummary(delta_PBLH_2d)        ; [south_north | 202] x [west_east | 200]
 ; 此时属性赋值成功

 
 pblh = delta_PBLH_2d



 ; 设置res属性
res                = True

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

res@cnFillOn            = True
res@cnLinesOn            = False
res@cnLineLabelsOn        = False
;res@cnLevelSelectionMode    = "ManualLevels" ;"ExplicitLevels"
res@cnLevelSelectionMode    = "ExplicitLevels"
;res@lbOrientation        = "vertical"
res@gsnDraw            = False
res@gsnFrame            = False

res@tmXBLabelFont        = 26  ;; Set font to times-roman
res@tmYLLabelFont        = 26
res@lbLabelFont            = 26
res@lbLabelFontHeightF        = 0.021
res@tmXBLabelFontHeightF    = 0.021
res@tmYLLabelFontHeightF    = 0.021

res@pmTickMarkDisplayMode    = "Always"         ; turn on tickmarks
res@tmXTOn            = False            ; turn off top   labels 
res@tmYROn            = False            ; turn off right labels

res@tmXBMajorLengthF            = 0.007 
res@tmXBMajorOutwardLengthF     = 0.0 

res@mpDataBaseVersion       = "MediumRes"
res@mpDataSetName           = "Earth..4"
res@mpOutlineSpecifiers     = (/"China:states"/)
res@mpGeophysicalLineThicknessF = 2.0 ;3
res@mpNationalLineThicknessF    = 2.0 ;4
res@mpUSStateLineThicknessF     = 2.0 ;2.5
nx = dimsizes(wlat(0,:))
ny = dimsizes(wlat(:,0))
res@mpProjection        = "LambertConformal"
res@mpLambertParallel1F = f_ctl[0]@TRUELAT1
res@mpLambertParallel2F = f_ctl[0]@TRUELAT2
res@mpLambertMeridianF  = f_ctl[0]@STAND_LON
;res@mpLimitMode         = "Corners"

res@mpLimitMode         = "LatLon"
res@mpMinLatF=28
res@mpMaxLatF=44
res@mpMinLonF=110
res@mpMaxLonF=123





;设置经纬度网格线
res@mpGridAndLimbOn        = True    ; 启用网格线和地图边界
;res@mpGridSpacingF         = 5.0     ; 网格间距(单位:度)
res@mpGridLineDashPattern  = 2       ; 虚线样式(1=实线,2=虚线,3=点线)
res@mpGridLineThicknessF   = 1.0     ; 线粗细
res@mpGridLineColor        = "gray50"; 网格线颜色
res@mpGridLatSpacingF      = 2.0     ; 纬度网格间距
res@mpGridLonSpacingF      = 2.0     ; 经度网格间距


pblh@lat2d = wlat
pblh@lon2d = wlon

plot                 = gsn_csm_contour_map(wks,pblh(:,:),res)

draw(plot)
frame(wks)

end

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 立即注册

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

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

返回顶部