Por que aprender a programar?

Cada vez mais as atividades envolvidas em pesquisas, bem como o mercado de trabalho, exigem novas habilidades, e a programação é uma delas.

Satélites de Observação da Terra

Atualmente existem diversas fontes de dados geoespaciais, como os satélites de observação da Terra mostrados na Figura 1.

Satélites de Observação da Terra

Figura 1 - Satélites de Observação da Terra.
Fonte: NASA [55].

Sensores a bordo de satélites como Terra e Aqua e da série Landsat, têm sido importantes instrumentos de coleta de dados sobre nosso planeta. Esses satélites produzem dados sobre superfície, oceanos, atmosfera, entre outros, servindo de insumo básico para a construção de diversas aplicações. No INPE, as imagens da série Landsat são utilizadas, por exemplo, no sistema de monitoramento da Floresta Amazônica. Através dessas imagens, o PRODES mantém o inventário de todo o desmatamento por corte raso na vegatação natural ocorrido na Amazônia Legal desde 1988.

A Figura 2 apresenta imagens da série Landsat para uma mesma região em duas datas diferentes. A imagem à esquerda mostra como era parte da floresta amazônica, numa região do Peru, em 13 de Novembro de 1986. A imagem à direita mostra essa mesma região no ano de 2016, onde podemos observar algumas ocupações, áreas de pastagem e estradas em áreas que antes eram floresta.

Monitoramento da mudança na cobertura

Figura 2 - Monitoramento da mudança na cobertura.
Fonte: Adaptado de [56].

Open Data

O gráfico apresentado na Figura 3 contém uma estimativa do volume de dados produzidos entre os anos de 2013 e 2019 por algumas plataformas bem conhecidas. Como pode ser visto, os satélites de observação da Terra produzem uma grande quantidade de dados geoespaciais.

Volume de dados

Figura 3 - Estimativa do volume anual de dados abertos provenientes dos satélites Landsat-7, Landsat-8, Terra/Aqua, Sentinel-1, Sentinel-2 e Sentinel-3.
Fonte: Soille et al. (2018) [71].

Free and Open Source Software (FOSS)

Além dos dados, o panorama tecnológico mudou bastante nos últimos 10 anos. Temos uma grande disponibilidade de ferramentas livres denominados FOSS4G (Free and Open Source Software for Geospatial) (Figuras 4, 5, 6, 7).

Free and Open Source Software for Geospatial

Figura 4 - Free and Open Source Software for Geospatial.

QGIS

Figura 5 - QGIS.

QGIS

Figura 6 - gvSIG.

QGIS

Figura 7 - TerraView.

Ciência Aberta e Reprodutível

Apesar do grande esforço da comunidade geoespacial em promover uma política de dados abertos e software aberto, ainda existem vários desafios para facilitar a reprodutibilidade de trabalhos científicos desse domínio [58], [44]. Atualmente, a Ciência Aberta tem sido um termo muito utilizado para promover um conjunto de práticas que ajude a fomentar uma maior transparência na comunicação das pesquisas [64]. Essas práticas envolvem não somente o compartilhamento de dados, mas também do código relativo aos processos que suportam a metodologia da pesquisa, dos resultados e metadados. Os termos Ciência Aberta e Reprodutibilidade de Pesquisas são dois termos extremamente relacionados [65]. Tanto as agências de fomento a pesquisa quanto os principais periódicos internacionais têm adotado diretrizes baseadas em Ciência Aberta, respectivamente, para o financiamento e forma de comunicação das publicações [17], [14], [67], [59], [70].

Nesse contexto, alguns pesquisadores têm utilizado o termo artigo executável para denotar uma forma de publicação mais dinâmica, onde os códigos utilizados nas análises são combinados com anotações textuais, visualização e outros artefatos da pesquisa, de maneira que o leitor possa interagir com essa publicação e consiga reproduzir os passos da pesquisa e chegar às conclusões apresentadas nela [49]. O intuito é tornar a comunicação da pesquisa mais efetiva, com transparência não somente no compartilhamento dos dados, mas também na metodologia, garantindo também a reprodutibilidade.

Atualmente, existem ferramentas baseadas em código aberto projetadas para esse fim. Os documentos Jupyter Notebooks, por exemplo, permitem construir narrativas computacionais que envolvem códigos, anotações textuais, fórmulas matemáticas compatíveis com LaTeX, elementos HTML, gráficos e outros tipos de visualizações [45]. Um típico Jupyter Notebook é organizado em células, que podem ser código executável (python, R, Julia, entre outros) ou um tipo de anotação com uma sintaxe especial usada para formatar o texto e os elementos de mídia, tabelas e imagens (Figura 8).

Exemplo de um Jupyter Notebook

Figura 8 - Exemplo de um Jupyter Notebook.

O código fonte dos componentes de software de uma pesquisa podem ser facilmente compartilhados através de plataformas gratuitas, especializadas no controle e versionamento de código fonte, como o GitHub. O GitHub é uma plataforma que oferece aos desenvolvedores a possibilidade de hospedar repositórios de código versionados através do sistema git e com uma interface web amigável. Além disso, oferece diversas ferramentas para o desenvolvimento colaborativo. Essas ferramentas vão desde o controle de atividades (issues), áreas de rascunho de código (gist), disponibilização de páginas web (github pages), wikis, até a interface com sistemas de integração contínua. Um bom exemplo de uso de repositórios do GitHub para compartilhamento de Jupyter Notebooks pode ser encontrado na Galeria de Jupyter Notebooks do projeto Brazil Data Cube.

Neste curso, iremos discutir várias ferramentas que irão ajudar vocês nas práticas de Ciência Aberta. Esperamos que no futuro vocês consigam compartilhar suas pesquisas de maneira a facilitar a sua reprodutibilidade. Portanto, como mostrado na Figura 9, esperamos contribuir para que cada vez mais as pesquisas desenvolvidas no INPE atendam os padrões denominados por Peng [62] de padrões de ouro, com possibilidade de replicação completa.

The spectrum of reproducibility

Figura 9 - The spectrum of reproducibility.
Fonte: Peng (2011) [62].

Nota

Apesar de não existir uma definição comum, amplamente aceita, para as palavras reprodutibilidade e replicabilidade em ciência, sugerimos a leitura de [5], que discute o significado desses dois termos. Neste curso, adotaremos as seguinte definições:

  • Pesquisa Reprodutível: os autores fornecem todos os dados necessários e os códigos de computador para executar a análise novamente, recriando os resultados.

  • Replicação: um estudo que chega às mesmas descobertas científicas de outro estudo, porém coletando novos dados (possivelmente com métodos diferentes) e aperfeiçoando as análises.

Nota

O Grupo de Observação da Terra (GEO) está desenvolvendo uma biblioteca digital para compartilhamento de aplicações baseada nas ideias e fundamentos de Ciência Aberta, conhecida por GEO Knowledge Hub. No vídeo abaixo, o time apresenta as ideias dessa biblioteca digital.

Nota

Ainda sobre o GEO Knowledge Hub, o próximo vídeo apresenta uma das aplicações desenvolvida pelo time do projeto Brazil Data Cube, que será compartilhada nessa biblioteca digital.