procesamiento y an alisis de datos astron omicosrgh/arch/pg4/curso-proc-analisis-1.pdf · programar...

36
Procesamiento y An´ alisis de Datos Astron´omicos 1.- Introducci´on y Python 3 R. Gil-Hutton Marzo 2020 Posgrado - FCEFN-UNSJ - rgh 2020 Procesamiento y An´ alisis de Datos 1 / 36

Upload: others

Post on 31-Oct-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Procesamiento y An alisis de Datos Astron omicosrgh/arch/pg4/curso-proc-analisis-1.pdf · Programar de manera simple y clara. Aprovechar en IPython las posibilidades de%logstart

Procesamiento y Analisis de Datos

Astronomicos1.- Introduccion y Python 3

R. Gil-Hutton

Marzo 2020

Posgrado - FCEFN-UNSJ - rgh 2020 Procesamiento y Analisis de Datos 1 / 36

Page 2: Procesamiento y An alisis de Datos Astron omicosrgh/arch/pg4/curso-proc-analisis-1.pdf · Programar de manera simple y clara. Aprovechar en IPython las posibilidades de%logstart

Introduccion:

Indudablemente la practica cientıfica trata sobre la tomade decisiones.

Juntar datos, armar catalogos, clasificar, hacer teorıa, etc.son todos aspectos necesarios, pero se hace cienciacuando se decide sobre algo.

Esta hipotesis es correcta?. Si no lo es, por que?. Losdatos son consistentes?. Son adecuados para contestar lapregunta que nos interesa?. Que otros experimentosposibles sugieren esos datos?.

Decidimos por comparacion, y comparamos describiendolas propiedades de un objeto o muestra con un estadıstico.

Posgrado - FCEFN-UNSJ - rgh 2020 Procesamiento y Analisis de Datos 2 / 36

Page 3: Procesamiento y An alisis de Datos Astron omicosrgh/arch/pg4/curso-proc-analisis-1.pdf · Programar de manera simple y clara. Aprovechar en IPython las posibilidades de%logstart

Introduccion:

La manchita que se observa es una estrella o unagalaxia?. Comparamos su FWHM con el de una estrella,la representamos con ese parametro y tomamos unadecision.

Los estadısticos caracterizan objetos o muestras y son unapropiedad de los datos y, si fuimos cuidadosos alobtenerlos, nos permiten inferir informacion.

Para obtener mejores estadısticos se requieren mas datoso, lo que es lo mismo, repetir experimentos y esa es labase del metodo cientıfico.

En el caso de la astronomıa esto frecuentemente no esposible por varias razones y se requiere unareconsideracion del metodo cientıfico.

Posgrado - FCEFN-UNSJ - rgh 2020 Procesamiento y Analisis de Datos 3 / 36

Page 4: Procesamiento y An alisis de Datos Astron omicosrgh/arch/pg4/curso-proc-analisis-1.pdf · Programar de manera simple y clara. Aprovechar en IPython las posibilidades de%logstart

Introduccion:

Frecuentemente se dispone de un conjunto de datos muypequeno para trabajar.

No se tiene la libertad de repetir los experimentos lasveces que se desee debido a que el fenomeno de interesno vuelve a suceder o las condiciones del experimento hancambiando sustancialmente.

Las distribuciones de las variables observadas nonecesariamente son conocidas, dificultando notoriamentelas posibilidades de definir pruebas estadısticas paraevaluar hipotesis y tomar decisiones acerca de losresultados de nuestro experimento.

Posgrado - FCEFN-UNSJ - rgh 2020 Procesamiento y Analisis de Datos 4 / 36

Page 5: Procesamiento y An alisis de Datos Astron omicosrgh/arch/pg4/curso-proc-analisis-1.pdf · Programar de manera simple y clara. Aprovechar en IPython las posibilidades de%logstart

Introduccion:

El numero, calidad y forma de adquisicion de los datos sonmuy diferentes a los que se utilizan en los cursos basicos.

