Anda di halaman 1dari 17

Python para astrônomos

Daniel Moser Faes


IAG-USP
moser@usp.br

04/06/11 - I WCCA PYTHON PARA ASTRÔNOMOS 1


Tópicos

● Conhecendo Python ● Módulo PyFITS


Módulo (e ambiente) PyRAF
Sintaxe, variáveis e

operações ● Programando em Python


Conceito de Objeto e Classe
Atributos de objetos


Guia de estilo
Python

● Astronomia Online e VO's


● Importação de módulos ● Referências
● Módulos: ● Outras ferramentas astronômicas
● NumPy
● Matplotlib (e APLpy)
● SciPy
04/06/11 - I WCCA PYTHON PARA ASTRÔNOMOS 2
Introdução

● Impossibilidade de se fazer um “curso”; mas


“Como Python pode ser interessante para
um astronômo?”

● Similar à outras linguagens, pode ser


programado de maneira iterativa.
● Não há necessidade de declarar variáveis, seu tipo
e tamanho previamente!

04/06/11 - I WCCA PYTHON PARA ASTRÔNOMOS 3


Introdução
$ python vs. $ ipython vs. idle
Atividade 1
ipython - interface Python mais amigável: idle – ambiente de
● Comando shell integrados (e.g., ls , cd , etc.) desenvolvimento:
● Acesso completo ao sistema (usando ● Editor integrado com
prefixos ! E !! ) console Python
● Preenchimento com TAB ● Algumas das
● Prompt com numeracao dos comandos funcionalidades do
● Comandos 'magicos' ipython
Entre outros...

04/06/11 - I WCCA PYTHON PARA ASTRÔNOMOS 4


Atributos

Atributos são “funções próprias” definidas com


o tipo de variável Python, ou antes, objeto.

Atividade 2

Sintaxe: <nome_objeto>+ponto+<nome_atributo>
 help(<nome_objeto>)
ipython: <nome_objeto>.TAB

04/06/11 - I WCCA PYTHON PARA ASTRÔNOMOS 5


Importação de módulos
Além dos atributos integrados na linguagem,
bibliotecas de funções externas (=módulos) podem
ser invocados.

Comecemos pela ferramenta numérica Numpy.


Numpy tem por objetivo trabalhar com grandes
vetores e matrizes multi-dimensionais, numa
maneira prática e mantendo alta performance.

Atividade 3+4
04/06/11 - I WCCA PYTHON PARA ASTRÔNOMOS 6
Numpy

Numpy possui muitas rotinas, que serão chamadas ao


longo da apresentação.
Entre a funções Numpy, estão as funções matemática
básicas (log, exp, min, max ...), trigonométricas (sin,
cos, ...), Bit-twiddling, cálculo matricial, transformada de
Fourier discreta (numpy.fft), álgebra linear
(numpy.linalg), amostras aleatórias (numpy.random)...

Site: http://numpy.scipy.org/

04/06/11 - I WCCA PYTHON PARA ASTRÔNOMOS 7


Matplotlib e APLpy

O módulo Matplotlib é de ferramentas gráficas para Python


(obrigatório ver o site oficial com exemplos).
Site: http://matplotlib.sourceforge.net/
Lembre-se que as declarações “import pylab” ou “import
matplotlib.pyplot + import numpy” são equivalentes!

Atividade 5

APLpy (Astronomical Plotting Library em Python) é um módulo que


visa a produção de gráficos astronômicos de alta qualidade.
Site: http://aplpy.sourceforge.net/
04/06/11 - I WCCA PYTHON PARA ASTRÔNOMOS 8
SciPy

SciPy é o módulo de Algumas funções


aplicações científicas. interessantes:
Site: http://www.scipy.org/ ● scipy.integrate
● scipy.interpolate
● scipy.ndimage
Atividade 6 ● scipy.optimizel
● scipy.stats
● scipy.signal
04/06/11 - I WCCA PYTHON PARA ASTRÔNOMOS 9
PyFITS
● PyFITS é o módulo que permite manipular
imagens fits em Python
Site:
http://www.stsci.edu/resources/software_hardware/pyfits

