爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 4544|回复: 4

NCL where 求助!!!!!

[复制链接]

新浪微博达人勋

发表于 2016-6-3 18:42:51 | 显示全部楼层 |阅读模式

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

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

x
a=addfile("wrfout_d01_2014-08-24_90","r")
aa= a->QVAPOR
ba= a->QCLOUD
ca=a->QRAIN
da=a->QICE
ea=a->QSNOW
fa=a->QGRAUP
s=(aa+ba+ca+da+ea+fa)*1000

wa=a->W
do i=0,79
w=new((/25,80,100,100/),float)

    w(:,i,:,:)=0.50*(wa(0:24,i,0:99,0:99)+wa(0:24,i+1,0:99,0:99))
end do
s_1=dimsizes(w)
w_1=dimsizes(w)
sum_1=dimsizes(w)
s_1 = where (s.gt.0.01,s_1*2,s_1)
;w_1 = where (w.gt.1.00,1,0)
我是想通过where计算出s_1,w_1大于阈值的个数,其中s,w,s_1,w_1都是4维25*80*100*100的数组,请问各位大神,我要怎么修改啊

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

新浪微博达人勋

 楼主| 发表于 2016-6-3 18:44:57 | 显示全部楼层
s_1=dimsizes(w)
w_1=dimsizes(w)
sum_1=dimsizes(w)
s_1 = where (s.gt.0.01,1,s_1@_FillValue)
;w_1 = where (w.gt.1.00,1,0)

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

新浪微博达人勋

 楼主| 发表于 2016-6-3 18:45:22 | 显示全部楼层
是这样子的,上面是我胡乱改动测试的
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-6-4 22:20:42 | 显示全部楼层
本帖最后由 御风者 于 2016-6-4 22:26 编辑

你用的函数不太对症,有更简单的。用ind函数。
; 已知s_1,w_1都是4维数组,想取各自超过某一阈值(设为1000)的个数。
; 这里以s_1这个数组为例吧,代码如下:

temp_s_1 = ndtooned(s_1)
indices = ind(temp_s_1.gt.1000.)
n_gt1000 =  dimsizes(indices)
三行代码搞定。


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

新浪微博达人勋

 楼主| 发表于 2016-6-6 19:34:45 | 显示全部楼层
多谢帮助,已解决!!感谢
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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