Hay que tomar decisiones realizando un analisis de losdatos mediante tecnicas estadısticas.

Se emplea el calculo de probabilidades para evaluar laposibilidad de ocurrencia de un fenomeno observado.

En ese proceso muy frecuentemente se debe utilizarmetodos de inferencia no parametricos para tomardecisiones sobre las variables en estudio.

Posgrado - FCEFN-UNSJ - rgh 2020 Procesamiento y Analisis de Datos 5 / 36

Page 6: Procesamiento y An alisis de Datos Astron omicosrgh/arch/pg4/curso-proc-analisis-1.pdf · Programar de manera simple y clara. Aprovechar en IPython las posibilidades de%logstart

Objetivo:

En este curso se mostrara como procesar y analizar datosastronomicos utilizando Python, pero este NO es un cursobasico de estadıstica o de Python.

La eleccion de Python, y particularmente Python 3.x, sedebe simplemente a que esta disponible para diferentessistemas operativos.

Para no complicar demasiado la parte computacional enlos codigos implementados no se utilizara ProgramacionOrientada a Objetos (OOP).

Si no se quiere utilizar Python es posible seguir losejemplos planteados utilizando R, IDL, C, FORTRAN ocualquier otro lenguaje de programacion.

Posgrado - FCEFN-UNSJ - rgh 2020 Procesamiento y Analisis de Datos 6 / 36

Page 7: Procesamiento y An alisis de Datos Astron omicosrgh/arch/pg4/curso-proc-analisis-1.pdf · Programar de manera simple y clara. Aprovechar en IPython las posibilidades de%logstart

Python 3: Configuracion

Los modulos usualmente estan disponibles en elrepositorio de paquetes de la distribucion de Linux.

Para cargar desde PyPI es mejor usar pip3. Por ejemplo,para instalar un modulo:

pip3 install <nombre modulo>

pip3 install <nombre modulo> == 1.0.4

pip3 install <nombre modulo> >= 1.0.4

Para cargar desde PyPI es mejor usar pip3. Paradesinstalar un modulo:

pip3 uninstall <nombre modulo>

Posgrado - FCEFN-UNSJ - rgh 2020 Procesamiento y Analisis de Datos 7 / 36

Page 8: Procesamiento y An alisis de Datos Astron omicosrgh/arch/pg4/curso-proc-analisis-1.pdf · Programar de manera simple y clara. Aprovechar en IPython las posibilidades de%logstart

Python 3: Configuracion

Para listar los modulos cargados:

pip3 list

Para mostrar informacion sobre un modulo:

pip3 show <nombre modulo>

Para buscar en PyPI un modulo:

pip3 search <string de busqueda>

Posgrado - FCEFN-UNSJ - rgh 2020 Procesamiento y Analisis de Datos 8 / 36

Page 9: Procesamiento y An alisis de Datos Astron omicosrgh/arch/pg4/curso-proc-analisis-1.pdf · Programar de manera simple y clara. Aprovechar en IPython las posibilidades de%logstart

Python 3: Configuracion

Como interprete usare IPython corriendo desde una terminalen Linux (o Spyder si Uds. prefieren una GUI).

Posgrado - FCEFN-UNSJ - rgh 2020 Procesamiento y Analisis de Datos 9 / 36

Page 10: Procesamiento y An alisis de Datos Astron omicosrgh/arch/pg4/curso-proc-analisis-1.pdf · Programar de manera simple y clara. Aprovechar en IPython las posibilidades de%logstart

Python 3: Configuracion

Los dos modulos mas importantes son Numpy y Matplotlib (elsubmodulo pyplot). Para cargarlos se deben importar.

Posgrado - FCEFN-UNSJ - rgh 2020 Procesamiento y Analisis de Datos 10 / 36

Page 11: Procesamiento y An alisis de Datos Astron omicosrgh/arch/pg4/curso-proc-analisis-1.pdf · Programar de manera simple y clara. Aprovechar en IPython las posibilidades de%logstart

