Atividade Complementar: Utilizando o Visual Studio Code
Vimos na primeira atividade complementar como executar scripts Python localmente, instalando a ferramenta Miniconda e utilizando o Notepad++ para criar os scripts. Como comentado, o Notepad++ foi utilizado devido a simplicidade e evitar possíveis problemas de configuração.
O procedimento a seguir mostra como usar ambientes virtuais conda (como o ambiente “spaceweek” que criamos) com o Visual Studio Code, um ambiente de desenvolvimento integrado (IDE), além de algumas configurações adicionais para facilitar a criação dos scripts e facilitar o fluxo do trabalho.
A seguir, os passos necessários:
PASSO 1: BAIXAR E INSTALAR O MINICONDA
Este passo já fizemos no procedimento anterior. Como vimos na primeira atividade, o Miniconda pode ser baixado através do seguinte link.
PASSO 2: CRIAR O AMBIENTE VIRTUAL CONDA E INSTALAR AS BIBLIOTECAS DESEJADAS
Também já fizemos este passo. Nesta demonstração, vamos utilizar o ambiente “spaceweek” criado no procedimento anterior, utilizando o arquivo environment.yml disponível no GitHub do Minicurso e o seguinte comando.
conda env create -f environment.yml
PASSO 3: BAIXAR E INSTALAR O VISUAL STUDIO CODE
O VSCode pode ser baixado através do seguinte link:
Agora estamos protos para executar nossos scripts Python utilizando o ambiente virtual “spaceweek” automaticamente! Vamos ver algumas configurações adicionais.
PASSO 6: SELECIONANDO O DIRETÓRIO DE TRABALHO
Na barra de ferramentas à esquerda, selecione “Explorer” (primeiro ícone, mais acima), clique em “Open Folder” e selecione o diretório onde você tem, ou deseja criar seus scripts e arquivos. No exemplo a seguir, foi selecionado o diretório “saf”, dentro no nosso diretório de trabalho do minicurso:
Os arquivos em sua pasta de trabalho aparecerão no explorador. Selecione um script python e ele aparecerá em uma nova aba ao lado direito da interface.
PASSO 7: MUDANDO O TERMINAL PADRÃO
Para executar comandos conda (para listar as bibliotecas instaladas, por exemplo) diretamente no terminal disponível no Visual Studio Code, é necessário alterar o terminal padrão para o Prompt de Comando (referência):
1. Abra a paleta de comandos: (Ctrl+Shift+P)
2. Procure por “Terminal: Select Default Profile”
3. Selecione o terminal padrão (“Command Prompt” neste exemplo).
PASSO 8: EXECUTANDO O SCRIPT PYTHON USANDO O AMBIENTE CONDA
Após todas essas etapas, se você clicar em “Run Python File” (Executar arquivo Python) no canto superior direito, o script python selecionado será executado com o ambiente conda padrão selecionado no Passo 5.
Você verá o ambiente padrão do conda sendo ativado automaticamente e o script python sendo executado no terminal do Visual Studio:
PASSO 9: USANDO UM ATALHO NO TECLADO PARA EXECUTAR SCRIPTS
Por padrão, é necessário clicar em “Run Python File” (botão “Play”) no canto superior direito da interface, como visto no passo anterior. Para usar um atalho no teclado, clique no ícone de engrenagem no canto inferior esquerdo e selecione “Keyboard shortcuts” (Atalhos do teclado) (referência).
Procure por “run python in terminal”, selecione “Python: Run Python File in Terminal” (Executar arquivo Python no terminal) e atribua o atalho desejado (“Ctrl+R”, neste exemplo – você pode selecionar o atalho que desejar).
PASSO 10: LENDO ARQUIVOS LOCALIZADOS NO MESMO DIRETÓRIO, SEM ESPECIFICAR O CAMINHO COMPLETO
Por padrão, você precisa especificar o caminho completo onde está um determinado arquivo. Se quiser colocar o arquivo na mesma pasta e apenas inserir o nome do arquivo no código, acesse as configurações do usuário, procure por “python terminal execute in file dir” e marque essa opção (referência).
PASSO 11: SELECIONANDO O ESQUEMA DE CORES DO EDITOR
Pessoalmente, não gosto do esquema de cores padrão do editor, chamado “Dark+ (default dark)”.
Se você quiser alterar o esquema de cores, vá para File > Preferences > Theme > Color Theme e selecione o tema de sua preferência.
E isso é tudo! Nesta atividade complementar vimos como utilizar o Visual Code, um ambiente de desenvolvimento integrado, e uma opção muito mais robusta e configurável para o desenvolvimento dos nossos scripts.
Olá! Bem vindos à atividade complementar do minicurso “Introdução ao Meteosat Terceira Geração e ao Processamento de Dados dos Satélites da EUMETSAT”, ministrado na Space Week Nordeste 2023. Durante o minicurso presencial, vamos utilizar a ferramenta Google Colab para processar dados da EUMETSAT diretamente na nuvem, sem a necessidade de instalar ferramentas em nossos computadores. Nesta atividade complementar, vamos aprender como executar scripts Python localmente, para que o aluno se familiarize com ambas as possibilidades. Apesar de ser opcional, a atividade é desejável, pois o processamento local permitirá ao aluno operacionalizar os processos em suas instituições.
Contato: em caso de dúvidas, enviar um e-mail para:
Ao finalizar esta atividade opcional, os alunos estarão capacitados a:
Instalar e utilizar as ferramentas básicas para iniciar a manipular os produtos EUMETSAT com a linguagem de programação Python localmente.
Acessar e baixar dados do servidor LSA SAF da EUMETSAT.
Executar scripts em seus computadores.
Durante o minicurso presencial no dias 15, 16 e 17 de agosto, será feita uma explicação detalhada de todos os comandos utilizados, além do estudo de diversos outros exemplos e produtos.
Duração estimada desta atividade complementar: 2:00 h
Ferramentas necessárias para esta atividade complementar:
Python (linguagem de programação utilizada no treinamento)
Um gerenciador de pacotes (para instalar bibliotecas)
Um gerenciador de ambientes virtuais [também conhecidas como “envs”] (nosso ambiente de programação)
Um editor de texto ou IDE [Ambiente de Desenvolvimento Integrado] (para escrever nosso código)
Amostras de produtos EUMETSAT (dados a serem manipulados)
Nesta atividade, utilizaremos as seguintes ferramentas:
Para os primeiros três itens acima (“Python”, “Gerenciador de Pacotes” e “Gerenciador de Ambientes Virtuais”), a ferramenta “Miniconda” será suficiente.
Como editor de texto ou IDE (Ambiente de Desenvolvimento Integrado) para escrever nossos scripts, existem muitas opções disponíveis (Gedit, Visual Studio Code, Spyder, PyCharm, Atom, Jupyter Notebooks, etc.), mas pela simplicidade, neste procedimento usaremos o “Notepad++” (ou “Notepadqq” no Linux).
Em um procedimento a parte, ensinaremos como utilizar o Visual Studio Code.
É possível executar os scripts Python que veremos tanto localmente (em seus próprios computadores) como na nuvem (na plataforma Google Colab por exemplo). Durante o treinamento, vamos exemplificar ambos! Nesta atividade complementar, veremos como instalar as ferramentas necessárias e executar os scripts localmente. Já durante o minicurso presencial, veremos como executar os scripts na nuvem, sem a necessidade de instalação local. Assim os alunos terão uma visão geral de ambas as possibilidades.
Obs.: O procedimento mostrado a seguir foi realizado no Windows 10, porém, também funciona para sistemas Linux (com alguns pequenos detalhes, que serão comentados durante o procedimento).
Com estas informações preliminares, mãos a obra!
Diretório de trabalho e Repositório GitHub
Neste procedimento, vamos demonstrar os scripts e instalação das ferramentas utilizando o seguinte diretório de trabalho: C:\VLAB\spaceweek2023. Você pode utilizar o diretório que desejar em seu computador. Na imagem abaixo, o repositório da página GitHub do minicurso (https://github.com/diegormsouza/spaceweek2023), extraída no nosso diretório de trabalho.
Você pode ir criando os arquivos que serão mostrados manualmente se desejar. Ou então, baixar o repositório direto do GitHub e extraí-lo em seu diretório de trabalho:
No GitHub temos os seguintes diretórios e arquivos:
ancillary: Dados auxiliares (shapefiles, logos, etc)
colab: Para execução de scripts diretamente na nuvem
doc: Documentos e apresentações do minicurso
mtg: Scripts para processamento de dados MTG
saf: Scripts para processamento de dados SAF
samples: Links para baixar amostras de dados utilizados no scripts demonstração
environment.yml: Arquivo para instalação do ambiente conda e suas bibliotecas (para execução local)
Com isso, podemos instalar as ferramentas necessárias.
Procedimento de instalação dos softwares e bibliotecas necessárias:
1) Faça o download e instale como administrador a versão mais recente da ferramenta Miniconda (aproximadamente 70 MB) no seguinte link:
Nos seguintes links, você encontrará as instruções para instalação do Miniconda: Windows e Linux. A instalação do Miniconda é bem simples, bastando escolher o diretório de instalação.
Observações (instalador Windows):
Durante a instalação, não é necessário selecionar “Add Anaconda to my Path environment variable”.
Selecionar “Register Anaconda as my default Python *.*”
Observações (instalador Linux):
Na instalação Linux, é possível escolher o diretório de instalação com o parâmetro “-p”. Escolha o diretório adequado em sua máquina:
Agora que temos a ferramenta Miniconda instalada, vamos criar nosso ambiente virtual Python, que neste procedimento será chamado chamado “spaceweek” (Obs.: você pode dar qualquer nome ao ambiente virtual).
Criando um Ambiente Virtual Python e instalando as bibliotecas necessárias.
2) Vamos criar um ambiente virtual Python chamado “spaceweek” e instalar as seguintes bibliotecas:
netcdf4: leitura / escrita de arquivos NetCDF
cartopy: criação de mapas e outras análises de dados geoespaciais
regionmask: usado para criar máscaras de regiões geográficas para grades de longitude e latitude arbitrárias
imageio: interface fácil para ler e gravar uma ampla gama de dados de imagem, incluindo imagens animadas
satpy: leitura e manipulação de dados de diversos satélites
pyproj: biblioteca de projeções cartográficas e transformações de coordenadas
pyspectral: função de resposta espectral relativa e algumas operações básicas
hdf5plugin: leitura de dados comprimidos
ascat: biblioteca para processamento de dados do instrumento ASCAT dos satélites Metop. No minicurso vamos utilizar apenas as funções disponibilizadas nessa biblioteca baixar dados dos servidores H SAF.
Obs: Nem todas as bibliotecas acima serão utilizadas nesta atividade complementar, mas já vamos deixar todas as bibliotecas instaladas para o minicurso presencial, caso o aluno deseje executar os scripts localmente.
NoWindows: Para criar o ambiente virtual, abra o “Anaconda Prompt” recentemente instalado, como administrador:
NoLinux: Não é necessário abrir o Anaconda Prompt, os comandos podem ser usados diretamente no terminal
Criando o Ambiente Virtual (env) Python
Para a criação do ambiente virtual, vamos utilizar um arquivo chamado “environment.yml”, disponível no GitHub. Este arquivo contem o nome desejado da nossa “env” (spaceweek, neste exemplo), e as bibliotecas a serem instaladas. Baixe o arquivo “environment.yml” em seu diretório de trabalho.
Veja que neste arquivo temos o parâmtero “name” (spaceweek nesse caso), de onde baixar as bibliotecas (conda-forge) e as bibliotecas a serem instaladas. Perceba que no final da lista existe um parâmetro “pip”, indicando a biblioteca “ascat”, pois ela não está disponível no conda, e sim apenas no pip (instalador de pacotes Python).
Execute o anaconda prompt, vá até seu diretório de trabalho (ou aonde está o seu arquivo “environment.yml”) e use o seguinte comando:
conda env create -f environment.yml
Este passo irá criar o ambiente virtual “spaceweek” e instalar todas as bibliotecas listadas neste ambiente.
Durante a instalação, insira “y” e Enter para continuar, quando solicitado.
ATENÇÃO: A criação do ambiente virtual e instalação das bibliotecas levará um certo tempo. Dependendo da conexão, poderá levar um tempo considerável.
A mensagem abaixo confirma a correta criação do ambiente virtual.
Obs.: “base” (visto entre parênteses na imagem acima) é o nome do ambiente padrão do conda, e não é recomendada sua utilização para a instalação de bibliotecas devido a possíveis conflitos entre versões. É uma boa prática criar ambientes específicos para aplicações específicas (como este treinamento por exemplo), tendo assim o maior controle sobre suas instalações.
Após o procedimento, ative o ambiente virtual “spaceweek” recém criado com o seguinte comando:
conda activate spaceweek
Observação: No Linux, você pode utilizar também o comando:
source activate spaceweek
Ao ativá-lo, você verá o nome “spaceweek” entre parênteses (ao invés de “base”). Isso significa que o ambiente “spaceweek” foi ativado corretamente:
Informações Adicionais sobre Ambientes Virtuais
Comandos úteis do conda
Ainda que os seguintes comandos não sejam necessários para esta atividade complementar, são muito úteis no desenvolvimento em geral:
Desativar um ambiente virtual:
conda deactivate (no ambiente já ativado)
Ver a lista de ambientes virtuais já criados:
conda env list
Ver a lista de pacotes (bibliotecas, etc.) instalados em um ambiente virtual:
conda list (no ambiente já ativado)
Deletar um ambiente virtual (exemplo com o ambiente “spaceweek”):
conda remove –name spaceweek –all
Encontre mais informações sobre a gestão de ambientes virtuais neste link.
Estamos prontos para começar a programar com Python, no entanto, precisamos de um editor para escrever nosso código e também precisamos de produtos EUMETSAT de amostra. Vamos ver como baixá-los!
Baixando um Editor de Textos:
3-) Existem diversas opções de editores ou IDE’s disponíveis para criação dos nossos scripts. Mas a título de simplicidade (e evitar que o aluno encontre problemas na configuração das opções de editores mais avançados), vamos utilizar o Notepad++. Falaremos mais sobre isso no treinamento online.
NoWindows: Faça o download e instale o Notepad++ no seguinte link (apenas 4 MB):
NoLinux: Caso deseje, você pode instalar o Notepadqq com o seguinte comando:
sudo apt-get install notepadqq
Ou então usar o Gedit, ou outro editor Linux.
Observação:
Você pode usar qualquer editor de textos ou IDE que desejar (Gedit, Visual Studio Code, Spyder, PyCharm, Atom, Jupyter Notebooks, etc.), salvando o arquivo de código usando a extensão “.py”. Apenas não exemplificaremos a configuração destas opções durante o treinamento.
Baixando Amostras de Produtos EUMETSAT
4-) Crie um diretório na sua máquina para os arquivos desta atividade. Neste procedimento exemplo, estamos utilizamos o diretório C:\VLAB\spaceweek\samples para baixar amostras de dados. Use o diretório que desejar (isso deve ser refletido nos seus scripts).
Vamos baixar uma amostra de Temperatura da Superfície Terrestre (LST), máxima acumulada de 10 dias, no formato NetCDF, dos servidores LSA SAF da EUMETSAT. “SAF” significa “Satellite Application Facilities” ou “Centros de Aplicação de Satélite”, Centros de Excelência dedicados ao processamento de dados de satélite. Eles formam parte do Segmento Terrestre de Aplicações EUMETSAT, a através dos SAFs, podemos acessar arquivos para processamento. Existem diversos SAFs, e neste procedimento vamos utilizar dados do LSA SAF (o SAF dedicado a produtos de aplicações de superfície).
Para maiores informações sobre os produtos LSA SAF disponíveis, acesse o seguinte link:
Neste exemplo, vamos baixá-lo no diretório C:\VLAB\spaceweek\samples, mas você pode deixá-lo no diretório que desejar, desde que isso seja refletido nos seus scripts.
Criando um scriptPython
Vamos criar nosso primeiro script. Neste procedimento exemplo, criamos uma pasta chamada “saf” no nosso diretório de trabalho, onde estarão nossos scripts para o processamento dos produtos LSA SAF e H SAF. Além dos scripts, deixaremos alguns shapefiles nesse diretório.
Caso já tenha baixado o repositório, estes arquivos já estarão disponíveis no seu computador.
Você também pode criar esse script do zero, do seguinte modo:
Abra o Notepad++, e cole o seguinte conteúdo:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Salve o arquivo com o seguinte nome: script_01_basic_plot.py
Obs: Na imagem exemplo acima o Notepad++ foi configurado para um estilo de cores escuras, chamado “Obsidian”, em “Configurações” > “Configurador de estilos” > “Selecionar tema:” > “Obsidian”. Isto é completamente opcional. Voltemos ao script.
Vamos esplicar cada script em detalhe durante o minicurso presencial. Mas basicamente, nas linhas 7 e 8, importamos as bibliotecas necessárias (netCDF4 para ler arquivos NetCDF e matplotlib para plotarmos nossa imagem).
Na linha 11, indicamos qual arquivo desejamos processar. Os dois pontos (../samples/) antes do nome do arquivo indica que a pasta “samples” está um nível acima da pasta “saf”, onde criamos nosso script no nosso diretório de trabalho.
Alternativamente, você também pode declarar o caminho completo do arquivo “C:\VLAB\spaceweek2023\samples\NETCDF4_LSASAF_MSG_DLST-MAX10D_MSG-Disk_202307112345.nc”.
Na linha 14, indicamos qual “dataset” do arquivo NetCDF desejamos ler (“LST_MAX” nesse caso), e o guardamos os valores na variável “data” (você pode chamá-la do que quiser).
Já na linha 17 definimos o tamanho do nosso plot – (7 x 7 polegadas), na linha 20, plotamos nosso dado com a instrução imshow, na linha 23 salvamos um PNG com nosso plot e na linha 26 mostramos nosso plot em uma janela interativa.
Executando um script Python
Para executar um script Python, no Anaconda prompt, com o ambiente “spaceweek” ativado (onde instalamos nossas bibliotecas), acesse a pasta “saf” e execute o script recém criado com o seguinte comando:
python script_01_basic_plot.py
Você verá o plot em uma janela interativa. Repare que ao mover o ponteiro do mouse sobre a imagem, os valores de temperatura da superfície (máximo de 10 dias), é mostrado no canto inferior direito.
E com isso, executamos nosso primeiro script localmente!
Como um segundo teste, baixe e execute o script chamado “script_06_colors.py”, disponível no GitHub do curso:
Com isto nós finalizamos esta atividade complementar! Nesta atividade vimos como instalar as ferramentas necessárias para executar localmente os scripts que serão vistos no minicurso. Apesar de termos visto apenas dois scripts, você pode executar localmente qualquer script disponível no repositório, tanto para os dados LSA SAF, quando para os dados H SAF e MTG simulados, desde que eles estejam disponíveis em seu computador (os links para baixar amostras está no diretório “samples” do GitHub. Durante o curso, nós faremos uma revisão destes scripts e veremos novos scripts com novas operações para uma variedade de produtos!
Caso não tenha conseguido seguir este procedimento, sem problemas! Durante o Minicurso vamos executar os scripts diretamente na nuvem, sem a necessidade de instalação de ferramentas locais.