Atividade 7

04/06/11 - I WCCA PYTHON PARA ASTRÔNOMOS 10


PyRAF

Todo o poder de manipulação do Python integrado


com o IRAF.
Site: http://www.stsci.edu/resources/software_hardware/pyraf
Pode ser utilizado por meio de:
Características do Ambiente PyRAF:
● ambiente ($ pyraf) * Quase toda a funcionalidade do CL está
disponível
● módulo (import iraf) * Scripts CL rodam dentro do PyRAF
* Mais fácil de debugar scripts CL
* Editor de parâmetros GUI

Atividade 8 * Poderoso sistema gráfico


Muitas das novidades do ECL já estão
nativamente no PyRAF
04/06/11 - I WCCA PYTHON PARA ASTRÔNOMOS 11
Astronomia Online e VO's

● Python também manipula instruções da web


● Veremos como fazer uma consulta ao MAST e
ao IRSA

Atividade 9

Mais informações nas referências

04/06/11 - I WCCA PYTHON PARA ASTRÔNOMOS 12


Programando em Python
● Tópicos importantes ao se iniciar a
programação em python:
● Declaração de funções
● Documentação
● Transformando funções em módulo
● Criando uma classe

Atividade 10

04/06/11 - I WCCA PYTHON PARA ASTRÔNOMOS 13


Guia de estilo
● Python não possui delimitadores de campo: são
controlados por identação.
● Não há um formato único de espaçamento, mas o
usuário deve ser consistente!
● Comece fazendo certo:
● Não utilize TAB; utilize 4 espaços!
● Python Enhancement Proposals - PEP 8 para texto
principal e PEP 257 para docstrings!
● http://www.python.org/dev/peps/pep-0008/
● http://www.python.org/dev/peps/pep-0257/
04/06/11 - I WCCA PYTHON PARA ASTRÔNOMOS 14
Não deixe de ver

● Definições - dicionário e lista compreensiva


● Otimização de códigos com Python Profilers –
cProfiler
● Interface com outras linguagens – Cython, Jython,
etc...
● Integração com sistema operacional – módulo
os(.system) e shutil
● Trabalhando com binários – módulo pickle
● Bom editor – Komodo Edit
04/06/11 - I WCCA PYTHON PARA ASTRÔNOMOS 15
Referências
● Documentão oficial Python http://docs.python.org/
● Tutorial oficial http://docs.python.org/tutorial/
● Exemplos Scipy e Numpy http://www.scipy.org/Documentation
● Livro do desenvolvedor líder do NumPy http://www.tramy.us/numpybook.pdf
● Curso para Astrônomos http://www.astro.uni-bonn.de/~rschaaf/Python2008/
● Usando Python para Análise de Dados Interativa http://stsdas.stsci.edu/perry/pydatatut.pdf
● Ferramentas astronômicas http://www.astro.washington.edu/users/rowen/AstroPy.html
● Ferramentas VO:
● http://www.astrogrid.org/
● http://www.us-vo.org/oldhome/projects/project.cfm?ID=67
● http://www.euro-vo.org/pub/tc/software.html
● Criando programas gráficos – livro “Matplotlib for Python Developers” de Sandro Tosi
● Python v2 ou v3? Resp.: v2!!! http://wiki.python.org/moin/Python2orPython3
04/06/11 - I WCCA PYTHON PARA ASTRÔNOMOS 16
Agradecimentos

● Carlos Eduardo Barbosa (IAG-USP)


● Odair G. Martins (IF-USP)
● Bruno Quint (IAG-USP)

● Organização do I WCCA

04/06/11 - I WCCA PYTHON PARA ASTRÔNOMOS 17