爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 10395|回复: 15

[图形美化] 一页多图的垂直剖面图(添加地形)

[复制链接]

新浪微博达人勋

发表于 2017-10-14 20:19:56 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 小其其格 于 2017-10-14 20:34 编辑

最近在写论文要画图,花了不少时间研究论坛里各位大神的代码,绘制出了自己想要的图形,即利用wrfout绘制一页多图的垂直剖面图

并附带地形。代码都是基于各位大神的,不是自己原创,下面把代码贴出来。
其中的subplot_x,subplot_y来源于:http://bbs.06climate.com/forum.php?mod=viewthread&tid=56263&extra=page%3D7
地形绘制来源于:http://bbs.06climate.com/forum.php?mod=viewthread&tid=22506&extra=&page=1,我把绘制地形的代码写成函数,放在代码第二部分。

一页多图代码,其中绘制地形的函数是drawLand:
  1. 'set rgb 20 236 242 236'
  2. 'set rgb 21 215 242 216'
  3. 'set rgb 22 194 241 196'
  4. 'set rgb 23 173 241 176'
  5. 'set rgb 24 152 240 157'
  6. 'set rgb 25 132 240 137'
  7. 'set rgb 26 111 240 116'
  8. 'set rgb 27 90 239 96'
  9. 'set rgb 28 69 239 76'
  10. 'set rgb 29 48 238 56'
  11. 'set rgb 30 27 238 36'
  12. 'set rgb 31 36 237 27'
  13. 'set rgb 32 56 235 21'
  14. 'set rgb 33 78 233 16'
  15. 'set rgb 34 110 230 15'
  16. 'set rgb 35 142 227 13'
  17. 'set rgb 36 174 224 12'
  18. 'set rgb 37 207 222 10'
  19. 'set rgb 38 237 218 9'
  20. 'set rgb 39 237 198 9'
  21. 'set rgb 40 238 178 9'
  22. 'set rgb 41 238 158 9'
  23. 'set rgb 42 238 137 9'
  24. 'set rgb 43 238 116 9'
  25. 'set rgb 44 238 103 9'
  26. 'set rgb 45 238 91 9'
  27. 'set rgb 46 238 79 9'
  28. 'set rgb 47 238 67 9'
  29. 'set rgb 48 238 56 9'
  30. 'set rgb 49 238 46 10'
  31. 'set rgb 50 238 37 12'
  32. 'set rgb 51 238 29 15'
  33. 'set rgb 52 238 25 22'
  34. 'set rgb 53 238 21 29'
  35. 'set rgb 54 238 17 36'
  36. 'set rgb 55 238 13 42'
  37. 'set rgb 56 238 9 51'
  38. 'set rgb 57 238 9 80'
  39. 'set rgb 58 238 9 108'
  40. 'set rgb 59 238 9 137'
  41. 'set rgb 60 238 9 166'

复制代码
  1. 'reinit'
  2. 'open F:\wfl\DownBurst931\ctl/wrfout_d03_2017_07_12.ctl'
  3. 'enable print F:\wfl\DownBurst931\ctl\Qcloud\subplot_Qcloud8.42.gmf'
  4. 'set mpdset cnworld'
  5. 'set mproj scaled'

  6. **set map v1 v2 v3 -----v1地图颜色 v2地图类型 v3地图线宽
  7. 'set map 1 1 3'
  8. 'set grads off'
  9. 'set grid off'



  10. *字体Roman font
  11. 'set font 1'

  12. 'set lat 29.8'
  13. 'set lon 121.1 121.5'
  14. 'set ylopts 1 1 0.10'
  15. 'set xlopts 1 1 0.10'
  16. 'set z 1 10'

  17. **坐标标注开关打开
  18. 'set ylab on'
  19. 'set xlab on'

  20. fig = abcdefghijklmn
  21. i=33
  22. while(i<=40&i>=33)
  23. n=i-32
  24. 'set vpage 0 11 0 8.5'
  25. 'set grads off'
  26. 'run F:\wfl\DownBurst931\ctl\subplot_x.gs 4 2 'n''
  27. 'set t 'i''
  28. 'set xlint 0.06'
  29. 'set ylint 1.0'


  30. *云水混合比
  31. 'set gxout shaded'
  32. 'set clevs  0 0.03 0.06 0.09 0.12 0.15 0.18 0.21 0.24 0.27 0.30 0.33 0.36 0.39  0.42 0.45  0.48 0.51 0.54 0.57 0.60 0.63 0.66 0.69 0.72 0.75 0.78 0.81 0.84 0.87 0.90 0.93 0.96 0.99 1.02 1.05 1.08 1.11 1.2 1.3'
  33. 'set ccols  20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60'
  34. 'd qcloud*1000'


  35. *沿29.8的垂直风场UW剖面
  36. 'set gxout vector'
  37. *不显示箭头大小
  38. 'set arrlab off'
  39. 'd skip(u,2);skip(w*20,2)'


  40. if(n=1)
  41. **set string 1 c 4 90中的90为旋转角度
  42. 'set string 98 c 5 90'
  43. 'draw string 0.7 4.0 Height(km) '
  44. *'draw ylab height(km)'
  45. endif

  46. **再把文字角度设置为0
  47. 'set string 98 c 5 0'

  48. fign=substr(fig,n,1)
  49. 'run F:\wfl\DownBurst931\ctl\draw_figstr2.gs TL 1.0 ('fign')'

  50. **—绘制地形————————**
  51. lon1=121.1
  52. lon2=121.5
  53. lat1=29.8
  54. lat2=29.8
