爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 3389|回复: 5

?:风场区域的选择

[复制链接]

新浪微博达人勋

发表于 2015-4-13 15:41:30 | 显示全部楼层 |阅读模式

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

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

x
选择出风速大于某一阈值的区域  用脚本怎么实现
程序的数据用的micaps数据的UV
效果如图
图片1.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-4-13 19:25:08 | 显示全部楼层
想要什么样的最终结果?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-4-13 19:32:39 | 显示全部楼层
MeteoInfo 发表于 2015-4-13 19:25
想要什么样的最终结果?

就图片的样子 比如选择出风速大于20m/s的区域 再把这个区域的流线画出来。现在的困惑就是不知道怎么根据uv数据选择出某一阈值的区域
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-4-14 23:34:05 | 显示全部楼层
solitaire 发表于 2015-4-13 19:32
就图片的样子 比如选择出风速大于20m/s的区域 再把这个区域的流线画出来。现在的困惑就是不知道怎么根据u ...

示例脚本程序,注意看里面的注释:
  1. #-----------------------------------------------------
  2. # Author: Yaqiang Wang
  3. # Date: 2014-12-1
  4. # Purpose: Read and plot U/V grid data
  5. # Note: Sample
  6. #-----------------------------------------------------
  7. #---- Import classes
  8. print 'Import classes...'
  9. from org.meteoinfo.layout import MapLayout
  10. from org.meteoinfo.data import DataMath
  11. from org.meteoinfo.data.mapdata import MapDataManage
  12. from org.meteoinfo.data.meteodata import MeteoDataInfo, DrawMeteoData
  13. from org.meteoinfo.layout import LegendStyles
  14. from org.meteoinfo.global import Extent
  15. import os
  16. from java.awt import Color
  17. from javax.swing import JFrame

  18. #---- Set directories
  19. print 'Set directories...'
  20. baseDir = 'D:/MyProgram/Distribution/java/MeteoInfo/MeteoInfo'
  21. dataDir = os.path.join(baseDir, 'sample')
  22. mapDir = os.path.join(baseDir, 'map')

  23. #---- Create MapLayout object
  24. mapLayout = MapLayout()
  25. mapFrame = mapLayout.getActiveMapFrame()

  26. #---- Load country layer
  27. print 'Load country layer...'
  28. countryLayer = MapDataManage.loadLayer(os.path.join(mapDir, 'country1.shp'))
  29. lb = countryLayer.getLegendScheme().getLegendBreaks().get(0)
  30. lb.setDrawFill(False)
  31. lb.setOutlineColor(Color.black)
  32. mapFrame.addLayer(countryLayer)

  33. #---- Create MeteoDataInfo object
  34. mdi = MeteoDataInfo()

  35. #---- Open a GrADS data file
  36. fn = os.path.join(dataDir, 'GrADS/model.ctl')
  37. mdi.openGrADSData(fn)

  38. #---- Get U/V grid data
  39. mdi.setTimeIndex(2)
  40. mdi.setLevelIndex(3)
  41. udata = mdi.getGridData('U')
  42. vdata = mdi.getGridData('V')
  43. #---- Calculate wind speed from U/V data
  44. speed = DataMath.magnitude(udata, vdata)
  45. #---- Set the grid value to -1 if the speed is less than 10
  46. speed.replaceValue(10, -1, False)
  47. #---- Maskout U data, Only the grid with speed bigger than 10 has valid value
  48. udata = udata.maskout(speed)

  49. #---- Create wind layer from the U/V grid data
  50. #layer = DrawMeteoData.createGridVectorLayer(udata, vdata,  'UV_Vector', True)
  51. layer = DrawMeteoData.createGridBarbLayer(udata, vdata,  'UV_Barb', True)
  52. #layer = DrawMeteoData.createStreamlineLayer(udata, vdata, 'Z_Streamline', True)

  53. #---- Add layer
  54. mapFrame.addLayer(layer)

  55. #--- Move pressure layer to bottom
  56. mapFrame.moveLayer(layer, 0)

  57. #---- Add title
  58. title = mapLayout.addText('MeteoInfo script demo', 350, 30, 'Arial', 16)

  59. #---- Zoom layout map
  60. print 'Zoom layout map...'
  61. mapLayout.getActiveLayoutMap().zoomToExtentLonLatEx(Extent(0, 360, -90, 90))

  62. #---- Set mapframe
  63. mapFrame.setGridXDelt(10)
  64. mapFrame.setGridYDelt(10)

  65. frame = JFrame('MeteoInfo Script Sample', size = (800, 600))
  66. frame.add(mapLayout)
  67. frame.visible = True
  68. print 'Finished!'


结果:
Image00116.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-4-15 15:34:18 | 显示全部楼层
MeteoInfo 发表于 2015-4-14 23:34
示例脚本程序,注意看里面的注释:

多谢老师  看懂了  有没有个地方或者书籍可以系统的学习一下这些?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-4-15 16:50:12 | 显示全部楼层
solitaire 发表于 2015-4-15 15:34
多谢老师  看懂了  有没有个地方或者书籍可以系统的学习一下这些?

MeteoInfo的网站
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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