爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
楼主: 游子

[分享资料] 一些常用的grads命令与ncl命令对应关系

  [复制链接]
发表于 2013-11-8 13:54:24 | 显示全部楼层
lz,请教个问题:
我有一个nc文件,变量维数是[time,z,lat,lon],分别是366天,1个高度,360个纬度,720个经度,现在我想用write_matrix语句输出所有时次的数据(我知道这个命令只能输出2维,所以想写个循环输出),循环写成如下格式:

a=addfile("2008_prcp.nc","r")
prcp=a->prcp
time=a->time
nlon=dimsizes(longitude)
opt=True
fmtf= nlon+"f8.2"
opt@fout="2008_prcp_all.dat"

do n=0,dimsizes(time)-1
write_matrix (prcp(n,0,:,:), fmtf, opt)
end do
-----------------------------为什么最后只输出第366天的值,要怎么改这个循环才能把所有的天数数据都输出呢??求解答,很感谢!
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2013-11-8 14:54:57 | 显示全部楼层

这是因为write-matrix只支持矩阵输出,只能输出二维场,你是用循环时,后一个将覆盖前一个。循环几次就覆盖几次。所以最后只能输出一个时次、
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2013-11-8 15:00:38 | 显示全部楼层
游子 发表于 2013-11-8 14:54
这是因为write-matrix只支持矩阵输出,只能输出二维场,你是用循环时,后一个将覆盖前一个。循环几次就覆 ...

解决方法如下:
a=addfile("2008_prcp.nc","r")
prcp=a->prcp
time=a->time
nlon=dimsizes(longitude)
opt=True
fmtf= nlon+"f8.2"
opt@fout="2008_prcp_all.dat"

dim = dimsizes(prcp)

prcp_2D = onedtond(ndtooned(prcp(:,0,:,:)), (/dim(0)*dim(1), dim(2)/)
write_matrix (prcp_2D, fmtf, opt)


这就是“降维”的思想。。。
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2013-11-8 15:01:34 | 显示全部楼层
majianyong 发表于 2013-11-8 13:54
lz,请教个问题:
我有一个nc文件,变量维数是[time,z,lat,lon],分别是366天,1个高度,360个纬度,720个经 ...

dim = dimsize(prcp(:,0,:,:))
密码修改失败请联系微信:mofangbao
发表于 2013-11-9 18:29:04 | 显示全部楼层
游子 发表于 2013-11-8 15:01
dim = dimsize(prcp(:,0,:,:))

多谢lz提点!dim = dimsize(prcp(:,0,:,:))应该是dim = dimsizes(prcp(:,0,:,:))吧!
还有你写的这句(/dim(0)*dim(1), dim(2)/)相当于/366天×360lat,720lon/是吧?!这样利用marix输出的是366天的360×720个格点么?我感觉是不是要写成(/dim(0),  dim(1)*dim(2)/)相当于/366天 , 360lat×720lon/比较合理?因为在NCL不是列优先么?
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2013-11-9 18:39:45 | 显示全部楼层
majianyong 发表于 2013-11-9 18:29
多谢lz提点!dim = dimsize(prcp(:,0,:,:))应该是dim = dimsizes(prcp(:,0,:,:))吧!
还有你写的这句(/d ...

OK,你理解了就好。挺简单的。
密码修改失败请联系微信:mofangbao
发表于 2013-11-9 19:13:35 | 显示全部楼层
游子 发表于 2013-11-9 18:39
OK,你理解了就好。挺简单的。

抱头痛哭。。。刚学用起来还是很生疏,困难重重!
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2013-11-9 23:35:59 | 显示全部楼层
万事开头难,熟能生巧。
密码修改失败请联系微信:mofangbao
发表于 2013-12-2 09:57:19 | 显示全部楼层
好啊,顶啊!
密码修改失败请联系微信:mofangbao
发表于 2013-12-3 15:01:27 | 显示全部楼层
简单的程序  不过顶一下
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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