爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 12003|回复: 16

ncl 读取数据有错 求教

[复制链接]
发表于 2014-3-18 20:01:36 | 显示全部楼层 |阅读模式

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

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

x
1.png

图如上    撒哈拉沙漠那一块 位置不对 应该是读数据的问题 可是我又找不出来 求大神们帮忙指点一下

;=============================================================
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"   
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/shea_util.ncl"
;=============================================================
begin
path1="I:/wydata/cgcm/19801201/atmos.0131.gdat"
nrec=0
dims = (/8,18,64,128/)
orig1=fbindirread(path1,nrec,dims,"float")
wks=gsn_open_wks("ps","jianyancontour")   ;open a workstation
gsn_define_colormap(wks,"gui_default");
res=True
res@cnFillOn=True
  res@cnInfoLabelOn        = False              ; turn off contour info label
  res@cnLinesOn            =True            ; turn off contour lines
res@cnLineLabelsOn       = False             ; turn off line labels
res@mpFillOn             = False              ; turn off gray continents
res@cnLevelSelectionMode="ManualLevels"
;=======全球的================================================
res@cnMinLevelValF=-60
res@cnMaxLevelValF=30
res@cnLevelSpacingF=5
res@lbLabelBarOn         =True         ; No single label bar
res@gsnAddCyclic    =False
res@mpCenterLonF         = 180               ; Centers the plot at 180
plot=gsn_csm_contour_map_ce(wks,orig1(7,10,:,:)-273.15,res)
end

密码修改失败请联系微信:mofangbao
发表于 2014-3-18 20:52:30 | 显示全部楼层
本帖最后由 longlivehj 于 2014-3-18 21:00 编辑
方法一:
你把res@mpCenterLonF         = 180这句去掉再试试!

方法二:
如果不删除res@mpCenterLonF         = 180,非要把180显示在中心,可以对数据进行挪动,用下面的语句:
tmp = orig1(:, :, :, : 63)
orig1(:, :, :, : 63) = orig1(:, :, :, 64 :)
orig1(:, :, :, 64 :) = tmp

方法三:
设置坐标变量
密码修改失败请联系微信:mofangbao
回复 支持 0 反对 1

使用道具 举报

发表于 2014-3-18 20:13:10 | 显示全部楼层
“撒哈拉沙漠那一块 位置不对”
这啥意思啊?
也不知道什么数据,除了res@gsnAddCyclic = False,180度有白线之外,看不出图有什么问题。
密码修改失败请联系微信:mofangbao
发表于 2014-3-18 20:20:38 | 显示全部楼层
273.15,看到这个,估计是气温。撒哈拉气温不够高,是这个意思么?
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2014-3-18 20:23:26 | 显示全部楼层
longlivehj 发表于 2014-3-18 20:13
“撒哈拉沙漠那一块 位置不对”
这啥意思啊?
也不知道什么数据,除了res@gsnAddCyclic = False,180度有 ...


                               
登录/注册后可看大图


上面是模式转出来的资料 下面是NCEP资料  温度最高的那一块 位置不对
模式转出来的资料用grads画图是正确的 温度最高的那块位置与NCEP资料的位置一致。

所以我想问是不是我用ncl读取读错了

谢谢
密码修改失败请联系微信:mofangbao
发表于 2014-3-18 20:39:59 | 显示全部楼层
ぁ哎哟ぞ 发表于 2014-3-18 20:23
上面是模式转出来的资料 下面是NCEP资料  温度最高的那一块 位置不对
模式转出来的资料用grads画图是 ...

我只看到一个图啊!
感觉你东西半球弄反了,也就是坐标变量出了问题。
你的orig1没有坐标变量吧!程序运行的时候没有warning出现吗?大概就是提示你没有经纬度坐标之类的。
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2014-3-19 08:58:05 | 显示全部楼层
longlivehj 发表于 2014-3-18 20:52
方法一:
你把res@mpCenterLonF         = 180这句去掉再试试!

谢谢你

1、第一种方法没有用 只是图中心变了 温度场和地图还是不对应的

2、第二种方法 成功了  谢谢呀

3、第三种方法 我是这样加的  没有用 还是提示warning  可以麻烦看看么 谢谢
time=fspan(1,8,8)
lon=fspan(0,357.1875,128)
lat=fspan(-88.59375,90,64)

;---Create lat and long coordinate variables
   lon!0          = "lon"
   lon@long_name  = "lon"
   lon@units      = "degrees-east"
   lon&lon        = lon

  lat!0          = "lat"
   lat@long_name  = "lat"
   lat@units      = "degrees_north"
   lat&lat        = lat

;---Name dimensions of t and assign coordinate variables
   t!2    = "lat"
   t!3    = "lon"
   t&lat  = lat
   t&lon  = lon
   t@long_name = "temperature"
   t@units     = "K"
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2014-3-19 09:23:40 | 显示全部楼层
longlivehj 发表于 2014-3-18 20:52
方法一:
你把res@mpCenterLonF         = 180这句去掉再试试!

我把变量名改成t了 比较短
密码修改失败请联系微信:mofangbao
发表于 2014-3-19 09:42:38 | 显示全部楼层
ぁ哎哟ぞ 发表于 2014-3-19 08:58
谢谢你

1、第一种方法没有用 只是图中心变了 温度场和地图还是不对应的

warning能发来看看么?
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2014-3-21 14:30:04 | 显示全部楼层
longlivehj 发表于 2014-3-19 09:42
warning能发来看看么?

188.png


就是这样的  
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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