Python 3: Configuracion

En IPython si se ingresa el nombre de un objeto seguido de ’.’y presionando la tecla TAB se obtiene un listado de todas lasfunciones validas para ese objeto (objeto, funcion, variable,etc.).

Posgrado - FCEFN-UNSJ - rgh 2020 Procesamiento y Analisis de Datos 11 / 36

Page 12: Procesamiento y An alisis de Datos Astron omicosrgh/arch/pg4/curso-proc-analisis-1.pdf · Programar de manera simple y clara. Aprovechar en IPython las posibilidades de%logstart

Python 3: Configuracion

Otros comandos de IPython que pueden resultar utiles son:

? o ?? a continuacion de una funcion, etc.: da ayuda einformacion sobre el objeto.

%pwd: indica el directorio actual.

%cd: permite cambiar de directorio.

%run: permite ejecutar codigo desde un archivo.

%logstart: guarda en un archivo la historia de comandos.

%logstop: cierra el archivo abierto por %logstart.

%sx: ejecuta un comando del shell y guarda el resultadoen una lista.

! seguido por un comando shell: ejecuta un comando delshell.

Posgrado - FCEFN-UNSJ - rgh 2020 Procesamiento y Analisis de Datos 12 / 36

Page 13: Procesamiento y An alisis de Datos Astron omicosrgh/arch/pg4/curso-proc-analisis-1.pdf · Programar de manera simple y clara. Aprovechar en IPython las posibilidades de%logstart

Python 3: Configuracion

Tambien es posible configurar como se inicia IPython en Linuxpara, por ejemplo, cargar los modulos usuales desde el inicio.Para eso se crea un archivo con nombre xx-startup.py (dondexx es un numero) que contenga comandos para ejecutar en elinicio. Por ejemplo:

Ejemplo:

y se lo guarda con ese nombre en el subdirectorio:

.ipython/profile_default/startup

Posgrado - FCEFN-UNSJ - rgh 2020 Procesamiento y Analisis de Datos 13 / 36

Page 14: Procesamiento y An alisis de Datos Astron omicosrgh/arch/pg4/curso-proc-analisis-1.pdf · Programar de manera simple y clara. Aprovechar en IPython las posibilidades de%logstart

Python 3: Configuracion

Para que las figuras se puedan ver interactivamente hay queindicarle a Matplotlib que se prefiere ese modo con la funcioninteractive.

Posgrado - FCEFN-UNSJ - rgh 2020 Procesamiento y Analisis de Datos 14 / 36

Page 15: Procesamiento y An alisis de Datos Astron omicosrgh/arch/pg4/curso-proc-analisis-1.pdf · Programar de manera simple y clara. Aprovechar en IPython las posibilidades de%logstart

Python 3: Configuracion

En Linux es posible configurar como se comporta Matplotlibhaciendo:

cp /etc/matplotlibrc ~/.config/matplotlib/matplotlibrc

y modificando ese archivo con un editor de texto para que pordefault sea interactivo:

Ejemplo:

Posgrado - FCEFN-UNSJ - rgh 2020 Procesamiento y Analisis de Datos 15 / 36

Page 16: Procesamiento y An alisis de Datos Astron omicosrgh/arch/pg4/curso-proc-analisis-1.pdf · Programar de manera simple y clara. Aprovechar en IPython las posibilidades de%logstart

Python 3: Normas generales

Mantener el indentado en bucles, funciones, etc.

Comentar profusamente las funciones.

Todo input-output de datos es mediante strings.

Programar de manera simple y clara.

Aprovechar en IPython las posibilidades de %logstart.

Los ındices (listas, arrays) comienzan siempre en cero.

En arrays multidimensionales el eje Y cambia mas rapidoque el X.

Recordar que NO hay una sola manera de programar.

Posgrado - FCEFN-UNSJ - rgh 2020 Procesamiento y Analisis de Datos 16 / 36

