利用IDL 绘制地图,以海表温度为例

本篇介绍IDL设置地图的方法,和一些常用的关键字、对象。

代码如下
IDL 8.5版本

PRO draw_sst, data, name_string, color_table, scale, offset ;这是我的一个函数
  temp = data[*, *, 0]
  index_valid = WHERE(temp LE 250, count_valid)
  min_value = ROUND( MIN(temp[index_valid])*scale[0]+offset[0] )
  max_value = ROUND( MAX(temp[index_valid])*scale[0]+offset[0] )
  object = image(temp,rgb_table=color_table, title='GMI v8.2 '+name_string[0]+$
    ': 2019/08 - monthly average - Global', map_projection='geographic', image_dimensions=[360, 180], $
    IMAGE_LOCATION=[0,-90],grid_units=2,/BOX_AXES) ;地图投影采用geographic
  bar = colorbar(target=object, range=[min_value, max_value],$
    position=[0.045,0.10,0.595,0.13],minor=5,title='Temperature $\deg C$')
    object['Latitudes'].label_angle = 90 ;设置地图标注的角度
  object['Longitudes'].label_angle = 0
  object.mapgrid.label_position = 0 ;设置标签的位置
  object.mapgrid.linestyle = 6  ;地图网格线的类型, 可以根据需要设置为实线、虚线、点划线等等
  object.mapgrid.grid_latitude = 30 ;每间隔30度显示一个纬度
  object.mapgrid.grid_longitude = 60 ;间隔60度显示一个维度
  object.mapgrid.box_thick=2 ;这个关键字可以设置地图的边框
  bar_land = colorbar(position=[0.62,0.10,0.72,0.13],rgb_table=[130, 130, 130],$
    ANTIALIAS=0,TICKLAYOUT=1,tickname=['','','',''])
  bar_seaice = colorbar(position=[0.75,0.10,0.85,0.13],rgb_table=[255, 255, 255],$
    ANTIALIAS=0,TICKLAYOUT=1,/border,tickname=['','','',''])
  bar_nodata = colorbar(position=[0.85,0.10,0.95,0.13],rgb_table=[0, 0, 0],$
    ANTIALIAS=0,TICKLAYOUT=1,/border,tickname=['','','',''])
  clolobar_title=['land','ice','no data']
  t1 = text([0.65, 0.785], [0.101, 0.101],clolobar_title,/normal)
  t2 = text([0.855], [ 0.101],clolobar_title[2],/normal,color='white')
END

关于颜色的设置,请查我的上一篇博客

https://editor.csdn.net/md/?articleId=104780858
图片就是设置的地图的效果,如有疑问,请联系我。
在这里插入图片描述

发布了13 篇原创文章 · 获赞 35 · 访问量 1690

猜你喜欢

转载自blog.csdn.net/luqialiu3392/article/details/104781102