NCL进行区域平均的方法

区域平均最主要的函数为wgt_areaave(q, wgty, wgtx, opt)
该函数的功能是以wgtx及wgty为权重计算数组q的区域平均值,具体参数定义详见官网。

设给定数组u(lat,lon),lat和lon为高斯格点上的经纬度,权重为高斯权重,使用如下几种权重方法计算区域平均。
(1)格网面积为权重

	lat = f ->lat(:)
    lon = f ->lon(:)
	jlat1  = dimsizes(lat)
    rad1   = 4.0*atan(1.0)/180.0
    re1    = 6371220
    rr1    = re1*rad1
    dlon1  = abs(lon(2)-lon(1))*rr1
    dx1    = dlon1*cos(lat*rad1)
    dy1    = new(jlat1,typeof(dx1))
    dy1(0) = abs(lat(2) - lat(1)) * rr1
    dy1(1:jlat1-2) = abs(lat(2:jlat1-1) - lat(0:jlat1-3)) * rr1 * 0.5
    dy1(jlat1-1)   = abs(lat(jlat1 - 1) - lat(jlat1 - 2)) * rr1
    area1 = dx1 * dy1

    u_area = wgt_areaave(u, area1, 1.0, 1)

(2)高斯格点为权重

gwgt = f ->gwgt
u_gwgt = wgt_areaave(u, gwgt, 1.0, 1)

(3)纬度余弦为权重

clat = cos(lat * rad)
u_clat = wgt_areaave(u, clat, 1.0, 1)

(4)求平均值 (可用于有缺测数据)

u_avg = dim_avg_n(u({min(lat):max(lat)},{min(lon):max(lon)}), (/0,1/))
  • 9
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值