IDLの小技

提供: MacWiki
移動: 案内検索

Memo[編集]

主なカラーテーブル

6 PRISM
13 RAINBOW
25 Mac style
33 Blue Red

環境変数(.cshrc)

setenv  IDL_STARTUP  ~/lib/idl/start.pro

環境変数をIDLプロシージャ内から操作するには

setenv,"DISPLAY=:0.0"

ファイアーウォール ... TCP/1700番ポートを開けておくこと

X Window 関連[編集]

  • X window でカラーウィンドウを扱うには↓が必要。
device, decomposed=0, retain=2, true_color=24
  • 65000色(High Color)では使えない。256色か1677万色(Full Color)が必要。

データの読み込み[編集]

Fortranバイナリ形式のデータを読み込む場合は、/f77 オプションをつける。 また、/get_lun で unit にファイル番号を自動取得することができる。

openr,/get_lun,/f77,unit,file

データの読み込み[編集]

data/ ディレクトリ内の data/data* ファイルを一覧表示し、 目的のファイルを番号で指定するサンプル。 単一のファイルを読み込む data_read を別途用意しておく。

spawn, 'ls data/data*', files
n = n_elements(files)
for i=0,n-1 do begin
    print, i, ' ', files(i)
endfor
print, 'Which file to read? (1/2/...)'
read, n
file = files(n)
data_read, file

ファイルの拡張子に .gz が含まれている場合は、 ファイルの開き方を切り替える

if( strmid(file,(strlen(file)-3),3) eq '.gz' ) then begin
    openr,1, file, /compress
    for i=0,nx-1 do begin
        readf,1, ...
    endfor
 endif else begin
    openr,1, file
    for i=0,nx-1 do begin
        readf,1, ...
    endfor
endelse
close,1

pngファイルに出力[編集]

Xの画面をpngファイルに出力したうえで、Preview.appで表示します。

pro png
pngfile = 'idl.png'
print, 'Filename? '
read, pngfile
write_png, pngfile, tvrd(true=1)
spawn, 'open -a Preview ' + pngfile ;; Mac OS X
end

同じ階層のディレクトリをFinderを開くには

spawn, 'open .'


3次元配列を tiff データに書き出す[編集]

for loop=0,255 do begin $
  spawn, 'printf "tiff/img%03d.tiff" ' + string(loop), count &$
  print, count(0) &$
  write_tiff, count(0), ds[0:255,0:255,loop] &$
  endfor
  • sprintf 相当の関数がわからないので、spawn でシェルコマンドを呼びだしている。

3次元配列の可視化[編集]

iVolume,ds[0:255,0:255,0:255]
iVolume,ue[0:255,0:255,0:255,2]

のように、3次元配列を引数に与える。


Wiki内の関連ページ[編集]