- 积分
- 2033
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2013-5-2
- 最后登录
- 1970-1-1
|
发表于 2021-6-9 21:26:59
|
显示全部楼层
本帖最后由 短发党人 于 2021-6-9 21:29 编辑
可以发你一个脚本
;verlay information from 2 domains
; November 2009
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/wrf/WRFUserARW.ncl"
;load "./WRFUserARW.ncl"
begin
wks_type = "png"
wks_type@wkWidth = 3000
wks_type@wkHeight = 3000
wks = gsn_open_wks(wks_type,"wrf_overlay_doms")
gsn_define_colormap(wks,"cmp_flux")
d1 = addfile("/***/WPS/met_em.d01.***.nc", "r")
d2 = addfile("/***/WPS/met_em.d02.***.nc", "r")
d3 = addfile("/***/WPS/met_em.d03.***.nc", "r")
var1 = wrf_user_getvar(d1,"HGT_M",0)
lat1 = wrf_user_getvar(d1,"XLAT",0)
lon1 = wrf_user_getvar(d1,"XLONG",0)
var2 = wrf_user_getvar(d2,"HGT_M",0)
lat2 = wrf_user_getvar(d2,"XLAT",0)
lon2 = wrf_user_getvar(d2,"XLONG",0)
var3 = wrf_user_getvar(d3,"HGT_M",0)
lat3 = wrf_user_getvar(d3,"XLAT",0)
lon3 = wrf_user_getvar(d3,"XLONG",0)
var1@lat2d = lat1
var1@lon2d = lon1
var2@lat2d = lat2
var2@lon2d = lon2
var3@lat2d = lat3
var3@lon2d = lon3
dom_dims = dimsizes(var1)
dom_rank = dimsizes(dom_dims)
nx1 = dom_dims(dom_rank - 1) - 1
ny1 = dom_dims(dom_rank - 2) - 1
dom_dims = dimsizes(var2)
dom_rank = dimsizes(dom_dims)
nx2 = dom_dims(dom_rank - 1) - 1
ny2 = dom_dims(dom_rank - 2) - 1
dom_dims = dimsizes(var3)
dom_rank = dimsizes(dom_dims)
nx3 = dom_dims(dom_rank - 1) - 1
ny3 = dom_dims(dom_rank - 2) - 1
res = True
; Set some contouring resources.
res@cnFillOn = True
res@cnLinesOn = False
res@cnLineLabelsOn = False
res@cnInfoLabelOn = False
res@gsnSpreadColors = True
res@cnLevelSelectionMode = "ExplicitLevels"
res@cnLevels = (/0, 10, 25, 50, 75, 100, 125, 150, 200, 300, 400, 500, 750, \
1000, 1250, 1500, 1750, 2000, 2250, 2500, 2750, 3000/)
res@gsnLeftString = ""
res@gsnRightString = ""
res@vpWidthF = 0.8
res@vpHeightF = 0.8
res@vpXF = 0.1
res@vpYF = 1.0
res@gsnDraw = False
res@gsnFrame = False
res2 = res
; Add map resources
res@mpDataBaseVersion = "MediumRes" ; Default is LowRes
res@mpOutlineDrawOrder = "PostDraw" ; Draw map outlines last
res@mpGridAndLimbOn = False ; Turn off lat/lon lines
res@pmTickMarkDisplayMode = "Always" ; Turn on map tickmarks
res = set_mp_wrf_map_resources(d1,res)
res@mpLimitMode = "Corners" ; Portion of map to zoom
res@mpLeftCornerLatF = lat1(0,0)
res@mpLeftCornerLonF = lon1(0,0)
res@mpRightCornerLatF = lat1(ny1,nx1)
res@mpRightCornerLonF = lon1(ny1,nx1)
; Add label bar resources
res@lbLabelAutoStride = True
res@gsnMaximize = True ; Maximize plot in frame
res@lbTitleString = " "
res@lbTitleDirection = "Down"
res@lbTitleJust = "CenterRight"
res@lbTitlePosition = "Right"
res@lbTitleOffsetF = 0.07
res@lbOrientation = "Vertical"
res@pmLabelBarSide = "Right"
res@pmLabelBarHeightF = 0.8
res@pmLabelBarWidthF = 0.11
res@pmLabelBarOrthogonalPosF = 0.03
res@lbBoxMinorExtentF = 0.4
res2@lbLabelBarOn = False ; Labelbar already created in 1st plot
res2@gsnMaximize = False ; Use maximization from original plot
; we need these to later draw boxes for the location of the nest domain
xbox_out = new(5,float)
ybox_out = new(5,float)
lnres = True
lnres@gsLineThicknessF = 3.0
; make images
map = gsn_csm_contour_map(wks, var1, res)
plot1 = gsn_csm_contour(wks, var2, res2)
plot2 = gsn_csm_contour(wks, var3, res2)
; let's make 4 plots
; 1 - the mother domain only
; 2 - the mother and nest domains
; 3 - same as 2, but add a box around domain 2
; 4 - same as 2, but add a box around domain 3
; PLOT 1
draw(map)
frame(wks)
; PLOT 2
overlay (map, plot1)
draw(map)
frame(wks)
; PLOT 3
draw(map) ; domain 2 already overlaid here - so just draw again
xbox = (/lon2(0,0),lon2(0,nx2),lon2(ny2,nx2),lon2(ny2,0),lon2(0,0)/)
ybox = (/lat2(0,0),lat2(0,nx2),lat2(ny2,nx2),lat2(ny2,0),lat2(0,0)/)
datatondc(map, xbox, ybox, xbox_out, ybox_out)
gsn_polyline_ndc(wks, xbox_out, ybox_out, lnres)
frame(wks)
; PLOT 4
draw(map) ; domain 2 already overlaid here - so just draw again
xbox1 = (/lon2(0,0),lon2(0,nx2),lon2(ny2,nx2),lon2(ny2,0),lon2(0,0)/)
ybox1 = (/lat2(0,0),lat2(0,nx2),lat2(ny2,nx2),lat2(ny2,0),lat2(0,0)/)
xbox2 = (/lon3(0,0),lon3(0,nx3),lon3(ny3,nx3),lon3(ny3,0),lon3(0,0)/)
ybox2 = (/lat3(0,0),lat3(0,nx3),lat3(ny3,nx3),lat3(ny3,0),lat3(0,0)/)
datatondc(map, xbox1, ybox1, xbox_out, ybox_out)
gsn_polyline_ndc(wks, xbox_out, ybox_out, lnres)
datatondc(map, xbox2, ybox2, xbox_out, ybox_out)
gsn_polyline_ndc(wks, xbox_out, ybox_out, lnres)
frame(wks)
end
你可以稍微修改一下。
|
|