爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 11968|回复: 5

[经验总结] 使用where和ind函数根据一个数组过滤另一数组

[复制链接]

新浪微博达人勋

发表于 2020-7-4 18:19:31 | 显示全部楼层 |阅读模式

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

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

x
想要筛选出指数为正时的环流场,其实是很基本的操作,但用NCL的内部函数可以不用写循环了。做个总结。
  1. z = where(IHO.gt.0, IHO, IHO@_FillValue)        ;z仅包含IHO的正值,负值变为缺省值
  2. iz = ind(.not.ismissing(z))                                ;iz为z重无缺省值的索引
  3. if(.not.all(ismissing(iz)))
  4.        P = plcz(iz,:,:)                                         ;P为IHO为正值时的地表气压合集,无缺省值(如果plcz无缺省)
  5. else
  6.       print("IHO are all less than 0")
  7. end if
复制代码
另外,如果最开始判断正负的指数不是一维变量的话,需要用ndtooned转成一维变量才能使用ind函数

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

新浪微博达人勋

发表于 2020-7-23 15:22:41 | 显示全部楼层
请问如何根据一个变量的筛选出数组
然后把数据信息添加给另外一个变量达到过滤目的
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-7-28 14:41:10 | 显示全部楼层
本帖最后由 轻拢烟云 于 2020-7-28 14:42 编辑
SSJ世杰 发表于 2020-7-23 15:22
请问如何根据一个变量的筛选出数组
然后把数据信息添加给另外一个变量达到过滤目的

你试一下这几个函数
  1. copy_VarMeta(var, data) ;将var变量的元数据复制给data,copy_VarMeta等于 copy_VarAtts+copy_VarCoords
  2. copy_VarAtts(var, data); 将var变量的属性复制给data
  3. copy_VarCoords(var, data) ; 将var变量的坐标复制给data
复制代码
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-2-7 15:46:54 | 显示全部楼层
完整的代码能发一下么?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2023-8-17 10:14:39 | 显示全部楼层
参考这个写出来了,感谢
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2024-7-13 19:50:25 | 显示全部楼层
谢谢大佬,很有用!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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