请选择 进入手机版 | 继续访问电脑版
爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 7731|回复: 10

Micaps第11类风场数据画图问题

[复制链接]

新浪微博达人勋

发表于 2019-9-12 11:54:08 | 显示全部楼层 |阅读模式

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

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

x
最近在学NCL,很多不是太懂。想用Micaps第11类风场数据画图,参考了官网例子和论坛的帖子,画出来的图还是不正确。风场原始数据文件如下:
1.png
自己测试的时候,先手动把前面两行描述信息删除了,只剩下后面的数据部分。根据第11类格式的定义,先存储的u风,再存储的v风。
============================================
ncl代码如下:
begin
wks = gsn_open_wks("png", "/home/xqxty/script/ncl/wind10")

;-----------读取数据-----------------
filePath = "/home/xqxty/script/ncl/19091120.003"
nrows = 321
ncols = 561
data = asciiread(filePath, (/2,nrows,ncols/), "float")

;-----------提取u风、v风-----------------
u = data(0,:,:)  ;二维数组
v = data(1,:,:)  ;二维数组

;-----------创建lon、lat二维数组-----------------
lon = new((/nrows,ncols/),"float")
lat = new((/nrows,ncols/),"float")

do i = 0,nrows-1
    lat(i,:) = 55.0-i*0.125
end do
do j = 0,ncols-1
    lon(:,j) = 70.0+j*0.125
end do

shapeFile = "/home/xqxty/script/ncl/guizhou.shp"
  res               = True
  res@gsnMaximize   = True
  res@gsnDraw       = False
  res@gsnFrame      = False
  res@mpOutlineOn   = True
  res@mpFillOn      = False  
  res@mpDataBaseVersion = "MediumRes"
  res@pmTickMarkDisplayMode = "Always"
  res@mpLimitMode         = "LatLon"
  res@mpMinLatF             = 24
  res@mpMaxLatF            = 30
  res@mpMinLonF            = 103
  res@mpMaxLonF           = 110

map = gsn_csm_map(wks,res)

  pres             = True
  pres@gsLineColor = "blue"
  poly = gsn_add_shapefile_polylines(wks,map,shapeFile,pres)

  draw(map)

;wmsetp("col", 2)   
wmsetp("wbs", .03)
wmbarb(wks,lon,lat,u,v)
frame(wks)
end


下面左边是我画出来的图,右边是M4调取相同数据画出来的图。请各位大神指点一下,到底是哪里出问题了,谢谢!
wind10.png 2.png

19091120.003

3.44 MB, 下载次数: 18, 下载积分: 金钱 -5

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

新浪微博达人勋

发表于 2019-9-12 13:02:38 | 显示全部楼层
风向画反了,用风羽的话,风羽指向风的来向。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2019-9-12 13:36:31 | 显示全部楼层
解脱 发表于 2019-9-12 13:02
风向画反了,用风羽的话,风羽指向风的来向。

嗯嗯,经过仔细测试,我也已经发现了一个问题,把U、V分量都变成相反数。但是还有个问题不懂,就是U、V分量都乘以1.94还是2.5,帖子里面的说法不一。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-9-12 14:22:51 | 显示全部楼层
你说的乘以一个系数,应该是根据单位换算的吧。我们国内都用m/s为单位,如果是英尺/秒或英里/小时的话是进行单位换算,的确需要乘以一个系数的。如果原始数据的单位就是m/s的话就不需要进行单位换算了。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2019-9-12 15:15:41 | 显示全部楼层
解脱 发表于 2019-9-12 14:22
你说的乘以一个系数,应该是根据单位换算的吧。我们国内都用m/s为单位,如果是英尺/秒或英里/小时的话是进 ...

谢谢,明白了,第11类数据读出来画图,必须要乘以2.5的系数才与Micaps里面画出来的风速大小一样。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-9-12 22:21:55 | 显示全部楼层
Micaps.uv.png

根据楼主提供的脚本作了修改,出图效果如上。

另外想请教lz,以下代码的55.0和70.0是随意取的么?

do i = 0,nrows-1
    lat(i,:) = 55.0-i*0.125
end do
do j = 0,ncols-1
    lon(:,j) = 70.0+j*0.125
end do

密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-9-12 23:26:20 | 显示全部楼层
小其其格 发表于 2019-9-12 22:21
根据楼主提供的脚本作了修改,出图效果如上。

另外想请教lz,以下代码的55.0和70.0是随意取的么?

看看第11类数据格式说明,这两个数分别对应着开始的经纬度,后面的0.125对应的是间距
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2019-9-18 15:04:51 | 显示全部楼层
小其其格 发表于 2019-9-12 22:21
根据楼主提供的脚本作了修改,出图效果如上。

另外想请教lz,以下代码的55.0和70.0是随意取的么?

这个是我的风场数据的起始纬度和经度。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-2-10 12:33:33 | 显示全部楼层
请问楼主,图外的风场如何屏蔽呢?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 成长值: 0
发表于 2020-2-10 12:50:47 | 显示全部楼层
飞雪残剑 发表于 2020-2-10 12:33
请问楼主,图外的风场如何屏蔽呢?

用mask,请参考官网说明
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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