답변:
IDL은 환상적인 독립형 프로그래밍 언어입니다 (ENVI가 필요하지 않습니다). 큰 배열에서 매우 빠른 매트릭스 처리를 위해 특히 좋습니다. @Aaron은 IDL 사운드를 훨씬 유연하게 만듭니다. IDL 개발의 대부분은 물리 및 천문학 커뮤니티에서 나왔습니다. 수학 및 통계 프로그래밍에 대한 강력한 지원이 있습니다. ENVI와 함께 번들로 제공되는 경우 공간 벡터 객체 지원을 포함하여 ENVI에서 사용 가능한 모든 라이브러리 호출 (함수)이 있습니다. 또한 사용자 커뮤니티가 개발 한 많은 기능과 모델이 있습니다. IDL 학습의 한 가지 장점은 "분석"원격 감지 상점에서 마케팅 할 수 있다는 것입니다.
또한 ERDAS에는 매우 훌륭하고 배우기 쉬운 스크립트 언어 (EML)가 있다는 것을 잊지 마십시오. EML은 그래픽 모델러의 중추이며 gmd는 그래픽 모델러 인터페이스 아래에있는 패키지화 된 EML 스크립트입니다. EML을 직접 사용하는 이점은 for / while 루프를 사용할 수 있고 스크립팅 언어로 더 많은 ERDAS 기능에 액세스 할 수 있다는 것입니다.
MATLAB은 매트릭스 처리에도 매우 적합하며 유사한 벤치 마크와 구문이 정확히 동일한 오픈 소스 버전 (예 : 옥타브)이 있습니다. 이것은 상당한 힘을 가진 매우 유연한 언어입니다. 응용 수학 및 공학에서 선호하는 언어 중 하나입니다.
파이썬 대안 NumPy 및 SciPy는 유연하지만 IDL 및 MATLAB만큼 최적화되지 않았습니다. 따라서 대형 어레이를 다룰 때 주소 공간과 속도를 처리해야합니다. 파이썬의 큰 장점 중 하나는 다양한 분석 작업을 수행하기위한 추가 라이브러리입니다. 원격 감지 , 비모수 통계 , 공간 클래스 (예 : 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을 사용합니다.
마지막으로, 모든 노력을 하나의 언어에 집중해야한다면, 파이썬 기반 기능은 RS 기반 기능 외에 GIS 관련 처리에 훨씬 더 적합하기 때문에 주로 파이썬을 배우려고합니다. 다시 말해서, 파이썬은 모든 거래의 대가 인 반면 IDL은 그렇지 않습니다. 게다가 NASA는 Python을 사용합니다 !
하나의 절차 적 언어에 중점을 두지 않고 기본적인 컴퓨터 과학 이론을 배우는 것이 좋습니다. 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 요구를 해결합니다.