Beruflich Dokumente
Kultur Dokumente
BSICO
CURSO
PROGRAMACIN EN IDL
BSICO
2014
2
INTRODUCCION
IDL (Interactive Data Language) es el lenguaje de programacin cientfico,
utilizado en todas las disciplinas para crear visualizaciones significativas de datos
numricos complejos. Desde pequeos programas de anlisis hasta el desarrollo
de una gran variedad de aplicaciones, IDL proporciona el entorno informtico
integral que necesita para obtener eficazmente informacin a partir de sus datos.
IDL es pues una herramienta para que cientficos, investigadores,
ingenieros y dems interesados puedan procesar, analizar, tratar datos y crear
aplicaciones de forma rpida y eficaz. Se trata de un lenguaje de programacin
aplicado al procesamiento y anlisis de matrices con independencia de sus
dimensiones. Esta caracterstica hace de IDL un lenguaje de programacin ideal
para el tratamiento de imgenes, en tanto que una imagen es en esencia una
matriz.
Los temas seleccionados en las prximas pginas son un compendio de
ejemplos extrados de diferentes fuentes y se utilizan aqu simplemente para
cuestiones didcticas y pedaggicas.
No pretenden ser una coleccin exhaustiva del tratamiento de datos en IDL,
y para aquellas personas realmente interesadas en estas aplicaciones, se les insta
a que acudan a las fuentes que ms adelante se resean.
CONTENIDO
1.
Introduccin a IDL
2.
3.
4.
Ejemplos de demostracin
5.
Interprete de comandos
6.
Programacin Compilada
7.
8.
o Arrays
o Creando Arrays
o Operaciones Bouleanas
o Obtencin de estadsticas de los datos de los arrays
o Localizando informacin en un array
o Reordenacin de los datos de las matrices
o Cambio del tamao de las matrices
9.
Visualizacin de datos
o Visualizacin de trazados (plot)
o Visualizacin de superficies
1. INTRODUCCIN A IDL
Como ya se ha comentado anteriormente, IDL es un lenguaje de
programacin orientado al anlisis y visualizacin de datos contenidos en matrices.
Es un lenguaje desarrollado por la compaa Research Systems, Inc. (RSI) ubicada
en Boulder Colorado y actualmente comercializado por EXELIS Visual
Information Solutions.
La primera versin de IDL fue lanzada en 1981 por David Stern, a la razn
fundador de RSI. Desde entonces, IDL se ha desarrollado enormemente,
aplicndose con xito en las ciencias del espacio y astronoma, pero usndose
asimismo, como herramienta en institutos de investigacin, educacin, medicina,
fsica, ingeniera, entre otras disciplinas.
El xito alcanzado por IDL en tan corto tiempo de vida, radica en su
flexibilidad en el modode trabajar, donde se incluyen:
Para los usuarios de Matlab, IDL resultar fcil de utilizar pues ambos
guardan muchas caractersticas en comn. No se puede decir que uno sea
superior al otro, y la decisin de utilizar uno y otro no se basa en sus
funcionalidades, sino ms bien, en cuestiones econmicas o de portabilidad con
otros colaboradores.
Tanto uno como otro, permiten incluir dentro de sus desarrollos, el cdigo
procedente de otros lenguajes de programacin. Es comn, que determinadas
operaciones donde se requiere velocidad de proceso, o que estaban previamente
compiladas en otro lenguaje, se incorporen sin ninguna complicacin dentro de los
programas desarrollados en IDL.
Aparte de lo anterior, Virtual Machine es una nueva funcionalidad de IDL
lanzada a partir de la versin 6.0. Se trata de una utilidad de libre difusin que
instalada en cualquier ordenador permite de forma simple y sin coste alguno,
ejecutar ficheros desarrollados con IDL.
Hasta ese entonces, para poder ejecutar un algoritmo programado en de
IDL se requera la instalacin del propio entorno de desarrollo de IDL, o bien una
versin reducida runtime que nos permitiera ejecutar el fichero. Esto traa
bastantes problemas y limitaba la expansin del algoritmo hacia otros usuarios o
entornos.
www.exelisvis.com
Bibliotecas de rutinas
www.gumley.com
www.dfanning.com
www.exelisvis.com
comp.lang.idl.pvware
http://idlastro.gsfc.nasa.gov
http://fermi.jhuapl.edu/slr/slrlib/local_idl.html
http://www.astro.washington.edu/deutsch/idl/
http://www.lowell.edu/users/buie/idl/idl.html
Libros
Gumley
L.E.,
Practical
IDL
Programming,
Morgan
Kaufmann
Publishers, 2002.
IDL
O desde el menu inicio de Windows en el icono IDL
En
nuestro
caso,
definiremos
el
espacio
de
trabajo
10
11
Aplicaciones ms representativas
Las anteriores demostraciones enumeran algunas de las funcionalidades
que se pueden esperar de IDL en cuanto a tratamiento y visualizacin de datos.
Adems de lo anterior, existen multitud de aplicaciones desarrolladas bien
por EXELIS VIS, o por terceras compaas, que amplan el campo de actuacin
tanto con fines acadmicos como comerciales.
Entre los desarrollos ms conocidos destacan
ENVI: sin duda alguna la aplicacin desarrollada en IDL por excelencia.
RiverTools: Aplicacin dedicada al clculo hidrulico con el uso de
modelos digitales de elevacin.
ION (IDL On Net) y VIP (Visual IDL Programming): Entornos para
facilitar la programacin de IDL en la Red, y de forma visual.
FLAASH: Mdulo para la correccin atmosfrica de imgenes de satlite.
NOESYS: Visualizador y organizador de datos tcnicos.
SARscape: Procesamiento de imgenes SAR
Puede obtenerse informacin de todos ellos tanto en la pgina web de
EXELIS Visual Information Solutions.
12
4. EJEMPLOS DE DEMOSTRACIN
A modo de ejemplos significativos, pueden ejecutarse los programas de
demostracin que acompaan al propio software. Ello permite obtener una ligera
idea de las aplicaciones y utilidades que podemos demandar de IDL.
Ejercicio 03: Ejemplos de demostracin en IDL
IDL demo
FeaturesData VisualizationContours->Contouring Demo
FeaturesSurface& 3D GraphicsPanorama Demo
FeaturesImagesImagesProcessing Demo
FeaturesData VisualizationVolumen RenderingSlicer Demo
FeaturesData VisualizationMappingGlobal Mapping Demo
Data AnalysisMath & Statistics
Data AnalysisMinimization
Data AnalysisImage Processing->Wavelet Demo
13
5. INTERPRETE DE COMANDOS
Ejercicio 04: Interprete de comandos de IDL
Los comandos siguientes se ejecutan todos desde la Consola de IDL.
Siempre es posible efectuar uno a uno los comandos que en ese momento
precisemos.
Presta atencin a la coma (,) situada entre el comando inicial y los
argumentos siguientes. Lo escrito despus del punto y coma (;) son
comentarios que no son interpretados por IDL
14
15
6. PROGRAMACIN 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 funcin
dentro de l.
16
17
quisiramos ver cmo est programada esa funcin, simplemente tendramos que
abrir el fichero correlate.pro situado dentro del subdirectorio donde se
instal IDL.
Ejercicio 06: Apertura y edicin de funciones IDL
Archivo Abrir archivo correlate.pro [se encuentra
directorio C:\Archivos de programa\exelis\IDL82\lib]
en el
18
8. VARIABLES,
TIPO
DE
DATOS
OPERACIONES ELEMENTALES
En una sesin de IDL, los datos (nmeros y cadenas) son almacenados en
lo que conocemos bien como variables. En IDL hay tres tipos bsicos de
variables:
19
Arrays
Ejercicio 08: trabajo con matrices.
Creando Arrays
Ejercicio 09: Creacin de matrices.
IDL cuenta con una serie de comandos que permiten crear matrices
rellenas de ceros, o con su correspondiente ndice de forma rpida. Las
siguientes secuencias dan muestra de ello.
20
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)
La capacidad para realizar operaciones sobre elementos especficos de una
matriz es otra de las potencialidades de IDL, llamado tambin subndices.
Los corchetes [ y ] se usan para indicar subndices en IDL. En el caso
de las matrices bi-dimensionales se usa la sintaxis:
Array[#columna, #fila]
Es importante indicar que los subndices en matrices comienzan en 0 en
lugar de 1. Por ejemplo, para imprimir el elemento de la 2da columna y 4ta
fila de la variable Array ejecutamos la sentencia:
Array[1,3]
A continuacin algunos comandos adicionales para creacin de matrices con
diferentes tipo de datos. Puede obtenerse ms informacin desde la ayuda
on-line.
bytarr, complexarr, dblarr, dcomplexarr, intarr, lon64arr,
lonarr, strarr, uintarr, ulon64arr, ulonarr
21
Operaciones Bouleanas
Ejercicio 11: Operaciones bouleanas
22
para
la
obtencin
de
datos
23
puede
24
9. VISUALIZACIN DE DATOS
En funcin del tipo de datos que dispongamos, existen multitud de mtodos
de visualizarlos. Ya se ha comentado que la efectividad de IDL est no slo en el
tratamiento que se efecta a los datos, sino en la facilidad que tiene para
representarlos de forma intuitiva para el observador.
plot,x,y,psym=1
plot,x,y,psym=-5
plot,x,y,psym=10
25
26
27
Visualizacin de superficies
Ejercicio 19: Visualizacin de superficies.
28
29
imgenes,
su
convolucin y miscelnea.
Toda la secuencia es muy sencilla de comprender por lo que no
hace
falta
informacin complementaria.
Simplemente
ejecutando
los
30
31
Ecualizacin
Ejercicio 23: Ecualizacin del histograma
TVscl,hist_equal(rB1)
ecualizada=hist_equal(rB1)
plot, histogram(ecualizada)
32
Suavizado y bordes
Ejercicio 24: Suavizado y bordes.
Filtros de imagen: Paso bajo, paso alto, Sobel y Robert.
Otras modificaciones
Ejercicio 25: Otras modificaciones.
33
34
partir
de
35
36
37
38
39
40
crear
una
matriz
llamada
data
de
12
elementos
que
se
41
42
Programming in IDL->CreatingGraphicalUser
Interfaces in IDL.
44
45
46
47
de
entornos
visuales
utilizando
widgets.
Para
utilizarlos,
48
49