爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 1974|回复: 7

计算锋生

[复制链接]

新浪微博达人勋

发表于 2023-3-21 12:00:53 | 显示全部楼层 |阅读模式

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

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

x
参照MetPy在MeteoInfoLab的meteolib Jython包里增加了锋生函数 frontogenesis,需要温度、风场U, V分量以及网格间距作为输入。示例脚本程序如下:

  1. fn = 'D:/Temp/nc/GFS_20101026_1200.nc'
  2. f = addfile(fn)

  3. # Set subset slice for the geographic extent of data
  4. lon_slice = slice(400, 650)
  5. lat_slice = slice(50, 150, -1)

  6. # Grab lat/lon values (GFS will be 1D)
  7. lats = f['lat'][lat_slice]
  8. lons = f['lon'][lon_slice]

  9. level = '85000'
  10. hght_850 = f['Geopotential_height_isobaric'][0, level, lat_slice, lon_slice]
  11. tmpk_850 = f['Temperature_isobaric'][0, level, lat_slice, lon_slice]
  12. uwnd_850 = f['u-component_of_wind_isobaric'][0, level, lat_slice, lon_slice]
  13. vwnd_850 = f['v-component_of_wind_isobaric'][0, level, lat_slice, lon_slice]

  14. # Convert temperatures to degree Celsius for plotting purposes
  15. tmpc_850 = tmpk_850 - 273.15

  16. # Calculate potential temperature for frontogenesis calculation
  17. thta_850 = meteolib.potential_temperature(850, tmpk_850)

  18. dx, dy = meteolib.lat_lon_grid_deltas(lons, lats)
  19. fronto_850 = meteolib.frontogenesis(thta_850, uwnd_850, vwnd_850, dx, dy)

  20. # A conversion factor to get frontogensis units of K per 100 km per 3 h
  21. convert_to_per_100km_3h = 1000*100*3600*3

  22. #plot
  23. proj = projinfo(proj='lcc', lon_0=-100, lat_0=35, lat_1=30, lat_2=60)
  24. ax = axesm(projinfo=proj, tickfontsize=12)
  25. geoshow('us_states', edgecolor=(0,102,204))
  26. geoshow('country', edgecolor=(0,102,204))

  27. # Plot 850-hPa Frontogenesis
  28. clevs_fronto = np.arange(-8, 8.5, 0.5)
  29. cf = contourf(lons, lats, fronto_850*convert_to_per_100km_3h, clevs_fronto,
  30.                  cmap='BlWhRe', smooth=False)
  31. colorbar(cf, orientation='horizontal', shrink=0.8, aspect=50, fontsize=12,
  32.     label='Frontogenesis K / 100 km / 3 h')

  33. # Plot 850-hPa Temperature in Celsius
  34. clevs_tmpc = np.arange(-40, 41, 2)
  35. csf = contour(lons, lats, tmpc_850, clevs_tmpc, colors='gray',
  36.                  linestyle='--')
  37. clabel(csf, fmt='%d', fontsize=12, drawshadow=False)

  38. # Plot 850-hPa Geopotential Heights
  39. clevs_850_hght = np.arange(0, 8000, 30)
  40. cs = contour(lons, lats, hght_850, clevs_850_hght, colors='black')
  41. clabel(cs, fmt='%d', fontsize=12, drawshadow=False)

  42. # Plot 850-hPa Wind Barbs only plotting every fifth barb
  43. wind_slice = (slice(None, None, 5), slice(None, None, 5))
  44. barbs(lons[wind_slice[0]], lats[wind_slice[1]],
  45.          uwnd_850[wind_slice], vwnd_850[wind_slice],
  46.          color='black')

  47. axis([-128, -72, 16, 55])

  48. # Plot some titles to tell people what is on the map
  49. left_title(r'GFS 850-hPa Geopotential Heights (m), Temp (C), and Winds', fontsize=12, bold=False)
  50. right_title('Valid Time: {}'.format(f.gettime(0)), fontsize=12, bold=False)


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

新浪微博达人勋

发表于 2023-3-30 12:20:58 | 显示全部楼层
{:5_213:}{:5_213:}{:5_213:}王老师太厉害了!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2023-9-3 10:49:23 | 显示全部楼层
王老师,参照MetPy在MeteoInfoLab的meteolib Jython包里增加了锋生函数 frontogenesis这个怎么操作?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2023-9-3 11:58:41 | 显示全部楼层
lixiliang2008 发表于 2023-9-3 10:49
王老师,参照MetPy在MeteoInfoLab的meteolib Jython包里增加了锋生函数 frontogenesis这个怎么操作?

参考这里:https://github.com/meteoinfo/Met ... /kinematics.py#L428
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2023-9-3 16:20:16 | 显示全部楼层
王老师,按照您给的提示我做了处理。还是没搞明白。提示'module' object has no attribute 'lat_lon_grid_deltas'以及no attribute 'frontogenesis'。具体步骤是什么呢?麻烦您了
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2023-9-3 23:32:10 | 显示全部楼层
lixiliang2008 发表于 2023-9-3 16:20
王老师,按照您给的提示我做了处理。还是没搞明白。提示'module' object has no attribute 'lat_lon_grid_d ...

下载MeteoInfo最新版本试试
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2023-9-4 07:24:55 | 显示全部楼层
做出来了,多谢王老师指点。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 成长值: 0
发表于 2023-9-4 13:59:26 | 显示全部楼层
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

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

本版积分规则

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

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

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