Page 17: Procesamiento y An alisis de Datos Astron omicosrgh/arch/pg4/curso-proc-analisis-1.pdf · Programar de manera simple y clara. Aprovechar en IPython las posibilidades de%logstart

Python 3: Modelo de funcion

Ejemplo:

Posgrado - FCEFN-UNSJ - rgh 2020 Procesamiento y Analisis de Datos 17 / 36

Page 18: Procesamiento y An alisis de Datos Astron omicosrgh/arch/pg4/curso-proc-analisis-1.pdf · Programar de manera simple y clara. Aprovechar en IPython las posibilidades de%logstart

Python 3: Modelo de modulo

Ejemplo:

Posgrado - FCEFN-UNSJ - rgh 2020 Procesamiento y Analisis de Datos 18 / 36

Page 19: Procesamiento y An alisis de Datos Astron omicosrgh/arch/pg4/curso-proc-analisis-1.pdf · Programar de manera simple y clara. Aprovechar en IPython las posibilidades de%logstart

Python 3: Basico

Posgrado - FCEFN-UNSJ - rgh 2020 Procesamiento y Analisis de Datos 19 / 36

Page 20: Procesamiento y An alisis de Datos Astron omicosrgh/arch/pg4/curso-proc-analisis-1.pdf · Programar de manera simple y clara. Aprovechar en IPython las posibilidades de%logstart

Python 3: Basico

Posgrado - FCEFN-UNSJ - rgh 2020 Procesamiento y Analisis de Datos 20 / 36

Page 21: Procesamiento y An alisis de Datos Astron omicosrgh/arch/pg4/curso-proc-analisis-1.pdf · Programar de manera simple y clara. Aprovechar en IPython las posibilidades de%logstart

Python 3: Listas

Posgrado - FCEFN-UNSJ - rgh 2020 Procesamiento y Analisis de Datos 21 / 36

Page 22: Procesamiento y An alisis de Datos Astron omicosrgh/arch/pg4/curso-proc-analisis-1.pdf · Programar de manera simple y clara. Aprovechar en IPython las posibilidades de%logstart

Python 3: Listas

Posgrado - FCEFN-UNSJ - rgh 2020 Procesamiento y Analisis de Datos 22 / 36

Page 23: Procesamiento y An alisis de Datos Astron omicosrgh/arch/pg4/curso-proc-analisis-1.pdf · Programar de manera simple y clara. Aprovechar en IPython las posibilidades de%logstart

Python 3: Diccionarios

Posgrado - FCEFN-UNSJ - rgh 2020 Procesamiento y Analisis de Datos 23 / 36

Page 24: Procesamiento y An alisis de Datos Astron omicosrgh/arch/pg4/curso-proc-analisis-1.pdf · Programar de manera simple y clara. Aprovechar en IPython las posibilidades de%logstart

Python 3: Decisiones condicionales

Posgrado - FCEFN-UNSJ - rgh 2020 Procesamiento y Analisis de Datos 24 / 36

Page 25: Procesamiento y An alisis de Datos Astron omicosrgh/arch/pg4/curso-proc-analisis-1.pdf · Programar de manera simple y clara. Aprovechar en IPython las posibilidades de%logstart

Python 3: Decisiones condicionales

Posgrado - FCEFN-UNSJ - rgh 2020 Procesamiento y Analisis de Datos 25 / 36

Page 26: Procesamiento y An alisis de Datos Astron omicosrgh/arch/pg4/curso-proc-analisis-1.pdf · Programar de manera simple y clara. Aprovechar en IPython las posibilidades de%logstart

Python 3: Funciones

Posgrado - FCEFN-UNSJ - rgh 2020 Procesamiento y Analisis de Datos 26 / 36

Page 27: Procesamiento y An alisis de Datos Astron omicosrgh/arch/pg4/curso-proc-analisis-1.pdf · Programar de manera simple y clara. Aprovechar en IPython las posibilidades de%logstart

