大脸猫爱吃鱼

我的IDL学习

字数统计: 826阅读时长: 3 min
2018/12/16 Share

IDL学习网站

IDL使用学习网站

相关链接

IDL相关技巧及心得
IDL基本语法、函数
IDL数字图像处理

                   相关来源:麻辣GIS  http://malagis.com/

因为我在学习使用IDL的时候发现了这个网站,觉得东西很不错所以贴出来了。要是有什么不对的地方请及时提醒我,谢谢。

IDL Tips

1. 数据文件操作

  • 数据读取
1
2
3
4
matrix=fltarr(n,m)       ;n位列数,m为行数,读取之前需要先将数组赋值,这样在读取时不容易出错
openr,lun,'filename',/Get_lun
readf,lun,matrix
free_lun,lun
  • 读取fits文件:
1
2
;在使用IDL读取fits文件十分便捷,但是需要加入IDL天文学的函数库
spectrum=mrdfits('filename',n) ;filename为文件名,n为文件的文件头
  • 数组操作
    暂无
  • 输出文件
1
2
3
4
5
;输出一个二维数组spec,数组大小为M*N
openw,lun,'filename',/Get_lun
thisformat='nF10.4' ;nf10.4为输出的格式,n为一行需要输出的列数,F10.4为数的格式,类似于fortran中的格式
for i=1,m printf,lun,spec[*,i],format=thisformat
free_lun,lun

2. 绘图

在使用IDL绘图时,分为直接图形法和对象图形法

  • 直接图形法
1
2
plot,wave,spec     ;前一个wave为横坐标,后一个spec为纵坐标
plot,spec ;此时,spec为纵坐标,虽然没有给出纵坐标,IDL会自动使用一个顺序数组作为横坐标
  • 对象图形法,此处输出的是eps文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
!P.MULTI=[0,2,0,0,0]                            ;告诉IDL在同一幅图上划分为几个区域画图,此处划分为2行
set_plot, 'PS' ;打开设备
device,xsize=21 ;设置图片大小
device,ysize=31
tvlct, [70,255,0], [70,255,255], [70,0,0], 1 ;此处为自定义颜色表,可以在下面的代码中绘制不同颜色的图
device, Color=1 ;设置当前PS设备的颜色表为 1
device, FILE='project_model.eps', /ENCAPSULATED ;命名文件名

;model 1 ;绘制图片1
;此处加上了/nodata后,并不会将数据绘制与图上,但是其他设置仍然会生效。Xrange与Yrange设置x轴和y轴的范围,xstyle和ystyle为两坐标轴的
;的显示细节,position为限制整张图片的位置position=[x0,y0,x1,y1],(x0,y0)为图片的左下角,(x1,y1)为图片右上角。此处使用的是归一化的左
;标。xyouts为在归一化坐标下载图片上显示字符。oplot使用在plot下,为在一张图上继续绘图。thick为绘图线条的粗细,color为绘图颜色。
;
plot,wave,model,Thick=3,XRange=[3700,4540],YRange=[0.4,1.5],xstyle=1,ystyle=1,/nodata,position=[0.1,0.1,0.9,0.5],color=1
XYouts,0.7,0.15,'model spectrum 1',/Normal
oplot,wave,model,Thick=3,color=2
oplot,wave,model+0.3,Thick=3,color=2
;model 2
plot,wave,model,Thick=3,XRange=[4541,5381],YRange=[0.0,1.7],xstyle=1,ystyle=1,/nodata,position=[0.1,0.5,0.9,0.9],color=1
XYouts,0.7,0.55,'model spectrum 2',/Normal
oplot,wave,model,Thick=3,color=2
oplot,wave,model+0.2,Thick=3,color=2
;!p.font设置字体,charsize设置字体大小,Orientation为输入的字符旋转度数
!p.font=4
XYOuts, 0.06, 0.4,'Normalized Flux Density f',/Norm,Charsize=1.5,Orientation=90
XYOuts, 0.4, 0.06, /Normal,'Wavelength(A)', Charsize=1.5,color=3
device, /CLOSE_FILE
device,ENCAPSULATED=0

下面的图片为输出的图片内容

CATALOG
  1. 1. IDL学习网站
    1. 1.1. 相关链接
    2. 1.2. IDL Tips
      1. 1.2.1. 1. 数据文件操作
      2. 1.2.2. 2. 绘图