爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 12823|回复: 8

[作图] 新手求教grib2数据用ncl画图时出现有关经纬度的警告

[复制链接]

新浪微博达人勋

发表于 2020-3-11 08:59:50 | 显示全部楼层 |阅读模式
5金钱
新手求教grib2用ncl画图时出现警告,请问这个警告需要改吗,要怎么改?(数据已经上传至附件)
begin
f1 = addfile("fnl_20200127_00_00.grib2","r")
f2 = addfile("fnl_20200127_06_00.grib2","r")
f3 = addfile("fnl_20200127_12_00.grib2","r")
f4 = addfile("fnl_20200127_18_00.grib2","r")

u1 = f1->UGRD_P0_L100_GLL0(18,:,:)
u2 = f2->UGRD_P0_L100_GLL0(18,:,:)
u3 = f3->UGRD_P0_L100_GLL0(18,:,:)
u4 = f4->UGRD_P0_L100_GLL0(18,:,:)
v1 = f1->VGRD_P0_L100_GLL0(18,:,:)
v2 = f2->VGRD_P0_L100_GLL0(18,:,:)
v3 = f3->VGRD_P0_L100_GLL0(18,:,:)
v4 = f4->VGRD_P0_L100_GLL0(18,:,:)

u_500 = (u1+u2+u3+u4)/4
v_500 = (v1+v2+v3+v4)/4

wks = gsn_open_wks("png","uv500")

res                       = True
res@gsnLeftString         = ""
res@gsnRightString        = ""

res@pmTickMarkDisplayMode = "Always"
res@vcGlyphStyle          = "FillArrow"

res@vcFillArrowEdgeColor  = "white"  
res@vcFillArrowFillColor  = "black"
res@vcMinMagnitudeF       = 5.0

res@vcRefAnnoOn           = True
res@vcRefMagnitudeF       = 20
res@vcRefLengthF          = 0.04
res@vcRefAnnoBackgroundColor = "white"
res@vcRefAnnoPerimOn      = False
res@vcRefAnnoFontHeightF  = 0.015
res@vcRefAnnoString2      = "20 m/s"
res@vcRefAnnoOrthogonalPosF = -1.25
res@vcMinDistanceF        = 0.03

