爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 11132|回复: 9

[作图] NCL画台风路径图打点设置

[复制链接]

新浪微博达人勋

发表于 2021-8-14 20:27:10 | 显示全部楼层 |阅读模式

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

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

x
求问:用NCL画台风路径图时,已经设置了 resDot@gsMarkerIndex = 1 和 resDot@gsMarkerSizeF = 0.02 ,但是画出来的路径图只有线没有点,更改这两个设置之后依然没有变化,有大神知道该怎么解决这个问题吗?感激不尽!!!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2021-8-14 20:55:34 | 显示全部楼层

回帖奖励 +10 金钱

本帖最后由 一大碗年糕 于 2021-8-14 20:58 编辑

单这样问也不太清楚。。之前参照别人的代码用台风所数据集画的,看看是不是打点部分有区别?
begin
;----------reading data-----------------
fiTY = "/home/ramsey/gs/data/TC/In-Fa.txt"
nrow = numAsciiRow(fiTY)                             ;读取txt中的总行数
YYYYMMDDHH = new(nrow, "string")                     
lat = new(nrow, "float")
lon = new(nrow, "float")
vmax = new(nrow, "integer")
mslp = new(nrow, "integer")
data = asciiread(fiTY, -1, "string")
YYYYMMDDHH = str_get_field(data, 1," ")
lat = stringtofloat(str_get_field(data, 3," "))*0.1
lon = stringtofloat(str_get_field(data, 4, " "))*0.1
mslp = stringtoint(str_get_field(data, 5, " "))
vmax = stringtoint(str_get_field(data, 6, " "))
;print(vmax)
DateChar = stringtochar(YYYYMMDDHH)
MM = chartostring(DateChar(:,4:5))
DD = chartostring(DateChar(:,6:7))
HH = chartostring(DateChar(:,8:9))
;HHi = mod(stringtoint(YYYYMMDDHH), 100)
;DDi = mod(stringtoint(YYYYMMDDHH)/100, 100)
;MMi = mod(stringtoint(YYYYMMDDHH)/10000, 100)
;--------------plot---------------------------
wks = gsn_open_wks("png", "track-In-Fa")
gsn_define_colormap(wks,"rainbow")

res = True
res@gsnDraw = False
res@gsnFrame = False
res@mpMinLatF = -10
res@mpMaxLatF = 40
res@mpMinLonF = 112
res@mpMaxLonF = 170
res@mpLandFillColor = 160
res@tmXBLabelFontHeightF = 0.025
res@tmYLLabelFontHeightF = 0.025
res@mpGridAndLimbOn = "True"
res@mpGridMaskMode = "MaskNotOcean"
res@mpGridLineDashPattern = 15
res@mpGridSpacingF = 5.0
res@mpOutlineOn = True
res@mpOutlineBoundarySets = "National"
res@mpDataBaseVersion = "MediumRes"
res@mpDataSetName = "Earth..4"
res@mpOutlineSpecifiers = "China:States"

plot = gsn_csm_map_ce(wks,res)                ;采用圆柱投影热带变形较小

colours = (/3, 20, 60, 120, 180/)

resDot = True
resLine = True
dumDot= new(nrow, graphic)
dumLine = new(nrow, graphic)
resLine@gsLineThicknessF = 3
;---------绘制低压中心移动路径----------------
do i = 0, nrow-2
xx = (/ lon(i), lon(i+1)/)
yy = (/ lat(i), lat(i+1)/)
if (vmax(i).le.17) then
resLine@gsLineColor = colours(0)
end if
if (vmax(i) .ge. 17 .and. vmax(i).le.32) then
resLine@gsLineColor = colours(1)
end if
if (vmax(i).ge.32 .and. vmax(i) .le. 42) then
resLine@gsLineColor = colours(2)
end if
if (vmax(i).ge.42 .and. vmax(i) .lt. 51) then
resLine@gsLineColor = colours(3)
end if
if (vmax(i).ge.51) then
resLine@gsLineColor = colours(4)
end if
dumLine(i) = gsn_add_polyline(wks, plot, xx, yy, resLine)
end do
;--------绘制低压中心位置--------------
resDot@gsMarkerIndex = 1
resDot@gsMarkerColor = "black"
do i = 0, nrow-1
if (HH(i) .eq. "00") then
resDot@gsMarkerSizeF = 0.02
dumDot(i) = gsn_add_polymarker(wks, plot, lon(i), lat(i), resDot)
else
resDot@gsMarkerSizeF = 0.005
dumDot(i) = gsn_add_polymarker(wks, plot, lon(i), lat(i), resDot)
end if
end do
;-----------绘制图例----------------------
resLg = True
resLg@lgItemType = "MarkLines"
resLg@lgMonoMarkerIndex = True
resLg@lgMarkerColors = colours
resLg@lgMarkerIndex = 1
resLg@lgMarkerSizeF = 0.02
resLg@lgMonoDashIndex = True
resLg@lgDashIndex = 0
resLg@lgLineColors = colours
resLg@lgLineThicknessF = 3
resLg@vpWidthF = 0.14
resLg@vpHeightF = 0.13
resLg@lgPerimFill = 0
resLg@lgPerimFillColor = "Background"
resLg@lgLabelFontHeightF = 0.3
resLg@lgTitleFontHeightF = 0.015
resLg@lgTitleString = "Best Track"
lbid = gsn_create_legend(wks, 5, (/" 17m/s or less"," 17 to 32m/s"," 32 to 42m/s"," 42 to 51m/s"," 51 or more"/), resLg)

