爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 6220|回复: 6

[其他] 【已解决】month_to_season函数报错

[复制链接]

新浪微博达人勋

发表于 2016-7-13 16:43:51 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 潇潇 于 2016-7-14 11:03 编辑

想求80-99年冬季的月平均值,用到month_to_season函数,程序如下:f=addfile("E:/data/ncep/hgt/hgt.mon.mean.nc","r")

hgt=f->hgt(:,5,:,:)
;printVarSummary(hgt)

month_abbr = (/"","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"/)
time =f->time
    time@units = "hours since 1800-1-1 00:00:00"
utc_date = cd_calendar(time, 0)
year   = tointeger(utc_date(:,0))   
month  = tointeger(utc_date(:,1))   
MMYYYY=month_abbr(month)+sprinti("%0.4i", year)
;print(MMYYYY)

ymStrt="Mar1979"
ymLast="Feb2000"
iStrt=ind(MMYYYY.eq.ymStrt)
iLast=ind(MMYYYY.eq.ymLast)
;print(iStrt)
;print(iLast)
hgtx=hgt(iStrt(0):iLast(0),:,:)
printVarSummary(hgtx)
hgtx!0="time"
hgtx!1="lat"
hgtx!2="lon"

hgt_DJF=month_to_season(hgtx,"DJF")
;printVarSummary(hgt_DJF)



提示错误:

file:///C:\Users\Administrator.WIN-S3THKM90QAH\AppData\Roaming\Tencent\Users\29678350\QQ\WinTemp\RichOle\$HDJ@Y3AK%BUJ{_$JY%@$E1.png

1.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-9-7 09:19:08 | 显示全部楼层
我说的month——to——season怎么用不了,原来是数据类型的问题
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2016-7-13 17:15:33 | 显示全部楼层
没人吗? 菜鸟一枚,求大神指点!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-7-14 08:54:08 | 显示全部楼层
  temp1&time = cd_calendar(temp1&time,1),用这个函数可以把时间坐标转化为yyyymm格式,然后就可以用{}截取数据,比如你的hgt({198001:199912},:,:),就可以直接month_to_season(hgt({198001:199912},:,:),"DJF")。使用时最好经常pringVarSummary,确保是你想要的数据
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-7-14 09:19:46 | 显示全部楼层
井中月 发表于 2016-7-14 08:54
temp1&time = cd_calendar(temp1&time,1),用这个函数可以把时间坐标转化为yyyymm格式,然后就可以用{}截 ...

我已经将时间格式转换为MMYYYY了,最后用month_to_season函数,
hgt_DJF=month_to_season(hgt({May1979:Feb2000,:,:),"DJF")
但是还是报错
错误是:Variable (hgt_DJF) is undefined
但是我在官网上看,month_to_season函数左边的变量是根据右边的变量走的,不需要定义啊。。。我就不懂了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-7-14 10:52:50 | 显示全部楼层
井中月 发表于 2016-7-14 08:54
temp1&time = cd_calendar(temp1&time,1),用这个函数可以把时间坐标转化为yyyymm格式,然后就可以用{}截 ...

问题已解决 其实是hgt的文件是short类型,转换成float就可以了~
不过还是要谢谢你!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-10-10 11:44:40 | 显示全部楼层
很有用谢谢
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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