Cases de Python no 7Masters 2012

35
Python: Cabe no seu bolso, cabe no seu micro, cabe no seu cérebro! Rodrigo Dias Arruda Senra iMasters 2012 - SP

description

Apresentação de 3 cases de Python no Encontro 7Masters sobre Python produzido pelo iMasters em abril de 2012.

Transcript of Cases de Python no 7Masters 2012

Page 1: Cases de Python no 7Masters 2012

Python:Cabe no seu bolso,cabe no seu micro,

cabe no seu cérebro!

Rodrigo Dias Arruda Senra iMasters 2012 - SP

Page 2: Cases de Python no 7Masters 2012

Python:Cabe no seu bolso,cabe no seu micro,

cabe no seu cérebro!

Rodrigo Dias Arruda Senra iMasters 2012 - SP

Page 3: Cases de Python no 7Masters 2012

•Python na prática:

•Geoprocessamento

•Automação Industrial

•Bibliotecas Digitais

•Por que Python

Anatomia do Blá

Page 4: Cases de Python no 7Masters 2012

Geoprocessamento

Page 5: Cases de Python no 7Masters 2012

Geoprocessamento

Page 6: Cases de Python no 7Masters 2012

NDVI: Índice de Vegetacão

Page 7: Cases de Python no 7Masters 2012

NDVI: Índice de Vegetacão

Fonte:Perfis temporais NDVI MODIS, na cana-soca, de maturação tardia.Fernando L. P. Ramme; Rubens A. C. Lamparelli; Jansle V. Rocha.

Eng. Agríc. vol.30 no.3 Jaboticabal June 2010

Page 8: Cases de Python no 7Masters 2012

6

Operações Espaciais

Page 9: Cases de Python no 7Masters 2012

Exemplo: Extração da Geometria

shp = ogr.Open(filepath) ‏

# Layer correspondente ao Estado de São paulolayer = vf.shp.GetLayerByName('35mu500gc')

# Feature correspondente ao município de Campinasfeature = layer.GetFeature(501)

# Extração dos pontos de controle do perímetrogeometry = feature.GetGeometryRef() ‏poly = geometry.GetGeometryRef(0) ‏centroid = geometry.Centroid() ‏centroid_geo = centroid.GetX(), centroid.GetY() ‏

# Definição do Retângulo Envoltório Mínimo (MBR) ‏lg_left, lg_right, lt_bot, lt_up = poly.GetEnvelope() ‏ul_geo, lr_geo = (lg_left, lt_up), (lg_right, lt_bot) ‏

Page 10: Cases de Python no 7Masters 2012

Automação Industrial

Page 11: Cases de Python no 7Masters 2012

Automação Industrial

Page 12: Cases de Python no 7Masters 2012

CLPs controlando Elevação de Óleo

Page 13: Cases de Python no 7Masters 2012

CLPs controlando Elevação de Óleo

Page 14: Cases de Python no 7Masters 2012

Fonte: www.triomotion.com

Page 15: Cases de Python no 7Masters 2012

Fonte: www.triomotion.com

Page 16: Cases de Python no 7Masters 2012

Fonte: www.triomotion.com

Page 17: Cases de Python no 7Masters 2012

Fonte: www.triomotion.com

Page 18: Cases de Python no 7Masters 2012

Fonte: www.triomotion.com

Page 19: Cases de Python no 7Masters 2012

SoluçãoIDE

CompiladorPython

TC6 XML

SFC+ST

SFC+ST→Ladder

Modelo de Dados + Mapa de Variáveis

Código Nativo

Page 20: Cases de Python no 7Masters 2012

Bibliotecas Digitais

Page 21: Cases de Python no 7Masters 2012

Bibliotecas Digitais

Page 22: Cases de Python no 7Masters 2012

MFN: 169: Paper on: <plant physiology><plant transpiration><measurement and instruments>

70: Magalhaes, A.C.70: Franco, C.M.44: Methodology of plant eco-physiology: proceedings of the Montpellier Symposium

50: Incl. bibl.24: Techniques for the measurement of transpiration of individual plants26: ^aParis^bUnesco^c-196530: ^ap. 211-224^billus.

Page 23: Cases de Python no 7Masters 2012

MFN: 169: Paper on: <plant physiology><plant transpiration><measurement and instruments>

70: Magalhaes, A.C.70: Franco, C.M.44: Methodology of plant eco-physiology: proceedings of the Montpellier Symposium

