NCL基于micaps第4类数据绘制等值线图
作者:第八星系-刘术辉
邮箱:1211284952@qq.com
读取数据
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/contrib/cd_string.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/shea_util.ncl"
load"$NCARG_ROOT/lib/ncarg/nclscripts/wrf/WRFUserARW.ncl"
; load"$NCARG_ROOT/lib/ncarg/nclscripts/cnmap/cnmap.ncl"
begin
; 读取micaps第4类数据,并将除数据以外的部分删掉
aaa="19072120.000"
mdata = asciiread(aaa,-1,"float")
print(mdata)
根据数据维度设置经纬度格点及维度
nlat = 21
nlon = 33
lon = fspan(0,160,nlon);fspan(开始,结束,个数),等间距扩展一列数
lat = fspan(80,12,nlat)
lon2d = onedtond(lon,(/nlat,nlon/));将lon从一维扩展到多维(nlat,nlon)
lat2d = onedtond(lat,(/nlat,nlon/));
shk2d = onedtond(mdata(0::1),(/nlat,nlon/));读数据从第四行读到最后,数据先排一列再排一行
print(shk2d)
给读取的数据赋上经纬度属性、单位
shk2d!0="lat"
shk2d!1="lon"
shk2d&lat = lat
shk2d&lon = lon
shk2d&lat@units="degrees_north"
shk2d&lon@units="degrees_east"
创建绘图空间并输出图片名
wks= gsn_open_wks("png","qfdiv")
gsn_define_colormap(wks,"temp_diff_18lev");设置colorbar颜色
plot=new(1,graphic);将4个图形存为一个数组
为绘制的图添加属性
res = True
res@gsnDraw = False
res@gsnFrame = False
;res@gsnDraw = True
res@gsnMaximize = True
res@cnFillOn = True
res@cnLinesOn = False
res@gsnAddCyclic = False
res@gsnSpreadColors = True
res@mpFillOn = False
res@mpLimitMode = "LatLon"
res@mpMinLatF = 26
res@mpMaxLatF = 34
res@mpMinLonF = 97
res@mpMaxLonF = 109
res@mpLambertMeridianF = 105.0
res@pmTickMarkDisplayMode = "Always" ;自动划分经纬度
res@tmXBLabelFontHeightF = 0.015
res@tmYLLabelFontHeightF = 0.015
res@cnSmoothingOn = True
res@cnSmoothingDistanceF = 0.01
res@cnSmoothingTensionF = 2.5
; res@tmXBOn =True
; res@tmXBMode ="Automatic"
; res@tmYLOn =True
; res@tmYLMode ="Automatic"
;res@mpGridAndLimbOn =True
res@mpGridLineDashPattern = 5
res@mpGridSpacingF = 5
res@mpOutlineOn = True
res@mpDataSetName = "Earth..4"
res@mpDataBaseVersion = "MediumRes"
res@mpOutlineSpecifiers = (/"China:states"/)
res@mpUSStateLineThicknessF = 2
res@mpUSStateLineColor = "Black"
res@cnLevelSelectionMode = "ExplicitLevels"
; res@cnLevels = fspan(0,100,10)
; res@cnLevels = (/50,60,70,80,90,100/)
绘图
plot = gsn_csm_contour_map(wks, shk2d,res)
;resk = True
;gsn_panel(wks,plot,(/1,1/),resk)
printVarSummary(shk2d)
draw(plot)
frame(wks)
end
完整代码
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/contrib/cd_string.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/shea_util.ncl"
load"$NCARG_ROOT/lib/ncarg/nclscripts/wrf/WRFUserARW.ncl"
; load"$NCARG_ROOT/lib/ncarg/nclscripts/cnmap/cnmap.ncl"
begin
; 读取micaps第4类数据,并将除数据以外的部分删掉
aaa="19072120.000"
mdata = asciiread(aaa,-1,"float")
print(mdata)
; 根据数据维度设置经纬度格点及维度
nlat = 21
nlon = 33
lon = fspan(0,160,nlon);fspan(开始,结束,个数),等间距扩展一列数
lat = fspan(80,12,nlat)
lon2d = onedtond(lon,(/nlat,nlon/));将lon从一维扩展到多维(nlat,nlon)
lat2d = onedtond(lat,(/nlat,nlon/));
shk2d = onedtond(mdata(0::1),(/nlat,nlon/));读数据从第四行读到最后,数据先排一列再排一行
print(shk2d)
; 给读取的数据赋上经纬度属性、单位
shk2d!0="lat"
shk2d!1="lon"
shk2d&lat = lat
shk2d&lon = lon
shk2d&lat@units="degrees_north"
shk2d&lon@units="degrees_east"
; 创建绘图空间并输出图片名为qfdiv.png
wks= gsn_open_wks("png","qfdiv")
gsn_define_colormap(wks,"temp_diff_18lev");设置colorbar颜色
plot=new(1,graphic);将4个图形存为一个数组
; 为绘制的图设置属性
res = True
res@gsnDraw = False
res@gsnFrame = False
;res@gsnDraw = True
res@gsnMaximize = True
res@cnFillOn = True
res@cnLinesOn = False
res@gsnAddCyclic = False
res@gsnSpreadColors = True
res@mpFillOn = False
res@mpLimitMode = "LatLon"
res@mpMinLatF = 26
res@mpMaxLatF = 34
res@mpMinLonF = 97
res@mpMaxLonF = 109
res@mpLambertMeridianF = 105.0
res@pmTickMarkDisplayMode = "Always" ;自动划分经纬度
res@tmXBLabelFontHeightF = 0.015
res@tmYLLabelFontHeightF = 0.015
res@cnSmoothingOn = True
res@cnSmoothingDistanceF = 0.01
res@cnSmoothingTensionF = 2.5
; res@tmXBOn =True
; res@tmXBMode ="Automatic"
; res@tmYLOn =True
; res@tmYLMode ="Automatic"
;res@mpGridAndLimbOn =True
res@mpGridLineDashPattern = 5
res@mpGridSpacingF = 5
res@mpOutlineOn = True
res@mpDataSetName = "Earth..4"
res@mpDataBaseVersion = "MediumRes"
res@mpOutlineSpecifiers = (/"China:states"/)
res@mpUSStateLineThicknessF = 2
res@mpUSStateLineColor = "Black"
res@cnLevelSelectionMode = "ExplicitLevels"
; res@cnLevels = fspan(0,100,10)
; res@cnLevels = (/50,60,70,80,90,100/)
plot = gsn_csm_contour_map(wks, shk2d,res)
;resk = True
;gsn_panel(wks,plot,(/1,1/),resk)
printVarSummary(shk2d)
draw(plot)
frame(wks)
end
微信搜索“第八星系人造大气理论爱好者”公众号,关注获取文章数据
666 顶一个!
页:
[1]