SlideShare uma empresa Scribd logo
1 de 35
Baixar para ler offline
Python:
 Cabe no seu bolso,
 cabe no seu micro,
cabe no seu cérebro!
       Rodrigo Dias Arruda Senra
          iMasters 2012 - SP
Python:
 Cabe no seu bolso,
 cabe no seu micro,
cabe no seu cérebro!
       Rodrigo Dias Arruda Senra
          iMasters 2012 - SP
Anatomia do Blá

• Python na prática:
 • Geoprocessamento
 • Automação Industrial
 • Bibliotecas Digitais
• Por que Python
Geoprocessamento
Geoprocessamento
NDVI: Índice de Vegetacão
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
Operações Espaciais




                      6
Exemplo: Extração da Geometria
 shp = ogr.Open(filepath)‫‏‬

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

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

 # Extração dos pontos de controle do perímetro
 geometry = 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)‫‏‬
Automação
 Industrial
Automação
 Industrial
CLPs controlando Elevação de Óleo
CLPs controlando Elevação de Óleo
Fonte: www.triomotion.com
Fonte: www.triomotion.com
Fonte: www.triomotion.com
Fonte: www.triomotion.com
Fonte: www.triomotion.com
SFC+ST         Solução
  IDE

        TC6 XML

Compilador           SFC+ST→Ladder
  Python

         Modelo de Dados + Mapa de Variáveis

          Código
          Nativo
Bibliotecas Digitais
Bibliotecas Digitais
MFN: 1
69: 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 plants
26: ^aParis^bUnesco^c-1965
30: ^ap. 211-224^billus.
MFN: 1
69: 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 plants
26: ^aParis^bUnesco^c-1965
30: ^ap. 211-224^billus.
MFN: 1
69: 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 plants
26: ^aParis^bUnesco^c-1965
30: ^ap. 211-224^billus.
Projeto ISIS-NBP

                 Database




Console           Engine           Gateway



http://reddes.bvsalud.org/projects/isisnbp
Projeto ISIS-NBP

                 Database




Console
IPython           Engine           Gateway



http://reddes.bvsalud.org/projects/isisnbp
Projeto ISIS-NBP

                 Database


                            PyOpenSSL, PyCrypto


Console
IPython           Engine           Gateway
                                   Twisted
                                                  SSH
                                             HTTP
http://reddes.bvsalud.org/projects/isisnbp
Projeto ISIS-NBP

                  Database
               ISIS native DB

                   OIM
                            PyOpenSSL, PyCrypto


Console
IPython           Engine           Gateway
                                   Twisted
                                                  SSH
                                             HTTP
http://reddes.bvsalud.org/projects/isisnbp
Projeto ISIS-NBP

                  Database
               ISIS native DB

                   OIM
                            PyOpenSSL, PyCrypto


Console
IPython           Engine           Gateway
                                   Twisted
                                                  SSH
                      Django
                                XML-RPC HTTP
http://reddes.bvsalud.org/projects/isisnbp
Projeto ISIS-NBP

                  Database
               ISIS native DB

                   OIM
                            PyOpenSSL, PyCrypto


Console
IPython           Engine           Gateway
                                   Twisted
                                                  SSH
            PLY       Django
                                XML-RPC HTTP
http://reddes.bvsalud.org/projects/isisnbp
Projeto ISIS-NBP

                  Database
               ISIS native DB

                   OIM
                            PyOpenSSL, PyCrypto
            nosetest
Console
IPython           Engine           Gateway
                                   Twisted
                                                  SSH
            PLY        Django
                                XML-RPC HTTP
http://reddes.bvsalud.org/projects/isisnbp
Projeto ISIS-NBP
ZODB, Durus,...
                                             WebDAV
  BDB, XML,...       Database
                  ISIS native DB       RSS, OAI-PMH
                                              JSON
                      OIM
                              PyOpenSSL, PyCrypto
              nosetest
  Console
  IPython            Engine          Gateway
                                     Twisted
                                                    SSH
              PLY        Django
                                   XML-RPC HTTP
  http://reddes.bvsalud.org/projects/isisnbp
