問題タブ [idl-programming-language]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
plot - IDL での指数表記によるプロット
IDL のプロット パッケージを使用して図をプロットする際に、数値を科学表記法 (400 ではなく 4e2 など) でプロットできるかどうか (およびその方法) を知りたいです。
contour - IDL 等高線プログラミングの「high_low」値について、誰かが適切に説明してくれませんか?
「輪郭が周囲より上にある場合は 1 であり、輪郭が下にある場合は 0 であるバイト。」説明は私にはまったく意味がありません。:-(
私がプログラムしようとしているのは、ケルビン・ヘルムホルツ渦をプロットしていて、最初の渦から抜け出す閉じた輪郭だけを強調したいということです。そのため、プロットの外側に沿って閉じた輪郭は良くありません。私が修正しているコードは、すべての high_low = 1 の値を、必要なものに合わない等高線と見なしますが、その理由がわかりません。
どんな助けでも素晴らしいでしょう!ありがとう!
spawn - IDL 内で spawn コマンドを使用する
私は IDL に非常に慣れておらず (IDL を使用している誰かのために POC を実行しようとしています)、外部コマンドを実行しようとしています。追加したコード行は次のとおりです。
spawn, 'C:\Program Files\ITT\IDL\IDL80\products\envi48\save_add\visual.exe'
外部コマンドを起動するために必要なのはこれだけだと思いました。アプリを実行すると、デバッガーを使用してコードをステップ実行できます。この行に到達してステップ オーバーすると、実行可能ファイルが実行されません。デバッガーに、エラーの種類を示すメッセージが表示されません。
ファイル visual.exe をディレクトリに配置し、問題なく手動で実行できます。コードを実行したり、エラーを報告したりせずに、コードをステップオーバーするだけのようです。
matlab - IDLとMatLabがNetCDFファイルから奇妙な値を取得する
NetCDFファイルがあります。このファイルには、数か月にわたる世界中の総降水量を表すデータが含まれています(したがって、3次元配列に格納されています)。私は最初に、XConvとncdumpの両方で、データが適切であり、データが形成された方法であることを確認しました。すべてが賢明に見えます-値は非常に小さい(〜10 ^ -10-これはモデルデータであり、事実上ゼロを表すため、これは理にかなっています)から約5x10^-3まで変化します。
IDLまたはMatLabでこのデータを処理しようとすると、問題が発生します。これらのプログラムで生成された配列は、-4x10 ^ 4などの巨大な負の数でいっぱいで、5000などの場合によっては巨大な正の数があります。奇妙なことに、緯度と経度(特定の場所)に関するMatLabのデータのプロットを見ると時間)、降雨のパターンは賢明に見えますが、値は完全に間違っています。
IDLでは、ファイルを読み込んでテキストファイルに書き込むため、非常に基本的なテキストファイルを使用するソフトウェアで処理できます。これが私が使用しているコードです:
なぜ私がMatLabとIDLでそのような奇妙な値を取得しているのか、誰かが何か考えを持っていますか?!
graph - IDL: iplot で単純な 2D プロットをプロットする方法
例(2009年作成)から読んで、2列のデータを持つ.dat
ファイルを作成しました。temperature_vs_current.dat
この例では、次の方法でファイルを IDL に読み込む必要があります。
しかし、これは戻ります
入力をどのようにフォーマットすればよいですか?ここでのエラーは何ですか? これは IDL バージョン 6.0 です。
python - Pythonでバイナリファイルを読む
Python でバイナリ ファイルを読み取る必要があります。これは、Fortran 90 プログラムによって次のように最初に記述されます。
このバイナリ ファイルは、次の IDL コードで簡単に読み取ることができます。
私がやりたいことは、このバイナリ ファイルを Python で読み取ることです。しかし、いくつかの問題があります。まず、ファイルを読み取ろうとする試みは次のとおりです。
最初の 2 つの変数を読み取ろうとします。
しかし、ご覧のとおり、ダミー変数を追加する必要がありました。これは、fortran プログラムがこれらの位置に整数 8 を追加するためです。
問題は、他のバイトを読み取ろうとするときです。IDL プログラムと同じ結果が得られません。
これが配列nを読み取ろうとする私の試みです
ただし、この配列を印刷すると、意味のない値が得られます。つまり、上記の IDL コードでファイルを読み取ることができるので、何を期待すべきかがわかります。私の質問は次のとおりです。構造が正確にわからない場合、このファイルをどのように読むことができますか? IDL を使用すると、なぜ読み取りが簡単なのですか? このデータセットを Python で読み取る必要があります。
arrays - サイズが不明な配列をメンバー変数として使用してIDLクラスを定義する
私はIDLに比較的慣れていないので、私がやりたいことは実際には非常に些細なことだと確信しています。
いくつかのメンバー変数を使用してクラスを作成しています。これらのうちの2つはフロートになりますが、3つ目はサイズが不明な3次元配列になりたいです(実際には、3次元のサイズは12であることがわかっていますが、それだけです!)。これをクラス定義で宣言するにはどうすればよいですか、それとも不可能ですか?たぶん私は非配列データ構造で作業する必要があります..?
これまでの私のコードは次のとおりです。
python - IDL と Python の FFT の違い
簡単な IDL コードを Python に渡しています。ただし、SciPy/NumPy パッケージから返される FFT 値は IDL のものとは異なり、その理由がわかりません。
すべてを 8 つの要素の単純な例に還元すると、SciPy/NumPy ルーチンは IDL のものよりも 8 (2^3) 倍大きな値を返すことがわかりました (正規化の問題だと思いました)。
両方の言語でのコード例 (ここからコピー) を次に示します。
IDL
戻り値
(1.62500、0.00000)(0.420495、0.506282)(0.250000、0.125000)(-1.17050、-1.74372)(-2.62500、-0.00000)(-1.17050、1.74372)(0.25000000、0.125000)(0.425000)(0.0.125000)
パイソン
戻り値
[ 13. +0.j 、3.36396103 +4.05025253j、2. +1.j 、-9.36396103-13.94974747j、-21. +0.j、-9.36396103+13.94974747j、2.-1.j、3.36396103 -4.05025253j]
NumPy パッケージで実行したところ、同じ結果が得られました。念のため試してみprint fft(signal, 8 )
ましたが、予想通り同じものが返ってきました。
しかし、それだけではありません。実際の 256 要素の配列に戻ると、違いが 8 または 256 ではなく、256*8 であることがわかりました。それはただ正気ではありません。
問題を回避しましたが、なぜその違いがあるのか を知る必要があります。
解決済み:これは単なる正規化でした。ある時点で、IDL 256 配列を 8 の係数で割ったため、削除するのを忘れていました。Dougal's answer には、私が見逃したドキュメントがあります。
arrays - 複数ファイルの IDL 読み取り
私は IDL に比較的慣れていないので、次のことを達成する必要があります。
だから私は次のようなことを考えていました:
しかし、この時点で、たとえばファイルの名前を追跡して別の配列を作成する方法。
例えば:
等々。
これが明確であることを願っています、ベスト。
bash - 変数を使用してbashからIDLプログラムを実行する
コマンドライン引数に基づいて散布図を生成するプログラムをIDLで作成しました。私はこのようにターミナルで直接プログラムを正常に呼び出すことができます:
idl -e "scatterplot_1_2d_file.pro" $ infile $ outfile $ title $ xtitle $ ytitle $ xmin $ xmax $ ymin $ ymax $ timescale
$ *は、入力された文字列リテラルを指します。問題は、その行を文字列の代わりに変数名を入力してbashスクリプトに入力し、100万の散布図を生成できると思ったということです。私が休憩している間。残念ながら、そのようにすると、次のエラーが発生します。
idl:-eオプションはバッチファイルでは指定できません
したがって、次の試みは、これらのコマンドをIDLバッチファイルに書き込んでから実行することでした。
その試みは次のようになります。
スクリプトが生成するエラーの大部分が関連しているかどうかはわかりません。そのため、最初の部分を投稿し、必要に応じて残りの部分を後で投稿します。
できないことをやろうとしているだけなのかはわかりませんが、見た目は良くありません。何かアドバイス?