IDL là một ngôn ngữ lập trình độc lập tuyệt vời (bạn không cần ENVI). Tôi đặc biệt thích nó để xử lý ma trận rất nhanh trên các mảng lớn. @Aaron làm cho IDL âm thanh kém linh hoạt hơn nhiều thì thực sự là như vậy. Phần lớn sự phát triển của IDL ra khỏi cộng đồng Vật lý và Thiên văn. Có sự hỗ trợ mạnh mẽ cho lập trình toán học và thống kê. Nếu được gói cùng với ENVI, bạn có tất cả các lệnh gọi thư viện (hàm) có sẵn trong ENVI, bao gồm hỗ trợ cho các đối tượng vectơ không gian. Ngoài ra còn có một số lượng lớn các chức năng và mô hình được phát triển bởi cộng đồng người dùng. Một lợi thế khi học IDL là nó sẽ giúp bạn tiếp thị được trong các cửa hàng viễn thám "phân tích".
Ngoài ra, đừng quên rằng ERDAS có ngôn ngữ kịch bản (EML) khá tốt và dễ học. EML là xương sống của trình tạo mô hình đồ họa và gmd chỉ là các tập lệnh EML được đóng gói nằm dưới giao diện của trình tạo mô hình đồ họa. Ưu điểm của việc sử dụng EML trực tiếp là bạn có thể sử dụng các vòng lặp for / while và có quyền truy cập vào nhiều chức năng ERDAS hơn bằng ngôn ngữ kịch bản.
MATLAB cũng rất tốt để xử lý ma trận và có các phiên bản nguồn mở (ví dụ, Octave) có cùng một cú pháp với các điểm chuẩn tương tự. Đây là một ngôn ngữ rất linh hoạt với sức mạnh đáng kể. Đây là một trong những ngôn ngữ ưa thích cho toán học ứng dụng và kỹ thuật.
Các lựa chọn thay thế Python NumPy và SciPy rất linh hoạt nhưng không được tối ưu hóa như IDL và MATLAB. Như vậy, bạn cần xử lý không gian và tốc độ khi làm việc với các mảng lớn. Một lợi thế rất lớn của Python là các thư viện bổ sung để thực hiện nhiều nhiệm vụ phân tích. Có các gói cho viễn thám , thống kê phi tham số , các ràng buộc với các lớp không gian (ví dụ: GDAL, LibLAS) để đặt tên cho một số chức năng được thêm vào có sẵn thông qua các gói.
Điều này đưa chúng ta đến R. Tôi chủ yếu là một nhà thống kê không gian, vì vậy, đây là ngôn ngữ hàng ngày của tôi. Số lượng các gói có sẵn là đáng kinh ngạc, lần lượt, cung cấp quyền truy cập vào các phương pháp thống kê xuyên ngành tiên tiến. Tuy nhiên, tôi phải nói rằng nó rất cồng kềnh khi xử lý các vấn đề dữ liệu lớn. Các lớp không gian đang trở nên tốt hơn nhiều và do gói raster cung cấp khả năng giữ dữ liệu lớn trong bộ nhớ, giờ đây tôi có thể thực hiện một số mô hình thống kê khá phức tạp sử dụng các mảng raster lớn. Tuy nhiên, R vẫn chậm khi xử lý các vấn đề bộ nhớ lớn. Gói BigMatrix cho phép ghi và xử lý các mảng lớn từ đĩa nhưng chi phí mã hóa không đáng kể Ngoài ra còn có các ràng buộc với phần mềm GDAL và GIS (ví dụ: GRASS, SAGA) cho phép xử lý đối tượng không gian xảy ra bên ngoài R trong một phần mềm cụ thể của GIS, đó là cách tôi tương tác với phần mềm GIS hiện nay. Điều này cho phép tôi tận dụng chức năng trên nhiều phần mềm mà không cần rời R.
Vì vậy, bây giờ khi phần mềm cổ vũ không còn hoạt động nữa, khuyến nghị của tôi là "có cho tất cả các tùy chọn trên". Lập trình là một kỹ năng mà một khi đã học được dễ dàng áp dụng cho các ngôn ngữ khác. Có những điểm tương đồng nổi bật giữa C ++, R, IDL và Python. Ngoài một số thành ngữ mã hóa, những gì người ta phải học là các chức năng có sẵn để thực hiện một mô hình / nhiệm vụ nhất định. Một khi điều này được thực hiện, nó chỉ là một vấn đề cú pháp thực hiện các cấu trúc mã hóa phổ biến.
Đôi khi có những thứ chỉ hoạt động tốt hơn trong một phần mềm hoặc ngôn ngữ khác. Thỉnh thoảng tôi viết mã bằng FORTRAN hoặc C ++ vì đó chỉ là lựa chọn tốt nhất cho một tác vụ nhất định. Đó là một vấn đề về khả năng thích ứng. Bạn có thể muốn bắt đầu với Python vì, như một ngôn ngữ kịch bản, nó có thể được áp dụng cho nhiều tác vụ, nó cũng cung cấp các gói để phân tích chuyên ngành, có một số tài nguyên trực tuyến miễn phí và hơi dễ học.