「IDLの小技」の版間の差分

提供: MacWiki
移動: 案内検索
(Memo)
(古い記述:最近のバージョンはパス・コマンド名がかなり違う)
 
行97: 行97:
  
 
のように、3次元配列を引数に与える。
 
のように、3次元配列を引数に与える。
 
== ノートマシンでのライセンスマネージャーの起動 ==
 
 
ライセンスマネージャーはネットワークアドレスではなく、NIC にバインドされているようです。
 
場所によってホスト名が変わるノートPCの場合は、
 
次のように動的にライセンスファイルを書き換えると良いでしょう。
 
somewhere/else/license.dat は、ライセンスファイルのホスト名部分を
 
##### のように書き換えたものです。
 
 
#!/bin/tcsh -f
 
/usr/bin/open /Applications/X11.app
 
/usr/local/rsi/idl/bin/lmstat
 
echo 'starting lmgrd....'
 
set host = `uname -n`
 
sed -e 's/#####/$host/' /somewhere/else/license.dat >! /usr/local/rsi/license/license.dat
 
/usr/local/rsi/idl/bin/lmgrd
 
endif
 
#end
 
 
== ライセンスマネージャーの終了 ==
 
 
root 権限で lmdown を実行します。
 
 
#!/bin/tcsh -f
 
sudo /usr/local/rsi/idl/bin/lmdown
 
#end
 
  
  

2009年5月31日 (日) 09:59時点における最新版

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内の関連ページ[編集]