爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
楼主: MeteoInfo

MeteoInfoLab脚本示例:台风和热带气旋

[复制链接]

新浪微博达人勋

发表于 2018-9-13 21:41:50 | 显示全部楼层
请教一个台风移动路径频数的问题,如有多年台风的移动路径数据,把区域分成等格距网格点,比如2.5度X2.5度,如何计算经过各网格点的次数,老师能不能给个思路。效果如图
track.jpg
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-9-13 23:18:06 | 显示全部楼层
qxsw2016 发表于 2018-9-13 21:41
请教一个台风移动路径频数的问题,如有多年台风的移动路径数据,把区域分成等格距网格点,比如2.5度X2.5度 ...

可以用topology模块的 intersects 函数判断两个几何图形是否相交,参考此脚本:

  1. import mipylib.geolib.topology as tp

  2. # Read typhoon data file
  3. fn = 'D:/Temp/ascii/CH2015BST.txt'
  4. tf = open(fn)
  5. lons = []
  6. lats = []
  7. prss = []
  8. for line in tf:
  9.     #print line
  10.     data = line.split()
  11.     pn = int(data[2])
  12.     for i in range(pn):
  13.         line = tf.readline()
  14.         data = line.split()
  15.         lat = float(data[2])        
  16.         lats.append(lat * 0.1)
  17.         lon = float(data[3])
  18.         lons.append(lon * 0.1)
  19.         t = data[0]
  20.         prs = float(data[4])
  21.         prss.append(prs)
  22.     lons.append(nan)
  23.     lats.append(nan)
  24.     prss.append(nan)

  25. # Plot
  26. axesm()
  27. lworld = shaperead('D:/Temp/map/country1.shp')
  28. geoshow(lworld, facecolor=[200,200,200])
  29. layer = plotm(lons, lats, linewidth=1)
  30. xlim(100, 210)
  31. ylim(0, 60)
  32. title('Typhoon pathway')

  33. #Add a rectangle polygon
  34. lat = array([20, 20, 10, 10, 20])
  35. lon = array([180, 190, 190, 180, 180])
  36. g1 = geoshow(lat, lon, displaytype='polygon', color=[150,230,230,230], edgecolor='b', size=2)

  37. #Count the number of typhoons cross the rectangle
  38. n = 0
  39. for s in layer.shapes():
  40.     if tp.intersects(s, g1):
  41.         n += 1
  42. print 'Number: %i' % n


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

新浪微博达人勋

发表于 2018-9-14 20:13:58 | 显示全部楼层
MeteoInfo 发表于 2018-9-13 23:18
可以用topology模块的 intersects 函数判断两个几何图形是否相交,参考此脚本:

好久没交流了,每次都有收获,感谢,我来学习学习!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-9-17 22:18:43 | 显示全部楼层
请教,如何把经过某个特定区域的台风路径挑选出来。即用topology模块的 intersects 函数判断两个几何图形是否相交,来判断是否经过某区域,但如何来标识区分这个台风呢?望百忙中指点。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-9-18 10:52:21 | 显示全部楼层
qxsw2016 发表于 2018-9-17 22:18
请教,如何把经过某个特定区域的台风路径挑选出来。即用topology模块的 intersects 函数判断两个几何图形是 ...

可以给台风图层增加一个字段来记录是否经过某个区域。参考这里:http://bbs.06climate.com/forum.p ... &extra=page%3D1
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-9-25 21:54:54 | 显示全部楼层
感谢老师 ,我来学习消化一下。还有一个问题,判断一个站点是否在某个行政区里,即点是否在某个区域里,是不也用 intersects 函数?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-9-26 01:06:59 | 显示全部楼层
qxsw2016 发表于 2018-9-25 21:54
感谢老师 ,我来学习消化一下。还有一个问题,判断一个站点是否在某个行政区里,即点是否在某个区域里,是 ...

你可以试试,也可以参考这里:http://bbs.06climate.com/forum.p ... &extra=page%3D1
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-9-26 20:13:47 | 显示全部楼层
学习了,太强大了,以前我做160个站是,硬是把每个城市所在省份找出来,
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2024-8-9 20:07:48 | 显示全部楼层
郭小侠V 发表于 2016-5-11 16:51
我完全是用您的代码和您的数据,路径也对

Traceback (most recent call last):

你好,这个时如何解决的呢?谢谢啦
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2024-8-9 21:23:01 | 显示全部楼层
jameswei1984 发表于 2024-8-9 20:07
你好,这个时如何解决的呢?谢谢啦

参考这里:http://www.meteothink.org/docs/meteoinfolab/milab_cn/index.html
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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