爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 4113|回复: 7

[混合编程] IDL编程学习之统计案例

[复制链接]

新浪微博达人勋

发表于 2017-7-4 13:58:39 | 显示全部楼层 |阅读模式

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

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

x
数据文件为999.txt,内容为:
风向 风速
143.6 1
153.2 0.8
163 0.9
107 0.6
125 1
168.8 0.9
158.2 0.7
136.5 0.5
116.7 0.3
195.9 0.9
149 0.8
......
2列,595行,第一列是风向,第二列是风速
现在想要统计各方向出现风的频率和各方向的平均风速,画2个玫瑰图。
如果某个方向没有频数出现,则风速默认为0.
我按每15度划分。
程序:
a=read_ascii('C:\Users\YGDY\Desktop\999.txt',data_start=1)
x=a.field1
for i=0,345,15 do begin
  p=where(x[0,*] ge i and x[0,*] lt i+15,count)
m=mean(x[1,p])
  if(count eq 0)then begin
    m=0
    endif
  print,i,i+15,count,m
endfor
输出:
起始角度 终止角度 频数 平均风速
       0      15          17     0.000000
      15      30          23    0.0391304
      30      45          26     0.123077
      45      60          28     0.185714
      60      75          27     0.370370
      75      90          34     0.467647
      90     105          43     0.834884
     105     120          38     0.715789
     120     135          46      1.03043
     135     150          78      1.43462
     150     165          71      1.37183
     165     180          46      1.26522
     180     195          27      1.11481
     195     210          26     0.934615
     210     225          21     0.995238
     225     240          15      1.02000
     240     255          10      1.15000
     255     270           5      1.12000
     270     285          10      1.20000
     285     300           3      1.30000
     300     315           0       0
     315     330           0       0
     330     345           0       0
     345     360           0       0
效果图:
风速玫瑰图.png 频率玫瑰图.png
效果图是用EXCEL画的,有谁知道用IDL怎么画玫瑰图(or雷达图)???

999.txt

6.14 KB, 下载次数: 1, 下载积分: 金钱 -5

peach.pro

271 Bytes, 下载次数: 1, 下载积分: 金钱 -5

结果.txt

1.02 KB, 下载次数: 1, 下载积分: 金钱 -5

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

新浪微博达人勋

发表于 2017-7-4 16:46:17 | 显示全部楼层
用origin画啊,王大神{:eb301:}{:eb301:}
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2017-7-4 16:53:50 | 显示全部楼层
小桃子xy 发表于 2017-7-4 16:46
用origin画啊,王大神

大神不想理你并向你丢了一头猪
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-7-4 16:56:30 | 显示全部楼层
抓到猪了,今晚可以饱餐一顿了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-6-26 15:27:33 | 显示全部楼层
请问画出来了么
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-6-27 09:38:54 | 显示全部楼层

频数.jpg
我把处理后的数据放入了附件wind.dat
读取文件:
  a=read_ascii('C:\Users\YGDY\Desktop\wind.dat',data_start=1)
数组放入x:
  x=a.field1

因为风是以正北为0度,而笛卡尔坐标的0度是东,所以角度的值需要变换一下,角度放入an:
  an=!pi/2-x[0,*]/180*!pi

频数放入bn:
  bn=x[2,*]
  为保证xy轴的交叉点为[0,0],x和y轴的范围我设置为对称的(我不知道是否有其他方法使得交叉点为[0,0])
  fig=polarplot(bn,an,sym=24,sym_filled=1,title='频数与方位',$
    color='r',xrange=[-max(bn),max(bn)],yrange=[-max(bn),max(bn)])

不过用极坐标代替雷达图也存在问题:
1、头尾2个点没有连线,需要自己连;
2、坐标轴的频数有正有负,其实都该是正的;
3、同心圆要自己再加


绘制风速与方位,只要在上述代码稍作修改
风速与方位.jpg
修改部分已加黑
  a=read_ascii('C:\Users\YGDY\Desktop\wind.dat',data_start=1)
  x=a.field1
  an=!pi/2-x[0,*]/180*!pi
  bn=x[3,*]
  
  fig=polarplot(bn,an,sym=24,sym_filled=1,title='风速与方位',$
    color='r',xrange=[-max(bn),max(bn)],yrange=[-max(bn),max(bn)])

wind.dat

1.04 KB, 下载次数: 0, 下载积分: 金钱 -5

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

新浪微博达人勋

 楼主| 发表于 2018-6-27 09:41:31 | 显示全部楼层

因为绘制雷达图并不复杂,在极坐标基础上改,出一个漂亮的模板,以后就可以直接用了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-6-27 09:41:36 | 显示全部楼层

因为绘制雷达图并不复杂,在极坐标基础上改,出一个漂亮的模板,以后就可以直接用了
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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