問題タブ [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.
astronomy - Interactive Data Language (IDL): 気にする人はいますか?
Interactive Data Language (IDL) と呼ばれる言語を使用している人はいますか? 科学者に人気があります。プロプライエタリであり (それを実行するすべての端末で高価なライセンスを購入する必要があります)、サポートが最小限であるため (スタック上で言語である IDL を検索してみてください)、これは貧弱な言語だと思います。私は同僚に、それを使用するのをやめて C/C++/Python/Fortran/Java/Ruby を学ぶよう説得しようとしています。IDL について意見を述べるほど、IDL について知っている、または気にかけている人はいますか? どう思いますか?今すぐ時間を無駄にするのをやめるように同僚に伝えるべきですか? どうすれば彼らを説得できますか?
編集: 私が IDL を知らない、または使用していないという印象を人々は受けています。また、IDL のサポートは最小限であると言いましたが、これはある意味では正しいので、科学ライブラリが実際に大きいことを明確にする必要があります。私はいつも IDL を使用していますが、これがまさに問題です。同僚が IDL を使用しているため、私は IDL のみを使用しています。IDL が使用するファイル形式 .sav があり、IDL でのみ開くことができます。そのため、IDL を使用してこのデータを処理し、データを同僚に転送する必要がありますが、別の言語を使用した方が効率的であることはわかっています。これは、電子メールの添付ファイルで Microsoft Word ファイルを送信するようなものです。それがどれほど間違っているかを理解していない場合は、コードが不十分な単語を書きすぎて、Microsoft Word を購入したことになります。
編集: IDL Python の代替として人気があります。以下は、AstroBetterによる IDL の長所(および短所) のリストです。
IDL の長所
- 成熟した多くの数値および天文ライブラリが利用可能
- 幅広い天文ユーザーベース
- 言語自体とよく統合された数値的側面
- 経験豊富なローカルユーザーが多い
- 小さな配列の方が高速
- より簡単なインストール
- 優れた統一されたドキュメント
- 標準 GUI 実行/デバッグ ツール (IDLDE)
- 単一のウィジェット システム (どれを選択または学習するかについて心配する必要はありません)
- 保存/復元機能
- より便利なフラグとしてのキーワード引数の使用
IDL の短所
- 適用範囲が狭く、一般的なプログラミングにはあまり適していません
- 大規模な配列では遅い
- 配列機能はそれほど強力ではありません
- テーブルサポート不良
- C または Fortran を使用して拡張する機能が制限されているため、そのような拡張機能の配布とサポートが困難
- 費用がかかり、ライセンスを持っていない、またはライセンスを購入する余裕がない他のユーザーとの共同作業に問題が生じることがあります。
- クローズド ソース (RSI のみがバグを修正できます)
- IRAFタスクと統合するのは非常に厄介です
- メモリ管理が厄介
- 単一のウィジェット システム (別のフレームワーク内で作業している場合は役に立たない)
- プロット:
- 記号と数学テキストの厄介なサポート
- 多くのフォント システム、移植性の問題 (v5.1 では多少軽減されます)
- 柔軟性や拡張性がない
- 本質的にインタラクティブではないプロット ウィンドウ (例: パンとズーム)
Python の長所
- 非常に汎用的で強力なプログラミング言語でありながら、習得が容易です。強力だがオプションのオブジェクト指向プログラミングのサポート
- 非常に大規模なユーザーと開発者のコミュニティ、非常に広範で幅広いライブラリ ベース
- C、C++、または Fortran で非常に拡張可能で、移植可能な配布メカニズムが利用可能
- 無料; 非制限的なライセンス; オープンソース
- 天文学の標準スクリプト言語になる
- IRAFタスクで使いやすい
- STScI 適用の取り組みの基礎
- より一般的なアレイ機能
- 大規模な配列の高速化、メモリ マッピングのサポートの向上
- 多くの書籍やオンライン ドキュメント リソースが利用可能 (言語とそのライブラリ用)
- テーブル構造のサポートの向上
- プロット
- フレームワーク (matplotlib) より拡張可能で一般的
- フォントのサポートと移植性の向上 (それを行う方法も 1 つだけ)
- 多くのウィンドウ フレームワーク (GTK、Tk、WX、Qt など) で使用可能
- 使用するフレームワークに依存しない標準のプロット機能
- プロットは他の GUI に埋め込むことができます
- より強力な画像処理 (複数の同時 LUT、オプションのリサンプリング/再スケーリング、アルファ ブレンディングなど)
- 多くのウィジェット システムのサポート
- Python 向けに開発されている機能に対する地域の強い影響力
Pythonの短所
- 個別にインストールするその他のアイテム
- 天文学界ではあまり受け入れられていません (ただし、サポートは明らかに成長しています)
- 成熟していない科学ライブラリ:
- ドキュメントが完全ではなく、統一されていない
- 天文学的なライブラリやユーティリティについてはそれほど深くはありません
- すべての IDL 数値ライブラリ関数が Python に対応する機能を持っているわけではありません
- いくつかの数値構造は言語とあまり一致していません (または IDL よりも少し便利ではありません)。
- 配列のインデックス付け規則「後方」</li>
- 小さいアレイのパフォーマンスが遅い
- 標準の GUI 実行 / デバッグ ツールなし
- 多くのウィジェット システムのサポート (どれを選択するかについての不安)
- IDL の SAVE/RESTORE に相当する機能が現在欠けている
- matplotlib には、すべての IDL 2-D プロット機能 (表面プロットなど) に相当するものはまだありません。
- 便利ではないフラグとして使用されるキーワード引数の使用
- プロット:
- 比較的未熟で、まだ多くの開発が進行中
- 一部のプロット タイプがありません (例: surface)
- 3-d 機能には VTK が必要です (ただし、matplotlib にはいくつかの基本的な 3-d 機能があります)
position - 特定の緯度/経度の東/西 x km にある緯度/経度を見つけるにはどうすればよいですか?
与えられた緯度と経度のポイントが 2 つあります。たとえば、座標 (lat1、lon1) と (lat2、lon2) に 2 つの位置 (point_1 と point_2) があるとします。point_2 と同じ緯度ですが、point_2 の東または西に x km 離れた 3 番目のポイントを計算したいと思います。したがって、3 番目のポイントは point_2 と同じ緯度になりますが、距離 x (キロメートル単位) に応じて経度が異なります。つまり、point_3 は (lat2, lon?) になります。これは IDL で書いていますが、他の言語や式でも大歓迎です。
ありがとう
notepad++ - Notepad ++ IDL構文の強調表示?
構文を強調するために、Notepad ++用のユーザー定義の言語ファイルを作成しようとしていました-IDL(インタラクティブデータ言語)を強調表示します。しかし、私が行って作成する前に、「コミュニティ」に確認して、準備ができている人が他にいないかどうかを確認したいと思いました。
誰か提案はありますか?
idl-programming-language - forループで変数を宣言するには? (IDL)
例えば、
私のファイルは00.dat、01.dat、02.dat ... にちなんで命名されています。各ファイルには複数の列が含まれており、READCOL
それらを変数に読み込むために使用します。
これは問題なく動作しますが、たとえば 100 個の変数がある場合、すべての変数を 1 つずつ入力することはできません。
したがって、 for ループを使用してa(i), b(i), c(i), d(i)を生成します。その意味で、コードは次のようになります。
しかし、これは機能しません。for ループ内および数学の実行中に変数を宣言する方法はありますか?
(私は英語のネイティブ スピーカーではありません。質問で不明な点があればお知らせください。ありがとうございます!)
python - IDLのstopおよび.resetに相当するPython
私はPythonに比較的慣れていませんが、IDLの使用経験が少しあります。IDLのstopコマンドと.resetコマンドに相当するコマンドがPythonにあるかどうか誰かが知っているかどうか疑問に思いました。
IDLスクリプトを実行している場合は、停止コマンドを入力します。基本的には、そこでスクリプトを停止し、スクリプトの途中でコマンドラインにアクセスできるようにします。したがって、stopコマンドの前に定義したすべての関数と変数にアクセスできます。これは、デバッグに非常に役立ちます。
.resetコマンドも非常に便利です。IDL環境をリセットします(すべての変数、関数などをクリアします)。そのセッションを閉じて新しいセッションを開いたかのようですが、IDLを終了して再起動する必要はありません。私が書いたスクリプトをデバッグしようとしている場合、最初から始めてIDL(または今はPython)をリセットする必要がない場合に便利なことがあります。以前にインポートしたモジュールをインポート解除できると、Pythonでも役立ちます。
これらの問題についての助けをいただければ幸いです。
乾杯
関連している
java - 多くの ROI ポリゴンの保存とアクセス (IDL、ImageJ、Java?、XML?)
画像のスタックに何千もの ROI ポリゴンを保存して再読み込みする必要があります。実際には 30 分以上の毎秒 30 フレームのムービーなので、少なくとも 54,000 フレームです。スタック内の 1 つの画像 (フレーム) に複数の ROI が存在する可能性があり、各 ROI のサイズと頂点の数は異なります。ROI ポリゴンは、時間の経過とともに変化する形状のエッジを追跡しています。
通常、ムービー スタックは大きすぎて一度にメモリに保持できません。それを後処理し、フレームごとにかき回して形状を追跡します。ROI オブジェクトを一度に 1 フレームずつバイナリ ファイルに保存できますが、54,000 以上のファイルをまとめて保存する必要があります。あるいは、コンテナー オブジェクトを割り当てて 54,000 以上の ROI フレームをすべて保持し、それを 1 つのファイルに保存しようとすると、すぐにリソースが不足してしまいます。
すべての ROI を、ランダムにアクセスして変更できる 1 つのファイルに保存したいと考えています。フレーム 100 に 3 番目の ROI ポリゴンが必要な場合は、すぐにロードできるようにしたいと考えています。また、保存したファイルに ROI を挿入および削除できるようにしたいと考えています。
これを行うのに最適なファイル形式は何ですか? 受け入れられるフォーマットまたはアプリケーションはありますか? ImageJ にはネイティブの ROI 形式がありますが、私はそれについてあまり知りません。現在、私のアプリケーションは IDL でプログラムされています。IDL には独自の ROI クラスがありますが、前述したように、それらすべてを別々のファイルに書き出すのは避けたいと思います。また、それらすべてを 1 つのファイルにまとめるリソースもありません。XML? ありがとう。
struct - IDL:変数に格納されているフィールド名を使用して構造体フィールドにアクセスしますか?
フィールド名が「fieldname」の構造体がある場合、変数のみを使用してそのフィールドのデータにアクセスすることはできますか?
すなわち。
x='フィールド名'
することは可能ですか
data = struct。(x)なんらかの方法で?xの文字列をフィールド名として使用したいと思います。
string - IDL は文字列をコードとして評価できますか?
文字列をコードとして評価できる IDL の機能はありますか?
または、それに失敗した場合、関数に /KEYWORD を含めるための優れた動的な方法はありますか? たとえば、ユーザーが希望する地図投影のタイプを尋ねたい場合、必要な /Projection_Type キーワードに大きな if/case ステートメントを使用せずにうまく行う方法はありますか?
ユーザー オプションの数が少なくても、これらの組み合わせにより、考えられるすべてのオプションを処理するために if/case ステートメントがすぐに手に負えなくなります。
colors - IDL はこのような等高線図のカラーバーを作成できますか?
この画像の下部に、グラフの色に正しく一致する素敵なカラーバーが表示されます。
http://stribog.cc.umanitoba.ca/ceos/20100517_00z_prod/
必要な色を正確に含むカラーバーを作成するものは何も見つかりませんでした.使用していない色を含むスペクトルが常に含まれているように見えました.
データに使用する色のベクトルがあります。そのベクトルを使用して、それらの色のみでカラーバーを作成する方法はありますか?
map - IDL: IDL は、コンター プロットの下にカラーバー/その他の凡例情報を追加して、何も重ならないようにすることはできますか?
map_set 呼び出しを使用してマップを描画し、次に等高線を使用してその上にデータをプロットしています。
このプロットに凡例を追加して便利にしたいのですが、プロット全体の下にある必要があり、私が試したすべてのことで、画像の上に重複する凡例が作成されます。