plot = gsn_csm_vector_map(wks,u_500,v_500,res)
end
出现的警告是
(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'

请大家帮我看看要怎么改,最好是能帮我改一下,新手小白,真的谢谢大家了!


微信图片_20200311084951.png
uv500.png

fnl_20200127_00_00.grib2

24.24 MB, 下载次数: 12, 下载积分: 金钱 -5

fnl_20200127_06_00.grib2

24.23 MB, 下载次数: 12, 下载积分: 金钱 -5

fnl_20200127_12_00.grib2

24.16 MB, 下载次数: 0, 下载积分: 金钱 -5

fnl_20200127_18_00.grib2

24.17 MB, 下载次数: 0, 下载积分: 金钱 -5

最佳答案

查看完整内容

要重新定义变量的维 可以参考:http://blog.sina.com.cn/s/blog_5d7295010101j6xx.html
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2020-3-11 08:59:51 | 显示全部楼层
要重新定义变量的维
可以参考:http://blog.sina.com.cn/s/blog_5d7295010101j6xx.html

评分

参与人数 1金钱 +2 收起 理由
张丹瑜婷 + 2 很给力!

查看全部评分

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

使用道具 举报

新浪微博达人勋

发表于 2020-3-11 09:55:38 | 显示全部楼层
copy_VarCoords(u1,u_500)
copy_VarCoords(v1,v_500)
赋经纬度属性

评分

参与人数 2金钱 +4 收起 理由
madridistawzj + 2 很给力!
张丹瑜婷 + 2 赞一个!

查看全部评分

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

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-3-11 10:28:49 | 显示全部楼层
一大碗年糕 发表于 2020-3-11 09:08
要重新定义变量的维
可以参考:http://blog.sina.com.cn/s/blog_5d7295010101j6xx.html

begin
f1 = addfile("fnl_20200127_00_00.grib2","r")
f2 = addfile("fnl_20200127_06_00.grib2","r")
f3 = addfile("fnl_20200127_12_00.grib2","r")
f4 = addfile("fnl_20200127_18_00.grib2","r")

u1 = f1->UGRD_P0_L100_GLL0(18,:,:)
u2 = f2->UGRD_P0_L100_GLL0(18,:,:)
u3 = f3->UGRD_P0_L100_GLL0(18,:,:)
u4 = f4->UGRD_P0_L100_GLL0(18,:,:)
v1 = f1->VGRD_P0_L100_GLL0(18,:,:)
v2 = f2->VGRD_P0_L100_GLL0(18,:,:)
v3 = f3->VGRD_P0_L100_GLL0(18,:,:)
v4 = f4->VGRD_P0_L100_GLL0(18,:,:)

lat_pts = f1->lat_0
lon_pts = f1->lon_0

u = (u1+u2+u3+u4)/4
v = (v1+v2+v3+v4)/4

u!0 = "lat"
u&lat = lat_pts
u!1 = "lon"
u&lon = lon_pts
v!0 = "lat"
v&lat = lat_pts
v!1 = "lon"
v&lon = lon_pts

非常感谢,按照你提供的连接我改好了,但是我还想问一下,为什么nc数据的变量不需要读入经纬度坐标,但grib2的数据经纬度数据需要要读入,然后重新给变量定义维度?
float UGRD_P0_L100_GLL0 ( lv_ISBL5, lat_0, lon_0 )
         initial_time : 01/27/2020 (00:00)
         forecast_time_units :  hours
         forecast_time :        0
         level_type :   Isobaric surface (Pa)
         parameter_template_discipline_category_number :        ( 0, 0, 2, 2 )
         parameter_discipline_and_category :    Meteorological products, Momentum
         grid_type :    Latitude/longitude
         _FillValue :   1e+20
         units :        m s-1
         long_name :    U-component of wind
         production_status :    Operational products
         center :       US National Weather Service - NCEP (WMC)
这是头文件里u分量的属性,不是已经定义维度了吗为什么要重新定义?
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2020-3-11 10:58:49 | 显示全部楼层
张丹瑜婷 发表于 2020-3-11 10:28
begin
f1 = addfile("fnl_20200127_00_00.grib2","r")
f2 = addfile("fnl_20200127_06_00.grib2","r")
...

具体我也不太清楚,可能是这个grib数据投影的方式和你选择的画图的投影不一样?有时候我也会出现这样重新的定义一下一般就好了
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2020-3-11 11:23:17 | 显示全部楼层
不用那么麻烦
u=u1
u= (u1+u2+u3+u4)/4
v=v1
v = (v1+v2+v3+v4)/4
赋了个初值就不会出问题,可能直接计算的话只有计算值,其他的参数属性没一同带景来的原因。

评分

参与人数 1金钱 +2 收起 理由
张丹瑜婷 + 2 很给力!

查看全部评分

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

使用道具 举报

新浪微博达人勋

发表于 2020-3-11 20:50:48 | 显示全部楼层
张丹瑜婷 发表于 2020-3-11 10:28
begin
f1 = addfile("fnl_20200127_00_00.grib2","r")
f2 = addfile("fnl_20200127_06_00.grib2","r")
...

带有坐标的变量在进行四则运算、开方、乘方、对数运算时会丢失坐标和属性信息,运算结果仅保留计算值。可以事先赋予计算结果坐标,再进行计算。也可以在运算后,拷贝一个有坐标的变量到运算结果。看图吧~~~这个问题很基础,但很多朋友遇到了才反应过来。

批注 2020-03-11 204715.png

评分

参与人数 1金钱 +2 收起 理由
张丹瑜婷 + 2 很给力!

查看全部评分

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

使用道具 举报

新浪微博达人勋

发表于 2020-3-11 20:54:24 | 显示全部楼层
张丹瑜婷 发表于 2020-3-11 10:28
begin
f1 = addfile("fnl_20200127_00_00.grib2","r")
f2 = addfile("fnl_20200127_06_00.grib2","r")
...

图被压缩了,再传一次
批注 2020-03-11 204715.png
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-3-15 15:52:00 | 显示全部楼层
t_imba 发表于 2020-3-11 11:23
不用那么麻烦
u=u1
u= (u1+u2+u3+u4)/4

明白了,谢谢你
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

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

本版积分规则

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

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

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