11 Sensoriamento remoto

11.1 Imagens de RPAs

Este capítulo oferece uma introdução ao processamento e classificação de imagens de RPAs no ambiente R, usando algoritmos de aprendizado capazes de realizer diversos processamentos. Ele também fornece um tutorial de referência conciso e prático, que oferece aos leitores uma nosso geral do que é possível realizar no Sistema R com o processamento e classificação de imagens de RPAs.

É necessário instalar alguns pacotes necessários para aplicar esta tarefa:

Carregar os pacote que foram baixados:

Baixar a imagem ortomosaicada:

Plotar a imagem nas bandas RGB:

Remover o solo e trabalhar apenas com a vegetação para aplicar os índices de vegetação RGB:

Aplicado os índices de vegetação. Aplicaremos o índice NGRDI, BGI e podemos criar um índice usando as bandas disponíveis. Criaremos como exemplo myIndex com a fórmula Red-Blue/Green:

11.2 Imagens de satélites

Esse procedimento será realizado com imagens de satélite (Sentinel 2), porêm pode ser aplicado com imagens de RPA, desde que sejam multiespectrais.

Carregar pacotes necessários para trabalhar com os dados raster. Caso não tenha algum dos pacotes, realize a sua instalação:

Baixar o arquivo . sentinel2.tif.

Visualizar os dados:

É necessário criar camadas individuais para cada uma das bandas espectrais:

Comparar duas bandas para ver se elas possuem a mesma extensão:

Plotar a banda 4 para pré-visualização:

Visualizar a imagem nas bandas do RGB:

Juntar todas as bandas num só arquivo:

Aplicar o índice de vegetação NDVI, para o Sentinel 2 com: NIR = 8, red = 4.

Criar a VI (vegetation index) por meio de função:

NDVI:

Outras fórmula de aplicar o NDVI

Visualizar o NDVI em histograma

Visualizar apenas a vegetação com NDVI acima de 0.4:

Reclassificar o NDVI e difini-lo por classes numéricas:

Criar uma classificação não supervisionada a partir do NDVI:

Converter o raster (NDVI) a um vetor/matriz:

É importante definir o gerador de pontos, porque o “kmeans” inicia os centros em locais aleatórios:

Criar 10 clusters, permitir 500 iterações, comece com 5 conjuntos aleatórios usando o método Lloyd:

Ver o vetor/matriz:

Crie uma cópia do NDVI para não perder os dados:

Agora substitua os valores das células de varredura pelo kmncluster$cluster:

Realize o plot do NDVI e do kmeans:

Se quiser traçar a classificação kmeans ao lado da renderização do RGB para verificar a qualidade da classificação e identificação das classes:

Aplicar outros índices de vegetação com o pacote LSRS:

11.4 LIDAR

O exemplo a seguir é um processamento de imagens LIDAR, por meio da qual será segmentado árvores individuais e métricas.

Carregar pacote:

Baixar dados Example.las

Carregar uma área florestal de exemplo a partir de imagens LIDAR que será trabalhada:

O lasground fornece vários algoritmos para classificar os pontos de referência. Essa função é conveniente para gráficos de pequeno a médio porte, como o que estamos processando.

Classificar pontos do solo (pontos de referência):

É necessário definir o terreno em 0 metros. Deve-se subtrair o MDT para obter pontos de aterramento em 0, mas aqui não será usado um MDT, mas vamos interpolar exatamente cada ponto.

Definir altura normalizada:

Na próxima etapa, será usado um algoritmo que requer um modelo de altura da copa a partir da nuvem de pontos.

Calcular um modelo de altura das copas:

Plotar o CHM:

A segmentação pode ser alcançada com lastrees. Aqui foi escolhido o algorítmo de bacia com um limiar de 4 metros. A nuvem de pontos foi atualizada e cada ponto agora tem um número que se refere a uma árvore individual (treeID). Pontos que não são árvores recebem o valor de ID NA.

Realizar a segmentação das árvores:

Remova os pontos que não estão atribuídos a uma árvore:

Plotar a segmentação:

Calcular algumas métricas:

No exemplo anterior, mesmo se a segmentação for feita usando um modelo de altura do dossel, a classificação foi feita na nuvem de pontos. Isso ocorre porque lidR é uma biblioteca orientada à nuvem de pontos. Mas pode-se querer que o raster trabalhe com rasters. Nesse caso, a função divisor de águas pode ser usada de forma independente:

Criar poligonos de contornos a partir da copa:

Plotar o CHM e contornos: