<< 細かいテクニック >>
・ディレクトリに含まれる「ディレクトリ」を探したいとき
result = file_search(dir_path+'/*')
とする。"*"で指定ディレクトリ直下のディレクトリ、ファイルを探すことになる
file_search(dir_path, "*")
とすると階層以下のすべてのファイルを探すので注意
・X軸方向にエラーバーを付ける
oploterror, x, y, xerr, yerr
・OSごとに異なるディレクトリ区切り文字を指定する
path_sep()
・plotの縦軸横軸の数字を消す
plot,x,y,xtickname = replicate(' ',100), ytickname = replicate(' ',100)
・plotの文字にギリシャ文字やシンボルを使う
文字列を書くところに !4(ギリシャ文字), !9(symbol)などを書く。
この!○のあとに書かれる文字は各フォントに対応した文字が表示される。
元に戻すには !3(アルファベット) or !x(デフォルトを意)を書く。
たとえば
plot,didngen(100), xtitle = 'ABCD !4 ABCD !X '
Degree Signの表示の仕方は
plot,didngen(100), xtitle = 'Degree sign!9%!X '
こっちでもできた
plot,didngen(100), xtitle = 'Degree sign'+string(176b)
・一覧を表示させる
ギリシャ文字
showfont,4,'Simple Greek' ; <- Simple Greekの部分は適当な文字列でよい
記号
showfont,9,'Symbols'
アルファベットとの対応をみるには
showfont,3, 'Base'
として表の同じ位置にあるアルファベットを書けば目的のギリシャ文字や記号が表示できる。
上付き文字!U、下付き文字!D。!Nで元に戻す。!Eで指数。
plot,didngen(100), xtitle = 'Sample !Usample!N !Dsample!N'
(参考) http://www-step.kugi.kyoto-u.ac.jp/~daiki/idl/#l17
・カラーがうまく表示されないとき
device, decomposed=0, retain=2, true_color=24
・Linuxサーバなどでリモート実行時にX deviceを利用したくないとき
mydevice = !d.name
set_plot,"Z" ;; <- メモリバッファに画像を疑似出力、画面には出さない
hogehoge...
set_plot,mydevice
など
・コマンドラインから実行する際、パス設定の注意
コマンドラインから実行する際、.bachrcなどで
export IDL_PATH=$IDL_PATH:/usr/local/..:<IDL_DEFAULT>
export IDL_DLM_PATH=$IDL_PATH:/usr/local/..:<IDL_DEFAULT>
と<IDL_DEFAULT>を足せばよい。
*区切り文字はコロン(:)
Ubuntu 16.4+bashでは'(カンマ)で<IDL_DEFAULT>を挟む必要があった。
export IDL_DLM_PATH=$IDL_PATH:/usr/local/..:'<IDL_DEFAULT>'
と書いておく
(以下古い or savファイルではできない)
export IDL_PATH=$IDL_PATH:/usr/local/...
などと書いているとあらかじめ設定されている
idlのパスが上書きされてしまう(この実行時のみ)。
これを回避するため、.bashrcに
export IDL_STARTUP=~/.idl_startup
と書いてIDL起動時に.idl_startupというファイルを読み込むようにしておき、idl_setupには
!path = expand_path('+/home/username/...')+':'+!path
と記載しておく。
・IDLでPSファイルをPDFへ変換 (*GhostScript+Coyote libraryを利用)
gsviewをインストールして、実行ファイルを(gs32c.exe, or gs64c.exe)をカレントディレクトリにおいて
;; pdf 出力先 ;;
ofname_img_PDF = 'pass_trajectory_2014.pdf'
;; unix optionコマンドのまとめ。InputするPSファイル名はあらかじめ用意しておく ;;
;; ifnames_PSは配列でも可。配列の場合、まとめて一つのPDFとして出力する ;;
unix_convert_opt = ' -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile='+ofname_img_PDF+' -dAutoRotatePages=/None -c "<</Orientation 1>> setpagedevice" -f ' +ifnames_PS
;; 実行 ;; 第一引数はpsファイル名で、ここは空にしておき、上のifnames_PSで指定している。
cgPS2PDF_kouyama,"", gs_path='./', unix_convert_cmd= unix_convert_opt,success=success
<古>
cgPS2PDF_kouyama,"", gs_path='./', unix_convert_cmd= $
' -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile='+ofname_img_PDF+' -dAutoRotatePages=/None -c "<</Orientation 1>> setpagedevice" -f ' +ifnames_PS
・GDLのインストール (*GDL:フリーで配布されているIDL的機能を持つコンパイラ)
Mac: mac portがインストールされていることが前提
> sudo port install gnudatalanguage
Debian/Ubuntu:
> sudo apt-get install gnudatalanguage
など。
・IDLでwgetを利用する
IDLnetURL
obj->GET("url")
的な記述でよいが、DropBoxのhttps://にアクセスできなかった(DropBox側の問題もありそう)
そこで、wgetを利用して
cmd = "wget --no-check-certificate" + URL
と書いて
Spawn, cmd, result, err_result
で解決した。