爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 9500|回复: 14

新手求助,台风轨迹。

[复制链接]

新浪微博达人勋

发表于 2013-5-4 19:56:57 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 bsb0 于 2013-5-4 20:51 编辑

新手上路,使用了官网的stromtrack绘制台风轨迹,但是在运行之后读取完时间就提示如下错误
Dimentsion sizes on right hand side of assignment do not match dimension sizes of left hand side,看了半天不知道是哪个变量的维设置有问题,请高手指教。

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/wrf/WRF_contributed.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/wrf/WRFUserARW.ncl"


begin

; DATES
  date = (/1600,1612,1700,1712,1800,1812,1900,1912/)
  ndate = dimsizes(date)

  sdate = sprinti("%4.0i",date)

; Experiment name (for legend)
  EXP = (/"trackone"/)                ; (/"EXP_I","EXP_II","EXP_III"/)
  nexp = dimsizes(EXP)

; To get lat/lon info.

  a = addfile("wrfout_d02_2008-07-16_00:00:00.nc","r")

  lat2d = a->XLAT(0,:,:)
  lon2d = a->XLONG(0,:,:)
  dimll = dimsizes(lat2d)
  nlat  = dimll(0)
  mlon  = dimll(1)

; Sea Level Pressure
  slp = wrf_user_getvar(a,"slp",0)
  dims = dimsizes(slp)

; Array for track
  time = new(ndate,string)
  imin = new(ndate,integer)
  jmin = new(ndate,integer)
  smin = new(ndate,integer)

; =======
;  ndate
; =======
  fs = systemfunc("ls wrfout*00")
  nfs= dimsizes(fs)
  if(nfs .ne. ndate) then
     print("Check input data:"+nfs+" .ne. "+ndate)
  end if

  do ifs=0,nfs-1
    f = addfile(fs(ifs)+".nc","r")
    time(ifs) = wrf_user_list_times(f)
;    print(time(ifs))
    slp2d = wrf_user_getvar(f,"slvl",0)

; We need to convert 2-D array to 1-D array to find the minima.
    slp1d     = ndtooned(slp2d)
    smin(ifs) = minind(slp1d)

; Convert the index for 1-D array back to the indeces for 2-D array.
    minij     = ind_resolve(ind(slp1d.eq.min(slp2d)),dims)
    imin(ifs) = minij(0,0)
    jmin(ifs) = minij(0,1)

;    print(time(ifs)+" : "+min(slp2d)+" ("+imin(ifs)+","+jmin(ifs)+")")
  end do
;
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-5-4 20:33:09 | 显示全部楼层
提示哪一行出错?维数大小左右不匹配
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-5-4 20:52:08 | 显示全部楼层
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-5-4 21:08:06 | 显示全部楼层

你不能直接说是哪里么,还要帮助你的人从第一行数?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-5-4 21:59:00 | 显示全部楼层
尽头的尽头 发表于 2013-5-4 21:08
你不能直接说是哪里么,还要帮助你的人从第一行数?

呃,不好意思啊,小菜鸟一只,不确定是否要数注释行,如果算上的话应该是
; Convert the index for 1-D array back to the indeces for 2-D array.
    minij     = ind_resolve(ind(slp1d.eq.min(slp2d)),dims)
    imin(ifs) = minij(0,0)
    jmin(ifs) = minij(0,1)
其中的最后一行。。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-5-4 22:20:16 | 显示全部楼层
bsb0 发表于 2013-5-4 21:59
呃,不好意思啊,小菜鸟一只,不确定是否要数注释行,如果算上的话应该是
; Convert the index for 1-D  ...

那我建议你还是从基本的开始学起么,我现在没有你的数据,也不知道你到底为什么错了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-5-4 22:32:26 | 显示全部楼层
尽头的尽头 发表于 2013-5-4 22:20
那我建议你还是从基本的开始学起么,我现在没有你的数据,也不知道你到底为什么错了

呃,好的,暂时就看过一个教程,还想在实践中学习。。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-5-4 22:59:18 | 显示全部楼层
bsb0 发表于 2013-5-4 22:32
呃,好的,暂时就看过一个教程,还想在实践中学习。。

实践中学习是不错,那你就先把这个脚本的每一句都能看懂了,可能你就知道哪里错了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-5-5 08:52:56 | 显示全部楼层
bsb0 发表于 2013-5-4 21:59
呃,不好意思啊,小菜鸟一只,不确定是否要数注释行,如果算上的话应该是
; Convert the index for 1-D  ...

delete(minij)这个加在最后,应该是
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-9-22 10:14:44 | 显示全部楼层
大牛你好,我遇到了跟帖子一样的问题,但是提示在63行:time(ifs)=wrf-user-list-times(f)怎么都找不到问题。加了delete还是不行,有解决办法吗
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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