爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6924|回复: 6

[作图] 生成.bin数据及grads画图

[复制链接]
发表于 2017-7-18 17:06:18 | 显示全部楼层 |阅读模式

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

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

x
各位好,想请教一下。由于fortran程序中用到的数据类型是.bin类型,所以我想把nc数据先转化为.bin类型的。结果转化后,用grads画图,画出来的图不对。我用
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2017-7-18 17:08:44 | 显示全部楼层
fbindirwrite和fbinrecwrite 都试过了。生成的bin数据,用grads画图或者是在.f90程序里头运行都不对。有人知道怎么处理吗?数据是4维的数据,时间、层数、纬度、经度。
密码修改失败请联系微信:mofangbao
发表于 2017-7-18 22:51:19 | 显示全部楼层
确定是nc文件转bin的时候没搞好?

还是bin的读取没搞好?
个人感觉NCL还不至于到写个二进制文件会出错的地步,很可能是读取和写入不匹配

当然,以上都是  我猜

密码修改失败请联系微信:mofangbao
发表于 2017-7-19 08:43:39 | 显示全部楼层
ncl可以直接用nc画图,为啥要转bin再用grads,多拐两个弯?
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2017-7-19 08:47:15 | 显示全部楼层
谢谢回复,我用grads绘图只是为了看转的bin文件是否正确,因为,bin数据放入fortran以后出来的结果有问题。
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2017-7-19 08:48:07 | 显示全部楼层
这是我的那个ncl脚本。
  new_file_tmp="air.mon.mean.nc"
  yrStrt=197901
  yrLast=201612
  f1=addfile (new_file_tmp, "r")
  time   = f1->time
  u=short2flt(f1->air)
  lat=f1->lat
  lon=f1->lon
  level=f1->level
  counter_u=dimsizes(u)
  iymdh    = cd_calendar(time, -1)
  iYYYY  = ind(iymdh.ge.yrStrt .and. iymdh.le.yrLast)
  counter_time=dimsizes(iYYYY)
  counter_levele=dimsizes(level)
  x0=u(iYYYY,:,:,:)
  ;x1=x0(time|:,level|:,lat|:,lon|:)
  fName = "air_0718new_v3.bin"
  fbinrecwrite (fName, -1, x0 )
  end
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2017-7-19 09:05:39 | 显示全部楼层
好吧。我重新用ncl读取原本的nc数据的结果和ncl读取bin数据的结果是一样的。那就是我grads画图有问题了。真是头晕。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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