爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 6819|回复: 9

提取想要月份做平均

[复制链接]

新浪微博达人勋

发表于 2020-9-14 08:49:56 | 显示全部楼层 |阅读模式

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

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

x
ncl有month_to_annual、month_to_season等内置函数,但只能计算12个月或者某三个月的逐年平均值。若想要挑选其中几个月进行分析则没有内置函数,相关帖子回复得少(可能是简单,别人都不愿意讲吧)。想要提取每年4-9月(共有150年)降水数据,例子如下。有更简便的方法可以多多交流。
f=addfile("D:\pr_185001-200012.nc","r")
pr=f->pr
time=f->time
lat=f->lat
lon=f->lon
ntim=dimsizes(time)
nlat=dimsizes(lat)
nlon=dimsizes(lon)
nyears=ntim/12
pr4d=reshape(pr,(/nyears,12,nlat,nlon/))                ;用reshape重新定义数据维度。提取前后维度的乘积要相等。
pr_4_9=reshape(pr4d(:,3:8,:,:),(/nyears*6,nlat,nlon/))
j=0
pr150=new((/150,nlat,nlon/),float,"No_FillValue")
do i =0,149
   pr150(i,:,:)=(pr_4_9(j,:,:)+pr_4_9(j+1,:,:)+pr_4_9(j+2,:,:)+pr_4_9(j+3,:,:)+pr_4_9(j+4,:,:)+pr_4_9(j+5,:,:))/6.0
   j=j+6
end do
;printVarSummary(pr150)
pr150_ave=dim_avg_n_Wrap(pr150,(/1,2/))
printVarSummary(pr150_ave)

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

新浪微博达人勋

发表于 2020-9-17 19:41:54 | 显示全部楼层
楼主,我现在遇到了这个问题,有点类似,做的多年逐月资料算逐月气候态,不是12的整数倍没办法直接用函数求,请问楼主有什么解决办法吗
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-9-18 09:12:28 | 显示全部楼层
lt5201314 发表于 2020-9-17 19:41
楼主,我现在遇到了这个问题,有点类似,做的多年逐月资料算逐月气候态,不是12的整数倍没办法直接用函数求 ...

可能你的数据中有一年的数据只有几个月。你把你的数据切开两份来算(没满12月份的和满12月的分开算)。请我我讲清楚了吗?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-9-18 14:09:27 | 显示全部楼层
分开算具体是怎么操作呢,我之前打算在ncl里写循环,把不同年份的同一月份提取出来,但后来实现不了
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-9-18 14:16:21 | 显示全部楼层
lt5201314 发表于 2020-9-18 14:09
分开算具体是怎么操作呢,我之前打算在ncl里写循环,把不同年份的同一月份提取出来,但后来实现不了

就是先算前面没有满12个月那年的平均。后面都有12个月的年份再平均。把不同年的同一月份提取出来算平均好像有函数的。你可以翻一下那些大神的帖子,我记得是有的。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-9-18 14:53:00 | 显示全部楼层
嗯嗯,你说的那个可以把前面第一年的先算,再算后面的,但第一年的数据怎么加进去就是个问题了,我翻了两天了,都没看到
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-9-18 20:03:43 | 显示全部楼层
lt5201314 发表于 2020-9-18 14:53
嗯嗯,你说的那个可以把前面第一年的先算,再算后面的,但第一年的数据怎么加进去就是个问题了,我翻了两天 ...

画图的时候加进去就可以了。就相当于一张图用了两组数据
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-9-19 06:44:25 | 显示全部楼层
嗯嗯,我平均做出来了,正在出图了,谢谢指点
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-11-15 11:24:36 | 显示全部楼层
lt5201314 发表于 2020-9-19 06:44
嗯嗯,我平均做出来了,正在出图了,谢谢指点

怎么做的呢,求指点
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-11-15 22:18:59 | 显示全部楼层
niuyingli 发表于 2020-11-15 11:24
怎么做的呢,求指点

我用的纯数学计算,先算12个月整的,再把多的月份加进去算平均,不过气候态一般取30年,后来我直接截取30年的数据进行计算的。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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