爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 4071|回复: 1

[分享资料] STI台风路径手动分类器!(GRADS脚本)

[复制链接]

新浪微博达人勋

发表于 2015-5-18 22:52:08 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 chinagod 于 2015-5-18 22:56 编辑

本人编写的一个小脚本,用来读取CMA/STI台风数据,绘制台风路径,根据键盘的反馈手动分类的脚本。【原创求支持!】心得:在if语句块最好不要一行写完,最好写一句,另起一行,否则可能会出现类型错情况(字符串变量无法转化成整型变量参与逻辑运算)(参考帖子 http://bbs.06climate.com/forum.php?mod=viewthread&tid=18347)。
注意:第2行是为了画地图需要,随便打开一个ctl文件,并没有其他作用
CMA数据下载网址 http://tcdata.typhoon.gov.cn/CMABSTdata/CMABSTdata.zip
'reinit'
'open e:/nc/slpoc.ctl'
'set lon 90 180'
'set lat 0 40'
'set mpdset hires'
n1=0;n2=0;n3=0;n4=0
i=1
**年循环**
while(i<=1)
  a0='CH'%1974+i%'BST.txt'
  aa='E:\Desktop\CMABSTdata\'a0''
**打开当年台风记录文件**
  a1=0;in=0
  while(a1=0)
  in=in+1
    a0=read(aa)
    a1=sublin(a0,1)
    if(a1=2);continue;endif
    b1=sublin(a0,2)
**b1为每个台风的头记录**
    c1=subwrd(b1,3)
*say c1
**c1为该个台风记录的行数**
    'set cmax 0'
    'd slp'
    it=1
    while(it<=c1)
**读取台风路径**
      a2=read(aa)      
      b2=sublin(a2,2)
      lo=subwrd(b2,4)/10
      la=subwrd(b2,3)/10
*say lo;say la
**读取经纬度信息**
      'q w2xy 'lo' 'la''
*say result
      x1=subwrd(result,3)
      y1=subwrd(result,6)
*say x1;say y1
      'draw wxsym 40 'x1' 'y1' 0.3 2 6'
      it=it+1
    endwhile
*    say a1
*获取台风路径分类
prompt 'Enter TC track type(1 xiyi, 2 xibeiyi 3  xibeizhuandongbei 4 teshu): '
*pull a
pull tp
say tp
if(tp=1)
n1=n1+1
say n1
endif
if(tp=2)
n2=n2+1
say n2
endif
if(tp=3)
n3=n3+1
say n3
endif
if(tp=4)
n4=n4+1
say n4
endif   
'c'
  endwhile
  i=i+1
  say 'year: '1973+i%', number of TC: '%in-1
**显示当年台风数
say 'n1='%n1',  n2='%n2',  n3='%n3',  n4='%n4
say n1
endwhile
***Powered by chinagod***
;






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

新浪微博达人勋

发表于 2015-5-19 07:56:33 | 显示全部楼层
很高级的脚本啊,感谢分享
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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