From 1f298bbf9a5525d07fd3bbae3de9f5e2133a21f7 Mon Sep 17 00:00:00 2001 From: lecrico Date: Wed, 7 Jan 2026 16:05:40 -0300 Subject: [PATCH 1/6] portuguese translation remote sensing --- .../GRASS_remotesensing_pt.qmd | 720 ++++++++++++++++++ .../landsat_b5_histogram_pt.webp | Bin 0 -> 24644 bytes .../landsat_b5eq_histogram_pt.webp | Bin 0 -> 43172 bytes 3 files changed, 720 insertions(+) create mode 100644 content/tutorials/remote_sensing_visualization/GRASS_remotesensing_pt.qmd create mode 100644 content/tutorials/remote_sensing_visualization/img_remotesensing/landsat_b5_histogram_pt.webp create mode 100644 content/tutorials/remote_sensing_visualization/img_remotesensing/landsat_b5eq_histogram_pt.webp diff --git a/content/tutorials/remote_sensing_visualization/GRASS_remotesensing_pt.qmd b/content/tutorials/remote_sensing_visualization/GRASS_remotesensing_pt.qmd new file mode 100644 index 0000000..2a100e0 --- /dev/null +++ b/content/tutorials/remote_sensing_visualization/GRASS_remotesensing_pt.qmd @@ -0,0 +1,720 @@ +--- +title: "Introdução ao Sensoriamento Remoto com GRASS" +author: "Michael Barton" +date: 2025-05-21 +date-modified: today +image: img_remotesensing/thumbnail.webp +lightbox: true +engine: knitr +format: + html: + embed-resources: true + toc: true + code-tools: true + code-copy: true + code-fold: false +page-layout: article +categories: [beginner, GUI, imagery, remote sensing, visualization] +description: Análise e visualização de imagens de satélite multiespectrais utilizando fusão de imagens, índices ambientais e redução de dimensionalidade com análise de componentes principais. +execute: + eval: false +copyright: + holder: Michael Barton + year: 2025 +funding: "A criação deste tutorial foi parcialmente financiada pela bolsa FAIN 2303651 da Fundação Nacional de Ciência dos EUA." + +# © Michael Barton 2025 +--- + +::::: grid +::: g-col-4 +O GRASS possui diversas ferramentas para processamento e visualização de imagens de sensoriamento remoto. Este tutorial aborda apenas superficialmente a vasta capacidade do GRASS para processamento de imagens. + +Esperamos que ele lhe dê uma ideia do potencial de análise e visualização de imagens de sensoriamento remoto no GRASS e da possibilidade de combinar a análise de sensoriamento remoto com o processamento de dados raster e vetorial em sistemas de informação geográfica (SIG). + +Começaremos com uma breve visão geral de imagens de satélite multibanda. +::: + +::: g-col-8 +![Imagem Landsat 8 OLI da região de Flagstaff, AZ. Fusão de imagem RGB das bandas 3, 4 e 5.](img_remotesensing/remotesensing_0.webp) +::: +::::: + +::: {.callout-note title="Conjunto de Dados"} +Este tutorial utiliza um dos conjuntos de dados de amostra padrão do GRASS para Flagstaff, Arizona, EUA: ***flagstaff_arizona_usa***. Faremos referência a nomes de lugares nesse conjunto de dados, mas ele pode ser complementado com qualquer um dos [conjuntos de dados de amostra padrão](https://grass.osgeo.org/download/data/) fpara qualquer região, por exemplo, o [conjunto de dados da Carolina do Norte](https://grass.osgeo.org/sampledata/north_carolina/nc_spm_08_grass7.zip). + +Usaremos um conjunto de imagens do **satélite Landsat 8** e o mapa raster DEM de *elevação*. No entanto, este tutorial também pode ser usado com outras imagens multibanda, como as do Sentinel ou do Terra/ASTER. Com imagens de satélite diferentes do Landsat 8, a numeração das bandas pode ser diferente da descrita neste tutorial. +::: + +::: {.callout-note title="Ambiente GRASS"} +Este tutorial foi desenvolvido para que você possa concluí-lo usando o **GUI GRASS**, comandos do GRASS no **console ou terminal**, ou usando comandos do GRASS em um ambiente **Jupyter Notebook.** +::: + +::: {.callout-note title="Não sabe por onde começar?"} +Se você não tem certeza de como começar a usar o GRASS através de sua interface gráfica ou com Python, confira os tutoriais [Introdução à GUI do GRASS](../get_started/fast_track.qmd) e [Introdução ao GRASS e Python em Jupyter Notebooks.](../get_started/fast_track_grass_and_python.qmd) +::: + +# Noções básicas de Sensoriamento Remoto + +## Diversas formas de Sensoriamento Remoto + +Existem muitas formas de sensoriamento remoto. Este tutorial se concentrará em plataformas de sensoriamento remoto baseadas no espaço. + +:::::: grid +::: g-col-4 +![Plataformas espaciais (NASA 2015)](img_remotesensing/remotesensing_3.webp){width="100%"} +::: + +::: g-col-4 +![Fotografia aérea e LiDAR](img_remotesensing/remotesensing_2.webp){width="100%"} +::: + +::: g-col-4 +![Levantamento geofísico (© Michael Barton 2025)](img_remotesensing/remotesensing_1.webp){width="100%"} +::: +:::::: + +## Plataformas espaciais + +::::: grid +::: g-col-5 +- Esses satélites possuem sensores para capturar a reflectância da **radiação** **eletromagnética (REM)** solar que atinge a Terra – incluindo a EM que vemos como luz visível. + +- Diferentes materiais absorvem, emitem e refletem a radiação REM em diferentes frequências. + +- Sensores espaciais capturam imagens em múltiplas frequências eletromagnéticas em diferentes "**bandas**" ou "**canais**" para permitir a identificação de diferentes materiais ou características. + +- As imagens das bandas dos sensores, em formato raster, podem ser combinadas matematicamente de diferentes maneiras para permitir a visualização ou identificação de características ou materiais. +::: + +::: g-col-7 +![Reflectância REM de diferentes materiais. *Imagem baseada em SEOS, Science Education through Earth Observation for High Schools* (SEOS), CC BY-NC-SA 2.0.](img_remotesensing/remotesensing_4.webp) + +![Bandas de imagem de diferentes plataformas espaciais e frequências REM que atingem a superfície da Terra. *Imagem de L. Rocchio e J. Barsi, NASA*](img_remotesensing/remotesensing_5.webp) +::: +::::: + +# Visualização de imagens de sensoriamento remoto multibanda no GRASS + +O GRASS possui diversas ferramentas para combinar e analisar imagens de banda única e multibanda. Neste tutorial, exploraremos algumas dessas ferramentas analíticas usando imagens da região de Flagstaff obtidas pelo satélite **Landsat 8**. + +![*Imagem Landsat 8 por Robert Simmon, USGS e NASA 2013*](img_remotesensing/remotesensing_6.webp){width="80%"} + +## Bandas do Landsat para análise + +As seguintes bandas do Landsat 8 são fornecidas com o conjunto de dados Flagstaff: + +- *landsat8_2024_B1* : azul visível de alta frequência para nuvens cirrus + +- *landsat8_2024_B2* : azul visível + +- *landsat8_2024_B3* : verde visível + +- *landsat8_2024_B4* : vermelho visível + +- *landsat8_2024_B5* : infravermelho próximo + +- *landsat8_2024_B6* : infravermelho médio (frequência mais alta) + +- *landsat8_2024_B7* : infravermelho médio (frequência mais baixa) + +Neste tutorial, usaremos as bandas 2 a 7 do Landsat 8. + +## Visualize as bandas individuais do Landsat + +::::: grid +::: g-col-6 +- Carregue as **bandas 2 a 7** no gerenciador de camadas, mas não a banda (*landsat8_2024_B1*). + +- Observe como cada uma das imagens é escura. + +- Isso ocorre porque, embora cada célula possa ter um de 65.536 valores, quase todos estão dentro de uma faixa muito estreita. + +![Histograma do número de pixels para cada valor possível](img_remotesensing/landsat_b5_histogram_pt.webp) +::: + +::: g-col-6 +![Landsat banda 5](img_remotesensing/remotesensing_9.webp) +::: +::::: + +## Equalização de Histograma + +A gama de tons de cinza pode ser remapeada entre os valores das células, de forma a abranger todo o espectro entre o preto e o branco. Isso pode ser feito no pacote [r.colors](https://grass.osgeo.org/grass-stable/manuals/r.colors.html) "equalizando" o histograma de cores das células. + +![Distribuição dos valores dos pixels após a equalização do histograma](img_remotesensing/landsat_b5eq_histogram_pt.webp){width="683"} + +### Equalização de histogramas no GRASS + +Usar [r.colors](https://grass.osgeo.org/grass-stable/manuals/r.colors.html) para equalização de histograma melhorará a visibilidade da imagem, mas não alterará os valores de suas células. + +:::::::::: {.panel-tabset group="language"} +#### GUI + +::::: grid +::: g-col-6 +1. Selecione *r.colors* no menu **Raster/Manage colors** *(Gerenciar Cores)* + +2. Insira uma imagem Landsat na caixa de texto **Name of the raster map(s)** +::: + +::: g-col-6 +![](img_remotesensing/remotesensing_15.webp) +::: +::::: + +::::: grid +::: g-col-6 +3. Selecione o campo **histogram equalization** (*equalização do histograma)* + +4. Selecione *cinza (grey)* na caixa de texto **Name of color table** + +5. Clique em **Run** *(Executar)* + +6. Faça o mesmo para cada uma das bandas do Landsat. +::: + +::: g-col-6 +![](img_remotesensing/remotesensing_14.webp) +::: +::::: + +#### Linha de comando + +```{bash} +r.colors -e map=landsat8_2024_B2 color=grey +r.colors -e map=landsat8_2024_B3 color=grey +r.colors -e map=landsat8_2024_B4 color=grey +r.colors -e map=landsat8_2024_B5 color=grey +r.colors -e map=landsat8_2024_B6 color=grey +r.colors -e map=landsat8_2024_B7 color=grey +``` + +#### Python + +```{bash} +gs.run_command("r.colors", + map=landsat8_2024_B2, + color=grey, + flags="e") +gs.run_command("r.colors", + map=landsat8_2024_B3, + color=grey, + flags="e") +gs.run_command("r.colors", + map=landsat8_2024_B4, + color=grey, + flags="e") +gs.run_command("r.colors", + map=landsat8_2024_B5, + color=grey, + flags="e") +gs.run_command("r.colors", + map=landsat8_2024_B6, + color=grey, + flags="e") +gs.run_command("r.colors", + map=landsat8_2024_B7, + color=grey, + flags="e") + +``` +:::::::::: + +Todos os exemplos descritos no restante deste tutorial foram feitos com imagens com histograma esticado. + +::: {.callout-note title="Dica"} +Faça o histograma de cada imagem **separadamente**, em vez de processá-las todas juntas como um grupo, porque cada imagem tem uma distribuição diferente de valores de pixel/célula para ajustar. +::: + +------------------------------------------------------------------------ + +![Banda 5 do Landsat após equalização de histograma](img_remotesensing/remotesensing_13.webp){width="80%"} + +# Fusão de Imagens + +## Fusão de imagens coloridas das bandas do Landsat + +Cada imagem Landsat possui valores de célula que representam a intensidade de reflectância em uma faixa específica de frequências eletromagnéticas (ou seja, múltiplas bandas da imagem). Quando visualizada como um raster, uma única banda Landsat aparece como um mapa variável de cor única (por exemplo, em tons de cinza). + +A **fusão de imagens** refere-se a métodos de combinar múltiplas bandas para visualizá-las como uma imagem colorida completa. De forma simplificada, isso envolve definir três bandas de imagem como os canais vermelho, verde e azul de uma **imagem RGB** **multicolorida** (RBG = red/vermelho, green/verde e blue/azul). A visualização de cores resultante exibe áreas com combinações semelhantes de refletância nas três bandas selecionadas (por exemplo, vegetação, água ou rodovias) com a mesma cor e diferenciá-las de áreas com diferentes combinações de refletância. + +Isso pode ser feito facilmente no GRASS usando a ferramenta [d.rgb](https://grass.osgeo.org/grass-stable/manuals/d.rgb.html) no gerenciador de camadas. + +## Fusão de imagens no gerenciador de camadas {#image-fusion-layermgr} + +::::: grid +::: g-col-6 +1. Selecione **Add RGB map layer** na ferramenta **Add various raster layers** +::: + +::: g-col-6 +![](img_remotesensing/remotesensing_17.webp) +::: +::::: + +::::: grid +::: g-col-6 +2. Selecione as bandas do Landsat para definir os canais vermelho, verde e azul de uma imagem multicolorida + +3. Para uma fusão de imagens em "cores naturais", experimente: + + - Banda 4 (EM vermelho visível) em vermelho/red + - Banda 3 (EM verde visível) em verde/green + - Banda 2 (EM azul visível) em azul/blue +::: + +::: g-col-6 +![](img_remotesensing/remotesensing_19.webp) + +![](img_remotesensing/remotesensing_16.webp) +::: +::::: + +![Imagem em cores naturais resultante da fusão das bandas 4, 3 e 2 do Landsat](img_remotesensing/remotesensing_20.webp){width="80%"} + +## Fusão de imagens: outras combinações de bandas + +Experimente outras combinações para destacar diferentes características. + +::::: grid +::: g-col-6 +- O uso das bandas 5, 4 e 3 destaca a clorofila (vegetação) em vermelho +::: + +::: g-col-6 +![Imagem RGB das bandas 5, 4 e 2](img_remotesensing/remotesensing_21.webp) +::: +::::: + +::::: grid +::: g-col-6 +- A fusão de imagens com as bandas 6, 5 e 3 utiliza a radiação eletromagnética infravermelha para destacar diferentes tipos de cobertura e uso do solo de forma diferenciada. +::: + +::: g-col-6 +![Imagem RGB das bandas 6, 5 e 2](img_remotesensing/remotesensing_22.webp) +::: +::::: + +# Índices ambientais + +## Informações ambientais obtidas a partir de combinações matemáticas de bandas de sensoriamento remoto + +Como diferentes materiais — incluindo diferentes tipos de vegetação, solos e água — refletem, absorvem e emitem radiação eletromagnética em diferentes frequências, muitos tipos de informações ambientais podem ser obtidos com diferentes combinações de bandas. + +O GRASS pode gerar um grande número de índices ambientais com seu extenso conjunto de ferramentas de imagens (consulte o menu **Imagens**), bem como com a calculadora de mapas raster. Ferramentas adicionais para produtos de imagens de sensoriamento remoto estão disponíveis como extensões complementares do GRASS. + +Um índice ambiental comumente usado é o **NDVI**: o índice de vegetação por diferença normalizada. O NDVI é um índice de crescimento e saúde das plantas. Ele é calculado a partir de bandas que detectam a luz vermelha próxima (NIR) e visível. + +$$ +NDVI = \frac{NIR - vermelho}{NIR + vermelho} +$$ + +Embora seja possível criar um mapa de NDVI usando a *calculadora de mapas (map calculator)*, ele também pode ser gerado automaticamente pelo módulo GRASS [i.vi](https://grass.osgeo.org/grass-stable/manuals/i.vi.html), juntamente com muitos outros índices de vegetação. + +::: {.callout-note title="Dica"} +Ao gerar qualquer novo mapa, como o NDVI, lembre-se primeiro de garantir que a **região** esteja configurada para corresponder às imagens Landsat. +::: + +### Exemplo de NDVI: índice de vegetação por diferença normalizada + +::::::::: {.panel-tabset group="language"} +#### GUI + +**Defina a região para corresponder às imagens Landsat** + +1. Adicione um dos raster de imagens LandSat no menu **Layer Manager** *(Gerenciador de Camadas)* + +2. Clique com o botão direito do mouse na imagem LandSat no Layer Manager *(Gerenciador de Camadas)* + +3. Selecione **Set computational region from selected map** *(Definir região computacional no mapa selecionado)* + +::::: grid +::: g-col-6 +**Calcular raster NDVI** + +1. Selecione a ferramenta [i.vi](https://grass.osgeo.org/grass-stable/manuals/i.vi.html) no menu **Imagery/Satellite image products/vegetation indices** *(Imagens/Produtos de imagem de satélite/índices de vegetação).* + +2. Selecione **NDVI** como índice a ser calculado. + +3. Digite o nome do **output map** *(mapa raster de saída)* que será criado. +::: + +::: g-col-6 +![](img_remotesensing/remotesensing_23.webp) +::: +::::: + +::::: grid +::: g-col-6 +4. Selecione a banda 4 para acessar o **red channel** *(canal vermelho).* + +5. Selecione a banda 5 para acessar o **NIR (near infrared) channel** *(infravermelho próximo).* +::: + +::: g-col-6 +![](img_remotesensing/remotesensing_24.webp) +::: +::::: + +#### Linha de comando + +1. Defina a região para corresponder às imagens do Landsat. + +2. Utilize a ferramenta [i.vi](https://grass.osgeo.org/grass-stable/manuals/i.vi.html) para criar um mapa de valores NDVI. + +```{bash} +g.region raster=landsat8_2024_B2 + +i.vi output=Flagstaff_NDVI viname=ndvi red=landsat8_2024_B4 nir=landsat8_2024_B5 +``` + +#### Python + +1. Defina a região para corresponder às imagens do Landsat. + +2. Utilize a ferramenta [i.vi](https://grass.osgeo.org/grass-stable/manuals/i.vi.html) para criar um mapa de valores NDVI. + +```{bash} +gs.run_command("g.region", raster="landsat8_2024_B2") + +gs.run_command("i.vi", + output=Flagstaff_NDVI, + viname=ndvi, + red=landsat8_2024_B4, + nir=landsat8_2024_B5 + ) +``` +::::::::: + +![Mapa NDVI sombreando um mapa de relevo da topografia DEM.](img_remotesensing/remotesensing_25.webp){width="80%"} + +# Combinando informações de várias faixas de imagens + +Podemos visualizar 3 bandas por vez com uma imagem colorida RGB. Mas como podemos usar informações de todas as 6 bandas do Landsat simultaneamente? Isso requer o uso de estatística multivariada para "redução de dimensionalidade". O GRASS possui diversas ferramentas analíticas para redução de dimensionalidade. + +Aqui, exploraremos a **análise de componentes principais (PCA)**. A PCA combina matematicamente as variáveis ​​originais (as bandas do Landsat) para criar novas variáveis ​​"componentes" que capturam a maior parte da variação nas bandas originais do Landsat. + +## Análise de componentes principais (PCA) de imagens multibanda com GRASS + +:::::: {.panel-tabset group="language"} +#### GUI + +::::: grid +::: g-col-6 +1. Abra o módulo de análise de componentes principais (PCA), [*i.pca*](https://grass.osgeo.org/grass-stable/manuals/i.pca.html), no menu **Imagery/Transform images** +*(Imagens/Transformar imagens).* + +2. Selecione os **nomes das imagens para as bandas 2 a 7 do Landsat.** + +3. Forneça um nome para **output basename**. Um número, representando os mapas de componentes PCA calculados, será anexado a esse nome base de saída. + +4. Existem outras opções, mas a padrão está boa por enquanto. + +5. Clique em **Run** *(Executar).* +::: + +::: g-col-6 +![](img_remotesensing/remotesensing_26.webp) +::: +::::: + +#### Linha de comando + +Realize uma PCA e exiba os resultados no console/terminal e como mapas de componentes da PCA. + +```{bash} +i.pca input=landsat8_2024_B2,landsat8_2024_B3,landsat8_2024_B4, landsat8_2024_B5,landsat8_2024_B6,landsat8_2024_B7 output=Flagstaff_landsat8 +``` + +#### Python + +Realize uma PCA e exiba os resultados no console/terminal e como mapas de componentes da PCA. + +```{bash} +gs.run_command("i.pca", + input="landsat8_2024_B2,landsat8_2024_B3,landsat8_2024_B4, landsat8_2024_B5,landsat8_2024_B6,landsat8_2024_B7", + output=Flagstaff_landsat8) +``` +:::::: + +### Trabalhando com resultados da PCA + +Os detalhes estatísticos da saída da PCA aparecem no console ou terminal, conforme mostrado abaixo. Cada linha da saída representa um componente da PCA. + +A lista de valores entre parênteses é o *autovetor* de cada componente da PCA, com os 6 valores indicando a contribuição de cada uma das imagens Landsat 2 a 7 para o componente. Números positivos ou negativos maiores indicam maiores contribuições de uma banda para o componente. Por exemplo, a banda 4 do Landsat tem a maior contribuição para o componente 1 da PCA, enquanto a banda 6 tem a maior contribuição para o componente 2. + +A porcentagem entre colchetes representa a quantidade de variação nas bandas originais do Landsat 2 a 7 que é capturada por esse componente da PCA. Por exemplo, o componente 1 da PCA captura 58% da variação nas 6 bandas originais e o componente 2 da PCA captura 35% da variação. + +``` +Eigen values (vectors) [% importance] + +PC1 14640530.56 ( 0.4461, 0.4915, 0.5480, 0.4167, 0.1994, 0.2136) [58.03%] +PC2 8850161.06 ( 0.2240, 0.1951, 0.1050, 0.0543,-0.7001,-0.6385) [35.08%] +PC3 1502032.84 ( 0.2335, 0.1528, 0.2947,-0.8794,-0.1102, 0.2231) [ 5.95%] +PC4 108422.28 ( 0.4370,-0.8041, 0.3529, 0.0416, 0.1120,-0.1536) [ 0.43%] +PC5 94291.01 ( 0.4417, 0.2122,-0.4285,-0.1814, 0.5597,-0.4797) [ 0.37%] +PC6 34241.78 ( 0.5570,-0.0735,-0.5418, 0.1242,-0.3636, 0.4931) [ 0.14%] +``` + +::::: grid +::: g-col-6 +![Imagem PCA 1](img_remotesensing/PCA1.webp) +::: + +::: g-col-6 +![Imagem PCA 2](img_remotesensing/PCA2.webp) +::: +::::: + +### Visualizando os resultados da PCA + +::::: grid +::: g-col-6 +Para visualizar melhor a variação espacial em uma imagem de componente PCA, você pode atribuir uma tabela de cores diferente da escala de cinza padrão. Isso geralmente é chamado de "**false color image**". *(imagem em cores falsas).* + +Aqui está o componente PCA 1 colorido com uma tabela de cores **bcyr** (blue/azul-cyan/ciano-yellow/amarelo-red/vermelho) com a **histogram equalization** *(equalização de histograma)* ativada. + +Siga as instruções acima para equalização de histograma, mas escolha `bcyr` em vez de cinza para a tabela de cores. + +Observe como as áreas com diferentes tipos de vegetação, solo e água se destacam mais claramente do que com a escala de cinza. Experimente outras tabelas de cores. +::: + +::: g-col-6 +![Imagem em falsa cor do componente 1 da PCA das bandas 2 a 7 do LandSat 8](img_remotesensing/remotesensing_27.webp){width="80%"} +::: +::::: + +### Fusão de imagens com resultados de PCA + +::::: grid +::: g-col-6 +Os métodos de fusão de imagens descritos acima para múltiplas bandas do Landsat também podem ser usados ​​para os resultados de PCA. + +A saída de texto da PCA mostrada acima indica que os 3 primeiros componentes da PCA capturam 97% da variação nas 6 bandas originais do Landsat (2 a 7). Isso significa que podemos visualizar quase toda a informação das 6 bandas originais do Landsat criando uma imagem colorida RGB dos componentes 1, 2 e 3 da PCA usando o [*d.rgb*](https://grass.osgeo.org/grass-stable/manuals/d.rgb.html) no gerenciador de camadas. + +Follow the procedures described in the [Fusão de imagens no gerenciador de camadas](#image-fusion-layermgr) usando os componentes PCA 1 a 3. + +Áreas com diferentes tipos de vegetação, água, construções urbanas e outras modificações da paisagem humana se destacam em cores distintas. +::: + +::: g-col-6 +![Fusão de imagens dos componentes 1, 2 e 3 da PCA](img_remotesensing/remotesensing_28.webp) +::: +::::: + +::::: grid +::: g-col-6 +Às vezes, componentes menos importantes da PCA também podem ser informativos, mesmo que capturem uma pequena porcentagem da variação total nas bandas do Landsat. + +Experimente a fusão de imagens RGB com os componentes 4, 5 e 6 da PCA. Como essa imagem difere de uma imagem obtida com os componentes 1, 2 e 3 da PCA? +::: + +::: g-col-6 +![Fusão de imagens dos componentes 4, 5 e 6 da PCA](img_remotesensing/PCA456.webp) +::: +::::: + +## Combinando imagens de sensoriamento remoto com outros dados de SIG + +No GRASS, as imagens de sensoriamento remoto são simplesmente rasters, como mapas de elevação DEM ou mapas de uso da terra. Isso significa que podemos combinar imagens de sensoriamento remoto com qualquer outro tipo de mapa disponível em seu banco de dados GIS. + +Por exemplo, um mapa vetorial de rios e lagos pode ser sobreposto no Gerenciador de Camadas à fusão de imagens dos componentes PCA 1 a 3 criada anteriormente. + +![Fusão de imagens dos componentes 1, 2 e 3 da PCA sobrepostos por vetores de rios e lagos](img_remotesensing/PCA123_streams_lakes.webp){width="80%"} + +# Visualização 3D de sensoriamento remoto e SIG + +A fusão de imagens também pode ser usada para adicionar cor à topografia de diversas maneiras. Isso possibilita visualizar informações de imagens de satélite ou produtos derivados, como componentes PCA, juntamente com o relevo topográfico. + +A fusão de imagens com componentes PCA de imagens Landsat, combinada com o relevo de um DEM, permite representar informações em 6 bandas do espectro eletromagnético, elevação, declividade e orientação em uma única visualização de 9 dimensões. + +Visualizações complexas como essas podem ser feitas facilmente no GRASS criando um novo mapa de relevo sombreado por cores no gerenciador de camadas. Isso requer apenas alguns passos. + +1. Crie um mapa de relevo topográfico a partir de um DEM. + +2. Combine bandas de satélite ou componentes PCA em um novo mapa de cores RGB. + +3. Utilize o mapa de cores RGB para sombrear o mapa de relevo em um novo mapa de relevo sombreado por cores no Layer Manager (Gerenciador de Camadas). + +## Geração de um mapa de relevo topográfico + +É possível criar um mapa de relevo a partir do DEM de elevação usando a ferramenta [r.relief](https://grass.osgeo.org/grass-stable/manuals/r.relief.html) no menu **Raster/Terrain analysis/Compute shaded relief** *(Raster/Análise de terreno/Calcular relevo sombreado).* + +:::::: {.panel-tabset group="language"} +#### GUI + +::::: grid +::: g-col-6 +1. Abra *r.relief*. + +2. Digite *elevation* na caixa de texto **Input raster**. + +3. Digite *elevation_relief* na caixa de texto **Name for output shaded relief map**. + +4. Digite um número maior do que 1 (por exemplo, 3) no campo **Factor for exaggerating relief** isso tornará o relevo topográfico mais visível. + +5. Clique em **Run** *(Executar).* +::: + +::: g-col-6 +![](img_remotesensing/r_relief1.webp) + +![](img_remotesensing/r_relief2.webp) +::: +::::: + +#### Linha de comando + +```{bash} +r.relief input=elevation output=elevation_relief zscale=3 +``` + +#### Python + +```{bash} +gs.run_command("r.relief", + input="elevation", + output="elevation_relief", + zscale=3) +``` +:::::: + +### Geração de um mapa de cores RGB a partir da fusão de imagens + +Utilize a ferramenta [r.composite](https://grass.osgeo.org/grass-stable/manuals/r.composite.html) do menu de ferramentas **Raster/Manage colors/Create RGB** *(Raster/Gerenciar cores/Criar RGB)*para criar um novo mapa RGB a partir da fusão de 3 mapas de componentes PCA. + +:::::: {.panel-tabset group="language"} +#### GUI + +::::: grid +::: g-col-6 +1. Abra *r.composite*. + +2. Insira os mapas de componentes PCA de 1 a 3 nas caixas de texto **red, green e blue.** + +3. Insira Flagstaff_landsat8PCA_123_RGB como o **output RGB map**. + +4. Clique em **Run** *(Executar).* +::: + +::: g-col-6 +![](img_remotesensing/remotesensing_29.webp) +::: +::::: + +#### Linha de comando + +```{bash} +r.composite red=Flagstaff_landsat8.1 green=Flagstaff_landsat8.2 blue=Flagstaff_landsat8.3 output=Flagstaff_landsat8PCA_123_RGB +``` + +#### Python + +```{bash} +gs.run_command("r.composite", + red="Flagstaff_landsat8.1", + green="Flagstaff_landsat8.2", + blue="Flagstaff_landsat8.3", + output="Flagstaff_landsat8PCA_123_RGB") +``` +:::::: + +## Combinando relevo e um mapa de fusão de imagens coloridas + +Um mapa de relevo topográfico e um mapa de fusão de imagens RGB podem ser combinados com a ferramenta [d.shade](https://grass.osgeo.org/grass-stable/manuals/d.shade.html) no gerenciador de camadas ou usando a ferramenta [r.shade](https://grass.osgeo.org/grass-stable/manuals/r.shade.html) no menu **Raster/Terrain analysis/Apply shade to raster.** + +:::::: {.panel-tabset group="language"} +::::: grid +::: g-col-6 +**Crie um mapa de relevo sombreado (shaded relief map) no gerenciador de camadas (layer manager)** + +1. No campo layer manager, selecione **Add shaded relief map layer** (*d.shade* ferramente) a partir do botão de menu **Add various raster map layers**. + +2. Selecione o mapa *elevation_relief* na caixa de texto **Name of shaded relief**. + +3. Selecione o raster *Flagstaff_landsat8PCA_123_RGB* na caixa de texto **Name of raster to drape over relief**. + +4. Se você definifir **Percent to brighten** (porcentagem de brilho) para 30 ou 40, criará uma exibição visualmente mais atraente. +::: + +::: g-col-6 +![](img_remotesensing/layer_manager_shaded_relief.webp) + +![](img_remotesensing/d_shade.webp) +::: +::::: + +**Criar um mapa raster de relevo sombreado** + +1. Abra a ferramente *r.shade* no menu **/Raster/Terrain analysis/Apply shade to raster**. + +2. Utilize as mesmas entradas acima para o layer manager (gerenciador de camadas) e forneça um nome para o mapa de saída a ser criado (por exemplo, *PCA_relief*). + +#### Linha de comando + +```{bash} +r.shade shade=elevation_relief color=Flagstaff_landsat8PCA_123_RGB output=PCA_relief brighten=40 +``` + +#### Python + +```{bash} +gs.run_command("r.shade", + shade="elevation_relief", + color="Flagstaff_landsat8PCA_123_RGB", + output="PCA_relief", + brighten=40) +``` +:::::: + +![Mapa de relevo da topografia sombreado pela fusão RGB dos componentes 1 a 3 da PCA](img_remotesensing/PCA123_relief.webp){width="80%"} + +### Visualizando fusão de imagens e topografia no NVIZ + +Além disso, a fusão de imagens PCA pode ser usada para colorir uma visualização 3D da topografia na **visualização 3D** do GRASS usando o módulo NVIZ. + +- Comece abrindo o **DEM de elevação** no gerenciador de camadas. Certifique-se de que nenhum outro mapa, exceto o de elevação, esteja sendo exibido. + +- Selecione **3D view** no menu suspenso na parte superior da janela de exibição do mapa. Isso deverá exibir o mapa de elevação em 3D com o mesmo sombreamento visto na visualização 2D. + +![Topografia DEM exibida em 3D](img_remotesensing/NVIZ_elevation.webp){width="80%"} + +- Em seguida, selecione a guia **data** na janela do gerenciador de exibição 3D (pode ser mais fácil gerenciar a exibição 3D se você a destacar da barra lateral e abri-la em uma janela separada). Certifique-se de que o mapa de elevação esteja selecionado na caixa **Raster map** na parte superior da janela de dados. + +- Desça um pouco até a seção **Color** e substitua o mapa de elevação pelo mapa raster RGB da fusão de imagens PCA 1-3 *(Flagstaff landsat 8PCA_123_RGB).* + +![Topografia DEM colorida pelos componentes 1 a 3 da PCA exibida em 3D](img_remotesensing/NVIZ_elevation_PCA123.webp){width="80%"} + +# Sensoriamento remoto avançado com GRASS + +O GRASS possui muito mais recursos e ferramentas para trabalhar com dados de sensoriamento remoto. + +- Para **satellite imagery** *(imagens de satélite)*, existem ferramentas no menu [Menu de imagens](https://grass.osgeo.org/grass-stable/manuals/imageryintro.html) e [Complementos GRASS](https://grass.osgeo.org/grass-stable/manuals/addons/) para... + + - [Correção e calibração](https://grass.osgeo.org/grass-stable/manuals/imageryintro.html#radiometric-corrections) de imagem + + - [Georetificação](https://grass.osgeo.org/grass-stable/manuals/imageryintro.html#geocoding-of-imagery-data) de imagem + + - Algoritmos de aprendizado de máquina para [classificação de imagens supervisionada e não supervisionada](https://grass.osgeo.org/grass-stable/manuals/imageryintro.html#image-classification) e [detecção de características](https://grass.osgeo.org/grass-stable/manuals/addons/r.learn.ml2.html) + + - [Análise estatística](https://grass.osgeo.org/grass-stable/manuals/rasterintro.html#raster-map-statistics) e visualização, conforme demonstrado neste tutorial + +- As **séries temporais** *(time series)* de satélite podem ser transformadas em **cubos temporais** *(time cubes)* para análise com as ferramentas exclusivas de SIG Temporal do GRASS. + +- Para **fotografia aérea**, existem ferramentas para... + + - [Georetificação](https://grass.osgeo.org/grass-stable/manuals/imageryintro.html#geocoding-of-imagery-data) + + - Retificação 3D e correção da distorção de digitalização em [ortofotografia](https://grass.osgeo.org/grass-stable/manuals/i.ortho.photo.html) + + - Aprimoramento de imagem, incluindo filtros de [vizinhança](https://grass.osgeo.org/grass-stable/manuals/r.neighbors.html), [convolução](https://grass.osgeo.org/grass-stable/manuals/r.mfilter.html), [detecção de bordas](https://grass.osgeo.org/grass-stable/manuals/i.zc.html), e [transformada rápida de Fourier](https://grass.osgeo.org/grass-stable/manuals/i.fft.html) + +- O GRASS possui um conjunto abrangente de ferramentas raster e vetoriais para processamento e visualização de [dados LiDAR](https://grass.osgeo.org/grass-stable/manuals/vectorintro.html#lidar-data-processing), bem como para importação e processamento de dados LiDAR raster e vetoriais. + +- Existem diversos métodos para [interpolação](https://grass.osgeo.org/grass-stable/manuals/rasterintro.html#raster-map-operations) de pontos de dados provenientes de **levantamentos geofísicos**. + +- Para **geofísica 3D** (por exemplo, tomografia elétrica ou radar de penetração no solo), o GRASS oferece um conjunto exclusivo de [ferramentas de análise de voxels 3D](https://grass.osgeo.org/grass-stable/manuals/raster3dintro.html) com visualização n-dimensional no [NVIZ](https://grass.osgeo.org/grass-stable/manuals/wxGUI.nviz.html). + +Essas e outras ferramentas fazem do GRASS um ambiente de geoprocessamento rico e poderoso para diversas aplicações de sensoriamento remoto. diff --git a/content/tutorials/remote_sensing_visualization/img_remotesensing/landsat_b5_histogram_pt.webp b/content/tutorials/remote_sensing_visualization/img_remotesensing/landsat_b5_histogram_pt.webp new file mode 100644 index 0000000000000000000000000000000000000000..756172bb50d6dee199fef080ad4e19a5d881ee2c GIT binary patch literal 24644 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 literal 0 HcmV?d00001 From 9daeca8fbe6d13b22fc783b2edace0e92bec4022 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Let=C3=ADcia=20Correa?= <104940249+lecrico@users.noreply.github.com> Date: Wed, 7 Jan 2026 17:08:26 -0300 Subject: [PATCH 2/6] Update content/tutorials/remote_sensing_visualization/GRASS_remotesensing_pt.qmd Co-authored-by: Anna Petrasova --- .../remote_sensing_visualization/GRASS_remotesensing_pt.qmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/tutorials/remote_sensing_visualization/GRASS_remotesensing_pt.qmd b/content/tutorials/remote_sensing_visualization/GRASS_remotesensing_pt.qmd index 2a100e0..af54eb6 100644 --- a/content/tutorials/remote_sensing_visualization/GRASS_remotesensing_pt.qmd +++ b/content/tutorials/remote_sensing_visualization/GRASS_remotesensing_pt.qmd @@ -1,6 +1,6 @@ --- title: "Introdução ao Sensoriamento Remoto com GRASS" -author: "Michael Barton" +author: "Michael Barton & Leticia Correa" date: 2025-05-21 date-modified: today image: img_remotesensing/thumbnail.webp From 014a516e2e630ddcf8191e76707198e5b3b617e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Let=C3=ADcia=20Correa?= <104940249+lecrico@users.noreply.github.com> Date: Wed, 7 Jan 2026 17:08:39 -0300 Subject: [PATCH 3/6] Update content/tutorials/remote_sensing_visualization/GRASS_remotesensing_pt.qmd Co-authored-by: Anna Petrasova --- .../remote_sensing_visualization/GRASS_remotesensing_pt.qmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/tutorials/remote_sensing_visualization/GRASS_remotesensing_pt.qmd b/content/tutorials/remote_sensing_visualization/GRASS_remotesensing_pt.qmd index af54eb6..78f8dbd 100644 --- a/content/tutorials/remote_sensing_visualization/GRASS_remotesensing_pt.qmd +++ b/content/tutorials/remote_sensing_visualization/GRASS_remotesensing_pt.qmd @@ -1,7 +1,7 @@ --- title: "Introdução ao Sensoriamento Remoto com GRASS" author: "Michael Barton & Leticia Correa" -date: 2025-05-21 +date: 2026-01-07 date-modified: today image: img_remotesensing/thumbnail.webp lightbox: true From 19f18951db18ac8e973faf81a63f6a05f3908f52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Let=C3=ADcia=20Correa?= <104940249+lecrico@users.noreply.github.com> Date: Wed, 7 Jan 2026 17:08:51 -0300 Subject: [PATCH 4/6] Update content/tutorials/remote_sensing_visualization/GRASS_remotesensing_pt.qmd Co-authored-by: Anna Petrasova --- .../remote_sensing_visualization/GRASS_remotesensing_pt.qmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/tutorials/remote_sensing_visualization/GRASS_remotesensing_pt.qmd b/content/tutorials/remote_sensing_visualization/GRASS_remotesensing_pt.qmd index 78f8dbd..cd97702 100644 --- a/content/tutorials/remote_sensing_visualization/GRASS_remotesensing_pt.qmd +++ b/content/tutorials/remote_sensing_visualization/GRASS_remotesensing_pt.qmd @@ -14,7 +14,7 @@ format: code-copy: true code-fold: false page-layout: article -categories: [beginner, GUI, imagery, remote sensing, visualization] +categories: [beginner, GUI, imagery, remote sensing, visualization, Português] description: Análise e visualização de imagens de satélite multiespectrais utilizando fusão de imagens, índices ambientais e redução de dimensionalidade com análise de componentes principais. execute: eval: false From 4b17419f7d450575710566c5f31b2a2837836680 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Let=C3=ADcia=20Correa?= <104940249+lecrico@users.noreply.github.com> Date: Wed, 7 Jan 2026 17:09:03 -0300 Subject: [PATCH 5/6] Update content/tutorials/remote_sensing_visualization/GRASS_remotesensing_pt.qmd Co-authored-by: Anna Petrasova --- .../remote_sensing_visualization/GRASS_remotesensing_pt.qmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/tutorials/remote_sensing_visualization/GRASS_remotesensing_pt.qmd b/content/tutorials/remote_sensing_visualization/GRASS_remotesensing_pt.qmd index cd97702..5e831ca 100644 --- a/content/tutorials/remote_sensing_visualization/GRASS_remotesensing_pt.qmd +++ b/content/tutorials/remote_sensing_visualization/GRASS_remotesensing_pt.qmd @@ -19,7 +19,7 @@ description: Análise e visualização de imagens de satélite multiespectrais u execute: eval: false copyright: - holder: Michael Barton + holder: Michael Barton and Leticia Correa year: 2025 funding: "A criação deste tutorial foi parcialmente financiada pela bolsa FAIN 2303651 da Fundação Nacional de Ciência dos EUA." From c0b3057f24a2864cc6742e98848920dbab9017f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Let=C3=ADcia=20Correa?= <104940249+lecrico@users.noreply.github.com> Date: Wed, 7 Jan 2026 17:09:12 -0300 Subject: [PATCH 6/6] Update content/tutorials/remote_sensing_visualization/GRASS_remotesensing_pt.qmd Co-authored-by: Anna Petrasova --- .../remote_sensing_visualization/GRASS_remotesensing_pt.qmd | 1 - 1 file changed, 1 deletion(-) diff --git a/content/tutorials/remote_sensing_visualization/GRASS_remotesensing_pt.qmd b/content/tutorials/remote_sensing_visualization/GRASS_remotesensing_pt.qmd index 5e831ca..b5f42ff 100644 --- a/content/tutorials/remote_sensing_visualization/GRASS_remotesensing_pt.qmd +++ b/content/tutorials/remote_sensing_visualization/GRASS_remotesensing_pt.qmd @@ -23,7 +23,6 @@ copyright: year: 2025 funding: "A criação deste tutorial foi parcialmente financiada pela bolsa FAIN 2303651 da Fundação Nacional de Ciência dos EUA." -# © Michael Barton 2025 --- ::::: grid