Python para astrônomos
Daniel Moser Faes
IAG-USP
moser@[Link]
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 ([Link]), álgebra linear
([Link]), amostras aleatórias ([Link])...
Site: [Link]
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: [Link]
Lembre-se que as declarações “import pylab” ou “import
[Link] + 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: [Link]
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: [Link] ● [Link]
● [Link]
● [Link]
Atividade 6 ● [Link]
● [Link]
● [Link]
04/06/11 - I WCCA PYTHON PARA ASTRÔNOMOS 9
PyFITS
● PyFITS é o módulo que permite manipular
imagens fits em Python
Site:
[Link]
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: [Link]
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!
● [Link]
● [Link]
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 [Link]
● Tutorial oficial [Link]
● Exemplos Scipy e Numpy [Link]
● Livro do desenvolvedor líder do NumPy [Link]
● Curso para Astrônomos [Link]
● Usando Python para Análise de Dados Interativa [Link]
● Ferramentas astronômicas [Link]
● Ferramentas VO:
● [Link]
● [Link]
● [Link]
● Criando programas gráficos – livro “Matplotlib for Python Developers” de Sandro Tosi
● Python v2 ou v3? Resp.: v2!!! [Link]
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