爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 15859|回复: 12

[其他] netcdf格式的文件怎么相减求高手指教

[复制链接]

新浪微博达人勋

发表于 2012-10-10 17:21:36 | 显示全部楼层 |阅读模式

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

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

x
要得到两个netcdf格式数值差值,然后再用ncl作图,现在不知道怎么对netcdf文件做减法。求高手指教
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-10-10 17:46:27 | 显示全部楼层
把nc文件用Matlab读进来,相同的矩阵做差,再保存处理吧。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-10-10 21:35:21 | 显示全部楼层
用NCO工具包,ncdiff命令一运行就出来了。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-10-20 22:18:13 | 显示全部楼层
直接把俩都读进去,直接减不就成了?不过格点数得一样。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-10-22 09:06:51 | 显示全部楼层
首先,你这种说法本身就有点问题,nc文件是一堆变量的集合,变量有自己的属性和维数,估计lz要表达的意思是变量相减吧,这样的话,把变量读出来,v1=f->var1, v2=f->var2,保证二者维数相同,然后再v3=v1,v3=(/v1-v2/),之后再把v3的属性改一下。建议lz先把nc文件的相关概念补一补吧
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-10-22 10:02:45 | 显示全部楼层
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-10-22 11:51:08 | 显示全部楼层
上帝也厕所 发表于 2012-10-22 10:02
我能加你一下吗?我的qq是823727591,求交点关于ncl的问题。谢谢

我不怎么用QQ,有事可以在论坛聊,交流的经验别人也能看到,这样不是更好?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-10-22 13:06:08 | 显示全部楼层
hzwjy 发表于 2012-10-22 11:51
我不怎么用QQ,有事可以在论坛聊,交流的经验别人也能看到,这样不是更好?

那挺好的。呵呵
do while(date_start .lt. "20101231 23" )
year=systemfunc("date +%Y  -d '"+date_start+"'")
month=systemfunc("date +%m -d '"+date_start+"'")
day=systemfunc("date +%d   -d '"+date_start+"'")
hour=systemfunc("date +%H  -d '"+date_start+"'")
  precip=cbinread("FY2E_FDI_ALL_NOM_"+year+""+month+""+day+"_"+hour+"00.rad",(/601,1001/),"double")
res@tiMainString = "GuangXi Radiation 1km Data"
res@gsnLeftString=date_start
res@gsnRightString="W/m~S~2~N~"
plot=gsn_csm_contour_map(wks,precip,res)   
draw(plot)
system("rm -f 1km_gx*.png")
frame(wks)
system("mv 1km_gx*.png "+year+month+day+hour+".png")
date_start=systemfunc("date +%Y%m%d' '%H -d ' "+date_start+" 1 hour'")
print(date_start+"")
end do
这个已经可以画图,但是因为有的数据没有,中间就会停止画图,还得人工改时间才能进行画图。有没有一个更好的方法来进行批量画图,希望大神能知道一下,谢谢

这个问题
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-10-22 14:19:46 | 显示全部楼层
上帝也厕所 发表于 2012-10-22 13:06
那挺好的。呵呵
do while(date_start .lt. "20101231 23" )
year=systemfunc("date +%Y  -d '"+date_st ...

可以加上判断,比如
if ( all (ismissing(data) ) ) then
    continue
end if
之类的
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-10-22 14:37:09 | 显示全部楼层
hzwjy 发表于 2012-10-22 14:19
可以加上判断,比如
if ( all (ismissing(data) ) ) then
    continue

我的意思是说FY2E_FDI_ALL_NOM_"+year+""+month+""+day+"_"+hour+"00.rad"没有这个小时的文件。程序就跳出来了。还有后面小时的文件,然后就得手工的去改。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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