复制代码

绘制地形的函数:

  1. *---------------------------------------------------------------
  2. ********绘制地形*********************************
  3. function drawLand(lon1,lon2,lat1,lat2,zh)
  4. *说明:
  5. *lon1,lat1---剖面起始经纬度
  6. *lon2,lat2---剖面结束经纬度
  7. *HGT--wrfoutput的地形
  8. *zh 是z=1时的高度,可根据自己的资料修改。
  9. *0.002是画地形时的步长,可自行调整。
  10. *---------------------------------------------
  11.   ln=lon1
  12.   jjjjjj=1
  13.   while(ln<=lon2)
  14. *------read terrain height--------------------
  15.     lt=lat1+(lat2-lat1)*(ln-lon1)/(lon2-lon1)
  16.     'set lon 'ln
  17.     'set lat 'lt
  18.     'set z 1'
  19.     'd HGT*0.001'
  20.     res1=sublin(result,2)
  21.     top=subwrd(res1,4)

  22.     'q w2xy 'ln' 'zh''
  23.     res2=sublin(result,1)
  24.     tx=subwrd(res2,3)
  25.     ty=subwrd(res2,6)

  26.     'q w2xy 'ln' 'top
  27.     res3=sublin(result,1)
  28.     mt=subwrd(res3,6)

  29.     if(mt>ty)
  30.       'set line 1 1 6'
  31.       'draw line 'tx' 'ty' 'tx' 'mt
  32.     endif

  33.     ln=ln+0.0002
  34.     jjjjjj=jjjjjj+1
  35.   endwhile
  36. return
  37. *---------------------------------------------------------------
复制代码

代码显示不全,我把完成的传上来吧:

qcloud.gs (2.92 KB, 下载次数: 83)

评分

参与人数 2金钱 +29 贡献 +5 收起 理由
river + 14 + 2 赞一个!
mofangbao + 15 + 3

查看全部评分

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

新浪微博达人勋

发表于 2017-10-15 03:44:59 | 显示全部楼层
{:5_235:}{:5_235:}{:5_235:}
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-10-15 05:27:43 | 显示全部楼层
厉害,谢谢分享
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-10-15 05:53:02 | 显示全部楼层
{:eb502:}{:eb502:}{:eb502:}{:eb502:}{:eb502:}{:eb502:}
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-10-15 05:57:25 | 显示全部楼层
你才是大神好吧,随随便便的就写出来一个可以供别人调用的函数,厉害!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-10-15 09:16:05 | 显示全部楼层
{:5_213:}{:5_213:}
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2017-10-15 11:37:23 | 显示全部楼层
本帖最后由 小其其格 于 2017-10-15 11:38 编辑
river 发表于 2017-10-15 05:57
你才是大神好吧,随随便便的就写出来一个可以供别人调用的函数,厉害!

谢谢river大神夸奖。绘制地形的代码是别人的,我不过是把它包装为函数而已。我还需要不断向版内各位大神学习!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-10-15 12:14:24 | 显示全部楼层
大神们受我一拜!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-10-15 14:55:39 | 显示全部楼层
小其其格 发表于 2017-10-15 11:37
谢谢river大神夸奖。绘制地形的代码是别人的,我不过是把它包装为函数而已。我还需要不断向版内各位大神 ...

我要跟你学习这个包装成函数的方法,我咋就学不会呢···
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2017-10-15 15:00:53 | 显示全部楼层
river 发表于 2017-10-15 14:55
我要跟你学习这个包装成函数的方法,我咋就学不会呢···

function drawLand(参数1,参数2,参数3,……)
  代码部分……
return

然后再在绘图代码里引用函数:
drawLand(参数1,参数2,参数3,……)


river大神你不会是在调戏我吧
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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