爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 4485|回复: 4

NCL对经纬度进行循环

[复制链接]

新浪微博达人勋

发表于 2022-4-1 10:42:40 | 显示全部楼层 |阅读模式
6金钱
请教各位大佬,我要对一个范围内的olr和风场做滤波,已经对一个点滤波成功了,但我应该对经纬度进行循环来得到整个空间的滤波,怎么用do具体写出循环呢?请求解答,感激不尽!

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

新浪微博达人勋

 楼主| 发表于 2022-4-3 16:56:28 | 显示全部楼层
顶顶 有没有好心人
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2022-4-14 12:02:01 | 显示全部楼层
同求,怎样实现最快循环遍历经纬度格点呢?
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2022-4-14 16:04:10 | 显示全部楼层
雨子哥 发表于 2022-4-14 12:02
同求,怎样实现最快循环遍历经纬度格点呢?

这是我对1979-2020年北纬0-50°,东经100-180°滤波的循环程序,在循环之前先筛选一下你需要的范围速度会快很多。
begin

f = addfile("/home/mars/Liubs/lunwen/data/olr.day.mean.nc","r")

    time = (f->time)
    time@units  = "hours since 1800-01-01 00:00:0.0"

; Convert to UTC time.

   time_ut  = cd_calendar(time,0)

; Store return information into more meaningful variables.

    year   = time_ut(:,0)  ; Convert to integer for

; print(year)

   indtime = ind((year.ge.1979).and.(year.le.2020))
   ;print(indtime)
   
   olr = (f->olr(indtime,{0:50},{100:180}))
   ;print(olr)
   xBPF2 = new((/15341,21,33/),float)
;-------------do loop -------------------
do i = 0,32
    do j = 0,20

  olr2  = olr(:, j, i)
  
  ihp     = 2                             ; band pass
  sigma   = 1.0                           ; Lanczos sigma

  nWgt    = 31                          ; loose 100 each end                           
  fca     = 1./60.                       ; start freq
  fcb     = 1./30.                        ; last  freq
  wgt     = filwgts_lanczos (nWgt, ihp, fca, fcb, sigma )
  opt     = 0
  ;printVarSummary(wgt)
  xBPF    = wgt_runave_n_Wrap ( olr2, wgt, opt, 0 )      ; 10-20 day
  xBPF@units = "W/m^2"
  xBPF2(:, j, i) = xBPF

   end do
end do ; the stride is not optional if end < start

;-------------output -------------------
copy_VarCoords(olr(:, :, :),xBPF2)
system("/bin/rm -f "+"30-60olr.nc")
  fout = addfile("30-60olr.nc","c")
  filedimdef(fout,"time",-1,True)
  fout->olr = xBPF2(:,:,:)

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

使用道具 举报

新浪微博达人勋

发表于 2022-4-21 18:42:52 | 显示全部楼层
谢谢楼主!NCL的处理速度还是很快的,我也已经通过直接写循环实现了。之前提问是因为我以为需要并行运行。
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

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

本版积分规则

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

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

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