爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 29565|回复: 11

[其他] 用ncl手动求区域平均,得到的都是缺省值

[复制链接]

新浪微博达人勋

发表于 2017-10-10 18:09:06 | 显示全部楼层 |阅读模式
1金钱
用ncl手动求区域平均,得到的都是缺省值,代码如下
ty=new(51,double)
ty=0
do tt=1,51
do i=0,nlat-1
  do j=0,nlon-1
   ty(tt)=ty(tt)+dtdy1(tt,i,j)
  end do
end do
ty=ty(tt)/2529  ;2529是总的格点数
print(ty)
end do
最后得到的结果是(0)     9.969209968386869e+36
(1)     9.969209968386869e+36
(2)     9.969209968386869e+36
(3)     9.969209968386869e+36
(4)     9.969209968386869e+36
(5)     9.969209968386869e+36
(6)     9.969209968386869e+36
(7)     9.969209968386869e+36
(8)     9.969209968386869e+36
(9)     9.969209968386869e+36
(10)    9.969209968386869e+36
(11)    9.969209968386869e+36
(12)    9.969209968386869e+36
(13)    9.969209968386869e+36
(14)    9.969209968386869e+36
(15)    9.969209968386869e+36
(16)    9.969209968386869e+36
(17)    9.969209968386869e+36
(18)    9.969209968386869e+36
(19)    9.969209968386869e+36
(20)    9.969209968386869e+36
(21)    9.969209968386869e+36
(22)    9.969209968386869e+36
(23)    9.969209968386869e+36
(24)    9.969209968386869e+36
(25)    9.969209968386869e+36
(26)    9.969209968386869e+36
(27)    9.969209968386869e+36
(28)    9.969209968386869e+36
(29)    9.969209968386869e+36
(30)    9.969209968386869e+36
(31)    9.969209968386869e+36
(32)    9.969209968386869e+36
(33)    9.969209968386869e+36
(34)    9.969209968386869e+36
(35)    9.969209968386869e+36
(36)    9.969209968386869e+36
(37)    9.969209968386869e+36
(38)    9.969209968386869e+36
(39)    9.969209968386869e+36
(40)    9.969209968386869e+36
(41)    9.969209968386869e+36
(42)    9.969209968386869e+36
(43)    9.969209968386869e+36
(44)    9.969209968386869e+36
(45)    9.969209968386869e+36
(46)    9.969209968386869e+36
(47)    9.969209968386869e+36
(48)    9.969209968386869e+36
(49)    9.969209968386869e+36
(50)    9.969209968386869e+36
不太明白是怎么回事,望各位大神不吝赐教。

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

新浪微博达人勋

发表于 2017-10-10 18:19:31 | 显示全部楼层
ty是新定义的数组,都是缺省值,在循环里即使加上别的东西,等号左端的东西永远是缺省。
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2017-10-10 19:16:36 | 显示全部楼层
songwei 发表于 2017-10-10 18:19
ty是新定义的数组,都是缺省值,在循环里即使加上别的东西,等号左端的东西永远是缺省。

ty=new(51,double)
ty=0
m=2529
do tt=1,51
do i=0,nlat-1
  do j=0,nlon-1
    if(any(ismissing(dtdy1(tt,i,j)))) then
   dtdy1(tt,i,j)=0
   m=m-1
else
  ty(tt)=ty(tt)+dtdy1(tt,i,j)
    end if
  end do
end do
ty=ty(tt)*(m^(-1))  ;2529是总的格点数
print(ty)
end do我把ty=0赋值为0不行吗?我把缺省值单拎出来之后,出来的结果是(0)     -9.530448159410801
(1)     -9.530448159410801
(2)     -9.530448159410801
(3)     -9.530448159410801
(4)     -9.530448159410801
(5)     -9.530448159410801
(6)     -9.530448159410801
(7)     -9.530448159410801
(8)     -9.530448159410801
(9)     -9.530448159410801
(10)    -9.530448159410801
(11)    -9.530448159410801
(12)    -9.530448159410801
(13)    -9.530448159410801
(14)    -9.530448159410801
(15)    -9.530448159410801
(16)    -9.530448159410801
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2017-10-11 06:31:45 | 显示全部楼层
对于一个时间,如果水平区域内任一地点有缺省值,那这个点就会把整个求和弄成缺省值。
建议直接用函数吧,简单一些。
ty = dim_avg_n(dtdy1,(/1,2/))
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2017-10-11 10:57:47 | 显示全部楼层
建议同上楼,ncl还是用函数吧!!
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2017-10-11 11:55:33 | 显示全部楼层
packard 发表于 2017-10-11 06:31
对于一个时间,如果水平区域内任一地点有缺省值,那这个点就会把整个求和弄成缺省值。
建议直接用函数吧, ...

谢谢谢谢,我开始就是用的那个函数,计算结果有问题,上午我重新计算了,结果出来了,还是谢谢啦。
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2017-10-11 11:56:05 | 显示全部楼层
橙子鲜 发表于 2017-10-11 10:57
建议同上楼,ncl还是用函数吧!!

恩恩,都感谢啦!
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2020-10-19 16:47:13 | 显示全部楼层
我也遇到这样的问题 请问如何解决的?
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2020-12-10 16:42:36 | 显示全部楼层
packard 发表于 2017-10-11 06:31
对于一个时间,如果水平区域内任一地点有缺省值,那这个点就会把整个求和弄成缺省值。
建议直接用函数吧, ...

大佬,如果要求区域的加权平均值怎么做呢,dim_avg_wgt_n_Wrap中的权重只能是一维的
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2020-12-11 07:34:15 | 显示全部楼层
雨里1998 发表于 2020-12-10 16:42
大佬,如果要求区域的加权平均值怎么做呢,dim_avg_wgt_n_Wrap中的权重只能是一维的

那可以先用reshape函数, 把空间那两维合并成一个维度, 然后再调 dim_avg_wgt_n
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

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

本版积分规则

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

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

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