idl官档:https://www.l3harrisgeospatial.com/docs/routines-1.html
idl画图
plot,oplot:
保存graphic需要用到
set_plot, ‘ps’
device, filename=‘path/name.ps’
…;各种plot(多条线)
device, /close_file
cgplot,cgoplot:
可以直接输出图片,用关键词output=‘path.name.ps’
暂时只会,单条线
idl毛病
for循环的syntax error
之前没用过idl,刚用idl的时候,写for循环在一个pro里,运行总报错:syntax error
检查了代码,按照逻辑是没错的,后来google了,说是idl在终端用@跑的话,idl对于pro文件是按照行读取的。
也就是不管是for循环还是if条件等等,都是一行一行读,如果用for do begin会出错,如果用for do就没事,因为for do写在一行里了。
for i =0,10 do print,i
这样写没问题,会逐个输出i
但是像下面这样写就会有问题
for i=0,10 do begin
print,i
endfor
因为它是先执行for i=0,10 do begin
再执行print,i
再执行endfor的
解决办法:不要@执行,用.r执行
🤷♀️,没有办法,居然是这么个解决办法,所以说,换语言就要承担被气晕的风险
版本问题
foreach函数在8.0以下不能用
idl函数
写txt文件
循环向某个txt文件中写东西,其中10b是ascii的换行符,如果不加换行符,循环的时候会接着上次的写。
而且string(10b)不能写成’10b’,会出错。
openw,1,'path/name.txt'
for num = 0,sed_num-1 do begin
name = string(num) + string(10b)
writeu,1,name
endfor
close,1
读ASCII数据
按列读用readcol
按列存用writecol