IDL to fantastyczny autonomiczny język programowania (nie potrzebujesz ENVI). Szczególnie podoba mi się to w przypadku bardzo szybkiego przetwarzania matrycy na dużych tablicach. @Aaron sprawia, że IDL brzmi znacznie mniej elastycznie, niż jest w rzeczywistości. Większość rozwoju IDL pochodzi od społeczności fizyki i astronomii. Istnieje solidne wsparcie dla programowania matematycznego i statystycznego. W pakiecie z ENVI dostępne są wszystkie wywołania (funkcje) biblioteki dostępne w ENVI, w tym obsługa wektorów przestrzennych. Istnieje również duża liczba funkcji i modeli opracowanych przez społeczność użytkowników. Jedną z zalet nauki IDL jest to, że sprawi, że będziesz sprzedawać ją w „analitycznych” sklepach z teledetekcją.
Nie zapominaj również, że ERDAS ma język skryptowy (EML), który jest całkiem dobry i łatwy do nauczenia. EML jest podstawą projektanta grafiki, a gmd to po prostu spakowane skrypty EML, które znajdują się pod interfejsem projektanta grafiki. Zaletą bezpośredniego używania EML jest to, że można używać pętli for / while i mieć dostęp do większej liczby funkcji ERDAS w języku skryptowym.
MATLAB jest również bardzo dobry do przetwarzania macierzy i istnieją wersje open source (np. Octave), które mają dokładnie tę samą składnię z podobnymi testami porównawczymi. Jest to bardzo elastyczny język o znacznej mocy. Jest to jeden z preferowanych języków dla matematyki stosowanej i inżynierii.
Alternatywy Python NumPy i SciPy są elastyczne, ale nie tak zoptymalizowane jak IDL i MATLAB. Jako taki, musisz poradzić sobie z adresowaniem przestrzeni i szybkości podczas pracy z dużymi tablicami. Ogromną zaletą Pythona są dodatkowe biblioteki do wykonywania różnych zadań analitycznych. Istnieją pakiety do teledetekcji , statystyki nieparametryczne , powiązania z klasami przestrzennymi (np. GDAL, LibLAS), aby wymienić tylko niektóre z dodatkowych funkcji dostępnych za pośrednictwem pakietów.
To prowadzi nas do R. Jestem przede wszystkim statystyką przestrzenną, więc to jest mój codzienny język. Liczba dostępnych pakietów jest oszałamiająca, co z kolei zapewnia dostęp do najnowocześniejszych międzydyscyplinarnych metod statystycznych. Muszę jednak powiedzieć, że jest to bardzo kłopotliwe w przypadku problemów z dużymi danymi. Klasy przestrzenne stają się coraz lepsze, a dzięki pakietowi rastrowemu, który umożliwia przechowywanie dużych danych poza pamięcią, jestem teraz w stanie zaimplementować dość złożone modele statystyczne wykorzystujące duże tablice rastrowe. Ale nadal R jest powolny w przypadku problemów z dużą pamięcią. Pakiet BigMatrix umożliwia zapisywanie i przetwarzanie ogromnych tablic z dysku, ale narzut kodowania nie jest nieznaczny. Istnieją również powiązania z oprogramowaniem GDAL i GIS (np. GRASS, SAGA), które zezwalają na przetwarzanie obiektów przestrzennych poza R w oprogramowaniu specyficznym dla GIS, w ten sposób współdziałam obecnie z oprogramowaniem GIS. To pozwala mi korzystać z funkcjonalności wielu programów bez opuszczania R.
Więc teraz, gdy cheerleadowanie oprogramowania jest już na uboczu, moje zalecenie brzmi „tak dla wszystkich powyższych opcji”. Programowanie to umiejętność, którą po opanowaniu można łatwo zastosować w innych językach. Istnieją uderzające podobieństwa między C ++, R, IDL i Python. Oprócz niektórych idiocentryczności kodowania, należy nauczyć się dostępnych funkcji do implementacji danego modelu / zadania. Po wykonaniu tej czynności jest to tylko kwestia składni, która implementuje wspólne struktury kodowania.
Czasami są rzeczy, które po prostu działają lepiej w innym oprogramowaniu lub języku. Czasami piszę kod w FORTRAN lub C ++, ponieważ jest to najlepszy wybór dla danego zadania. Jest to kwestia zdolności adaptacyjnych. Możesz zacząć od Pythona, ponieważ jako język skryptowy może być stosowany do wielu zadań, zapewnia także dostępność pakietów do specjalistycznej analizy, ma wiele bezpłatnych zasobów online i jest dość łatwy do nauczenia.