回答:
IDLは素晴らしいスタンドアロンプログラミング言語です(ENVIは必要ありません)。私は、大きな配列での非常に高速なマトリックス処理のためにそれが好きです。@Aaronは、IDLのサウンドの柔軟性を実際よりもはるかに低くしています。IDL開発の大部分は、物理学と天文学のコミュニティから生まれました。数学および統計プログラミングの強力なサポートがあります。ENVIにバンドルされている場合、空間ベクトルオブジェクトのサポートを含む、ENVIで利用可能なすべてのライブラリ呼び出し(関数)があります。ユーザーコミュニティによって開発された多数の機能とモデルもあります。IDLを学習する利点の1つは、「分析的な」リモートセンシングショップで販売できるようになることです。
また、ERDASには非常に優れた学習しやすいスクリプト言語(EML)があることを忘れないでください。EMLはグラフィックモデラーのバックボーンであり、gmdはグラフィックモデラーインターフェイスの下にあるパッケージ化されたEMLスクリプトです。EMLを直接使用する利点は、for / whileループを使用でき、スクリプト言語でより多くのERDAS機能にアクセスできることです。
MATLABはマトリックス処理にも非常に優れており、同様のベンチマークでまったく同じ構文を持つオープンソースバージョン(Octaveなど)があります。これは非常に柔軟な言語であり、かなりの力を持っています。これは、応用数学と工学に適した言語の1つです。
Pythonの代替であるNumPyとSciPyは柔軟ですが、IDLやMATLABほど最適化されていません。そのため、大きなアレイで作業する場合は、アドレス空間と速度に対処する必要があります。Pythonの大きな利点の1つは、さまざまな分析タスクを実行するための追加のライブラリです。パッケージを通じて利用できる追加機能の一部に名前を付けるために、リモートセンシング、 ノンパラメトリック統計、空間クラス(GDAL、LibLASなど)へのバインド用のパッケージがあります。
これが私たちをRに導きます。私は主に空間統計学者なので、これは私の日常言語です。利用可能なパッケージの数は膨大であり、これにより、最先端の学際的な統計的手法にアクセスできます。ただし、大規模なデータの問題を処理する場合は非常に面倒です。空間クラスは大幅に改善されており、ラスターパッケージがメモリから大きなデータを保持する機能を提供しているため、大規模なラスター配列を利用したかなり複雑な統計モデルを実装できるようになりました。それでも、大規模なメモリの問題を処理する場合、Rは低速です。BigMatrixパッケージは、ディスクからの巨大な配列の書き込みと処理を可能にしますが、コーディングのオーバーヘッドはさほど重要ではありません。GDALおよびGISソフトウェア(GRASS、SAGA)これにより、GIS固有のソフトウェアでRの外部で空間オブジェクト処理を行うことができます。これが最近のGISソフトウェアとのやり取りです。これにより、Rを離れることなく、複数のソフトウェアの機能を活用できます。
したがって、ソフトウェアのチアリーディングが邪魔にならないので、私の推奨事項は「上記のすべてのオプションに賛成」です。プログラミングは、習得すると他の言語に簡単に適用できるスキルです。C ++、R、IDL、Pythonには顕著な類似点があります。コーディングのイディオセントリック性は別として、学ばなければならないのは、特定のモデル/タスクを実装するために利用可能な機能です。これが完了すると、一般的なコーディング構造を実装するのは構文の問題です。
別のソフトウェアや言語でうまく機能するものもあります。FORTRANまたはC ++でコードを記述することは、特定のタスクに最適な選択であるためです。それは適応性の問題です。Pythonを使用すると、スクリプト言語として多くのタスクに適用できます。また、特殊な分析用のパッケージの可用性を提供し、無料のオンラインリソースが多数あり、学習がやや簡単です。
リモートセンシングの観点から見ると、IDLの主な利点は、Python arcpyサイトパッケージがArcGISの機能を拡張するのと同様に、ENVIの機能を拡張することです。ENVIプラットフォームにアクセスできない場合は、別のプログラミング言語の学習を検討してください。さらに、IDLは商用製品ですが、Pythonはオープンソースであり、巨大なサポートベースを備えています。
実用的な観点から、Python、R(オープンソース)、MATLAB(商用)は、日々のリモートセンシングベースの作業にとって最も重要な言語です。多くのデジタル画像処理にMATLABを、GIS関連のタスクにPythonを、グラフィックス/解析目的にRを使用しています。
最後に、1つの言語にすべての努力を集中しなければならない場合、主にPythonの機能はRSベースの機能に加えてGIS関連の処理にはるかに適しているため、Pythonを学ぶことにします。言い換えれば、Pythonは万能屋ですが、IDLはそうではありません。その上、NASAはPythonを使用します!
1つの手続き型言語に焦点を合わせるのではなく、基本的なコンピューターサイエンス理論を学ぶことを強くお勧めします。CS理論の基礎を取得すると、プログラミング言語を同じ意味で使用できるようになります。日常的に2〜3つの言語を使用してコードを記述し(ほとんどの場合、Matlab、R、Python)、先月はVB、BATCH、およびEASE(PCI Focus)でコードを記述しました。
これは、複数の言語を簡単に学習できるようにするだけでなく、基本的な間違いを避けるためにも重要です。
いくつかの推奨トピックは次のとおりです。
また、コードの記述に問題がある場合は、一歩下がって疑似コードを記述してください。基本的に、コードの背後にあるロジックと、何を達成したいのかを段階的に記述します。
学生の場合は、1年目と2年目のcomp sciコースを受講することをお勧めします。
乾杯。
これは別の答えの価値があると思います:Pythonをリモートセンシングに使用する方法を学ぶための絶対に素晴らしいページはこれです。講義ノートは素晴らしいチュートリアルです:http : //www.gis.usu.edu/~chrisg/python / 2009 /
私にとって、PythonとQuantumGISの組み合わせは、リモートセンシングとGISのニーズをすべて解決します。
リモートセンシング(画像解析)で使用したいパッケージに依存します。ArcGIS(ESRI)はリモートセンシングパッケージではありません。オープンソースパッケージを使用する場合は、PythonとRが素晴らしい言語であることに同意します。また、C ++とCも検討するので、いくつかのライブラリ(GDALなど)をさらに深く掘り下げることができます。市販の(COTS)パッケージに固執する場合は、C言語(C、C ++、およびC#)をさらに検討する必要があります。ハッピーコーディング。