Documentos de Académico
Documentos de Profesional
Documentos de Cultura
324043951-CURSO-IDL Teledeteccion PDF
324043951-CURSO-IDL Teledeteccion PDF
BÁSICO
CURSO
“PROGRAMACIÓN EN IDL”
BÁSICO
2014
2
PROGRAMACIÓN EN IDL – BÁSICO
INTRODUCCION
IDL (Interactive Data Language) es el lenguaje de programación científico,
utilizado en todas las disciplinas para crear visualizaciones significativas de datos
numéricos complejos. Desde pequeños programas de análisis hasta el desarrollo
de una gran variedad de aplicaciones, IDL proporciona el entorno informático
integral que necesita para obtener eficazmente información a partir de sus datos.
3
PROGRAMACIÓN EN IDL – BÁSICO
CONTENIDO
1. Introducción a IDL
2. Recursos sobre IDL
3. Aplicaciones programadas con IDL
4. Ejemplos de demostración
5. Interprete de comandos
6. Programación Compilada
7. Apertura y edición de funciones prediseñadas
8. Operaciones elementales y tipo de datos
o Arrays
o Creando Arrays
o Operaciones Bouleanas
o Obtención de estadísticas de los datos de los arrays
o Localizando información en un array
o Reordenación de los datos de las matrices
o Cambio del tamaño de las matrices
9. Visualización de datos
o Visualización de trazados (plot)
o Visualización de superficies
10. Procesamiento básico de imágenes
o Apertura de imágenes para su uso posterior
o Visualización
o Umbralización
o Ecualización
o Suavizado y bordes
o Otras modificaciones
11. Sentencias de control en IDL
o Ejecución de condición simple IF
4
PROGRAMACIÓN EN IDL – BÁSICO
5
PROGRAMACIÓN EN IDL – BÁSICO
1. INTRODUCCIÓN A IDL
Como ya se ha comentado anteriormente, IDL es un lenguaje de
programación orientado al análisis y visualización de datos contenidos en matrices.
Es un lenguaje desarrollado por la compañía Research Systems, Inc. (RSI) ubicada
en Boulder – Colorado y actualmente comercializado por EXELIS Visual
Information Solutions.
La primera versión de IDL fue lanzada en 1981 por David Stern, a la razón
fundador de RSI. Desde entonces, IDL se ha desarrollado enormemente,
aplicándose con éxito en las ciencias del espacio y astronomía, pero usándose
asimismo, como herramienta en institutos de investigación, educación, medicina,
física, ingeniería, entre otras disciplinas.
Para los usuarios de Matlab, IDL resultará fácil de utilizar pues ambos
guardan muchas características en común. No se puede decir que uno sea
superior al otro, y la decisión de utilizar uno y otro no se basa en sus
funcionalidades, sino más bien, en cuestiones económicas o de portabilidad con
otros colaboradores.
6
PROGRAMACIÓN EN IDL – BÁSICO
Tanto uno como otro, permiten incluir dentro de sus desarrollos, el código
procedente de otros lenguajes de programación. Es común, que determinadas
operaciones donde se requiere velocidad de proceso, o que estaban previamente
compiladas en otro lenguaje, se incorporen sin ninguna complicación dentro de los
programas desarrollados en IDL.
7
PROGRAMACIÓN EN IDL – BÁSICO
8
PROGRAMACIÓN EN IDL – BÁSICO
IDL
O desde el menu inicio de Windows en el icono “IDL”
9
PROGRAMACIÓN EN IDL – BÁSICO
10
PROGRAMACIÓN EN IDL – BÁSICO
11
PROGRAMACIÓN EN IDL – BÁSICO
12
PROGRAMACIÓN EN IDL – BÁSICO
4. EJEMPLOS DE DEMOSTRACIÓN
A modo de ejemplos significativos, pueden ejecutarse los programas de
demostración que acompañan al propio software. Ello permite obtener una ligera
idea de las aplicaciones y utilidades que podemos demandar de IDL.
IDL → demo
→Features→Data Visualization→Contours->Contouring Demo
→Features→Surface& 3D Graphics→Panorama Demo
→Features→Images→ImagesProcessing Demo
→Features→Data Visualization→Volumen Rendering→Slicer Demo
→ Features→Data Visualization→Mapping→Global Mapping Demo
→Data Analysis→Math & Statistics
→Data Analysis→Minimization
→Data Analysis→Image Processing->Wavelet Demo
13
PROGRAMACIÓN EN IDL – BÁSICO
5. INTERPRETE DE COMANDOS
14
PROGRAMACIÓN EN IDL – BÁSICO
15
PROGRAMACIÓN EN IDL – BÁSICO
6. PROGRAMACIÓN COMPILADA
Frente al ejercicio anterior, podemos recurrir a un editor de texto para
elaborar nuestro programa. Tras escribirlo, se compila y finalmente se ejecuta. El
siguiente es un algoritmo muy sencillo que incluye una llamada a una función
dentro de él.
16
PROGRAMACIÓN EN IDL – BÁSICO
17
PROGRAMACIÓN EN IDL – BÁSICO
18
PROGRAMACIÓN EN IDL – BÁSICO
print, 3*5
a=3*5
help,a
b=3.0*5
help,b
c=sqrt(a) &help, c
19
PROGRAMACIÓN EN IDL – BÁSICO
Arrays
Matriz=[[0,1,2],[3,4,5],[6,7,8]]
help, matriz
print,matriz
print,matriz,2*matriz
matriz1=[1,1,1]
matriz2=[matriz1,2,2]
print,matriz2
Creando Arrays
IDL cuenta con una serie de comandos que permiten crear matrices
rellenas de ceros, o con su correspondiente índice de forma rápida. Las
siguientes secuencias dan muestra de ello.
20
PROGRAMACIÓN EN IDL – BÁSICO
ceros=intarr(6,3)
help, ceros
print, ceros
indices=indgen(6,3)
help, indices
print, indices
print, indices[5,2]
otros=replicate(2.0,4,2)
print,bytarr(3, 3, 5)
Otro ejemplo de código sencillo para crear matrices con tipo de dato real:
a=fltarr(100)
help, a
print, a(0),a(99)
print, a(10:19)
21
PROGRAMACIÓN EN IDL – BÁSICO
Operaciones Bouleanas
print,4<5,5<5,6<5
print,-5>(-indgen(9))
matriz=[0,1,2,-200,4,5,-200,7,8] &print,matriz>0
a=[2,4,6,8] & b=[3,4,5,6]
print,a<b
array=indgen(3,3)
print,array
print,total(array);suma de todos los valores d la
matriz
print,total(array,1) ;sumatorio de la primera dimensión
print,total(array,2) ;sumatorio de la segunda dimensión
print,total(array,/cumulative)
22
PROGRAMACIÓN EN IDL – BÁSICO
matriz=indgen(9)*10
print,matriz
indice=where(matriz gt35)
print,indice
print,matriz[indice]
23
PROGRAMACIÓN EN IDL – BÁSICO
24
PROGRAMACIÓN EN IDL – BÁSICO
9. VISUALIZACIÓN DE DATOS
En función del tipo de datos que dispongamos, existen multitud de métodos
de visualizarlos. Ya se ha comentado que la efectividad de IDL está no sólo en el
tratamiento que se efectúa a los datos, sino en la facilidad que tiene para
representarlos de forma intuitiva para el observador.
x=findgen(101)*(0.01*2.0*!PI)
y=sin(x)
plot,x,sin(x) ;representa el diagrama bivariante
oplot,x,sin(-x);diagrama sin borrar el anterior
oplot,x,sin(x)*cos(x) ;ídem del anterior
plot,x,y,psym=1
plot,x,y,psym=-5
plot,x,y,psym=10
25
PROGRAMACIÓN EN IDL – BÁSICO
26
PROGRAMACIÓN EN IDL – BÁSICO
27
PROGRAMACIÓN EN IDL – BÁSICO
Visualización de superficies
28
PROGRAMACIÓN EN IDL – BÁSICO
29
PROGRAMACIÓN EN IDL – BÁSICO
30
PROGRAMACIÓN EN IDL – BÁSICO
31
PROGRAMACIÓN EN IDL – BÁSICO
Ecualización
TVscl,hist_equal(rB1)
ecualizada=hist_equal(rB1)
plot, histogram(ecualizada)
32
PROGRAMACIÓN EN IDL – BÁSICO
Suavizado y bordes
Otras modificaciones
33
PROGRAMACIÓN EN IDL – BÁSICO
34
PROGRAMACIÓN EN IDL – BÁSICO
35
PROGRAMACIÓN EN IDL – BÁSICO
36
PROGRAMACIÓN EN IDL – BÁSICO
37
PROGRAMACIÓN EN IDL – BÁSICO
38
PROGRAMACIÓN EN IDL – BÁSICO
39
PROGRAMACIÓN EN IDL – BÁSICO
40
PROGRAMACIÓN EN IDL – BÁSICO
41
PROGRAMACIÓN EN IDL – BÁSICO
42
PROGRAMACIÓN EN IDL – BÁSICO
En todos los casos, los pasos a seguir para la construcción de GUIs usando
widgets son:
43
PROGRAMACIÓN EN IDL – BÁSICO
44
PROGRAMACIÓN EN IDL – BÁSICO
45
PROGRAMACIÓN EN IDL – BÁSICO
46
PROGRAMACIÓN EN IDL – BÁSICO
47
PROGRAMACIÓN EN IDL – BÁSICO
tornado.pro
spiro.pro
C:\Archivos de programa\Exelis\IDL82\examples\doc\widgets.
48
PROGRAMACIÓN EN IDL – BÁSICO
IDL>.reset_session
IDL> .COMPILEsimple_gui
IDL>resolve_all
IDL>SAVE, /ROUTINES, FILE='simple_gui.sav'
49