爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 9626|回复: 8

[作图] ncl坐标设置求助

[复制链接]

新浪微博达人勋

发表于 2022-9-27 20:43:32 | 显示全部楼层 |阅读模式

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

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

x
报这样的错:
(0)     check_for_y_lat_coord: Warning: Data either does not contain
(0)     a valid latitude coordinate array or doesn't contain one at all.
(0)     A valid latitude coordinate array should have a 'units'
(0)     attribute equal to one of the following values:
(0)         'degrees_north' 'degrees-north' 'degree_north' 'degrees north' 'degrees_N' 'Degrees_north' 'degree_N' 'degreeN' 'degreesN' 'deg north'
(0)     check_for_lon_coord: Warning: Data either does not contain
(0)     a valid longitude coordinate array or doesn't contain one at all.
(0)     A valid longitude coordinate array should have a 'units'
(0)     attribute equal to one of the following values:
(0)         'degrees_east' 'degrees-east' 'degree_east' 'degrees east' 'degrees_E' 'Degrees_east' 'degree_E' 'degreeE' 'degreesE' 'deg east'

两个变量,hgt2021就能画出BI就不行:
[img]file:///C:\Users\Lenovo\Documents\Tencent Files\2420803507\Image\C2C\76T2[RA%10W8E%6ZDQ[R@]2.png[/img]
真的不理解
代码如下:
BI=new(dimsizes(hgt2021),typeof(hgt2021))
lon=f2021->lon(0:143)
lat = f2021->lat(0:72)
BI!0="lat"
BI!1="lon"
dims=dimsizes(BI)
nlon=dims(1)
nlat=dims(0)


lon@units="Degrees_east"
lat@units = "Degrees_north"

;;计算BI
do lat=24,48,1
    do lon=0,142,1
        Zu=dim_min_n(hgt2021(lat:lat+24,lon),0)
        Zd=dim_min_n(hgt2021(lat-24:lat,lon),0)
        Rc=((Zu+hgt2021(lat,lon))/2+(Zd+hgt2021(lat,lon))/2)/2
        BI(lat,lon)=100*((hgt2021(lat,lon)/Rc)-1.0)
    end do
end do

do lat = 48,72,1
    do lon = 0,143,1
          Zu=dim_min_n(hgt2021(lat-24:lat,lon),0)
          Zd=dim_min_n(hgt2021(lat:72,lon),0)
          Rc=((Zu+hgt2021(lat,lon))/2+(Zd+hgt2021(lat,lon))/2)/2
          BI(lat,lon)=100*((hgt2021(lat,lon)/Rc)-1.0)
    end do
end do
do lat = 0,24,1
    do lon = 0,143,1
         Zu=dim_min_n(hgt2021(0:lat,lon),0)
         Zd=dim_min_n(hgt2021(lat:lat+24,lon),0)

         Rc=((Zu+hgt2021(lat,lon))/2+(Zd+hgt2021(lat,lon))/2)/2
         BI(lat,lon)=100*((hgt2021(lat,lon)/Rc)-1.0)
    end do
end do
wks  = gsn_open_wks("png","fig_BI")
gsn_define_colormap(wks,"MPL_YlGnBu")
res2                     = True              ; Plot mods desired.
res2@gsnPolar   = "NH"                 ;北半球的极射赤面投影
res2@cnFillOn                   =True;等值线填充
res2@lbLabelBarOn               =True;色标打开
res2@cnLinesOn                  =False;不要等值线怪丑的
res2@cnLineLabelsOn             =True;等值线标注数值
res2@cnLevelSpacingF=0.01           ;等值线间隔值
res2@cnMinLevelValF    =0     ;等值线最小值
res2@cnMaxLevelValF    =5.5      ;等值线最大值
res2@cnLevelSelectionMode = "ExplicitLevels"
res2@tmYLLabelStride=1
res2@tmXBLabelStride=1
res2@tmXBMinorOn=False
res2@tmYLMinorOn=False
res2@tmXBMajorLengthF=0.01
res2@tmYLMajorLengthF=0.01
res2@mpInlandWaterFillColor="white"
res2@mpLandFillColor="white"
res2@mpOceanFillColor="white"
res2@mpNationalLineColor="black"
res2@mpGeophysicalLineColor="black"
res2@mpNationalLineThicknessF=2
plot_BI = gsn_csm_contour_map_polar(wks,BI1,res2)
end
出图只出一半,把格点数当成经纬度了,但是同样条件下hgt2021就不会





密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 0
发表于 2022-9-28 09:07:00 | 显示全部楼层
计算的时候可能把数值赋值了,坐标变量没复制。画图之前把BI1的坐标变量重新设置下就行了
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-9-28 09:10:52 | 显示全部楼层
用这个复制数据的属性到你要画的数据上面,copy_VarMeta(var, data) 。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2022-10-1 09:42:26 | 显示全部楼层
是冉冉升起的冉 发表于 2022-9-28 09:10
用这个复制数据的属性到你要画的数据上面,copy_VarMeta(var, data) 。

呜呜呜我复制了,还是报和之前一样的错,
copy_VarMeta(hgt2021, BI)
plot_BI = gsn_csm_contour_map_polar(wks,BI,res2)
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2022-10-1 09:53:25 | 显示全部楼层
是冉冉升起的冉 发表于 2022-9-28 09:10
用这个复制数据的属性到你要画的数据上面,copy_VarMeta(var, data) 。

我去,换了个语句就可以了,谢谢谢谢!!!!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2022-10-1 10:07:37 | 显示全部楼层
图片缺了一块呜呜呜呜呜呜呜

缺了一块大家知道为啥吗呜呜呜呜呜呜呜

缺了一块大家知道为啥吗呜呜呜呜呜呜呜
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2022-10-1 16:11:01 | 显示全部楼层
Augleo 发表于 2022-10-1 10:07
图片缺了一块呜呜呜呜呜呜呜

改好啦,用的是poisson_grid_fill
将网格中所有缺失(_FillValue)的值替换为通过松弛求解泊松方程得出的值~
详细的大家可以去官网上看看,补上了缺省值~
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2022-10-1 16:13:26 | 显示全部楼层
谢谢大家的帮助!!!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2022-10-1 16:42:09 | 显示全部楼层
后续总结一下,当我发现问题在坐标变量的时候,我用了三种   
copy_VarMeta(var, data)                                 ;将var变量的元数据复制给data,copy_VarMeta等于 copy_VarAtts+copy_VarCoords
;       copy_VarAtts(var, data)                                       ; 将var变量的属性复制给data
;       copy_VarCoords(var, data)                                  ; 将var变量的坐标复制给data
不知道为什么,用复制坐标和属性的都不能成功,只有单单复制坐标最后结果都正确,虽然不知道为什么,但还是记录一下下。。。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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