IDL ist eine fantastische eigenständige Programmiersprache (Sie benötigen kein ENVI). Ich mag es besonders für die sehr schnelle Matrixverarbeitung auf großen Arrays. Mit @Aaron klingt IDL viel weniger flexibel als es wirklich ist. Der Großteil der IDL-Entwicklung stammte aus den Bereichen Physik und Astronomie. Es gibt eine solide Unterstützung für die mathematische und statistische Programmierung. In Kombination mit ENVI stehen Ihnen alle in ENVI verfügbaren Bibliotheksaufrufe (Funktionen) zur Verfügung, einschließlich der Unterstützung für räumliche Vektorobjekte. Es gibt auch eine große Anzahl von Funktionen und Modellen, die von der Benutzergemeinschaft entwickelt wurden. Ein Vorteil beim Erlernen von IDL ist, dass Sie damit in "analytischen" Fernerkundungsgeschäften marktfähig werden.
Vergessen Sie auch nicht, dass ERDAS eine Skriptsprache (EML) hat, die recht gut und einfach zu erlernen ist. EML ist das Rückgrat des Grafik-Modellierers und GMDs sind einfach verpackte EML-Skripte, die sich unter der Oberfläche des Grafik-Modellierers befinden. Der Vorteil der direkten Verwendung von EML besteht darin, dass Sie for / while-Schleifen verwenden und Zugriff auf weitere ERDAS-Funktionen in einer Skriptsprache haben können.
MATLAB eignet sich auch sehr gut für die Matrixverarbeitung, und es gibt Open-Source-Versionen (z. B. Octave), die dieselbe Syntax mit ähnlichen Benchmarks aufweisen. Dies ist eine hochflexible Sprache mit beträchtlicher Kraft. Es ist eine der bevorzugten Sprachen für angewandte Mathematik und Ingenieurwissenschaften.
Die Python-Alternativen NumPy und SciPy sind flexibel, aber nicht so optimiert wie IDL und MATLAB. Aus diesem Grund müssen Sie sich mit der Adressierung von Speicherplatz und Geschwindigkeit befassen, wenn Sie mit großen Arrays arbeiten. Ein großer Vorteil von Python sind die zusätzlichen Bibliotheken zur Durchführung einer Vielzahl von analytischen Aufgaben. Es gibt Pakete für Fernerkundung , nichtparametrische Statistiken und Bindungen an räumliche Klassen (z. B. GDAL, LibLAS), um nur einige der zusätzlichen Funktionen zu nennen, die durch Pakete verfügbar sind.
Das bringt uns zu R. Ich bin in erster Linie ein Raumstatistiker, das ist also meine Alltagssprache. Die Anzahl der verfügbaren Pakete ist unübersehbar, was wiederum den Zugang zu den neuesten disziplinübergreifenden statistischen Methoden ermöglicht. Allerdings muss ich sagen, dass es bei großen Datenproblemen sehr umständlich ist. Die räumlichen Klassen werden immer besser und da das Rasterpaket die Möglichkeit bietet, große Datenmengen außerhalb des Speichers zu speichern, kann ich jetzt einige recht komplexe statistische Modelle mit großen Raster-Arrays implementieren. Trotzdem ist R langsam, wenn es um Probleme mit großem Speicher geht. Das BigMatrix-Paket ermöglicht das Schreiben und Verarbeiten großer Arrays von der Festplatte, der Codierungsaufwand ist jedoch nicht unerheblich. Es gibt auch Bindungen zu GDAL- und GIS-Software (z. B. GRASS, SAGA), mit denen die räumliche Objektverarbeitung außerhalb von R in einer GIS-spezifischen Software erfolgen kann. So interagiere ich heutzutage mit GIS-Software. Auf diese Weise kann ich die Funktionalität für mehrere Softwareprogramme nutzen, ohne R zu verlassen.
Nachdem das Software-Cheerleading nun aus dem Weg geräumt ist, lautet meine Empfehlung "Ja zu allen oben genannten Optionen". Das Programmieren ist eine Fähigkeit, die, sobald sie gelernt ist, leicht auf andere Sprachen angewendet werden kann. Es gibt bemerkenswerte Ähnlichkeiten zwischen C ++, R, IDL und Python. Abgesehen von einigen Kodierungsidiozentrien müssen die verfügbaren Funktionen zur Implementierung eines bestimmten Modells / einer bestimmten Aufgabe erlernt werden. Sobald dies erledigt ist, ist es nur eine Frage der Syntax, die allgemeine Codierungsstrukturen implementiert.
Manchmal gibt es Dinge, die in einer anderen Software oder Sprache besser funktionieren. Ich schreibe gelegentlich Code in FORTRAN oder C ++, weil es für eine bestimmte Aufgabe einfach die beste Wahl ist. Es geht um Anpassungsfähigkeit. Möglicherweise möchten Sie mit Python beginnen, da es als Skriptsprache auf zahlreiche Aufgaben angewendet werden kann, außerdem die Verfügbarkeit von Paketen für spezielle Analysen bietet, über eine Reihe kostenloser Online-Ressourcen verfügt und relativ einfach zu erlernen ist.