Python 3: Funciones

Posgrado - FCEFN-UNSJ - rgh 2020 Procesamiento y Analisis de Datos 27 / 36

Page 28: Procesamiento y An alisis de Datos Astron omicosrgh/arch/pg4/curso-proc-analisis-1.pdf · Programar de manera simple y clara. Aprovechar en IPython las posibilidades de%logstart

Python 3: Modulos

Posgrado - FCEFN-UNSJ - rgh 2020 Procesamiento y Analisis de Datos 28 / 36

Page 29: Procesamiento y An alisis de Datos Astron omicosrgh/arch/pg4/curso-proc-analisis-1.pdf · Programar de manera simple y clara. Aprovechar en IPython las posibilidades de%logstart

Python 3: Archivos

Posgrado - FCEFN-UNSJ - rgh 2020 Procesamiento y Analisis de Datos 29 / 36

Page 30: Procesamiento y An alisis de Datos Astron omicosrgh/arch/pg4/curso-proc-analisis-1.pdf · Programar de manera simple y clara. Aprovechar en IPython las posibilidades de%logstart

Python 3: Excepciones

Posgrado - FCEFN-UNSJ - rgh 2020 Procesamiento y Analisis de Datos 30 / 36

Page 31: Procesamiento y An alisis de Datos Astron omicosrgh/arch/pg4/curso-proc-analisis-1.pdf · Programar de manera simple y clara. Aprovechar en IPython las posibilidades de%logstart

Python 3: Numpy

Posgrado - FCEFN-UNSJ - rgh 2020 Procesamiento y Analisis de Datos 31 / 36

Page 32: Procesamiento y An alisis de Datos Astron omicosrgh/arch/pg4/curso-proc-analisis-1.pdf · Programar de manera simple y clara. Aprovechar en IPython las posibilidades de%logstart

Python 3: Numpy

Posgrado - FCEFN-UNSJ - rgh 2020 Procesamiento y Analisis de Datos 32 / 36

Page 33: Procesamiento y An alisis de Datos Astron omicosrgh/arch/pg4/curso-proc-analisis-1.pdf · Programar de manera simple y clara. Aprovechar en IPython las posibilidades de%logstart

Python 3: Matplotlib

Posgrado - FCEFN-UNSJ - rgh 2020 Procesamiento y Analisis de Datos 33 / 36

Page 34: Procesamiento y An alisis de Datos Astron omicosrgh/arch/pg4/curso-proc-analisis-1.pdf · Programar de manera simple y clara. Aprovechar en IPython las posibilidades de%logstart

Python 3: Matplotlib

Posgrado - FCEFN-UNSJ - rgh 2020 Procesamiento y Analisis de Datos 34 / 36

Page 35: Procesamiento y An alisis de Datos Astron omicosrgh/arch/pg4/curso-proc-analisis-1.pdf · Programar de manera simple y clara. Aprovechar en IPython las posibilidades de%logstart

Python 3: Lectura de datos

Posgrado - FCEFN-UNSJ - rgh 2020 Procesamiento y Analisis de Datos 35 / 36

Page 36: Procesamiento y An alisis de Datos Astron omicosrgh/arch/pg4/curso-proc-analisis-1.pdf · Programar de manera simple y clara. Aprovechar en IPython las posibilidades de%logstart

Actividades:

Practica 1:

Elegir un archivo de datos astronomicos (encolumnados ono) de no menos de 300-400 lıneas, aproximadamente.

Crear una funcion de Python que lea ese archivo y loguarde en un array de Numpy o en una lista.

Crear una funcion de Python que guarde en un archivo elarray o la lista generada en el punto anterior.

Entrega

Para la proxima clase

Por consultas: [email protected] de Ciencias Planetarias - CUIM 2

Posgrado - FCEFN-UNSJ - rgh 2020 Procesamiento y Analisis de Datos 36 / 36