Impro

来自Shiyin's note
Shen讨论 | 贡献2015年1月1日 (四) 13:16的版本 →‎画图
跳到导航 跳到搜索

John Moustakas写的一系列IDL code,有很多有用的程序。参考文件[1]

通用

  • l,pwd,cwd,一些类UNIX命令,用spawn实现

数组

  • findex
计算一个浮点的位置,可用于插值,例子
 u=randomu(iseed,200000) & u=u(sort(u)) 
 v=randomu(iseed,10)   
 fx=findex(u,v);计算v这个数字(数组)在排序之后的u数组中间的位置
 v2=interpolate(u,fx)插值 ;interpolate是IDL内置的插值函数
 print,v,v2 ;可以看到v2几乎等于v
  • rebinw
将数组分bin,功能比较强大。
  • sort_nd
多维数组排序

统计

  • Im_stats,Im_mean,Im_median,Im_mean,Im_max
求均值,中值,等基本统计量,但是可以剔除一些可疑值,调用的idlutils中的djs_iterstat
  • IM_MEDXBIN
类似于My IDL program中的binxy

结构

  • IM_STRUCT_TRIMTAGS
调整结构数组

字符

  • SIGFIG 把一个浮点数组转换为字符数组,并保留指定精度
  • getcr 生成一个回车符

文件读写

  • READFAST
可以快速的读入逗号分隔的文件,但是只能是浮点或者双精度数

天文

  • ASTROCONST()天文上常用的常数,IM_Lsun (太阳光度,ergs^-1),IM_light(光速)
a=astroconst(/mks);国际单位制
help,a
  • BELL_MASS()
计算恒星质量 Bell et al. color-based method.
  • NED_WEBGET_BASIC (测试没有成功)
从NED获取文件
IDL> ned_webget_basic, 'ngc5194', b
IDL> struct_print, b

光谱相关

  • MAKE_WAVE
根据文件头(必须是mrdfits读入的主文件头,下面的iforage的不行),生产一个光谱的波长数组,经过测试可适用于SDSS的光谱,生产的是对数波长
  • im_filtermag
调用kcorrect中的filter文件,计算光谱积分后得到的各个波段的星等。参见由光谱到星等
  • iforage
将光谱的文件头读入成一个结构,很方便
  • K_LAMBDA()
常用消光曲线
  • BALMER_TEMPERATURE
Compute the temperature dependence of the Balmer decrement

画图

  • IM_LINEID_PLOT
标志谱线用
  • IM_PS2HTML
将ps图转换成PNG文件,然后生成一个网页
  • IM_HESSPLOT
生成一个密度图
  • GANG_PLOT_POS 和 pagemaker
画图用的,类似于multiplot,但是好像更简单。用法
 struct=gang_plot_pos(nrow,ncol,col,row, [XTICKFORMAT=,YTICKFORMAT=,                       OFFSET=,SIZE=, /POSITION_ONLY]
 plot,findgen(10),  _EXTRA=gang_plot_pos(2,1,0)  plot,findgen(10)^2,_EXTRA=gang_plot_pos(2,1,1)