爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 12543|回复: 11

[作图] 标注站点图

[复制链接]
发表于 2017-5-4 10:28:27 | 显示全部楼层 |阅读模式

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

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

x
最近总有人问我站点图怎么画,问多了有点烦。
正好借此机会我把我用的.ncl共享出来。
当然,这个就只当做是大家学习交流使用的啦~
  1. load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
  2. load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
  3. load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
  4. load "$NCARG_ROOT/lib/ncarg/nclscripts/cnmap/cnmap.ncl"

  5. begin

  6. wks = gsn_open_wks("eps","Station")
  7. gsn_define_colormap( wks ,"gui_default")

  8. ;=================Set Map=================;
  9. res              = True            
  10. res@tiMainString ="Stations Map"
  11. res@gsnMaximize  = True
  12. res@gsnDraw      = False
  13. res@gsnFrame     = False

  14. res@mpMinLatF               = 0.
  15. res@mpMaxLatF               = 70.
  16. res@mpMinLonF               = 70.
  17. res@mpMaxLonF               = 140.

  18. res@mpFillOn                = True
  19. res@mpOutlineOn             = False                          ; Use outlines from shapefile
  20. res@mpDataBaseVersion       = "MediumRes"
  21. res@mpDataSetName           = "Earth..4"
  22. res@mpAreaMaskingOn         = True
  23. res@mpMaskAreaSpecifiers    = (/"China"/)
  24. res@mpLandFillColor         = "white"
  25. res@mpInlandWaterFillColor  = "white"
  26. res@mpOceanFillColor        = "white"
  27. res@mpOutlineBoundarySets   = "NoBoundaries"

  28. map = gsn_csm_map(wks,res)

  29. ;=================Draw Map=================;

  30. cnres           = True
  31. cnres@china     = True        ; draw china map or not
  32. cnres@river     = True         ; draw changjiang&huanghe or not
  33. cnres@province  = True   ; draw province boundary or not
  34. cnres@nanhai    = False     ; draw nanhai or not
  35. cnres@diqu      = True         ; draw diqujie or not

  36. chinamap = add_china_map(wks,map,cnres)

  37. ;=================Draw Station=================;

  38. nn  = 109
  39. lon = new((/nn/), double)
  40. lat = new((/nn/), double)
  41. lon = asciiread("lon.txt", (/nn/), "double")
  42. lat = asciiread("lat.txt", (/nn/), "double")

  43. mkres = True
  44. mkres@gsMarkerIndex = 1
  45. mkres@gsMarkerSizeF = 0.05
  46. mkres@gsMarkerColor = 230
  47. stnmap = gsn_add_polymarker(wks, map, lon, lat, mkres)

  48. draw(map)
  49. frame(wks)

  50. end
复制代码
其中需要修改的地方有:经纬度范围(res@mpMinLatF、res@mpMaxLatF、res@mpMinLonF、res@mpMaxLonF),地图(res@mpMaskAreaSpecifiers)、站数(nn)、站点经纬度数据文件(lon = asciiread("lon.txt", (/nn/), "double")、lat = asciiread("lat.txt", (/nn/), "double"))、标注的图形大小及颜色(mkres@gsMarkerIndex、mkres@gsMarkerSizeF、mkres@gsMarkerColor)。
而对于cnmap的文件,我用的是在本站里面提供的那个~你的NCL没有的话就去搜一下然后根据他的安装说明弄就好了。

另外,GrADS里面标注站点的方式可以参考课本(《GrADS软件基础教程》气象出版社)里标注台风(大约P88左右)的那个例子。


Stn.ncl

1.85 KB, 下载次数: 30, 下载积分: 金钱 -5

其实就是上面的那个贴出来的程序,不想复制粘贴的话可以直接点击这里下载。

密码修改失败请联系微信:mofangbao
发表于 2017-5-4 13:24:40 | 显示全部楼层
好东西!正需要
密码修改失败请联系微信:mofangbao
发表于 2017-5-11 11:04:40 | 显示全部楼层
学习了
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

发表于 2017-5-12 08:51:42 | 显示全部楼层
谢谢楼主分享
密码修改失败请联系微信:mofangbao
发表于 2017-10-8 17:58:47 | 显示全部楼层
真的很有用,画出来了,比官网的例子容易懂
密码修改失败请联系微信:mofangbao
发表于 2017-12-21 15:06:40 | 显示全部楼层
谢谢楼主!
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

发表于 2018-8-13 11:07:36 | 显示全部楼层
楼主。我的库load "$NCARG_ROOT/lib/ncarg/nclscripts/cnmap/cnmap.ncl"加载不出来是为什么?出的图没有中国地图耶
密码修改失败请联系微信:mofangbao
发表于 2018-8-20 17:08:59 | 显示全部楼层
楼主 我想在上面加上各个站点的值 请问用什么函数呢?
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2018-11-7 11:52:45 | 显示全部楼层
jianglegejiang 发表于 2018-8-20 17:08
楼主 我想在上面加上各个站点的值 请问用什么函数呢?

gsn_add_text
不要用循环,把所有的数值做成数组
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2018-11-7 11:55:58 | 显示全部楼层
帅蛋fly 发表于 2018-8-13 11:07
楼主。我的库load "$NCARG_ROOT/lib/ncarg/nclscripts/cnmap/cnmap.ncl"加载不出来是为什么?出的图没有中 ...

这个是气象家园顶置贴里面的地图上数据,因为原版的中国地图有问题
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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