Exemplo: Compilador
def 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]
Por que Python ?

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

                            Rodrigo Dias Arruda Senra
                                 http://rodrigo.senra.nom.br
                                      rsenra@acm.org


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.

Mais conteúdo relacionado

Semelhante a Python: Cabe no seu bolso, cabe no seu micro, cabe no seu cérebro!

Rest, Gateway e Compiladores
Rest, Gateway e CompiladoresRest, Gateway e Compiladores
Rest, Gateway e CompiladoresRodrigo Senra
 
O que podemos fazer com Python?
O que podemos fazer com Python?O que podemos fazer com Python?
O que podemos fazer com Python?Izabela Guerreiro
 
PyData - Consumindo e publicando web APIs com Python
PyData - Consumindo e publicando web APIs com PythonPyData - Consumindo e publicando web APIs com Python
PyData - Consumindo e publicando web APIs com PythonBruno Rocha
 
Possibilidades com python
Possibilidades com pythonPossibilidades com python
Possibilidades com pythonUFPA
 
Semana Acadêmica ICET - Feevale - 12/04/2014
Semana Acadêmica ICET - Feevale - 12/04/2014Semana Acadêmica ICET - Feevale - 12/04/2014
Semana Acadêmica ICET - Feevale - 12/04/2014Getup Cloud
 
Desenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDBDesenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDBAri Stopassola Junior
 
Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011Emerson Macedo
 
Python com baterias incluídas v2.0
Python com baterias incluídas v2.0Python com baterias incluídas v2.0
Python com baterias incluídas v2.0Jonh Edson
 
Zabbix Conference LatAm 2019 - Automação: Ganhando produtividade
Zabbix Conference LatAm 2019 - Automação: Ganhando produtividadeZabbix Conference LatAm 2019 - Automação: Ganhando produtividade
Zabbix Conference LatAm 2019 - Automação: Ganhando produtividadeIgor Nicoli
 
Secomp 2011 - Node.JS - Introdução
Secomp 2011 - Node.JS - IntroduçãoSecomp 2011 - Node.JS - Introdução
Secomp 2011 - Node.JS - IntroduçãoEmerson Macedo
 
Palestra DataFlow - II São Paulo Perl Workshop
Palestra DataFlow - II São Paulo Perl WorkshopPalestra DataFlow - II São Paulo Perl Workshop
Palestra DataFlow - II São Paulo Perl WorkshopAlexei Znamensky
 
Python para programadores Ruby
Python para programadores RubyPython para programadores Ruby
Python para programadores RubyEric Hideki
 
RubyMasters 2011 - Beyond Ruby with NodeJS
RubyMasters 2011 - Beyond Ruby with NodeJSRubyMasters 2011 - Beyond Ruby with NodeJS
RubyMasters 2011 - Beyond Ruby with NodeJSEmerson Macedo
 
Nodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis terNodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis terEmerson Macedo
 
TDC 2014 SP - E o DeltaSpike ?
TDC 2014 SP - E o DeltaSpike ?TDC 2014 SP - E o DeltaSpike ?
TDC 2014 SP - E o DeltaSpike ?Rafael Benevides
 
Gerando bindings de bibliotecas C++ para Python
Gerando bindings de bibliotecas C++ para PythonGerando bindings de bibliotecas C++ para Python
Gerando bindings de bibliotecas C++ para PythonMarcelo Lira
 

Semelhante a Python: Cabe no seu bolso, cabe no seu micro, cabe no seu cérebro! (20)

Rest, Gateway e Compiladores
Rest, Gateway e CompiladoresRest, Gateway e Compiladores
Rest, Gateway e Compiladores
 
O que podemos fazer com Python?
O que podemos fazer com Python?O que podemos fazer com Python?
O que podemos fazer com Python?
 
Python e suas aplicações
Python e suas aplicaçõesPython e suas aplicações
Python e suas aplicações
 
PyData - Consumindo e publicando web APIs com Python
PyData - Consumindo e publicando web APIs com PythonPyData - Consumindo e publicando web APIs com Python
PyData - Consumindo e publicando web APIs com Python
 
Possibilidades com python
Possibilidades com pythonPossibilidades com python
Possibilidades com python
 
Raspberry Pi + Python
Raspberry Pi + PythonRaspberry Pi + Python
Raspberry Pi + Python
 
Semana Acadêmica ICET - Feevale - 12/04/2014
Semana Acadêmica ICET - Feevale - 12/04/2014Semana Acadêmica ICET - Feevale - 12/04/2014
Semana Acadêmica ICET - Feevale - 12/04/2014
 
Plack
PlackPlack
Plack
 
Desenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDBDesenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDB
 
Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011
 
Python com baterias incluídas v2.0
Python com baterias incluídas v2.0Python com baterias incluídas v2.0
Python com baterias incluídas v2.0
 
Zabbix Conference LatAm 2019 - Automação: Ganhando produtividade
Zabbix Conference LatAm 2019 - Automação: Ganhando produtividadeZabbix Conference LatAm 2019 - Automação: Ganhando produtividade
Zabbix Conference LatAm 2019 - Automação: Ganhando produtividade
 
Canivete python
Canivete pythonCanivete python
Canivete python
 
Secomp 2011 - Node.JS - Introdução
Secomp 2011 - Node.JS - IntroduçãoSecomp 2011 - Node.JS - Introdução
Secomp 2011 - Node.JS - Introdução
 
Palestra DataFlow - II São Paulo Perl Workshop
Palestra DataFlow - II São Paulo Perl WorkshopPalestra DataFlow - II São Paulo Perl Workshop
Palestra DataFlow - II São Paulo Perl Workshop
 
Python para programadores Ruby
Python para programadores RubyPython para programadores Ruby
Python para programadores Ruby
 
RubyMasters 2011 - Beyond Ruby with NodeJS
RubyMasters 2011 - Beyond Ruby with NodeJSRubyMasters 2011 - Beyond Ruby with NodeJS
RubyMasters 2011 - Beyond Ruby with NodeJS
 
Nodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis terNodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis ter
 
TDC 2014 SP - E o DeltaSpike ?
TDC 2014 SP - E o DeltaSpike ?TDC 2014 SP - E o DeltaSpike ?
TDC 2014 SP - E o DeltaSpike ?
 
Gerando bindings de bibliotecas C++ para Python
Gerando bindings de bibliotecas C++ para PythonGerando bindings de bibliotecas C++ para Python
Gerando bindings de bibliotecas C++ para Python
 

Mais de iMasters

O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani MonteiroO que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani MonteiroiMasters
 
Postgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio TellesPostgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio TellesiMasters
 
Por que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen MoraesPor que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen MoraesiMasters
 
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...iMasters
 
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalvesORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalvesiMasters
 
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...iMasters
 
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra MartinsArquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra MartinsiMasters
 
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...iMasters
 
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana ChahoudDesenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana ChahoudiMasters
 
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
 Use MDD e faça as máquinas trabalharem para você - Andreza Leite Use MDD e faça as máquinas trabalharem para você - Andreza Leite
Use MDD e faça as máquinas trabalharem para você - Andreza LeiteiMasters
 
Entendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita BernardesEntendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita BernardesiMasters
 
Backend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana ArnosBackend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana ArnosiMasters
 
Dicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato GroffeDicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato GroffeiMasters
 
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle MonteiroiMasters
 
Quem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio MaujorQuem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio MaujoriMasters
 
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da SilvaService Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da SilvaiMasters
 
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto PascuttiErros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto PascuttiiMasters
 
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...iMasters
 
Construindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina KarklisConstruindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina KarklisiMasters
 
Monitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe RegalgoMonitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe RegalgoiMasters
 

Mais de iMasters (20)

O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani MonteiroO que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
 
Postgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio TellesPostgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio Telles
 
Por que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen MoraesPor que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen Moraes
 
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
 
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalvesORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
 
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
 
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra MartinsArquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
 
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
 
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana ChahoudDesenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
 
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
 Use MDD e faça as máquinas trabalharem para você - Andreza Leite Use MDD e faça as máquinas trabalharem para você - Andreza Leite
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
 
Entendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita BernardesEntendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita Bernardes
 
Backend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana ArnosBackend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana Arnos
 
Dicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato GroffeDicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato Groffe
 
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
 
Quem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio MaujorQuem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio Maujor
 
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da SilvaService Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
 
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto PascuttiErros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
 
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
 
Construindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina KarklisConstruindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina Karklis
 
Monitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe RegalgoMonitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe Regalgo
 

Python: Cabe no seu bolso, cabe no seu micro, cabe no seu cérebro!

  • 1. Python: Cabe no seu bolso, cabe no seu micro, cabe no seu cérebro! Rodrigo Dias Arruda Senra iMasters 2012 - SP
  • 2. Python: Cabe no seu bolso, cabe no seu micro, cabe no seu cérebro! Rodrigo Dias Arruda Senra iMasters 2012 - SP
  • 3. Anatomia do Blá • Python na prática: • Geoprocessamento • Automação Industrial • Bibliotecas Digitais • Por que Python
  • 6. NDVI: Índice de Vegetacão
  • 7. 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
  • 9. Exemplo: Extração da Geometria shp = ogr.Open(filepath)‫‏‬ # Layer correspondente ao Estado de São paulo layer = vf.shp.GetLayerByName('35mu500gc') # Feature correspondente ao município de Campinas feature = layer.GetFeature(501) # Extração dos pontos de controle do perímetro geometry = 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)‫‏‬
  • 19. SFC+ST Solução IDE TC6 XML Compilador SFC+ST→Ladder Python Modelo de Dados + Mapa de Variáveis Código Nativo
  • 22. MFN: 1 69: 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 plants 26: ^aParis^bUnesco^c-1965 30: ^ap. 211-224^billus.
  • 23. MFN: 1 69: 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 plants 26: ^aParis^bUnesco^c-1965 30: ^ap. 211-224^billus.
  • 24. MFN: 1 69: 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 plants 26: ^aParis^bUnesco^c-1965 30: ^ap. 211-224^billus.
  • 25. Projeto ISIS-NBP Database Console Engine Gateway http://reddes.bvsalud.org/projects/isisnbp
  • 26. Projeto ISIS-NBP Database Console IPython Engine Gateway http://reddes.bvsalud.org/projects/isisnbp
  • 27. Projeto ISIS-NBP Database PyOpenSSL, PyCrypto Console IPython Engine Gateway Twisted SSH HTTP http://reddes.bvsalud.org/projects/isisnbp
  • 28. Projeto ISIS-NBP Database ISIS native DB OIM PyOpenSSL, PyCrypto Console IPython Engine Gateway Twisted SSH HTTP http://reddes.bvsalud.org/projects/isisnbp
  • 29. Projeto ISIS-NBP Database ISIS native DB OIM PyOpenSSL, PyCrypto Console IPython Engine Gateway Twisted SSH Django XML-RPC HTTP http://reddes.bvsalud.org/projects/isisnbp
  • 30. Projeto ISIS-NBP Database ISIS native DB OIM PyOpenSSL, PyCrypto Console IPython Engine Gateway Twisted SSH PLY Django XML-RPC HTTP http://reddes.bvsalud.org/projects/isisnbp
  • 31. Projeto ISIS-NBP Database ISIS native DB OIM PyOpenSSL, PyCrypto nosetest Console IPython Engine Gateway Twisted SSH PLY Django XML-RPC HTTP http://reddes.bvsalud.org/projects/isisnbp
  • 32. Projeto ISIS-NBP ZODB, Durus,... WebDAV BDB, XML,... Database ISIS native DB RSS, OAI-PMH JSON OIM PyOpenSSL, PyCrypto nosetest Console IPython Engine Gateway Twisted SSH PLY Django XML-RPC HTTP http://reddes.bvsalud.org/projects/isisnbp
  • 33. Exemplo: Compilador def 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]
  • 34. Por que Python ? Produtividade do desenvolvedor Legibilidade Portabilidade Integração: C, C++, C#, Java,... Biblioteca Padrão Tecno-diversidade Maturidade
  • 35. Obrigado a todos pela atenção. Rodrigo Dias Arruda Senra http://rodrigo.senra.nom.br rsenra@acm.org 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.