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.
Z punktu widzenia teledetekcji główną zaletą IDL jest to, że rozszerza on możliwości ENVI podobnie do tego, w jaki sposób pakiet witryny Arcpy Pythona rozszerza funkcjonalność ArcGIS. Jeśli nie będziesz mieć dostępu do platformy ENVI, rozważ naukę innego języka programowania. Ponadto IDL jest produktem komercyjnym, podczas gdy Python jest oprogramowaniem typu open source i ma ogromną bazę wsparcia.
Z praktycznego punktu widzenia Python , R (open-source) i MATLAB (reklama) są najważniejszymi językami w mojej codziennej pracy opartej na teledetekcji. Używam MATLAB-a do dużej części cyfrowego przetwarzania obrazu, Pythona do innych zadań związanych z GIS i R do celów graficznych / analitycznych.
Wreszcie, gdybym musiał skoncentrować wszystkie swoje wysiłki na jednym języku, wolałbym uczyć się Pythona głównie dlatego, że funkcjonalność Pythona jest znacznie bardziej odpowiednia do przetwarzania związanego z GIS oprócz funkcjonalności opartej na RS. Innymi słowy, Python jest wszechstronny, podczas gdy IDL nie. Poza tym NASA używa Pythona !
źródło
Zdecydowanie sugeruję naukę podstawowej teorii informatyki zamiast skupiania się na jednym języku proceduralnym. Zdobycie podstaw teorii CS pozwoliłoby na zamienne używanie języków programowania. Na co dzień używam dwóch do trzech języków do pisania kodu (głównie Matlab, R, Python), aw ostatnim miesiącu napisałem również kod w VB, BATCH i EASE (PCI Focus).
Jest to nie tylko ważne, aby móc łatwo nauczyć się wielu języków, ale także unikać podstawowych błędów.
Kilka zalecanych tematów to:
Ponadto, jeśli masz problemy z pisaniem kodu, cofnij się i napisz pseudokod. Zasadniczo pisz krok po kroku logikę swojego kodu i co chcesz osiągnąć.
Jeśli jesteś studentem, zalecamy wzięcie udziału w kursach z pierwszego i drugiego roku.
Twoje zdrowie.
źródło
Myślę, że jest to warte osobnej odpowiedzi: absolutnie świetna strona do nauki używania Pythona do teledetekcji to ta, której notatki z wykładu są świetnym tutorialem: http://www.gis.usu.edu/~chrisg/python / 2009 /
Dla mnie połączenie Pythona i QuantumGIS rozwiązuje wszystkie moje potrzeby teledetekcji i GIS.
źródło
tak naprawdę zależy to od pakietów, które mają zostać użyte w teledetekcji (analiza obrazu). ArcGIS (ESRI) nie jest pakietem teledetekcji. Jeśli chcesz korzystać z pakietów typu open source, zgodziłbym się, że Python i R są świetnymi językami. Zastanowiłbym się również nad C ++ i C, więc możesz zagłębić się w niektóre biblioteki (np .: GDAL). Jeśli chcesz trzymać się komercyjnych pakietów z półki (COTS), lepiej przyjrzyj się językom C (C, C ++ i C #). Szczęśliwego kodowania.
źródło