爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 9171|回复: 7

MeteoInfoLab脚本示例:轨迹节点数

[复制链接]

新浪微博达人勋

发表于 2017-5-14 22:06:55 | 显示全部楼层 |阅读模式

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

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

x
在TrajStat中进行轨迹聚类要求每条轨迹都有同样的节点数(某些轨迹可能因为气象数据等原因没有计算全),但是TrajStat中没有现成的节点数检查功能,暂时也懒得增加。可以通过写一个MeteoInfoLab小脚本来进行轨迹节点数检查。

下面的脚本打印出每条轨迹的节点数:
  1. # Open trjactory shape file
  2. print 'Open trajectory shape file ...'
  3. trajfn = 'D:/Temp/traj/Sample/JiuquanSpr.shp'
  4. trajLayer = shaperead(trajfn)

  5. # Chek endpoint number of each trajectory
  6. print 'Chek endpoint number of each trajectory...'
  7. idx = 0
  8. for tline in trajLayer.shapes():
  9.     t = trajLayer.cellvalue('Date', idx)
  10.     h = trajLayer.cellvalue('Hour', idx)   
  11.     t.replace(hour=h)
  12.     print t.strftime('%Y-%m-%d %H') + ': %i' % tline.getPointNum()
  13.     idx += 1

  14. print 'Finish...'


也可以设定一个“正确”的节点数,检查每条轨迹的节点数是否正确,打印出有问题的轨迹:
  1. # Open trjactory shape file
  2. print 'Open trajectory shape file ...'
  3. trajfn = 'D:/Temp/traj/Sample/JiuquanSpr.shp'
  4. trajLayer = shaperead(trajfn)

  5. # Chek endpoint number of each trajectory
  6. print 'Chek endpoint number of each trajectory...'
  7. # Set a correct number and print the trajectories with more or less endpoints
  8. epn = 73
  9. idx = 0
  10. n = 0
  11. for tline in trajLayer.shapes():
  12.     if tline.getPointNum() != 73:
  13.         t = trajLayer.cellvalue('Date', idx)
  14.         h = trajLayer.cellvalue('Hour', idx)   
  15.         t.replace(hour=h)
  16.         print t.strftime('%Y-%m-%d %H') + ': %i' % tline.getPointNum()
  17.         n += 1
  18.     idx += 1

  19. if n == 0:
  20.     print 'All trajectories have same endpoint number!'

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

新浪微博达人勋

发表于 2017-11-13 16:51:14 | 显示全部楼层
王老师,上午跟您讲聚类分析出现问题,您说可以试试查找节点的方式,我按照您的代码试了一下,出了一点点问题,不好意思又麻烦您了,我没有学习过metoinfo的脚本语言,所以不太懂,请您指教一下

script error.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-11-13 18:02:42 | 显示全部楼层
王老师,刚加入了QQ群,代码错误问题已解决,但是聚类分析时尽管轨迹集合中各轨迹均为73节点,还是出现问题了
java show exception stack2.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-3-12 00:11:13 | 显示全部楼层
wuxy17 发表于 2017-11-13 18:02
王老师,刚加入了QQ群,代码错误问题已解决,但是聚类分析时尽管轨迹集合中各轨迹均为73节点,还是出现问题 ...

您好,我也遇到了聚类分析时JAVA报错的问题 请问您是如何解决的呢
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2019-8-1 17:16:10 | 显示全部楼层
请问,按上述方法知道节点数出错后,怎么处理数据?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-8-2 21:43:39 | 显示全部楼层
wuxy17 发表于 2017-11-13 18:02
王老师,刚加入了QQ群,代码错误问题已解决,但是聚类分析时尽管轨迹集合中各轨迹均为73节点,还是出现问题 ...

您好,我在calculate的时候也出现了类似的问题,请问您怎么解决的呢?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-1-13 19:01:20 | 显示全部楼层
wuxy17 发表于 2017-11-13 18:02
王老师,刚加入了QQ群,代码错误问题已解决,但是聚类分析时尽管轨迹集合中各轨迹均为73节点,还是出现问题 ...

您好,可以分享一下qq群吗,我在聚类的时候显示轨迹数小于最大簇数,不知道该怎么解决,想求教
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-4-13 18:45:50 | 显示全部楼层
txxrk 发表于 2019-8-1 17:16
请问,按上述方法知道节点数出错后,怎么处理数据?

同问,知道节点数出错后,该如何处理数据呢???题主知道如何解决了吗???
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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