Porque usamos Python no Projeto EBA
- 19 de jul. de 2016
- 2 min de leitura
A maioria dos técnicos e pesquisadores que usam nuvens de pontos LiDAR no segmento florestal, trabalhem com florestas plantadas ou nativas, utiliza o programa Fusion, do Serviço Florestal Americano, para extrair métricas das nuvens.
Essas métricas depois são correlacionadas com dados de campo visando produzir modelos (equações) que correlacionem alguma(s) dessa(s) métrica(s) com a variável a se estimar, por exemplo a biomassa.
No Projeto EBA, como estamos interessados em produzir novos modelos ou mesmo usar outras técnicas como BigData, algoritmos genéticos etc será necessário acessar a diretamente os pontos da a nuvem. Temos também coletados os dados full waveform, que certamente vão melhorar as nossas estimativas, e o Fusion ainda não lida com esse tipo de dado.
É necessário então que a gente construa aplicativos específicos para fazer as análises dos dados que estamos coletando, e para isso tivemos que escolher uma linguagem de programação.
Escolhemos a linguagem Python pelas seguintes razões:
É uma linguagem de script, o que significa rapidez e concisão na escrita de programas.
É muito utilizada no meio científico, o que facilita a disseminação do conhecimento, já que cada vez mais pesquisadores e professores sabem como programar em Python. Aqui o resultado de uma pesquisa que aponta o crescimento do uso do Python em relação ao R, seu principal “concorrente”: http://www.kdnuggets.com/2016/06/r-python-top-analytics-data-mining-data-science-software.html.
É multi-plataforma, rodando nos principais sistemas operacionais existentes.
Uma quantidade enorme de algoritmos foi portada para Python. Algoritmos canônicos existentes em C e C++ são facilmente utilizáveis em Python porque já foram escritas interfaces Python para que estes sejam acessados.
Existem distribuições como Anaconda que são adequadas para Computação Científica, já vindo com dezenas de bibliotecas que proveem funcionalides necesárias para esse fim. Usamos a distribuição Anaconda no nosso Projeto.
Apesar do Python não ser uma linguagem desenhada para ser multiprocessada como CUDA, possuindo limitações para uso dessa forma, podemos programar aplicações que rodem rotinas em paralelo, o que nos dá um ganho enorme de velocidade de processamento. Usando 12 cores, tenho conseguido um speed-up de cerca de 10.
Num próximo post vou explicar como instalar e configurar a distribuição Anaconda e outras bibliotecas Python que são necessárias para trabalhar com nuvens de pontos LiDAR.


Comentários