Saltar al contenido

¿Lenguaje de programación recomendado para la teledetección?

Deseamos brindarte la mejor información que hemos encontrado online. Deseamos que te sirva de ayuda y si puedes compartir alguna mejora hazlo libremente.

Solución:

IDL es un fantástico lenguaje de programación independiente (no necesita ENVI). Particularmente me gusta para el procesamiento de matrices muy rápido en matrices grandes. @Aaron hace que IDL suene mucho menos flexible de lo que realmente es. La mayor parte del desarrollo de IDL provino de las comunidades de física y astronomía. Existe un soporte sólido para la programación matemática y estadística. Si se incluye con ENVI, tiene todas las llamadas de biblioteca (funciones) disponibles en ENVI, incluido el soporte para objetos vectoriales espaciales. También hay una gran cantidad de funciones y modelos desarrollados por la comunidad de usuarios. Una ventaja de aprender IDL es que lo hará comercializable en tiendas de sensores remotos “analíticos”.

Además, no olvide que ERDAS tiene un lenguaje de scripting (EML) que es bastante bueno y fácil de aprender. EML es la columna vertebral del modelador gráfico y los gmd son solo scripts EML empaquetados que se encuentran debajo de la interfaz del modelador gráfico. La ventaja de usar EML directamente es que puede usar bucles for/while y tener acceso a más funciones de ERDAS en un lenguaje de secuencias de comandos.

MATLAB también es muy bueno para el procesamiento matricial y existen versiones de código abierto (p. ej., Octave) que tienen exactamente la misma sintaxis con puntos de referencia similares. Este es un lenguaje altamente flexible con un poder considerable. Es uno de los lenguajes preferidos para las matemáticas aplicadas y la ingeniería.

Las alternativas de Python NumPy y SciPy son flexibles pero no tan optimizadas como IDL y MATLAB. Como tal, debe lidiar con el espacio de direccionamiento y la velocidad cuando trabaja con arreglos grandes. Una gran ventaja de Python son las bibliotecas adicionales para realizar una variedad de tareas analíticas. Hay paquetes para sensores remotos, estadísticas no paramétricas, enlaces a clases espaciales (p. ej., GDAL, LibLAS) por nombrar solo algunas de las funciones adicionales disponibles a través de los paquetes.

Esto nos lleva a R. Soy principalmente un estadístico espacial, por lo que este es mi lenguaje cotidiano. La cantidad de paquetes disponibles es asombrosa, lo que, a su vez, brinda acceso a metodologías estadísticas interdisciplinarias de vanguardia. Sin embargo, debo decir que es muy engorroso cuando se trata de grandes problemas de datos. Las clases espaciales están mejorando mucho y debido a que el paquete de ráster proporciona la capacidad de almacenar grandes datos fuera de la memoria, ahora puedo implementar algunos modelos estadísticos bastante complejos utilizando matrices de ráster grandes. Pero aún así, R es lento cuando se trata de grandes problemas de memoria. El paquete BigMatrix permite escribir y procesar matrices enormes desde el disco, pero la sobrecarga de codificación no es insignificante. También hay enlaces al software GDAL y GIS (p. ej., GRASS, SAGA) que permiten que el procesamiento de objetos espaciales ocurra fuera de R en un software específico GIS. , que es como interactúo con el software GIS en estos días. Esto me permite aprovechar la funcionalidad en varios programas sin salir de R.

Entonces, ahora que el software de porristas está fuera del camino, mi recomendación es “sí a todas las opciones anteriores”. La programación es una habilidad que, una vez aprendida, se aplica fácilmente a otros lenguajes. Existen sorprendentes similitudes entre C++, R, IDL y Python. Aparte de algunas idiocentricidades de codificación, lo que uno debe aprender son las funciones disponibles para implementar un modelo/tarea dada. Una vez hecho esto, es solo una cuestión de sintaxis que implementa estructuras de codificación comunes.

A veces hay cosas que simplemente funcionan mejor en un software o idioma diferente. De vez en cuando escribo código en FORTRAN o C++ porque es la mejor opción para una tarea determinada. Es una cuestión de adaptabilidad. Es posible que desee comenzar con Python porque, como lenguaje de secuencias de comandos, se puede aplicar a numerosas tareas, también brinda disponibilidad de paquetes para análisis especializados, tiene varios recursos en línea gratuitos y es algo fácil de aprender.

Desde la perspectiva de la teledetección, el principal beneficio de IDL es que amplía la capacidad de ENVI de forma similar a cómo el paquete de sitio Python arcpy amplía la funcionalidad de ArcGIS. Si no tendrá acceso a la plataforma ENVI, considere aprender un lenguaje de programación diferente. Además, IDL es un producto comercial, mientras que Python es de código abierto y tiene una gran base de soporte.

Desde una perspectiva práctica, Python, R (código abierto) y MATLAB (comercial) son los lenguajes más importantes para mi trabajo diario basado en sensores remotos. Utilizo MATLAB para gran parte del procesamiento de imágenes digitales, Python para más tareas relacionadas con GIS y R para fines gráficos/analíticos.

Finalmente, si tuviera que concentrar todos mis esfuerzos en un idioma, elegiría aprender Python principalmente porque la funcionalidad de Python es mucho más adecuada para el procesamiento relacionado con GIS además de la funcionalidad basada en RS. En otras palabras, Python es un aprendiz de todo, mientras que IDL no lo es. Además, ¡la NASA usa Python!

Sugiero encarecidamente aprender la teoría básica de la informática en lugar de centrarse en un lenguaje de procedimiento. Adquirir una base en la teoría de CS le permitiría usar lenguajes de programación indistintamente. En el día a día, uso dos o tres lenguajes para escribir código (principalmente Matlab, R, Python), y en el último mes también escribí código en VB, BATCH y EASE (PCI Focus).

Esto no solo es importante para poder aprender fácilmente varios idiomas, sino también para evitar cometer errores básicos.

Algunos temas recomendados son:

  • tipos de datos, uso de memoria
  • condiciones
  • iteración
  • la coincidencia de patrones
  • paradigma procedimental, modularidad

Además, si tiene problemas para escribir código, dé un paso atrás y escriba pseudocódigo. Básicamente, escribe paso a paso la lógica detrás de tu código y lo que quieres que logre.

Si eres estudiante, te recomiendo tomar cursos de ciencia computacional de primer y segundo año.

Salud.

Eres capaz de defender nuestra publicación dejando un comentario y valorándolo te damos la bienvenida.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *