IDL - это фантастический автономный язык программирования (вам не нужен ENVI). Мне особенно нравится это для очень быстрой обработки матрицы на больших массивах. @ Аарон делает звук IDL гораздо менее гибким, чем он есть на самом деле. Большинство разработок IDL пришли из сообществ физики и астрономии. Существует надежная поддержка математического и статистического программирования. Если в комплекте с ENVI, у вас есть все библиотечные вызовы (функции), доступные в ENVI, включая поддержку пространственных векторных объектов. Существует также большое количество функций и моделей, разработанных сообществом пользователей. Одним из преимуществ изучения IDL является то, что он сделает вас конкурентоспособным в «аналитических» магазинах дистанционного зондирования.
Кроме того, не забывайте, что в ERDAS есть язык сценариев (EML), который довольно хорош и прост в освоении. EML является основой графического моделера, а gmd - это просто упакованные EML-скрипты, которые находятся под интерфейсом графического моделера. Преимущество непосредственного использования EML заключается в том, что вы можете использовать циклы for / while и иметь доступ к дополнительным функциям ERDAS на языке сценариев.
MATLAB также очень хорош для обработки матриц, и есть версии с открытым исходным кодом (например, Octave), которые имеют точно такой же синтаксис с аналогичными тестами. Это очень гибкий язык со значительной силой. Это один из предпочтительных языков для прикладной математики и техники.
Альтернативы Python NumPy и SciPy являются гибкими, но не такими оптимизированными, как IDL и MATLAB. Таким образом, вам нужно иметь дело с адресным пространством и скоростью при работе с большими массивами. Одним из огромных преимуществ Python являются дополнительные библиотеки для выполнения различных аналитических задач. Существуют пакеты для дистанционного зондирования , непараметрической статистики , привязок к пространственным классам (например, GDAL, LibLAS), чтобы назвать лишь некоторые из дополнительных функций, доступных через пакеты.
Это подводит нас к R. Я прежде всего пространственный статистик, так что это мой повседневный язык. Количество доступных пакетов ошеломляет, что, в свою очередь, обеспечивает доступ к самым современным междисциплинарным статистическим методологиям. Однако я должен сказать, что это очень громоздко при работе с большими данными. Пространственные классы становятся намного лучше, и благодаря растровому пакету, позволяющему хранить большие данные в памяти, я теперь могу реализовать некоторые довольно сложные статистические модели, использующие большие растровые массивы. Но все же R медленно работает с большими проблемами с памятью. Пакет BigMatrix позволяет записывать и обрабатывать огромные массивы с диска, но накладные расходы на кодирование не являются незначительными. Существуют также привязки к программному обеспечению GDAL и ГИС (например, GRASS, SAGA), которые позволяют обрабатывать пространственные объекты за пределами R в программном обеспечении, специально предназначенном для ГИС, и именно так я сегодня взаимодействую с программным обеспечением ГИС. Это позволяет мне использовать функциональность нескольких программ, не покидая R.
Итак, теперь, когда поддержка программного обеспечения уже не существует, я рекомендую «да, для всех вышеупомянутых вариантов». Программирование - это навык, который после изучения легко применяется к другим языкам. Есть поразительное сходство между C ++, R, IDL и Python. Помимо некоторой идиоцентричности кодирования, необходимо изучить доступные функции для реализации данной модели / задачи. Как только это сделано, это всего лишь вопрос синтаксиса, который реализует общие структуры кодирования.
Иногда есть вещи, которые лучше работают на другом программном обеспечении или языке. Я иногда пишу код на FORTRAN или C ++, потому что это просто лучший выбор для данной задачи. Это вопрос приспособляемости. Возможно, вы захотите начать с Python, потому что, как язык сценариев, он может применяться к многочисленным задачам, он также обеспечивает доступность пакетов для специализированного анализа, имеет ряд бесплатных онлайн-ресурсов и несколько прост в освоении.
С точки зрения дистанционного зондирования, основное преимущество IDL заключается в том, что он расширяет возможности ENVI, подобно тому, как пакет Python для Arcpy расширяет функциональность ArcGIS. Если у вас не будет доступа к платформе ENVI, подумайте об изучении другого языка программирования. Кроме того, IDL является коммерческим продуктом, тогда как Python является открытым исходным кодом и имеет огромную базу поддержки.
С практической точки зрения Python , R (с открытым исходным кодом) и MATLAB (коммерческий) являются наиболее важными языками для моей повседневной работы, основанной на дистанционном зондировании. Я использую MATLAB для большей части обработки цифровых изображений, Python для задач, связанных с ГИС, и R для графических / аналитических целей.
Наконец, если бы мне пришлось сосредоточить все свои усилия на одном языке, я бы предпочел изучать Python главным образом потому, что функциональность Python гораздо больше подходит для обработки, связанной с ГИС, в дополнение к функциональности на основе RS. Другими словами, Python - мастер на все руки, а IDL - нет. Кроме того, НАСА использует Python !
источник
Я настоятельно рекомендую изучать основную теорию информатики вместо того, чтобы сосредоточиться на одном процедурном языке. Приобретение основ в теории CS позволит вам использовать языки программирования взаимозаменяемо. Для повседневной работы я использую два-три языка для написания кода (в основном Matlab, R, Python), а в прошлом месяце я также написал код на VB, BATCH и EASE (PCI Focus).
Это важно не только для того, чтобы легко выучить несколько языков, но и для избежания основных ошибок.
Несколько рекомендуемых тем:
Также, если у вас возникли проблемы с написанием кода, сделайте шаг назад и напишите псевдокод. По сути, напишите пошаговую логику вашего кода и то, что вы хотите, чтобы он выполнял.
Если вы студент, я рекомендую пройти первый и второй курс по компьютерным наукам.
Приветствия.
источник
Я думаю, что это стоит отдельного ответа: абсолютно отличная страница для изучения того, как использовать Python для дистанционного зондирования, это лекционные заметки, являющиеся отличным учебным пособием: http://www.gis.usu.edu/~chrisg/python / 2009 /
Для меня сочетание Python и QuantumGIS решает все мои потребности в дистанционном зондировании и ГИС.
источник
это действительно зависит от пакетов, которые вы надеетесь использовать для дистанционного зондирования (анализа изображений). ArcGIS (ESRI) не является пакетом дистанционного зондирования. Если вы хотите использовать пакеты с открытым исходным кодом, я бы согласился, что Python и R - отличные языки. Я бы также рассмотрел C ++ и C, чтобы вы могли глубже погрузиться в некоторые библиотеки (например, GDAL). Если вы хотите придерживаться коммерческих готовых пакетов (COTS), то вам нужно больше взглянуть на языки C (C, C ++ и C #). Удачного кодирования.
источник