IDL é uma fantástica linguagem de programação independente (você não precisa do ENVI). Particularmente gosto para o processamento matricial muito rápido em matrizes grandes. O @Aaron torna o IDL muito menos flexível do que realmente é. A maior parte do desenvolvimento da IDL veio das comunidades de Física e Astronomia. Existe um suporte robusto para programação matemática e estatística. Se incluído no ENVI, você terá todas as chamadas (funções) da biblioteca disponíveis no ENVI, incluindo suporte para objetos vetoriais espaciais. Há também um grande número de funções e modelos desenvolvidos pela comunidade de usuários. Uma vantagem de aprender o IDL é que ele o tornará comercializável em lojas de sensoriamento remoto "analíticas".
Além disso, não esqueça que o ERDAS possui uma linguagem de script (EML) bastante boa e fácil de aprender. EML é a espinha dorsal do modelador gráfico e os gmd são apenas scripts EML empacotados que ficam embaixo da interface do modelador gráfico. A vantagem de usar EML diretamente é que você pode usar loops for / while e ter acesso a mais funcionalidade do ERDAS em uma linguagem de script.
O MATLAB também é muito bom para o processamento de matrizes e existem versões de código aberto (por exemplo, Octave) que possuem exatamente a mesma sintaxe com referências semelhantes. Essa é uma linguagem altamente flexível e com considerável poder. É um dos idiomas preferidos para matemática aplicada e engenharia.
As alternativas Python NumPy e SciPy são flexíveis, mas não tão otimizadas quanto IDL e MATLAB. Como tal, você precisa lidar com espaço e velocidade de endereçamento ao trabalhar com matrizes grandes. Uma enorme vantagem do Python são as bibliotecas adicionais para executar uma variedade de tarefas analíticas. Existem pacotes para sensoriamento remoto , estatísticas não paramétricas , ligações a classes espaciais (por exemplo, GDAL, LibLAS) para citar apenas algumas das funcionalidades adicionais disponíveis nos pacotes.
Isso nos leva a R. Eu sou principalmente um estatístico espacial, portanto, essa é a minha linguagem cotidiana. O número de pacotes disponíveis é impressionante, o que, por sua vez, fornece acesso a metodologias estatísticas interdisciplinares de ponta. No entanto, devo dizer que é muito complicado ao lidar com grandes problemas de dados. As classes espaciais estão ficando muito melhores e, devido ao pacote raster fornecer a capacidade de reter grandes dados da memória, agora sou capaz de implementar alguns modelos estatísticos bastante complexos, utilizando grandes matrizes raster. Ainda assim, R é lento ao lidar com grandes problemas de memória. O pacote BigMatrix permite gravar e processar enormes matrizes a partir do disco, mas a sobrecarga de codificação não é insignificante. Também existem ligações ao software GDAL e GIS (por exemplo, GRASS, SAGA) que permitem que o processamento de objetos espaciais ocorra fora do R em um software específico de GIS, que é como eu interajo com o software GIS atualmente. Isso me permite alavancar a funcionalidade em vários softwares sem sair de R.
Então, agora que a líder de torcida do software está fora do caminho, minha recomendação é "sim para todas as opções acima". A programação é uma habilidade que, uma vez aprendida, é facilmente aplicada a outros idiomas. Existem semelhanças notáveis entre C ++, R, IDL e Python. Além de algumas idiocentricidades de codificação, o que se deve aprender são as funções disponíveis para implementar um determinado modelo / tarefa. Feito isso, é apenas uma questão de sintaxe que implementa estruturas comuns de codificação.
Às vezes, existem coisas que funcionam melhor em um software ou idioma diferente. Ocasionalmente, escrevo código em FORTRAN ou C ++, porque é apenas a melhor opção para uma determinada tarefa. É uma questão de adaptabilidade. Você pode começar com o Python porque, como uma linguagem de script, ele pode ser aplicado a várias tarefas, além de oferecer pacotes de análises especializadas, possuir vários recursos online gratuitos e é um pouco fácil de aprender.