50: Incl. bibl.24: Techniques for the measurement of transpiration of individual plants26: ^aParis^bUnesco^c-196530: ^ap. 211-224^billus.

Page 24: Cases de Python no 7Masters 2012

MFN: 169: Paper on: <plant physiology><plant transpiration><measurement and instruments>

70: Magalhaes, A.C.70: Franco, C.M.44: Methodology of plant eco-physiology: proceedings of the Montpellier Symposium

50: Incl. bibl.24: Techniques for the measurement of transpiration of individual plants26: ^aParis^bUnesco^c-196530: ^ap. 211-224^billus.

Page 25: Cases de Python no 7Masters 2012

Projeto ISIS-NBP

Engine

Database

Console Gateway

http://reddes.bvsalud.org/projects/isisnbp

Page 26: Cases de Python no 7Masters 2012

Projeto ISIS-NBP

Engine

Database

Console GatewayIPython

http://reddes.bvsalud.org/projects/isisnbp

Page 27: Cases de Python no 7Masters 2012

Projeto ISIS-NBP

Engine

Database

Console Gateway

PyOpenSSL, PyCrypto

IPython TwistedSSH

HTTP

http://reddes.bvsalud.org/projects/isisnbp

Page 28: Cases de Python no 7Masters 2012

Projeto ISIS-NBP

Engine

Database

Console Gateway

PyOpenSSL, PyCrypto

IPython Twisted

OIM

SSH

HTTP

ISIS native DB

http://reddes.bvsalud.org/projects/isisnbp

Page 29: Cases de Python no 7Masters 2012

Projeto ISIS-NBP

Engine

Database

Console Gateway

PyOpenSSL, PyCrypto

IPython TwistedDjango

OIM

SSH

HTTPXML-RPC

ISIS native DB

http://reddes.bvsalud.org/projects/isisnbp

Page 30: Cases de Python no 7Masters 2012

Projeto ISIS-NBP

Engine

Database

Console Gateway

PyOpenSSL, PyCrypto

IPython TwistedDjangoPLY

OIM

SSH

HTTPXML-RPC

ISIS native DB

http://reddes.bvsalud.org/projects/isisnbp

Page 31: Cases de Python no 7Masters 2012

Projeto ISIS-NBP

Engine

Database

Console Gateway

PyOpenSSL, PyCrypto

IPython TwistedDjangoPLY

nosetest

OIM

SSH

HTTPXML-RPC

ISIS native DB

http://reddes.bvsalud.org/projects/isisnbp

Page 32: Cases de Python no 7Masters 2012

Projeto ISIS-NBP

Engine

Database

Console Gateway

PyOpenSSL, PyCrypto

IPython TwistedDjangoPLY

nosetest

OIM

SSH

HTTPXML-RPC

ZODB, Durus,...

ISIS native DBBDB, XML,...

RSS, OAI-PMH

JSON

WebDAV

http://reddes.bvsalud.org/projects/isisnbp

Page 33: Cases de Python no 7Masters 2012

Exemplo: Compiladordef t_VFIELD(t): r'[vV]([0-9]+)' try: t.value = int(t.lexer.lexmatch.groups()[1]) except ValueError: print "Field accessor", t.value t.value = 0 return t

def p_field_subfield(p): """field : VFIELD "^" "*" | VFIELD "^" SUBCHAR """ ch = p[3].lower() if ch=="*": p[0] = record[p[1]].subfields.value(pos=0) else: p[0] = record[p[1]].subfields[ch]

Page 34: Cases de Python no 7Masters 2012

Por que Python ?

Produtividade do desenvolvedor Legibilidade Portabilidade Integração: C, C++, C#, Java,... Biblioteca Padrão Tecno-diversidade Maturidade

Page 35: Cases de Python no 7Masters 2012

Obrigado a todos pela atenção.

Rodrigo Dias Arruda Senrahttp://rodrigo.senra.nom.br

[email protected]

As opiniões e conclusões expressas nesta apresentação são de exclusiva responsabilidade de Rodrigo Senra.

Não é necessário requisitar permissão do autor para o uso de partes ou do todo desta apresentação, desde que não sejam feitas alterações no conteúdo reutilizado e que esta nota esteja presente na íntegra no material resultante.

Imagens e referências para outros trabalhos nesta apresentação permanecem propriedade daqueles que detêm seus direitos de copyright.