爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 6528|回复: 2

[作图] NCL中利用NCEP再分析资料读取变量数据格式的问题

[复制链接]

新浪微博达人勋

发表于 2016-4-21 16:47:50 | 显示全部楼层 |阅读模式

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

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

x
最近装好了NCL绘图软件,在使用中出现了一些小问题,经查询官网例子和论坛帖子无果后,只好发帖问一下大家,希望能得到前辈们的帮助。
我使用的是NCEP再分析资料,其中包含了某一月份每日的位势涡度资料,分为三层,即500hPa,700hPa以及850hPa。在一位前辈的ncl脚本文件基础上进行了修改,最终出现问题如下。我的资料中time为int格式数据,应转为double格式资料才可以读取,不然出现错误如下。望有热心的前辈给予帮助,谢谢。
另附代码
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/cnmap/cnmap.ncl"

begin

f = addfile("data/pv.nc","r")
pv  = short2flt( f->pv )
time = f->time
lat  = f->latitude
lon = f->longitude
level = f->level
pv!0 = "time"
pv!1 = "lat"
pv!2 = "lon"
pv!3 = "level"

pv&time = time
pv&lat  = lat
pv&lon  = lon
pv&level =level
pv&lat@units = "degrees_north"
pv&lon@units = "degrees_east"

;************************************************
; create plot
;************************************************
wks = gsn_open_wks("png","plot/pv") ; open a pdf file
gsn_define_colormap(wks,"rainbow")  ; choose color map

plot= new(4,graphic)

res                  = True                      ; plot mods desired
res@gsnFrame      = False
res@gsnDraw       = False
res@gsnSpreadColors  = True                      ; use full colormap

res@mpOutlineOn   = True
res@mpFillOn      = True
res@mpMinLatF     = 17. ; zoom in on a subregion
res@mpMaxLatF     = 55.
res@mpMinLonF     = 72.
res@mpMaxLonF     = 136.
res@mpGeophysicalLineThicknessF=1.3

res@cnFillOn         = True                      ; turn on color
res@cnLinesOn        = False
res@cnLineLabelsOn   = False                     ; no contour line labels
res@cnInfoLabelOn    = False                     ; no info label

res@cnLevelSelectionMode = "ManualLevels"      ; set manual contour levels
   res@cnMinLevelValF       = 180.                ; set min contour level
   res@cnMaxLevelValF       = 300.                ; set max contour level
   res@cnLevelSpacingF      =   2.                ; set contour spacing

   res@lbLabelBarOn        = False           ; turn off individual cb's

res@gsnLeftString  = "Temprature in 7.30 0"
plot(0) = gsn_csm_contour_map_ce(wks,pv(1,:,:),res)
delete(res@gsnLeftString)

res@gsnLeftString  = "Temprature in 7.30 6"
plot(1) = gsn_csm_contour_map_ce(wks,pv(1,:,:),res)
delete(res@gsnLeftString)

res@gsnLeftString  = "Temprature in 7.30 12"
plot(2) = gsn_csm_contour_map_ce(wks,pv(1,:,:),res)
delete(res@gsnLeftString)

res@gsnLeftString  = "Temprature in 7.30 18"
plot(3) = gsn_csm_contour_map_ce(wks,pv(1,:,:),res)
;************************************************
; create panel
;************************************************
resP                  = True
resP@gsnFrame         = False
   resP@gsnPanelLabelBar    = True                ; add common colorbar
resP@gsnPanelFigureStrings = (/"(a)","(b)","(c)","(d)"/)  
gsn_panel(wks,plot,(/2,2/),resP)         
frame(wks)
end


QQ截图20160421163849.png
QQ截图20160421163930.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-4-21 19:01:40 | 显示全部楼层
报错信息显示脚本第17行赋值类型左右不同。
即pv!3 = "level"
不清楚pv本来的维度信息是什么样。尝试pv  = short2flt( f->pv )
printVarSummary(pv)
time = f->time
lat  = f->latitude
lon = f->longitude
level = f->level
pv!0 = "time"
pv!1 = "lat"
pv!2 = "lon"
pv!3 = "level"


看下输出的信息应该就能知道错误原因了。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-4-21 21:42:30 | 显示全部楼层
夏朗的芒果 发表于 2016-4-21 19:01
报错信息显示脚本第17行赋值类型左右不同。
即pv!3 = "level"
不清楚pv本来的维度信息是什么样。尝试pv   ...

好的,谢谢指导,问题已经解决了。但是现在有一个问题想请教下,我下载的是NECP再分析资料,其中降水资料的单位是m,位势高度的单位也是gpm,想问下怎样在ncl中处理数据使得符合我们的习惯呢,比如把降水资料乘100,也就是mm
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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