Atividade Complementar: Utilizando o Visual Studio Code

O atributo alt desta imagem está vazio. O nome do arquivo é 1.png

brazil_640

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.

https://conda.io/projects/conda/en/stable/user-guide/install/download.html

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:

https://code.visualstudio.com/download

Sua instalação é simples e direta.

PASSO 4: INSTALAR A EXTENSÃO PYTHON PARA O VISUAL STUDIO CODE

Após a instalação e execução, na barra de ferramentas à esquerda da interface, selecione “Extensions”, e busque por “Python”. Clicar em “Install”:

Instalando a extensão Python para o Visual Studio Code

PASSO 5: INSERIR O “CONDA PATH” E O INTERPRETADOR PADRÃO

Vá em “File” > “Preferences” > “Settings” > “Extensions” > “Python”.

Em “CondaPath” insira o diretório do executável conda. No meu computador, está localizado em:

C:\Users\dsouza\miniconda3\condabin

Em “Default Interpreter Path”, insira o ambiente virtual a ser utilizado. No meu caso o ambiente “spaceweek” está em:

C:\Users\dsouza\miniconda3\envs\spaceweek\python.exe
Inserindo o diretório conda e o interpretador padrão

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:

Selecionar o diretório de trabalho para que ele apareça no explorador do Visual Studio Code

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.

Abrindo um script Python no Visual Studio Code

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).

Selecionando o terminal padrão

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.

Executando un script Python no Visual Studio Code

Você verá o ambiente padrão do conda sendo ativado automaticamente e o script python sendo executado no terminal do Visual Studio:

Ambiente conda sendo ativado automaticamente e script python sendo executado

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).

Atribuição de um atalho de teclado personalizado para executar scripts Python

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).

Ativação da possibilidade de execução de arquivos no mesmo diretório

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.

Selecionando o esquema de cores do editor

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.

Atividade Complementar: Processando Produtos EUMETSAT Localmente

brazil_640

Atividade Complementar: Processando Produtos EUMETSAT Localmente

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:

E-mail: diego.souza@inpe.br

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

Recursos adicionais:

Abaixo, algumas informações preliminares:

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.

Para obter amostras de produtos EUMETSAT, vamos baixar dados de servidores LSA SAF (https://datalsasaf.lsasvcs.ipma.pt/) e H SAF (https://hsaf.meteoam.it).

Observação: Execução local x Execução na nuvem:

É 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.

Nesta atividade complementar executaremos os scripts localmente, mas durante o minicurso veremos a execução dos scripts diretamente na nuvem. Assim aprendemos ambos!

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.

Repositório GitHub extraído (ou “clonado”) 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:

docs.conda.io/en/latest/miniconda.html

Página de download do Miniconda

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:
./Miniconda3-latest-Linux-x86_64.sh -p /meu_diretorio/

Observações (instalador Windows / Linux):

  • A instalação durará aproximadamente 5 minutos.

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.

No Windows: Para criar o ambiente virtual, abra o “Anaconda Prompt” recentemente instalado, como administrador:

Executing Anaconda Prompt
Executando o Anaconda Prompt no Windows

No Linux: 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.

https://github.com/diegormsouza/spaceweek2023/blob/main/environment.yml

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.

Ambiente criado com sucesso

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.

No Windows: Faça o download e instale o Notepad++ no seguinte link (apenas 4 MB):

notepad-plus-plus.org/downloads/

Página de download do Notepad++

No Linux: 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:

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:

https://landsaf.ipma.pt/en/data/products/

Para baixar dados do LSA SAF, é necessário criar uma conta. Faça seu cadastro no seguinte link:

https://mokey.lsasvcs.ipma.pt/auth/signup

ATENÇÃO: Geralmente, o acesso aos produtos é liberado após 30 minutos.

Acesse o diretório de produtos no seguinte link:

https://datalsasaf.lsasvcs.ipma.pt/PRODUCTS

Ou clique no seguinte botão da página “LSA SAF Data Service”:

https://datalsasaf.lsasvcs.ipma.pt/

Insira seu nome de usuário e senha para acessar o servidor de dados.

Para uma descrição dos diretórios e produtos disponíveis, acesse o seuinte arquivo descritivo:

https://datalsasaf.lsasvcs.ipma.pt/PRODUCTS/Readme.md

Para nosso teste de processamento local, vamos baixar o seguinte arquivo:

https://datalsasaf.lsasvcs.ipma.pt/PRODUCTS/MSG/DLST/NETCDF/2023/07/11/NETCDF4_LSASAF_MSG_DLST-MAX10D_MSG-Disk_202307112345.nc

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 script Python

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.

Você pode acessar estes scripts no seguinte link:

https://github.com/diegormsouza/spaceweek2023/tree/main/saf

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:

#-------------------------------------------------------------------------------------------------------------------
# Training - Processing EUMETSAT Data and Products - Script 1: Basic Plot
# Author: Diego Souza (INPE/CGCT/DISSM)
#-------------------------------------------------------------------------------------------------------------------
# required modules
from netCDF4 import Dataset # read / write NetCDF4 files
import matplotlib.pyplot as plt # plotting library
# open the file using the NetCDF4 library
file = Dataset("../samples/NETCDF4_LSASAF_MSG_DLST-MAX10D_MSG-Disk_202307112345.nc")
# extract the data (lines and columns for a single time)
data = file.variables['LST_MAX'][0,:,:]
# choose the plot size (width x height, in inches)
plt.figure(figsize=(7,7))
# plot the image
plt.imshow(data, origin='upper', cmap='jet')
# save the image
plt.savefig('image_1.png')
# show the image
plt.show()

Salve o arquivo com o seguinte nome: script_01_basic_plot.py

Nosso primeiro script no editor de texto Notepad++

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:

https://github.com/diegormsouza/spaceweek2023/blob/main/saf/script_06_colors.py

Este deve ser o resultado:

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.

Nos vemos lá!