爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 4572|回复: 0

[提问] 提问:NCL求多个特定位置的逐日平均遇到的问题

[复制链接]

新浪微博达人勋

发表于 2017-4-30 11:07:04 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 FrankieLJY 于 2017-4-30 11:10 编辑

背景:一共有30天的wrf模拟数据,每天一个文件,27个站点坐标,想求27个站点坐标每天数据的平均,就是把这27个点的日平均数据再做平均

代码:
begin
    nlat=(/37.066667,37.366667,38.033333,38.083333,38.233333,\
          38.366667,38.85,39.05,39.083333,39.083333,39.116667,39.283333,\
          39.433333,39.65,39.733333,39.8,39.85,40.2,40.383333,\
          40.416667,40.416667,40.45,40.783333,40.983333,41.15,\
          41.2,41.966667/)
    nlon=(/114.05,115.383333,114.416667,116.55,115.733333,117.35,\
          115.516667,117.716667,114.566667,117.05,116.383333,118.466667,\
          118.883333,118.1,117.283333,116.466667,\
          119.516667,117.95,116.866667,115.05,118.95,115.966667,\
          114.883333,117.95,114.7,116.63333,117.766667/)
    a=addfile("/data2/JJJ2010-201001/output/wrfout_d02_2010-01-02_00:00:00", "r")
    lat2d=wrf_user_getvar(a, "XLAT", 0)
    lon2d=wrf_user_getvar(a, "XLONG", 0)
    do t=0,29,1    ;30天数据,分30次读取
      point=0.        ;添加一个变量
      if (t.lt.8) then  
        f=addfile("/data1/JJJ2010-201001/output/wrfout_d02_2010-01-0"+(t+2)+"_00:00:00", "r")   ;读取时间对应的文件
        tc=wrf_user_getvar(f, "T2", -1)   ;取温度数据
        s=dim_avg_n(tc,0)                       ;对整个24小时做平均
        do i=0,26,1                                    
          pointvalue=rcm2points(lat2d, lon2d, s, nlat(i), nlon(i), 0)  ;取27个点对应的值
          pointvalue=pointvalue-273.15                                          ;转换为摄氏温度
          point=point+pointvalue                                                     ;将27个点的温度累加起来
        end do  
        point=point/27                                                                    ;再除以27 得到27个点的平均温度
        print(point)                                                                          :输出平均温度
        delete(point)                                                                         ;删除变量,再做循环是重新开始
      end if
      if (t.gt.7) then                                                                          :和上面的代码一样类似
        f=addfile("/data1/JJJ2010-201001/output/wrfout_d02_2010-01-"+(t+2)+"_00:00:00", "r")
        tc=wrf_user_getvar(f, "T2", -1)
        s=dim_avg_n(tc,0)
        do i=0,26,1
          point=point+rcm2points(lat2d, lon2d, s, nlat(i), nlon(i), 0)
          pointvalue=pointvalue-273.15
          point=point+pointvalue
        end do
        point=point/27
        print(point)
        delete(point)
      end if
    end do
end

问题:1.这个思路我觉得应该没有问题,但是出来的结果都是缺省值的一个结果,而且所有的结果都是一样,希望家园的朋友指出错误
          2.对于print出来的结果,如果我想写到txt文件中,请问可以用什么方法啊,具体的语法可不可以说一下

密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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