- 积分
- 400
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2013-4-6
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
各位老师,可以帮忙看一下我的程序是哪里有问题吗?我想把站点风画在地形图上,结果只能画出地形图,不能画出站点风。
; These files are loaded by default in NCL V6.2.0 and newer
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"
begin
;---Open WRF output file.
filename1 ="/home/lenovo/wrfout_d01_2017-07-20_00_00_00"
a = addfile(filename1 +".nc","r")
;---Read terrain height and lat/lon off file.
it = 0 ; first time step
hgt = wrf_user_getvar(a,"HGT",it) ; Terrain elevation
hgt@lat2d = wrf_user_getvar(a,"XLAT",it) ; latitude/longitude
hgt@lon2d = wrf_user_getvar(a,"XLONG",it) ; required for plotting
;cmap= read_colormap_file("OceanLakeLandSnow")
filename2 = "/home/lenovo/2017010308.txt"
nrow=numAsciiRow(filename2)
ncol=numAsciiCol(filename2)
data=asciiread(filename2, -1, "string")
;data2= onedtond(data,(/nrow,ncol/))
lon=stringtofloat(str_get_field(data,1," "))
lat=stringtofloat(str_get_field(data,2," "))
wd=stringtofloat(str_get_field(data,5," "))
ws=stringtofloat(str_get_field(data,6," "))
uv = wind_component(ws,wd,0)
uu=uv(0,:)
vv=uv(1,:)
wuu=new((/nrow,3/),float)
wuu(:,0)=lat
wuu(:,1)=lon
wuu(:,2)=uu
wuu@lat1d=lat
wuu@lon1d=lon
wvv=new((/nrow,3/),float)
wvv(:,0)=lat
wvv(:,1)=lon
wvv(:,2)=vv
wvv@lat1d=lat
wvv@lon1d=lon
wks = gsn_open_wks("png","station")
res = True
res@mpShapeMode ="FreeAspect" ;此功能要打开才可以调节视图
res@vpHeightF =0.6
res@vpWidthF =0.6
res@gsnMaximize = True ; maximize plot in frame
res@tiMainString = "" ;filename 同下 不过有tiMainOn=true False 进行关闭!
res@gsnLeftString = "" ;Default: data@units 可以使用""填写空值取消默认高级接口的左字符串! 目前开口命令未找到
res@gsnRightString = ""
res@tmXBLabelFontHeightF = 0.015
res@tmYLLabelFontHeightF = 0.02
;res@cnFillOn = True
;res@cnFillPalette = cmap(4:254,1)
res@cnLinesOn = False
res@mpProjection = "CylindricalEquidistant" ; The default
res@gsnAddCyclic = False
;---Zoom in on plot
res@mpMinLatF = min(hgt@lat2d) ;39.26664;
res@mpMaxLatF = max(hgt@lat2d) ;40.50695;
res@mpMinLonF = min(hgt@lon2d) ;115.5248;
res@mpMaxLonF = max(hgt@lon2d) ;117.3066;
;---Additional resources desired
res@pmTickMarkDisplayMode = "Always" ; nicer tickmarks
res@mpGeophysicalLineThicknessF =3
res@mpNationalLineThicknessF =3 ;Default: 1.0
res@mpProvincialLineThicknessF =3 ;Default: 1.0
res@mpCountyLineThicknessF =3
res@mpDataBaseVersion = "MediumRes" ; better and more map outlines
res@mpDataSetName = "Earth..4"
res@mpOutlineBoundarySets = "AllBoundaries"
res@mpOutlineOn = True
res@gsnDraw = False
res@gsnFrame = False
res@lbOrientation = "Vertical";"horizontal";
res@tiMainOffsetYF = -0.03 ; Move the title down
;---Change contour levels to better match the color map being used
res@cnFillOn = True
res@cnLinesOn = False
;res@cnFillPalette = "OceanLakeLandSnow";"BlueWhiteOrangeRed";"CBR_coldhot";"posneg_2";"CBR_coldhot";"temp_19lev","CBR_coldhot"
res@cnFillPalette = "OceanLakeLandSnow"
res@gsnSpreadColorStart =4
res@gsnSpreadColorEnd =244
res@cnFillMode = "AreaFill" ;"RasterFill" ; 设置填充模式 栅格填充没有区域填充好看!
res@gsnMaximize = True
res@cnLevelSelectionMode = "ManualLevels"
res@cnMinLevelValF = 0
res@cnMaxLevelValF = 5000
res@cnLevelSpacingF = 50
res@lbBoxLinesOn = False ; turn off labelbar box lines
;res@cnLevelSelectionMode = "ExplicitLevels"
;res@cnLevels = (/0,200,400,600,800,1000,1200,1400,1600,1800/)
res@lbLabelBarOn = True ; 是否打开色标 Default: True 可以选择关闭!
res@lbLabelFontHeightF = 0.015
res@lbOrientation = "horizontal" ;"Vertical" ; 色标的方向
;res@lbLabelAutoStride = True ; 是否自动设置色标标签间隔 默认为Ture 如果修改选择lbLabelStride
res@lbLabelStride = 20 ; 手动设置色标数字标签间隔(与填充图中的间隔不同) Default: 1
res@lbLabelFontHeightF = 0.015 ;Default: 0.02
res@lbLabelAlignment = "InteriorEdges" ;"BoxCenters" ; ;色标标签位于颜色方框的位置 Default: InteriorEdges 建议用默认
;res@cnLabelBarEndStyle = "IncludeMinMaxLabels";"ExcludeOuterBoxes"; ; 色标尾端样式 "ExcludeOuterBoxes"排除最外颜色箱子"ExcludeOuterBoxes" Default: IncludeOuterBoxes
;res@lbLabelAngleF = 90 ; 色标标签倾斜角度 Default: 0 角度以逆时针旋转
;res@lbTitleOn = True ; 是否打开色标标题
;res@lbTitleString = "m" ;"~S~o~N~c" ;"m/s" ; 色标标题
;res@lbTitlePosition = "bottom";"Right" ; 色标标题位置 默认Default: Top 此功能没啥用途建议不用!
;res@lbTitleJust = "bottomcenter" ;字符串的第一部分表示垂直对齐上中下(top, center, bottom),第二部分表示水平对齐(左、中、右)(left, center, right)
;res@lbTitleFontThicknessF = 0.1 ; Default: 1.0
;res@lbTitleFontHeightF = 0.01 ; Default: 0.025 字体大小例如°C和 m/s的大小
;res@pmLabelBarOrthogonalPosF = -0.03 ; 色标垂直方向的位置 Default: 0.02 负数为在垂直方向往←左移动
;res@pmLabelBarParallelPosF = 0.55 ; 色标水平方向的位置 Default: 0.5 负数为在水平方向往下↓移动
;res@pmLabelBarWidthF = 0.15 ; 色标的宽度 Default: 0.15 (for a viewport width of 0.6)对于窗口为0.6的默认值
res@pmLabelBarHeightF = 0.1 ; 色标的高度 Default: 0.6 (for a viewport height of 0.6)对于窗口为0.6的默认
;res@cnLevelSelectionMode = "ExplicitLevels"
;res@cnLevels = (/2,100,200,400,600,800,1000,1200,1400,1600,1800,2000,2200/)
contour = gsn_csm_contour_map(wks,hgt,res)
wmsetp("col", 2)
wmsetp("wbs", .06)
wmbarbmap(wks,lat,lon,uu,vv)
draw(contour)
frame (wks)
end
|
|