amres = True
amres@amParallelPosF = 0.3
amres@amOrthogonalPosF = -0.3
dumLg = gsn_add_annotation(plot, lbid, amres)

;-----------绘制每天日期--------------------
;dumDate = new(nrow,graphic)
;resTx = True
;resTx@txFontHeightF = 0.015
;resTx@txFontColor = "black"
;resTx@txJust = "BottomLeft"
;do i = 0, nrow-1
;if (HH(i) .ne. "00" ) then
;continue
;end if
;dumDate(i) = gsn_add_text(wks,plot, MM(i)+DD(i), lon(i)+0.5, lat(i), resTx)
;end do
draw(wks)
frame(wks)
end
track-In-Fa.png
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-8-14 21:36:52 | 显示全部楼层
一大碗年糕 发表于 2021-8-14 20:55
单这样问也不太清楚。。之前参照别人的代码用台风所数据集画的,看看是不是打点部分有区别?
begin
;---- ...

打点设置是一样的 不过我在循环里面找到错误了 谢谢啦~
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-8-23 10:14:11 | 显示全部楼层

回帖奖励 +10 金钱

请问你这个烟花路径数据可以分享一下吗
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-9-17 15:21:21 | 显示全部楼层
想请问下这一句,fiTY = "/home/ramsey/gs/data/TC/In-Fa.txt",ncl是不是把他读成字符串类型了?我print(fiTY),它显示是字符串
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-9-19 08:28:21 | 显示全部楼层
Luckyyou 发表于 2021-8-14 21:36
打点设置是一样的 不过我在循环里面找到错误了 谢谢啦~

请问可以请教一下如何画台风路径吗?我用上面的脚本,像下面这样报错,但是txt文件是有数据的呀
sh: awk: command not found
warning:toint: A bad value was passed (string); input strings must contain numeric digits, replacing with missing value
fatal:New: The dimension size list contains missing values, can't determine size
fatal:["Execute.c":8637]:Execute: Error occurred at or near line 5 in file path.ncl
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-9-20 07:50:10 | 显示全部楼层
LZP8805 发表于 2021-9-19 08:28
请问可以请教一下如何画台风路径吗?我用上面的脚本,像下面这样报错,但是txt文件是有数据的呀
sh: awk ...

你的脚本第五行是什么内容呀
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-9-20 10:23:26 | 显示全部楼层
Luckyyou 发表于 2021-9-20 07:50
你的脚本第五行是什么内容呀

已经调通了,好像是使用new函数设置新增变量的时候,维度要跟txt文件里的维度一致,但是用asciiread函数读出来的维度好像有问题,所以手动改一下txt文件的行数就行
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-9-28 21:29:05 | 显示全部楼层
LZP8805 发表于 2021-9-20 10:23
已经调通了,好像是使用new函数设置新增变量的时候,维度要跟txt文件里的维度一致,但是用asciiread函数 ...

可以分享一下脚本和txt文件格式么,按照网上的改画不出来
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-9-29 09:11:33 | 显示全部楼层
ly00 发表于 2021-9-28 21:29
可以分享一下脚本和txt文件格式么,按照网上的改画不出来

就是楼上贴的那个脚本,用哪个CMA最佳路径数据就行
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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