リモートセンシングに推奨されるプログラミング言語は?


14

リモートセンシングのスペシャリストとしての長いキャリアにつながることを願って研究を始めています。現在、一部のアプリケーションではArcGISを使用し、他のアプリケーションではENVIを学習しています。私はプログラミング言語を学ぶことが不可欠であることに気付き、IDLとPythonの選択に直面しています。コミュニティが土地表面プロセスのリモートセンシングに推奨するプログラミング言語を聞いてみたいです。

回答:


28

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を使用すると、スクリプト言語として多くのタスクに適用できます。また、特殊な分析用のパッケージの可用性を提供し、無料のオンラインリソースが多数あり、学習がやや簡単です。


よく書かれていて、反応が良いだけでなく、同様の経験(Fortranに時折戻ることもあります)を経験し、これらの言語とアプリケーション環境について同様の結論を出しているため、これを支持しました。
whuber

+1利用可能なツールの概要。EMLについて言及してくれてありがとう。スクリプトの観点から、EMLはPython(IMOP)と比較して少し不格好ですが、ErdasがRS GUIを選択する場合は非常に便利です。残念ながら、GISとRSを最大限に活用する統一言語はありません。私は、各人が利用可能な最善の方法を使用し、自由にさまざまな言語を使用する必要があることに絶対に同意します。単一言語のRSスペシャリストはこの分野では珍しいと思います。
アーロン

Pythonはオープンソースであり、多くのオンラインリソースが利用可能であるという事実を考えると、Pythonから始めることは私の最善策のように思えます。ENVIにはアクセスできますが、現在の研究では、IDLを知らなくても管理できます。空間統計も勉強しているので、Rも重要です。@Aaronは正しいようです-RSの専門家は多言語でなければなりません!詳細な対応ありがとうございます。これは、フィールドで始めたばかりの人にとって本当に大きな助けになります。
エミリー14

@ Emily、Pythonの空間統計については、PySALパッケージ(geodacenter.asu.edu/pysal)をご覧ください。Kenneth Bowmanによる「IDLによるプログラミング入門」という本があります。これは非常に一般的な入門書です。この1冊の本を読んでいくだけで、どれだけの成果が得られるかに驚くと思います。前述したように、構文とコーディング構造の多くは、言及されている言語間で類似しているため、無駄な時間はありません。ENVIを使用しているので、IDLの基本的な知識が研究に役立ちます。与えられた言語ですべてではないのではありません。
ジェフリーエヴァンス14

この投稿は良い要約です-私の経験からの追加:ArcGis、Envi、Matlab、および他のツールの高価格を考えると、無料のOpenSourceを好みます。私にとって、Python / gdalとQuantumGISの組み合わせは完璧に機能します。私の職場の他の人たちはMatlabを使用しています(しかし非常に高価です)。私の環境では、Rは何らかの理由で生物学者によって主に使用されているようです。
マックス14年

15

リモートセンシングの観点から見ると、IDLの主な利点は、Python arcpyサイトパッケージがArcGISの機能を拡張するのと同様に、ENVIの機能を拡張することです。ENVIプラットフォームにアクセスできない場合は、別のプログラミング言語の学習を検討してください。さらに、IDLは商用製品ですが、Pythonはオープンソースであり、巨大なサポートベースを備えています。

実用的な観点から、PythonR(オープンソース)、MATLAB(商用)は、日々のリモートセンシングベースの作業にとって最も重要な言語です。多くのデジタル画像処理にMATLABを、GIS関連のタスクにPythonを、グラフィックス/解析目的にRを使用しています。

最後に、1つの言語にすべての努力を集中しなければならない場合、主にPythonの機能はRSベースの機能に加えてGIS関連の処理にはるかに適しているため、Pythonを学ぶことにします。言い換えれば、Pythonは万能屋ですが、IDLはそうではありません。その上、NASAはPythonを使用します


1
pyh5やnumpy / scipyなど、Pythonには多くのモジュールがあります。OSSIMのような、特に画像処理用のより大きなライブラリもあります。
ローランド14

1
Pythonで+1。これは汎用言語であり、GISスクリプトを使用して「すぐに使える」ツールを使用する必要がある場合は、Pythonで実行できます。

おかげで、Pythonの開発を始めて、それができたら他の言語に拡張するようです。助けてくれて本当にありがとうございます。
エミリー14

1
Rasterioを忘れないでください。github.com/ mapbox / rasterioは、Pythonのラスター用の新しいライブラリです。
アレックスリース14

2

1つの手続き型言語に焦点を合わせるのではなく、基本的なコンピューターサイエンス理論を学ぶことを強くお勧めします。CS理論の基礎を取得すると、プログラミング言語を同じ意味で使用できるようになります。日常的に2〜3つの言語を使用してコードを記述し(ほとんどの場合、Matlab、R、Python)、先月はVB、BATCH、およびEASE(PCI Focus)でコードを記述しました。

これは、複数の言語を簡単に学習できるようにするだけでなく、基本的な間違いを避けるためにも重要です。

いくつかの推奨トピックは次のとおりです。

  • データ型、メモリ使用量
  • 条件
  • 繰り返し
  • パターンマッチング
  • 手続き型パラダイム、モジュール性

また、コードの記述に問題がある場合は、一歩下がって疑似コードを記述してください。基本的に、コードの背後にあるロジックと、何を達成したいのかを段階的に記述します。

学生の場合は、1年目と2年目のcomp sciコースを受講することをお勧めします。

乾杯。


2

これは別の答えの価値があると思います:Pythonをリモートセンシングに使用する方法を学ぶための絶対に素晴らしいページはこれです。講義ノートは素晴らしいチュートリアルです:http : //www.gis.usu.edu/~chrisg/python / 2009 /

私にとって、PythonとQuantumGISの組み合わせは、リモートセンシングとGISのニーズをすべて解決します。


0

リモートセンシング(画像解析)で使用したいパッケージに依存します。ArcGIS(ESRI)はリモートセンシングパッケージではありません。オープンソースパッケージを使用する場合は、PythonとRが素晴らしい言語であることに同意します。また、C ++とCも検討するので、いくつかのライブラリ(GDALなど)をさらに深く掘り下げることができます。市販の(COTS)パッケージに固執する場合は、C言語(C、C ++、およびC#)をさらに検討する必要があります。ハッピーコーディング。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.