爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 25547|回复: 36

尝试绘制T-LnP图

[复制链接]

新浪微博达人勋

发表于 2016-7-21 23:08:28 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 MeteoInfo 于 2016-7-22 16:35 编辑

尝试绘制T-LnP图,从micaps第5类数据中读取了某个站的探空数据(不同高度的温度、露点、风向、风速)。

目前绘制的图形,温度、露点、风向杆廓线、干绝热线:
T-LnP_2.png

脚本程序:
  1. #Read data from MICAPS 5 data file
  2. fn = 'D:/Temp/micaps/16051108.000'
  3. f = open(fn)
  4. for i in range(2):
  5.     f.readline()
  6. line = f.readline().strip()
  7. n = int(line.split()[4]) / 6
  8. pres = []    #Pressure
  9. height = []  #Height
  10. temp = []    #Temperature
  11. temp_d = []  #Dew point
  12. wdir = []    #Wind direction
  13. wspeed = []  #Wind speed
  14. for i in range(n):
  15.     line = f.readline().strip()
  16.     data = line.split()
  17.     for j in range(len(data)):
  18.         if data[j] == '9999':
  19.             data[j] = nan
  20.         else:
  21.             data[j] = float(data[j])   
  22.     pres.append(data[0])
  23.     height.append(data[1])
  24.     temp.append(data[2])
  25.     temp_d.append(data[3])
  26.     wdir.append(data[4])
  27.     wspeed.append(data[5])
  28. pres = array(pres)
  29. y = log(1000./pres)

  30. #Plot
  31. #Plot dry lapse lines
  32. for t0 in range(-90, 200, 10):
  33.     t = meteo.dry_lapse(pres, t0 + 273.15) - 273.15
  34.     plot(t, y, color=[255,204,0])
  35. #Plot temperature line
  36. line1 = plot(temp, y, 'r', linewidth=2, label='Temperature')
  37. #Plot dew point line
  38. line2 = plot(temp_d, y, 'g', linewidth=2, label='Dew Point')
  39. #Plot wind barbs
  40. x = zeros(len(y))
  41. x = x + 10
  42. barbs(x, y, wdir, wspeed, isuv=False, colors='b')
  43. yticks(y[1:], pres[1:].astype('int'))
  44. ylabel('Pressure (hPa)')
  45. xlabel(r'$\rm{Temperature} \ (^{\circ} \ C)$')
  46. legend([line1, line2])
  47. grid()
  48. xlim(-90, 20)
  49. ylim(y[1], y[len(y)-1])
  50. title('T-LnP figure example')




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

新浪微博达人勋

发表于 2016-7-22 08:34:10 | 显示全部楼层
楼主barbs函数是自己写的吗?能分享下么?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-7-22 08:35:42 | 显示全部楼层
Iron_Lee 发表于 2016-7-22 08:34
楼主barbs函数是自己写的吗?能分享下么?

MeteoInfo是开源软件
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-7-22 08:43:00 | 显示全部楼层
MeteoInfo 发表于 2016-7-22 08:35
MeteoInfo是开源软件

!!!!!!
之前没有用过,可以尝试学习一下,谢谢楼主。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-7-22 08:53:11 | 显示全部楼层
楼主果然是勇于创新,好样的!NCL里面应该会有绘制TLOGP的类似程序,里面会有方法吧
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-7-22 10:34:35 | 显示全部楼层
grads也有画t-lnp图的gs,可以参考一下~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-7-22 10:46:51 | 显示全部楼层
坐等metroinfo的效果超过这个图
mmexport1469155556848.jpg
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-7-22 12:37:00 | 显示全部楼层
谢谢您的分享,T-LnP图的样式还是如jzd19851102网友所附的图形格式违常用格式,再请您参考一下~~~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-7-22 12:52:34 | 显示全部楼层
我想问的是用1楼脚本中的数据怎么计算出干绝热线?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 19710
发表于 2016-7-22 13:32:10 | 显示全部楼层
MeteoInfo 发表于 2016-7-22 12:52
我想问的是用1楼脚本中的数据怎么计算出干绝热线?

其他的线都不是额外的数据计算的,比如干绝热线可以用干绝热递减率计算~
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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