爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8974|回复: 9

[其他] 关于画风场图的问题求助~画出来的图很怪。。。

[复制链接]
发表于 2014-11-16 21:24:26 | 显示全部楼层 |阅读模式

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

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

x
数据是从NCEP上下的1948-2014年的月均u和v的.nc文件

程序如下:
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/csm/shea_util.ncl"
;************************************************
begin
;************************************************
; read in netCDF file
;************************************************
   ufname = "uwnd_mon_mean.nc"  ;get uwind file name
   vfname = "vwnd_mon_mean.nc"  ;get vwind file name

  udata  = addfile(ufname,"r")  ; Open uwind file
  vdata  = addfile(vfname,"r")  ; Open vwind file

  utmp = udata->uwnd           ; get uwnd data
  vtmp = vdata->vwnd            ; get uwnd data
  level = udata->level
  time  = udata->time
  ;time1 =  ut_calendar(time,-1)
  ttime = dimsizes(time)
   lat = udata->lat
   lon = udata->lon

   nlat=dimsizes(lat)
   nlon=dimsizes(lon)

avr_monthu = new((/nlat,nlon/),float)
  avr_monthu!0 = "lat"
  avr_monthu&lat = utmp&lat
  avr_monthu&lat@units = "degrees_north"
  avr_monthu!1= "lon"
  avr_monthu&lon = utmp&lon
  avr_monthu&lon@units = "degrees_east"
  avr_monthv = avr_monthu
   nmod=12
;*************************************
do nlevel = 0,16
   do ntime =0,nmod-1


    u = utmp(:,nlevel,:,:)
    v = vtmp(:,nlevel,:,:)

  avr_monthu = dim_avg_n(u(ntime:ttime-1:nmod,:,:),0)
  avr_monthv = dim_avg_n(v(ntime:ttime-1:nmod,:,:),0)
   printVarSummary(avr_monthv)




;************************************************
; create plot
;************************************************
  filename="uv_mon_1980-2013_ltm_"+level(nlevel)+"_"+ntime

  wks = gsn_open_wks("eps",filename)                ; open a eps file

  res                         = True             ; plot mods desired
  res@gsnFrame                = False            ; so we can draw time stamp
  res@vcRefAnnoOrthogonalPosF = -1.0             ; move ref vector up
  res@vcRefMagnitudeF         = 10.0             ; define vector ref mag
  res@vcRefLengthF            = 0.045            ; define length of vec ref
  res@vcGlyphStyle            = "CurlyVector"    ; turn on curly vectors
  res@vcMinDistanceF          = 0.017

   res@vpWidthF   = 0.8                          ; make map bigger
   res@vpHeightF  = 0.8
   res@mpMaxLatF  = 90                         ; select subregion
   res@mpMinLatF  = -90
   res@mpMinLonF  = 0
   res@mpMaxLonF  = 357.5

   res@gsnLeftString  = "uv at "+level(nlevel)+"hPa "+ntime


  vector = gsn_csm_vector_map_ce(wks, avr_monthu, avr_monthv,res)


;************************************************
; add time stamp to plot
;************************************************

  frame (wks)  
       cmd="convert -geometry 1000x1000 -density 1000  -trim "+filename+".eps "+filename+".png"


                system(cmd)
    end do
end do
end

得出的图是下面这样子。。。

uv_mon_1980-2013_ltm_1000_0.png





刚开始提示错误是(0) check_for_y_lat_coord: Warning: Data either does not contain a valid latitude coordinate array or doesnt contain one at all (0) check_for_lon_coord: Warning: Data either does not contain a valid longitude coordinate array or doesnt contain one at all
后来我在前面加了数组的属性,他不报这个错了,但是画出来的图还是错的,这是为啥??
我感觉是因为我求平均求错了??
密码修改失败请联系微信:mofangbao
发表于 2014-11-17 09:38:27 | 显示全部楼层
我也遇到过这种问题。在读入变量后,貌似要用short2flt把变量转换一下,有的nc数据好像是要这么做吧。。。
密码修改失败请联系微信:mofangbao
发表于 2014-11-17 11:52:20 | 显示全部楼层
你读出来的U,V是短整形的,在计算的时候要转成浮点数组来计算。
u     = short2flt(u)
密码修改失败请联系微信:mofangbao
发表于 2014-11-17 12:15:43 | 显示全部楼层
飏逸雅 发表于 2014-11-17 09:38
我也遇到过这种问题。在读入变量后,貌似要用short2flt把变量转换一下,有的nc数据好像是要这么做吧。。。

学习了
密码修改失败请联系微信:mofangbao
发表于 2014-11-17 17:15:38 | 显示全部楼层
lleoiu 发表于 2014-11-17 11:52
你读出来的U,V是短整形的,在计算的时候要转成浮点数组来计算。
u     = short2flt(u)

我short2flt之后 uv_mon_1980-2013_ltm_1000_0.png 就成这样了。。。。。
密码修改失败请联系微信:mofangbao
发表于 2014-11-17 19:08:49 | 显示全部楼层
很明显嘛,你的两个分量是相等的,用了两个U或两个V,而不是UV,你的数据有问题
密码修改失败请联系微信:mofangbao
发表于 2014-11-17 19:09:45 来自手机 | 显示全部楼层
U、V分量相等了,楼主仔细检查!
密码修改失败请联系微信:mofangbao
发表于 2014-11-17 21:15:13 | 显示全部楼层
飞云侠客 发表于 2014-11-17 19:08
很明显嘛,你的两个分量是相等的,用了两个U或两个V,而不是UV,你的数据有问题

T.T谢谢提醒。。。我看了两天就没看到这里我写错了。。。T.T谢谢谢谢
密码修改失败请联系微信:mofangbao
发表于 2014-11-17 21:15:27 | 显示全部楼层
longlivehj 发表于 2014-11-17 19:09
U、V分量相等了,楼主仔细检查!

十分感谢- -!!!我太大意了!!!!谢谢!
密码修改失败请联系微信:mofangbao
发表于 2019-3-31 17:02:14 | 显示全部楼层
不知道为什么,现在下这个资料只有三维的了,没有高度维度了,很奇怪
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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