Sensoriamento
Remoto em R
Ângela Terumi Fushita
Vitor Vieira Vasconcelos
Introdução ao uso de dados espaciais para estudos ambientais
Programa de Pós-Graduação em Ciência e Tecnologia Ambiental
Universidade Federal do ABC
Março, 2019
Santo André - SP
Objetivo
Adquirir os conhecimentos e
habilidades básicas relacionados a
sensoriamento remoto no
ambiente R
Conteúdo
•Fontes de imagens de satélite
•Manipulação e visualização de imagens
•Índices espectrais e transformações
•Classificação espectral
Materiais de aula disponíveis em:
Baixar os dados em: D:/R_CTA/aula6/
https://yadi.sk/d/zy-M4wQdLs4RhQ
Livro de Referência
Wegmann, Martin, Benjamin Leutner, and
Stefan Dech, eds. Remote sensing and
GIS for ecologists: using open source
software. Pelagic Publishing Ltd, 2016.
●
PDF:
https://yadi.sk/d/Omaep6aBocRdwg
●
Site de apoio:
http://book.ecosens.org/
●
Conteúdo de referência:
– Vetorização (QGis)
– Álgebra de mapas (R)
– Sensoriamento remoto (R)
– Modelagem de distribuição de
espécies (R)
Tutoriais
https://www.rspatial.org/rs/index.html
Conteúdo
•Fontes de imagens de satélite
•Manipulação e visualização de imagens
•Índices espectrais e transformações
•Classificação espectral
Série Landsat
https://landsat.usgs.gov/landsat-missions-timeline
Thematic Mapper (TM)
https://landsat.usgs.gov/what-are-band-designations-landsat-satellites
Bandas Comprimento de
Onda (μm)
Resolução
(m)
1 – Azul 0.45-0.52 30
2 – Verde 0.52-0.60 30
3 - Vermelho 0.63-0.69 30
4 – Infravermelho
Próximo (NIR) 0.76-0.90 30
5  - Infravermelho de
ondas curtas (SWIR) 1 1.55-1.75 30
6 - Termal 10.40-12.50 120* (30)
7 - Infravermelho de
ondas curtas (SWIR) 2 2.08-2.35 30
Landsat 5Landsat 5
Resolução Radiométrica – 8 bits
Landsat 8Landsat 8
https://landsat.usgs.gov/what-are-band-designations-landsat-satellites
Bandas Comprimento de
Onda (μm)
Resolução
(m)
1 - Ultra azul (costas/aerosol) 0.43 - 0.45 30
2 - Azul 0.45 - 0.51 30
3 – Verde 0.53 - 0.59 30
4 – Vermelho 0.64 - 0.67 30
5 – Infravermelho Próximo (NIR) 0.85 - 0.88 30
6 – Infravermelho de Ondas Curtas
(SWIR1)
1.57 - 1.65 30
7 – Infravermelho de Ondas Curtas
(SWIR2)
2.11 - 2.29 30
8 - Pancromático 0.50 - 0.68 15
9 - Cirrus 1.36 - 1.38 30
10 – Termal (TIRS) 1 10.60 - 11.19 100 * (30)
11 – Termal (TIRS) 2 11.50 - 12.51 100 * (30)
Resolução Radiométrica – 12 bitsOperational Land Imager (OLI)
A série LandsatA série Landsat
https://landsat.gsfc.nasa.gov/about/technical-information/
Imagens Landsat Gratuitas:Imagens Landsat Gratuitas:
Portal EarthExplorerPortal EarthExplorer
https://earthexplorer.usgs.gov/
Registro e Login
Earth ExplorerEarth Explorer
Earth ExplorerEarth Explorer
Earth ExplorerEarth Explorer
EarthEarth
ExplorerExplorer
EarthEarth
ExplorerExplorer
Landsat Archive
Collection 1 Level-2:
Imagens ortorretificadas com
correção atmosférica
(ordem por e-mail)
●
Não inclui:

pancromática (15m)

termais (60m)
Collection 1 Level-1
Imagens ortorretificadas
(download direto)
L8 = Landsat 8 (OLI)
L4-5 = Landsat 4 e 5 (TM)
OrtorretificaçãoOrtorretificação
http://www.geoimage.com.au/services/imageprocessing
https://wiki.hexagongeospatial.com/index.php?title=Orthorectification
Correção AtmosféricaCorreção Atmosférica
Antes Depois
http://www.hkcoastalwaterquality.tk/Methodology.html https://www.mapbox.com/blog/atmospheric-correction-comparison/
Earth ExplorerEarth Explorer
Earth ExplorerEarth Explorer
Earth ExplorerEarth Explorer
Earth ExplorerEarth Explorer
Download
direto dos
dados de
nível 1
SRTM – 30 metros
Máscara de água
Satélite MODIS
com correção atmosférica
●
Resolução temporal:

Diário

Composto de 8 dias
●
Resolução espacial:

250m (2 bandas)

500m (7 bandas)

1km (3 bandas termais)
●
Produtos derivados

Uso e cobertura da terra

Índices de Vegetação
Terra
Aqua
Satélite MODIS
com correção atmosférica
●
Combinação Terra + Aqua
●
Resolução temporal: diário
●
Resolução Espacial

500m (7 bandas)

1km (12 bandas)
Satélites Sentinel
●
Sentinel 1 – Radar
– A partir de 2014
– GRD – Ground Range Detected
– Resoluções: 9m (SM), 20m (IW) e 50m (EW)
●
Sentinel 2 – Passivo
– A partir de 2015
– S2MSI2A e S2MSI2Ap
– Ortorretificação
– Correção atmosférica
Usos do Radar
●
Imagens em dias com nuvens
http://www.riice.org/how-riice-works/earth-observation-data-collection/
Usos do Radar
Imagens em dias com nuvens
Sentinel 1 Landsat 8
Sumatra (Indonésia), 2015
https://blog.conservation.org/2016/03/cloud-piercing-satellites-unleash-torrent-of-new-data-new-insights-into-planet-earth/
Usos do Radar
●
Detecção de áreas alagadas
– Espelho d’água reflete sinal
http://www.un-spider.org/book/export/html/7322
Imagemantes
dainundação
Imagemdurante
ainundação
Usos do Radar
Detecção de movimentos na superfície
Terremotos Movimentos de massa
Perugia (Itália), 30 out. 2016 Maoxian (China), 2014-2017
Intrieri, E.,et al.., 2018. The Maoxian landslide as seen from space: detecting precursors of failure with Sentinel-1 data. Landslides, 15(1), pp.123-133.
Polcari, M., et al. 2017. Using multi-band InSAR data for detecting local deformation phenomena induced by the 2016–2017 Central Italy seismic sequence
Remote Sensing of Environment, 201, pp.234-242.
Usos do Radar
Detecção de movimentos na superfície
Cabral-Cano, E., Dixon, T.H., Miralles-Wilhelm, F., Díaz-Molina, O., Sánchez-Zamora, O. and Carande, R.E., 2008. Space geodetic
imaging of rapid ground subsidence in Mexico City. Geological Society of America Bulletin, 120(11-12), pp.1556-1566.
Taxa de subidência na Cidade do México
Usos do Radar
●
Características geométricas e físicas dos
objetos
– Estruturas de folhas e galhos
– Altura e biomassa de florestas
Fernandez-Ordonez, Y., Soria-Ruiz, J. and Leblon, B., 2009. Forest inventory using optica
and radar remote sensing. In Advances in Geoscience and Remote Sensing. InTech.
Usos do Radar
●
Características geométricas e físicas dos
objetos
https://www.nasa.gov/topics/earth/features/forest20120217.html
Sentinel 2 – Resolução Espacial
https://landsat.gsfc.nasa.gov/sentinel-2a-launches-our-compliments-our-complements/
Comparação Sentinel-2 e Landsat
https://twitter.com/usgslandsat/status/773939936755982336
Comparação Sentinel-2,
Landsat e MODIS
https://scihub.copernicus.eu/
Copernicus Open Access Hub
Selecionar área e interesse
Arrastar
Desenhar
Outros conteúdos úteis
Conteúdo
•Fontes de imagens de satélite
•Manipulação e visualização de imagens
•Índices espectrais
•Classificação espectral
Atividade
●
Novo projeto
●
Criar um novo script de
programação
●
Abrir o script aula6.R
●
Configurar o diretório de trabalho
●
Exemplo de código:
setwd("D:/R_CTA/aula6")
●
Confirmando o diretório de trabalho
getwd()
●
É sempre recomendável verificar
atualizações nos pacotes instalados antes
de começar a trabalhar
Comando:
update.packages(ask=FALSE)
Interpretação de
Imagens de Satélite
Estes, J.E., Hajic, E.J. and Tinney, L.R., 1983. Fundamentals of image analysis: Analysis of visible
and thermal infrared data. Manual of remote sensing, 1, pp.987-1124.
Elementos Básicos Primário
Secundário
Terciário
Superior
Tom/Cor
Tamanho Forma Textura
Padrão Elevação Sombra
Local Associação
Arranjo espacial
dos tons/cores
Grau de
complexidade
Importar bandas Landsat 8 de 2018
## ultra azul
b1 <- raster('landsat_2018_abc/LC08_L1TP_219076_20180830_20180911_01_T1_sr_band1.tif')
## azul
b2 <- raster('landsat_2018_abc/LC08_L1TP_219076_20180830_20180911_01_T1_sr_band2.tif')
## verde
b3 <- raster('landsat_2018_abc/LC08_L1TP_219076_20180830_20180911_01_T1_sr_band3.tif')
## vermelho
b4 <- raster('landsat_2018_abc/LC08_L1TP_219076_20180830_20180911_01_T1_sr_band4.tif')
## infravermelho proximo
b5 <- raster('landsat_2018_abc/LC08_L1TP_219076_20180830_20180911_01_T1_sr_band5.tif')
## infravermelho de ondas curtas 1
b6 <- raster('landsat_2018_abc/LC08_L1TP_219076_20180830_20180911_01_T1_sr_band6.tif')
## infravermelho de ondas curtas 2
b7 <- raster('landsat_2018_abc/LC08_L1TP_219076_20180830_20180911_01_T1_sr_band7.tif')
Visualizar o infravermelho próximo
plot(b5, col = gray(0:100 / 100))
Criando um RasterStack
landsat_2018_abc <- stack(b1,b2,b3,b4,b5,b6,b7)
landsat_2018_abc
Sistema Aditivo
RGB
Aplicado para sistemas
que trabalham com
emissão de luz
RGB no Sensoriamento RemotoVermelhoVerdeAzul
Combinação RGB
Campus da UFABC SBC
https://www.esri.com/arcgis-blog/products/product/imagery/band-combinations-for-landsat-8/
Combinações para visualização
Finalidade R G B
Cor natural vermelho verde azul
Vegetação
infravermelho
próximo
vermelho verde
Urbano
infravermelho de
ondas curtas 2
infravermelho de
ondas curtas 1
infravermelho
próximo
Agricultura
infravermelho de
ondas curtas 1
infravermelho
próximo
vermelho
Ajuste linear de histograma
Visualização RGB
●
Cor natural
plotRGB(landsat_2018_abc, r=4, g=3, b=2, axes=TRUE, stretch="lin")
Ajuste linear
do histograma
Bandas
1 - Ultra azul (costas/aerosol)
2 - Azul
3 – Verde
4 – Vermelho
5 – Infravermelho Próximo (NIR)
6 – Infravermelho de Ondas Curtas (SWIR1)
7 – Infravermelho de Ondas Curtas (SWIR2)
8 - Pancromático
9 - Cirrus
10 – Termal (TIRS) 1
11 – Termal (TIRS) 2
Bandas
visualizadas
https://landsat.usgs.gov/what-are-band-designations-landsat-satellites
Visualização RGB
●
Cor natural
plotRGB(landsat_2018_abc, r=4, g=3, b=2, axes=TRUE, stretch="lin")
Ajuste linear
do histograma
Bandas
visualizadas
https://www.esri.com/arcgis-blog/products/product/imagery/band-combinations-for-landsat-8/
Exercício 1: visualizar as imagens nas combinações
para vegetação, urbano e agricultura
Finalidade R G B
Cor natural vermelho verde azul
Vegetação
infravermelho
próximo
vermelho verde
Urbano
infravermelho de
ondas curtas 2
infravermelho de
ondas curtas 1
infravermelho
próximo
Agricultura
infravermelho de
ondas curtas 1
infravermelho
próximo
vermelho
Exercício 2: Importar as imagens Landsat 5 de 1986 e
visualizar em RGB de cor natural
https://landsat.usgs.gov/what-are-band-designations-landsat-satellites
Bandas Comprimento de
Onda (μm)
Resolução
(m)
1 – Azul 0.45-0.52 30
2 – Verde 0.52-0.60 30
3 - Vermelho 0.63-0.69 30
4 – Infravermelho
Próximo (NIR) 0.76-0.90 30
5  - Infravermelho de
ondas curtas (SWIR) 1 1.55-1.75 30
6 - Termal 10.40-12.50 120* (30)
7 - Infravermelho de
ondas curtas (SWIR) 2 2.08-2.35 30
Importar e visualizar a área de interesse
mun_abc <- read_sf("mun_abc.shp")
st_crs(mun_abc)
crs(landsat_2018_abc)
wgs84utm <-as.character(crs(landsat_2018_abc))
mun_abc_wgs84 <- st_transform(mun_abc, wgs84utm)
st_crs(mun_abc_wgs84)
Importar e visualizar a área de interesse
plotRGB(landsat_2018_abc, r=4, g=3, b=2, axes=TRUE, stretch="lin")
plot(st_geometry(mun_abc_wgs84), add=TRUE, border="yellow")
Zoom para a área de interesse
plotRGB(landsat_2018_abc, r=4, g=3, b=2, axes=TRUE,
stretch="lin", ext=extent(mun_abc_wgs84))
Recortar a extensão para a área de interesse
landsat_2018_abc_crop <- crop(landsat_2018_abc, mun_abc_wgs84)
plotRGB(landsat_2018_abc_crop, r=4, g=3, b=2, stretch="lin")
Mascarar pixels fora da área de interesse
landsat_2018_abc_mask <- mask(landsat_2018_abc_crop, mun_abc_wgs84)
object.size(landsat_2018_abc_crop)
object.size(landsat_2018_abc_mask)
writeRaster(landsat_2018_abc_mask, "landsat_2018_abc_mask.tif")
landsat_2018_abc_mask2 <- stack("landsat_2018_abc_mask.tif")
object.size(landsat_2018_abc_mask2)
rm(landsat_2018_abc_mask)
Boa prática de remover arquivos intermediários da memória
RasterBrick
RasterStack
Visualizar área mascarada
plotRGB(landsat_2018_abc_mask2, r=4, g=3, b=2, stretch="lin")
Importar e mascarar a banda
pancromática (15m)
b8 <- raster('landsat_2018_abc/LC08_L1TP_219076_20180830_20180911_01_T1_B8.TIF')
b8_crop <- crop(b8, mun_abc_wgs84)
b8_mask <- mask(b8_crop, mun_abc_wgs84)
writeRaster(b8_mask, "b8_mask.tif")
b8_mask2 <- raster("b8_mask.tif")
rm(b8_mask) # boa pratica de apagar arquivos temporario muito grandes
plot(b8_mask2, col=gray(0:100 / 100))
Importar e mascarar a banda
pancromática (15m)
install.packages("RStoolbox")
library(RStoolbox)
ggR(b8_mask2, stretch="lin")
Exercício 3
Recortar e mascarar a imagem de 1986,
e gravar a visualização da imagem em RGB em
cor natural
Conteúdo
•Fontes de imagens de satélite
•Manipulação e visualização de imagens
•Índices espectrais e transformações
•Classificação espectral
Índices Espectrais
●
Combinações de bandas para aplicações
específicas
●
NDVI - Normalised Difference Vegetation Index
Rouse, J.W. Jr., R.H. Haas, D.W. Deering, J.A. Schell, and J.C. Harlan,1974. Monitoring the Vernal
Advancement and Retrogradation (GreenWave Effect) of Natural Vegetation, NASA/GSFC Type III, Greenbelt,
MD., 371p.
(Infravermelho próximo – Vermelho)
(Infravermelho próximo + Vermelho)
install.packages("RStoolbox")
library(RStoolbox)
ndvi <- spectralIndices(landsat_2018_abc_mask2, red=4, nir=5, indices="NDVI")
dev.new()
plot(ndvi)
Bandas
NDVI - Normalised Difference Vegetation Index
Índice
indices <- spectralIndices(landsat_2018_abc_mask2, green = 3, red = 4,
nir = 5, swir2 = 6, swir3=7, scaleFactor = 0.0001)
plot(indices)
Difference Vegetation Index Normalised Difference Water Index 2
Diferença Interna da Vegetação
Richardson, A.J., and C.L. Wiegand, 1977. Distinguishing Vegetation From Soil Background Information, Photogramnetric
Engineeringand Remote Sensing, 43(12):1541-1552
Gao, B. C. (1996). NDWI—A normalized difference water index for remote sensing of vegetation liquid water from space.
Remote sensing of environment, 58(3), 257-266.
plot(indices,c("DVI", "NDWI2","MNDWI","NBRI"))
Modified Normalised Difference Water Index Normalised Burn Ratio Index
Xu, H. (2006). Modification of normalised difference water index (NDWI) to enhance open water features in remotely
sensed imagery. International journal of remote sensing, 27(14), 3025-3033.
Lopez-Garcia, M. & Caselles, V. (1991). Mapping burns and natural reforestation using
853 Thematic Mapper data. Geocarto International, 6, 31-37
Mapeamento de extensão e
profundidade do espelho d’água Monitoramento de queimadas
Análise de Componentes Principais
●
Resume a informação de várias bandas
landsat_2018_pca <- rasterPCA(landsat_2018_abc_mask2)
screeplot(landsat_2018_pca$model)
Análise de Componentes Principais
summary(landsat_2018_pca$model)
plotRGB(landsat_2018_pca$map, r=1, g=2, b=3, stretch="lin")
Tasseled Cap
●
Resume a informação de 6 bandas em 3
indicadores de vegetação:
– Brilho
– Grau de verde (vegetação fotossinteticamente ativa)
– Grau de amarelo (umidade do solo + matéria seca)
https://slideplayer.com/slide/9808448/
Tasseled Cap
landsat_2018_2_7 <- subset(landsat_2018_abc_mask2, 2:7)
landsat_2018_tcap <- tasseledCap(landsat_2018_2_7, sat="Landsat8OLI")
plot(landsat_2018_tcap, col="gray"(0:100 / 100))
Tasseled Cap
plotRGB(landsat_2018_tcap, r=1, g=2, b=3, stretch="lin")
Comparação dos modos de
visualização RGB
Método de
visualização
RGB
Informação
Interpretação
física
Comparação
temporal
Bandas
separadas
3 bandas Direta Melhor
Análise de
componentes
principais
Máxima
(todas as
bandas)
Não permite Pior
Tasseled Cap
Alta
(6 bandas)
Indireta Boa
Vasconcelos, V. V., Hadad, R. M., & Junior, P. P. M. (2014). Mapeamento e análise da dinâmica de ocupação na
bacia de Entre-Ribeiros–MG, nos anos de 1975, 1989 e 2008. Revista Equador, 2(2), 131-152.
Análise de Textura com Filtros Focais
MADDEN, M. 2009. Manual of Geographic Information Systems, American Society for Photogrammetry, Bethesda, Maryland, USA 
Também chamados de: Moving Window, Sieve
Janela circular de 500 metros
Não rodar! Demora muito!
janela = focalWeight(b8_mask2, 500, type = "circle")
textura <- focal(b8_mask2, w=janela, fun = var)
plot(textura)
Função de variância
dentro da janela
Filtro Focal
Janela circular de 50 metros
Pan-sharpening
http://www.geosage.com/highview/imagefusion.html
Banda pancromática
de alta resolução
Bandas espectrais de
baixa resolução
Pan-sharpening
pan2018 <- panSharpen(img = landsat_2018_abc_mask2,
pan = b8_mask2, method = "ihs", r=4, g=3, b=2)
plotRGB(pan2018, r=3, g=2, b=1, stretch="lin")
●
Métodos:

3 bandas
- IHS: melhor visualização
- brovey: alternativa ao IHS

Todas a bandas
- pca: pior visualização
zoom = drawExtent()
zoom
par(mfrow=c(1,2))
plotRGB(landsat_2018_abc_mask2, r=4, g=3, b=2, stretch="lin", ext = zoom)
plotRGB(pan2018, r=3, g=2, b=1, stretch="lin", ext = zoom)
par(mfrow=c(1,1))
Original Pan-sharpening
Correção de Iluminação Topográfica
Imagem Original Modelo de Elevação Digital
Imagem com correção de
iluminação topográfica
Shepherd, J. D., & Dymond, J. R. (2003). Correcting
satellite imagery for the variance of reflectance and
illumination with topography. International Journal of
Remote Sensing, 24(17), 3503-3514.
Correção de iluminação topográfica
srtm_abc <- raster("srtm_abc.tif")
crs(srtm_abc)
crs(landsat_2018_abc_mask2)
●
Importando e configurando o modelo de elevação digital
srtm_abc_utm <- projectRaster(srtm_abc, crs = crs(landsat_2018_abc_mask2))
srtm_abc_resampled <- resample(srtm_abc_utm, landsat_2018_abc_mask2)
plot(srtm_abc_resampled)
Correção de iluminação topográfica
meta_2018 <- readMeta('landsat_2018_abc/LC08_L1TP_219076_20180830_20180911_01_T1_MTL.txt')
summary(meta_2018)
Scene: LC82190762018242LGN00
Satellite: LANDSAT8
Sensor: OLI_TIRS
Date: 2018-08-30
Path/Row: 219/76
Projection: +proj=utm +zone=23 +units=m +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
Data:
FILES QUANTITY CATEGORY
B1_dn LC08_L1TP_219076_20180830_20180911_01_T1_B1.TIF dn image
B2_dn LC08_L1TP_219076_20180830_20180911_01_T1_B2.TIF dn image
B3_dn LC08_L1TP_219076_20180830_20180911_01_T1_B3.TIF dn image
B4_dn LC08_L1TP_219076_20180830_20180911_01_T1_B4.TIF dn image
B5_dn LC08_L1TP_219076_20180830_20180911_01_T1_B5.TIF dn image
B6_dn LC08_L1TP_219076_20180830_20180911_01_T1_B6.TIF dn image
B7_dn LC08_L1TP_219076_20180830_20180911_01_T1_B7.TIF dn image
B9_dn LC08_L1TP_219076_20180830_20180911_01_T1_B9.TIF dn image
B10_dn LC08_L1TP_219076_20180830_20180911_01_T1_B10.TIF dn image
B11_dn LC08_L1TP_219076_20180830_20180911_01_T1_B11.TIF dn image
B8_dn LC08_L1TP_219076_20180830_20180911_01_T1_B8.TIF dn pan
QA_dn LC08_L1TP_219076_20180830_20180911_01_T1_BQA.TIF dn qa
Available calibration parameters (gain and offset):
dn -> radiance (toa)
dn -> reflectance (toa)
dn -> brightness temperature (toa)
Correção de iluminação topográfica
landsat_2018_abc_topcor <- topCor(landsat_2018_abc_mask2,
dem = srtm_abc_resampled, metaData = meta_2018, method="C")
plotRGB(landsat_2018_abc_topcor, r=3, g=2, b=1, stretch="lin")
Método C costuma
apresentar os melhores
resultados na literatura
Riano et al. (2003) Assessment of different topographic
correction in Landsat-TM data for mapping vegetation
types. IEEE Transactions on Geoscience and Remote
Sensing.
zoom2 <- drawExtent()
Original
Correção de iluminação
topográfica
Histogram Matching
https://blog.mapbox.com/color-balancing-imagery-with-histogram-matching-be1b38c28509
Histogram Matching para Mosaico
https://trac.osgeo.org/ossim/wiki/histogram_operations
Mosaico sem Histogram Matching Mosaico com Histogram Matching
●
Abrir as bandas da baixada santista de 2018
## ultra azul
d1 <- raster('landsat_2018_baixada/LC08_L1TP_219077_20180510_20180517_01_T1_sr_band1.tif')
## azul
d2 <- raster('landsat_2018_baixada/LC08_L1TP_219077_20180510_20180517_01_T1_sr_band2.tif')
## verde
d3 <- raster('landsat_2018_baixada/LC08_L1TP_219077_20180510_20180517_01_T1_sr_band3.tif')
## vermelho
d4 <- raster('landsat_2018_baixada/LC08_L1TP_219077_20180510_20180517_01_T1_sr_band4.tif')
## infravermelho proximo
d5 <- raster('landsat_2018_baixada/LC08_L1TP_219077_20180510_20180517_01_T1_sr_band5.tif')
## infravermelho de ondas curtas 1
d6 <- raster('landsat_2018_baixada/LC08_L1TP_219077_20180510_20180517_01_T1_sr_band6.tif')
## infravermelho de ondas curtas 2
d7 <- raster('landsat_2018_baixada/LC08_L1TP_219077_20180510_20180517_01_T1_sr_band7.tif')
#ajunta as camadas em um arquivo
landsat_2018_baixada <- stack(d1,d2,d3,d4,d5,d6,d7)
plotRGB(landsat_2018_baixada, r=3, g=2, b=1, axes=TRUE, stretch="lin")
plotRGB(landsat_2018_abc, r=3, g=2, b=1, stretch="lin", add=TRUE)
Sobreposição
landsat_2018_baixada_hm <-histMatch(landsat_2018_baixada, landsat_2018_abc)
par(mfrow=c(1,2))
plotRGB(landsat_2018_baixada, r=3, g=2, b=1, stretch="lin")
plotRGB(landsat_2018_baixada_hm, r=3, g=2, b=1, stretch="lin")
par(mfrow=c(1,1))
Não rodar! Demora muito!
Não rodar! Demora muito!
landsat_2018_merge <- merge(landsat_2018_baixada, landsat_2018_abc)
plotRGB(landsat_2018_merge, r=3, g=2, b=1, stretch="lin")
A 2ª imagem
sobrepõe a 1ª
Exercício 4
A – Importar, recortar e mascarar a imagem de 1985
da baixada santista para o ABC
B - Fazer ajuste de histograma e mosaicagem das
duas imagens de satélite de 1985 e 1986
C - Gerar um índice NDVI para a imagem mosaicada
de 1985/6
D - Fazer a subtração entre o NDVI de 1985/6 e 2018
A – Importar, recortar e mascarar a imagem de
1985 da baixada santista para o ABC
# Abrir bandas landsat
## azul
e1 <- raster('landsat_1985_baixada/LT05_L1TP_219077_19850616_20170219_01_T1_sr_band1.tif')
## verde
e2 <- raster('landsat_1985_baixada/LT05_L1TP_219077_19850616_20170219_01_T1_sr_band2.tif')
## vermelho
e3 <- raster('landsat_1985_baixada/LT05_L1TP_219077_19850616_20170219_01_T1_sr_band3.tif')
## infravermelho proximo
e4 <- raster('landsat_1985_baixada/LT05_L1TP_219077_19850616_20170219_01_T1_sr_band4.tif')
## infravermelho de ondas curtas 1
e5 <- raster('landsat_1985_baixada/LT05_L1TP_219077_19850616_20170219_01_T1_sr_band5.tif')
## infravermelho de ondas curtas 2
e7 <- raster('landsat_1985_baixada/LT05_L1TP_219077_19850616_20170219_01_T1_sr_band7.tif')
# ajunta as camadas em um arquivo
landsat_1985_baixada <- stack(e1,e2,e3,e4,e5,e7)
A – Importar, recortar e mascarar a imagem de
1985 da baixada santista para o ABC
plotRGB(landsat_1985_baixada, r=3, g=2, b=1, axes=TRUE, stretch="lin")
A – Importar, recortar e mascarar a imagem de
1985 da baixada santista para o ABC
landsat_1985_baixada_crop <- crop(landsat_1985_baixada, mun_abc_wgs84)
landsat_1985_baixada_mask <- mask(landsat_1985_baixada_crop, mun_abc_wgs84)
writeRaster(landsat_1985_baixada_mask, "landsat_1986_baixada_mask.tif", overwrite=TRUE)
landsat_1985_baixada_mask2 <- stack("landsat_1986_baixada_mask.tif")
rm(landsat_1985_baixada_mask)
plotRGB(landsat_1985_baixada_mask2, r=3, g=2, b=1, stretch="lin")
Exercício 4
A – Importar, recortar e mascarar a imagem de 1985
da baixada santista para o ABC (já feito)
B - Fazer ajuste de histograma e mosaicagem das
duas imagens de satélite de 1985 e 1986
C - Gerar um índice NDVI para a imagem mosaicada
de 1985/6
D - Fazer a subtração entre o NDVI de 1985/6 e 2018
Conteúdo
•Fontes de imagens de satélite
•Manipulação e visualização de imagens
•Índices espectrais e transformações
•Classificação espectral
Assinatura Espectral
https://grindgis.com/remote-sensing/vegetation-spectral-signature-cheat-sheet
Classificação
https://towardsdatascience.com/unsupervised-learning-with-python-173c51dc7f03
Não supervisionada Supervisionada
Classificação não supervisionada
Procura similaridade entre os pixels
Wegmann, Martin, Benjamin Leutner, and Stefan Dech, eds. Remote sensing and GIS for
ecologists: using open source software. Pelagic Publishing Ltd, 2016.
Classificação não supervisionada
Verma, Vandana (2014). Digital Image Processing. Axis Institute of Technology and Management.
Classificação não supervisionada
Verma, Vandana (2014). Digital Image Processing. Axis Institute of Technology and Management.
Classificação não supervisionada
Verma, Vandana (2014). Digital Image Processing. Axis Institute of Technology and Management.
Classificação não supervisionada
landsat_2018_abc_cluster <-
unsuperClass(landsat_2018_abc_mask2, nClasses=3, norm=TRUE)
plot(landsat_2018_abc_cluster$map, col=rainbow(3))
Normaliza os valores
das bandas para
cada uma ter a
mesma importancia
Classificação supervisionada
Wegmann, Martin, Benjamin Leutner, and Stefan Dech, eds. Remote sensing and GIS for
ecologists: using open source software. Pelagic Publishing Ltd, 2016.
Classificação supervisionada
Verma, Vandana (2014). Digital Image Processing. Axis Institute of Technology and Management.
Classificação supervisionada
Verma, Vandana (2014). Digital Image Processing. Axis Institute of Technology and Management.
Classificação supervisionada
●
Receita de bolo padrão
– Visível
– Infravermelho
●
Receita para exploração
– Visível
– Infravermelho
– Termal
– Pancromática
– Imagens de estações do ano diferentes
– Radar
– Luz noturna
– Índices espectrais
– Índices de textura
– Índices morfométricos (altura, declividade, curvatura,…)
– Rasters climáticos (temperatura, pluviosidade, …)
– Rasters socioeconômicos
Big
Data
Classificação supervisionada
●
Importar os polígonos classificados
landsat_2018_treino <- shapefile("landsat_2018_treino.shp")
plotRGB(landsat_2018_abc_mask2, r=3, g=2, b=1, stretch="lin")
paleta<-c("red","blue","green")
plot(landsat_2018_treino, col=paleta[landsat_2018_treino$classe],
add=TRUE)
Formato sp,
e não sf
Assinatura espectral
●
Transformar o shapefile em raster
landsat_2018_rasterize <- rasterize(landsat_2018_treino,
landsat_2018_abc_mask2, field = "classe")
plot(landsat_2018_rasterize, col=c("red","blue","green"))
Assinatura espectral
●
Estatística zonal da reflectância média das
bandas em cada classe de uso do solo
landsat_2018_zonal <- zonal(landsat_2018_abc_mask2,
landsat_2018_rasterize, fun="mean", na.rm=TRUE)
View(landsat_2018_zonal)
Fonte das informações
Classes sumarizadas Dado
sumarizado:
média
Não usar
pixels de
valor nulo
Assinatura espectral
●
Inversão da tabela com a estatística zonal
assinatura<-t(landsat_2018_zonal)
View(assinatura)
Assinatura espectral
●
Gráfico com a assinatura espectral
plot(0, ylim=c(0,2500), xlim = c(1,7), type='n', xlab="Bandas", ylab = "Reflectancia")
lines(assinatura[,1], col="red", lwd=3)
lines(assinatura[,2], col="blue", lwd=3)
lines(assinatura[,3], col="green", lwd=3)
legend("topleft", legend = c("Urbano","Agua","Vegetacao"), col=paleta, lty=1, lwd=3)
“plot” começa criando um gráfico vazio (type=”n”)
Limites dos eixos Y e X Título dos eixos Y e X
Insere linhas no gráfico
coluna na
tabela
assinatura
cor largura
Local
no
gráfico
Insere a legenda
Texto da legenda
cor largura
Tipo
de linha
1 = contínua
Classificação supervisionada
●
Importando polígonos de validação
val <- shapefile("landsat_2018_validation.shp")
plotRGB(landsat_2018_abc_mask2, r=3, g=2, b=1, stretch="lin")
plot(val, col=paleta[val$classe], add=TRUE)
Classificação supervisionada
install.packages("randomForest")
library(randomForest)
landsat_2018_supervisionado <- superClass(landsat_2018_abc_mask2, model="rf",
trainData = landsat_2018_treino, valData = val, responseCol = "descricao")
Imagem a ser
classificada
Modelo
Random
Forest
Polígonos de treino Polígonos de
validacação
Atributos com
as classes
Classificação supervisionada
landsat_2018_supervisionado
superClass results
************ Validation **************
$validation
Confusion Matrix and Statistics
Reference
Prediction agua urbano vegetacao
agua 1006 0 0
urbano 0 1006 0
vegetacao 0 2 1004
Overall Statistics
Accuracy : 0.9993
95% CI : (0.9976, 0.9999)
No Information Rate : 0.334
P-Value [Acc > NIR] : < 2.2e-16
Kappa : 0.999
Classificação supervisionada
landsat_2018_supervisionado
*************** Map ******************
$map
class : RasterLayer
dimensions : 1362, 1271, 1731102 (nrow, ncol, ncell)
resolution : 30, 30 (x, y)
extent : 331605, 369735, -2651625, -2610765 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=utm +zone=23 +datum=WGS84 +units=m +no_defs +ellps=WGS84
+towgs84=0,0,0
data source : in memory
names : descricao
values : 1, 3 (min, max)
attributes :
ID value
1 agua
2 urbano
3 vegetacao
Classificação supervisionada
paleta2<-c("blue","red","green")
plot(landsat_2018_supervisionado$map, col=paleta2)
Filtro focal de maioria
https://gisgeography.com/map-algebra-global-zonal-focal-local/
Cada pixel recebe o valor mais frequente entre os seus 8 vizinhos
Filtro focal de maioria
Original Após filtro de maioria
https://www.slideshare.net/polylsgiedx/remote-sensing-lec-11
Filtro focal de maioria
landsat_2018_limpo <- focal(landsat_2018_supervisionado$map,
matrix(1,3,3), fun = modal)
Imagem a ser limpa
Janela de
3X3 pixels
Função de
moda
(maioria)
Filtro focal de maioria
plot(landsat_2018_limpo, col=paleta2)
Original Após filtro de maioria
Exercício 5
●
Faça uma classificação supervisionada
sobre a imagem mosaicada para o ABC
paulista de 1985-6, incluindo a validação.
Grave os resultados da validação e o
mapa com o resultado da classificação.
Obrigado!
Ângela Terumi Fushita
Vitor Vieira Vasconcelos

Sensoriamento Remoto em R

  • 1.
    Sensoriamento Remoto em R ÂngelaTerumi Fushita Vitor Vieira Vasconcelos Introdução ao uso de dados espaciais para estudos ambientais Programa de Pós-Graduação em Ciência e Tecnologia Ambiental Universidade Federal do ABC Março, 2019 Santo André - SP
  • 2.
    Objetivo Adquirir os conhecimentose habilidades básicas relacionados a sensoriamento remoto no ambiente R
  • 3.
    Conteúdo •Fontes de imagensde satélite •Manipulação e visualização de imagens •Índices espectrais e transformações •Classificação espectral
  • 4.
    Materiais de auladisponíveis em: Baixar os dados em: D:/R_CTA/aula6/ https://yadi.sk/d/zy-M4wQdLs4RhQ
  • 5.
    Livro de Referência Wegmann,Martin, Benjamin Leutner, and Stefan Dech, eds. Remote sensing and GIS for ecologists: using open source software. Pelagic Publishing Ltd, 2016. ● PDF: https://yadi.sk/d/Omaep6aBocRdwg ● Site de apoio: http://book.ecosens.org/ ● Conteúdo de referência: – Vetorização (QGis) – Álgebra de mapas (R) – Sensoriamento remoto (R) – Modelagem de distribuição de espécies (R)
  • 6.
  • 7.
    Conteúdo •Fontes de imagensde satélite •Manipulação e visualização de imagens •Índices espectrais e transformações •Classificação espectral
  • 8.
  • 9.
    Thematic Mapper (TM) https://landsat.usgs.gov/what-are-band-designations-landsat-satellites BandasComprimento de Onda (μm) Resolução (m) 1 – Azul 0.45-0.52 30 2 – Verde 0.52-0.60 30 3 - Vermelho 0.63-0.69 30 4 – Infravermelho Próximo (NIR) 0.76-0.90 30 5  - Infravermelho de ondas curtas (SWIR) 1 1.55-1.75 30 6 - Termal 10.40-12.50 120* (30) 7 - Infravermelho de ondas curtas (SWIR) 2 2.08-2.35 30 Landsat 5Landsat 5 Resolução Radiométrica – 8 bits
  • 10.
    Landsat 8Landsat 8 https://landsat.usgs.gov/what-are-band-designations-landsat-satellites BandasComprimento de Onda (μm) Resolução (m) 1 - Ultra azul (costas/aerosol) 0.43 - 0.45 30 2 - Azul 0.45 - 0.51 30 3 – Verde 0.53 - 0.59 30 4 – Vermelho 0.64 - 0.67 30 5 – Infravermelho Próximo (NIR) 0.85 - 0.88 30 6 – Infravermelho de Ondas Curtas (SWIR1) 1.57 - 1.65 30 7 – Infravermelho de Ondas Curtas (SWIR2) 2.11 - 2.29 30 8 - Pancromático 0.50 - 0.68 15 9 - Cirrus 1.36 - 1.38 30 10 – Termal (TIRS) 1 10.60 - 11.19 100 * (30) 11 – Termal (TIRS) 2 11.50 - 12.51 100 * (30) Resolução Radiométrica – 12 bitsOperational Land Imager (OLI)
  • 11.
    A série LandsatAsérie Landsat https://landsat.gsfc.nasa.gov/about/technical-information/
  • 12.
    Imagens Landsat Gratuitas:ImagensLandsat Gratuitas: Portal EarthExplorerPortal EarthExplorer https://earthexplorer.usgs.gov/ Registro e Login
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
    EarthEarth ExplorerExplorer Landsat Archive Collection 1Level-2: Imagens ortorretificadas com correção atmosférica (ordem por e-mail) ● Não inclui:  pancromática (15m)  termais (60m) Collection 1 Level-1 Imagens ortorretificadas (download direto) L8 = Landsat 8 (OLI) L4-5 = Landsat 4 e 5 (TM)
  • 19.
  • 20.
    Correção AtmosféricaCorreção Atmosférica AntesDepois http://www.hkcoastalwaterquality.tk/Methodology.html https://www.mapbox.com/blog/atmospheric-correction-comparison/
  • 21.
  • 22.
  • 24.
  • 25.
  • 26.
    SRTM – 30metros Máscara de água
  • 27.
    Satélite MODIS com correçãoatmosférica ● Resolução temporal:  Diário  Composto de 8 dias ● Resolução espacial:  250m (2 bandas)  500m (7 bandas)  1km (3 bandas termais) ● Produtos derivados  Uso e cobertura da terra  Índices de Vegetação Terra Aqua
  • 28.
    Satélite MODIS com correçãoatmosférica ● Combinação Terra + Aqua ● Resolução temporal: diário ● Resolução Espacial  500m (7 bandas)  1km (12 bandas)
  • 29.
    Satélites Sentinel ● Sentinel 1– Radar – A partir de 2014 – GRD – Ground Range Detected – Resoluções: 9m (SM), 20m (IW) e 50m (EW) ● Sentinel 2 – Passivo – A partir de 2015 – S2MSI2A e S2MSI2Ap – Ortorretificação – Correção atmosférica
  • 30.
    Usos do Radar ● Imagensem dias com nuvens http://www.riice.org/how-riice-works/earth-observation-data-collection/
  • 31.
    Usos do Radar Imagensem dias com nuvens Sentinel 1 Landsat 8 Sumatra (Indonésia), 2015 https://blog.conservation.org/2016/03/cloud-piercing-satellites-unleash-torrent-of-new-data-new-insights-into-planet-earth/
  • 32.
    Usos do Radar ● Detecçãode áreas alagadas – Espelho d’água reflete sinal http://www.un-spider.org/book/export/html/7322 Imagemantes dainundação Imagemdurante ainundação
  • 33.
    Usos do Radar Detecçãode movimentos na superfície Terremotos Movimentos de massa Perugia (Itália), 30 out. 2016 Maoxian (China), 2014-2017 Intrieri, E.,et al.., 2018. The Maoxian landslide as seen from space: detecting precursors of failure with Sentinel-1 data. Landslides, 15(1), pp.123-133. Polcari, M., et al. 2017. Using multi-band InSAR data for detecting local deformation phenomena induced by the 2016–2017 Central Italy seismic sequence Remote Sensing of Environment, 201, pp.234-242.
  • 34.
    Usos do Radar Detecçãode movimentos na superfície Cabral-Cano, E., Dixon, T.H., Miralles-Wilhelm, F., Díaz-Molina, O., Sánchez-Zamora, O. and Carande, R.E., 2008. Space geodetic imaging of rapid ground subsidence in Mexico City. Geological Society of America Bulletin, 120(11-12), pp.1556-1566. Taxa de subidência na Cidade do México
  • 35.
    Usos do Radar ● Característicasgeométricas e físicas dos objetos – Estruturas de folhas e galhos – Altura e biomassa de florestas Fernandez-Ordonez, Y., Soria-Ruiz, J. and Leblon, B., 2009. Forest inventory using optica and radar remote sensing. In Advances in Geoscience and Remote Sensing. InTech.
  • 36.
    Usos do Radar ● Característicasgeométricas e físicas dos objetos https://www.nasa.gov/topics/earth/features/forest20120217.html
  • 37.
    Sentinel 2 –Resolução Espacial
  • 38.
  • 39.
  • 40.
  • 42.
    Selecionar área einteresse Arrastar Desenhar
  • 47.
  • 48.
    Conteúdo •Fontes de imagensde satélite •Manipulação e visualização de imagens •Índices espectrais •Classificação espectral
  • 49.
  • 51.
    ● Criar um novoscript de programação ● Abrir o script aula6.R
  • 52.
    ● Configurar o diretóriode trabalho ● Exemplo de código: setwd("D:/R_CTA/aula6") ● Confirmando o diretório de trabalho getwd()
  • 53.
    ● É sempre recomendávelverificar atualizações nos pacotes instalados antes de começar a trabalhar Comando: update.packages(ask=FALSE)
  • 54.
    Interpretação de Imagens deSatélite Estes, J.E., Hajic, E.J. and Tinney, L.R., 1983. Fundamentals of image analysis: Analysis of visible and thermal infrared data. Manual of remote sensing, 1, pp.987-1124. Elementos Básicos Primário Secundário Terciário Superior Tom/Cor Tamanho Forma Textura Padrão Elevação Sombra Local Associação Arranjo espacial dos tons/cores Grau de complexidade
  • 55.
    Importar bandas Landsat8 de 2018 ## ultra azul b1 <- raster('landsat_2018_abc/LC08_L1TP_219076_20180830_20180911_01_T1_sr_band1.tif') ## azul b2 <- raster('landsat_2018_abc/LC08_L1TP_219076_20180830_20180911_01_T1_sr_band2.tif') ## verde b3 <- raster('landsat_2018_abc/LC08_L1TP_219076_20180830_20180911_01_T1_sr_band3.tif') ## vermelho b4 <- raster('landsat_2018_abc/LC08_L1TP_219076_20180830_20180911_01_T1_sr_band4.tif') ## infravermelho proximo b5 <- raster('landsat_2018_abc/LC08_L1TP_219076_20180830_20180911_01_T1_sr_band5.tif') ## infravermelho de ondas curtas 1 b6 <- raster('landsat_2018_abc/LC08_L1TP_219076_20180830_20180911_01_T1_sr_band6.tif') ## infravermelho de ondas curtas 2 b7 <- raster('landsat_2018_abc/LC08_L1TP_219076_20180830_20180911_01_T1_sr_band7.tif')
  • 56.
    Visualizar o infravermelhopróximo plot(b5, col = gray(0:100 / 100))
  • 57.
    Criando um RasterStack landsat_2018_abc<- stack(b1,b2,b3,b4,b5,b6,b7) landsat_2018_abc
  • 58.
    Sistema Aditivo RGB Aplicado parasistemas que trabalham com emissão de luz
  • 59.
    RGB no SensoriamentoRemotoVermelhoVerdeAzul Combinação RGB Campus da UFABC SBC
  • 60.
    https://www.esri.com/arcgis-blog/products/product/imagery/band-combinations-for-landsat-8/ Combinações para visualização FinalidadeR G B Cor natural vermelho verde azul Vegetação infravermelho próximo vermelho verde Urbano infravermelho de ondas curtas 2 infravermelho de ondas curtas 1 infravermelho próximo Agricultura infravermelho de ondas curtas 1 infravermelho próximo vermelho
  • 61.
    Ajuste linear dehistograma
  • 62.
    Visualização RGB ● Cor natural plotRGB(landsat_2018_abc,r=4, g=3, b=2, axes=TRUE, stretch="lin") Ajuste linear do histograma Bandas 1 - Ultra azul (costas/aerosol) 2 - Azul 3 – Verde 4 – Vermelho 5 – Infravermelho Próximo (NIR) 6 – Infravermelho de Ondas Curtas (SWIR1) 7 – Infravermelho de Ondas Curtas (SWIR2) 8 - Pancromático 9 - Cirrus 10 – Termal (TIRS) 1 11 – Termal (TIRS) 2 Bandas visualizadas https://landsat.usgs.gov/what-are-band-designations-landsat-satellites
  • 63.
    Visualização RGB ● Cor natural plotRGB(landsat_2018_abc,r=4, g=3, b=2, axes=TRUE, stretch="lin") Ajuste linear do histograma Bandas visualizadas
  • 64.
    https://www.esri.com/arcgis-blog/products/product/imagery/band-combinations-for-landsat-8/ Exercício 1: visualizaras imagens nas combinações para vegetação, urbano e agricultura Finalidade R G B Cor natural vermelho verde azul Vegetação infravermelho próximo vermelho verde Urbano infravermelho de ondas curtas 2 infravermelho de ondas curtas 1 infravermelho próximo Agricultura infravermelho de ondas curtas 1 infravermelho próximo vermelho
  • 65.
    Exercício 2: Importaras imagens Landsat 5 de 1986 e visualizar em RGB de cor natural https://landsat.usgs.gov/what-are-band-designations-landsat-satellites Bandas Comprimento de Onda (μm) Resolução (m) 1 – Azul 0.45-0.52 30 2 – Verde 0.52-0.60 30 3 - Vermelho 0.63-0.69 30 4 – Infravermelho Próximo (NIR) 0.76-0.90 30 5  - Infravermelho de ondas curtas (SWIR) 1 1.55-1.75 30 6 - Termal 10.40-12.50 120* (30) 7 - Infravermelho de ondas curtas (SWIR) 2 2.08-2.35 30
  • 66.
    Importar e visualizara área de interesse mun_abc <- read_sf("mun_abc.shp") st_crs(mun_abc) crs(landsat_2018_abc) wgs84utm <-as.character(crs(landsat_2018_abc)) mun_abc_wgs84 <- st_transform(mun_abc, wgs84utm) st_crs(mun_abc_wgs84)
  • 67.
    Importar e visualizara área de interesse plotRGB(landsat_2018_abc, r=4, g=3, b=2, axes=TRUE, stretch="lin") plot(st_geometry(mun_abc_wgs84), add=TRUE, border="yellow")
  • 68.
    Zoom para aárea de interesse plotRGB(landsat_2018_abc, r=4, g=3, b=2, axes=TRUE, stretch="lin", ext=extent(mun_abc_wgs84))
  • 69.
    Recortar a extensãopara a área de interesse landsat_2018_abc_crop <- crop(landsat_2018_abc, mun_abc_wgs84) plotRGB(landsat_2018_abc_crop, r=4, g=3, b=2, stretch="lin")
  • 70.
    Mascarar pixels forada área de interesse landsat_2018_abc_mask <- mask(landsat_2018_abc_crop, mun_abc_wgs84) object.size(landsat_2018_abc_crop) object.size(landsat_2018_abc_mask) writeRaster(landsat_2018_abc_mask, "landsat_2018_abc_mask.tif") landsat_2018_abc_mask2 <- stack("landsat_2018_abc_mask.tif") object.size(landsat_2018_abc_mask2) rm(landsat_2018_abc_mask) Boa prática de remover arquivos intermediários da memória RasterBrick RasterStack
  • 71.
  • 72.
    Importar e mascarara banda pancromática (15m) b8 <- raster('landsat_2018_abc/LC08_L1TP_219076_20180830_20180911_01_T1_B8.TIF') b8_crop <- crop(b8, mun_abc_wgs84) b8_mask <- mask(b8_crop, mun_abc_wgs84) writeRaster(b8_mask, "b8_mask.tif") b8_mask2 <- raster("b8_mask.tif") rm(b8_mask) # boa pratica de apagar arquivos temporario muito grandes plot(b8_mask2, col=gray(0:100 / 100))
  • 73.
    Importar e mascarara banda pancromática (15m) install.packages("RStoolbox") library(RStoolbox) ggR(b8_mask2, stretch="lin")
  • 74.
    Exercício 3 Recortar emascarar a imagem de 1986, e gravar a visualização da imagem em RGB em cor natural
  • 75.
    Conteúdo •Fontes de imagensde satélite •Manipulação e visualização de imagens •Índices espectrais e transformações •Classificação espectral
  • 76.
    Índices Espectrais ● Combinações debandas para aplicações específicas ● NDVI - Normalised Difference Vegetation Index Rouse, J.W. Jr., R.H. Haas, D.W. Deering, J.A. Schell, and J.C. Harlan,1974. Monitoring the Vernal Advancement and Retrogradation (GreenWave Effect) of Natural Vegetation, NASA/GSFC Type III, Greenbelt, MD., 371p. (Infravermelho próximo – Vermelho) (Infravermelho próximo + Vermelho)
  • 77.
    install.packages("RStoolbox") library(RStoolbox) ndvi <- spectralIndices(landsat_2018_abc_mask2,red=4, nir=5, indices="NDVI") dev.new() plot(ndvi) Bandas NDVI - Normalised Difference Vegetation Index Índice
  • 78.
    indices <- spectralIndices(landsat_2018_abc_mask2,green = 3, red = 4, nir = 5, swir2 = 6, swir3=7, scaleFactor = 0.0001) plot(indices)
  • 79.
    Difference Vegetation IndexNormalised Difference Water Index 2 Diferença Interna da Vegetação Richardson, A.J., and C.L. Wiegand, 1977. Distinguishing Vegetation From Soil Background Information, Photogramnetric Engineeringand Remote Sensing, 43(12):1541-1552 Gao, B. C. (1996). NDWI—A normalized difference water index for remote sensing of vegetation liquid water from space. Remote sensing of environment, 58(3), 257-266. plot(indices,c("DVI", "NDWI2","MNDWI","NBRI"))
  • 80.
    Modified Normalised DifferenceWater Index Normalised Burn Ratio Index Xu, H. (2006). Modification of normalised difference water index (NDWI) to enhance open water features in remotely sensed imagery. International journal of remote sensing, 27(14), 3025-3033. Lopez-Garcia, M. & Caselles, V. (1991). Mapping burns and natural reforestation using 853 Thematic Mapper data. Geocarto International, 6, 31-37 Mapeamento de extensão e profundidade do espelho d’água Monitoramento de queimadas
  • 81.
    Análise de ComponentesPrincipais ● Resume a informação de várias bandas landsat_2018_pca <- rasterPCA(landsat_2018_abc_mask2) screeplot(landsat_2018_pca$model)
  • 82.
    Análise de ComponentesPrincipais summary(landsat_2018_pca$model) plotRGB(landsat_2018_pca$map, r=1, g=2, b=3, stretch="lin")
  • 83.
    Tasseled Cap ● Resume ainformação de 6 bandas em 3 indicadores de vegetação: – Brilho – Grau de verde (vegetação fotossinteticamente ativa) – Grau de amarelo (umidade do solo + matéria seca) https://slideplayer.com/slide/9808448/
  • 84.
    Tasseled Cap landsat_2018_2_7 <-subset(landsat_2018_abc_mask2, 2:7) landsat_2018_tcap <- tasseledCap(landsat_2018_2_7, sat="Landsat8OLI") plot(landsat_2018_tcap, col="gray"(0:100 / 100))
  • 85.
  • 86.
    Comparação dos modosde visualização RGB Método de visualização RGB Informação Interpretação física Comparação temporal Bandas separadas 3 bandas Direta Melhor Análise de componentes principais Máxima (todas as bandas) Não permite Pior Tasseled Cap Alta (6 bandas) Indireta Boa Vasconcelos, V. V., Hadad, R. M., & Junior, P. P. M. (2014). Mapeamento e análise da dinâmica de ocupação na bacia de Entre-Ribeiros–MG, nos anos de 1975, 1989 e 2008. Revista Equador, 2(2), 131-152.
  • 87.
    Análise de Texturacom Filtros Focais MADDEN, M. 2009. Manual of Geographic Information Systems, American Society for Photogrammetry, Bethesda, Maryland, USA  Também chamados de: Moving Window, Sieve
  • 88.
    Janela circular de500 metros Não rodar! Demora muito! janela = focalWeight(b8_mask2, 500, type = "circle") textura <- focal(b8_mask2, w=janela, fun = var) plot(textura) Função de variância dentro da janela
  • 89.
  • 90.
    Pan-sharpening http://www.geosage.com/highview/imagefusion.html Banda pancromática de altaresolução Bandas espectrais de baixa resolução Pan-sharpening
  • 91.
    pan2018 <- panSharpen(img= landsat_2018_abc_mask2, pan = b8_mask2, method = "ihs", r=4, g=3, b=2) plotRGB(pan2018, r=3, g=2, b=1, stretch="lin") ● Métodos:  3 bandas - IHS: melhor visualização - brovey: alternativa ao IHS  Todas a bandas - pca: pior visualização
  • 92.
  • 93.
    par(mfrow=c(1,2)) plotRGB(landsat_2018_abc_mask2, r=4, g=3,b=2, stretch="lin", ext = zoom) plotRGB(pan2018, r=3, g=2, b=1, stretch="lin", ext = zoom) par(mfrow=c(1,1)) Original Pan-sharpening
  • 94.
    Correção de IluminaçãoTopográfica Imagem Original Modelo de Elevação Digital Imagem com correção de iluminação topográfica Shepherd, J. D., & Dymond, J. R. (2003). Correcting satellite imagery for the variance of reflectance and illumination with topography. International Journal of Remote Sensing, 24(17), 3503-3514.
  • 95.
    Correção de iluminaçãotopográfica srtm_abc <- raster("srtm_abc.tif") crs(srtm_abc) crs(landsat_2018_abc_mask2) ● Importando e configurando o modelo de elevação digital srtm_abc_utm <- projectRaster(srtm_abc, crs = crs(landsat_2018_abc_mask2)) srtm_abc_resampled <- resample(srtm_abc_utm, landsat_2018_abc_mask2) plot(srtm_abc_resampled)
  • 96.
    Correção de iluminaçãotopográfica meta_2018 <- readMeta('landsat_2018_abc/LC08_L1TP_219076_20180830_20180911_01_T1_MTL.txt') summary(meta_2018) Scene: LC82190762018242LGN00 Satellite: LANDSAT8 Sensor: OLI_TIRS Date: 2018-08-30 Path/Row: 219/76 Projection: +proj=utm +zone=23 +units=m +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0 Data: FILES QUANTITY CATEGORY B1_dn LC08_L1TP_219076_20180830_20180911_01_T1_B1.TIF dn image B2_dn LC08_L1TP_219076_20180830_20180911_01_T1_B2.TIF dn image B3_dn LC08_L1TP_219076_20180830_20180911_01_T1_B3.TIF dn image B4_dn LC08_L1TP_219076_20180830_20180911_01_T1_B4.TIF dn image B5_dn LC08_L1TP_219076_20180830_20180911_01_T1_B5.TIF dn image B6_dn LC08_L1TP_219076_20180830_20180911_01_T1_B6.TIF dn image B7_dn LC08_L1TP_219076_20180830_20180911_01_T1_B7.TIF dn image B9_dn LC08_L1TP_219076_20180830_20180911_01_T1_B9.TIF dn image B10_dn LC08_L1TP_219076_20180830_20180911_01_T1_B10.TIF dn image B11_dn LC08_L1TP_219076_20180830_20180911_01_T1_B11.TIF dn image B8_dn LC08_L1TP_219076_20180830_20180911_01_T1_B8.TIF dn pan QA_dn LC08_L1TP_219076_20180830_20180911_01_T1_BQA.TIF dn qa Available calibration parameters (gain and offset): dn -> radiance (toa) dn -> reflectance (toa) dn -> brightness temperature (toa)
  • 97.
    Correção de iluminaçãotopográfica landsat_2018_abc_topcor <- topCor(landsat_2018_abc_mask2, dem = srtm_abc_resampled, metaData = meta_2018, method="C") plotRGB(landsat_2018_abc_topcor, r=3, g=2, b=1, stretch="lin") Método C costuma apresentar os melhores resultados na literatura Riano et al. (2003) Assessment of different topographic correction in Landsat-TM data for mapping vegetation types. IEEE Transactions on Geoscience and Remote Sensing.
  • 98.
  • 99.
  • 100.
  • 101.
    Histogram Matching paraMosaico https://trac.osgeo.org/ossim/wiki/histogram_operations Mosaico sem Histogram Matching Mosaico com Histogram Matching
  • 102.
    ● Abrir as bandasda baixada santista de 2018 ## ultra azul d1 <- raster('landsat_2018_baixada/LC08_L1TP_219077_20180510_20180517_01_T1_sr_band1.tif') ## azul d2 <- raster('landsat_2018_baixada/LC08_L1TP_219077_20180510_20180517_01_T1_sr_band2.tif') ## verde d3 <- raster('landsat_2018_baixada/LC08_L1TP_219077_20180510_20180517_01_T1_sr_band3.tif') ## vermelho d4 <- raster('landsat_2018_baixada/LC08_L1TP_219077_20180510_20180517_01_T1_sr_band4.tif') ## infravermelho proximo d5 <- raster('landsat_2018_baixada/LC08_L1TP_219077_20180510_20180517_01_T1_sr_band5.tif') ## infravermelho de ondas curtas 1 d6 <- raster('landsat_2018_baixada/LC08_L1TP_219077_20180510_20180517_01_T1_sr_band6.tif') ## infravermelho de ondas curtas 2 d7 <- raster('landsat_2018_baixada/LC08_L1TP_219077_20180510_20180517_01_T1_sr_band7.tif') #ajunta as camadas em um arquivo landsat_2018_baixada <- stack(d1,d2,d3,d4,d5,d6,d7) plotRGB(landsat_2018_baixada, r=3, g=2, b=1, axes=TRUE, stretch="lin")
  • 103.
    plotRGB(landsat_2018_abc, r=3, g=2,b=1, stretch="lin", add=TRUE) Sobreposição
  • 104.
    landsat_2018_baixada_hm <-histMatch(landsat_2018_baixada, landsat_2018_abc) par(mfrow=c(1,2)) plotRGB(landsat_2018_baixada,r=3, g=2, b=1, stretch="lin") plotRGB(landsat_2018_baixada_hm, r=3, g=2, b=1, stretch="lin") par(mfrow=c(1,1)) Não rodar! Demora muito!
  • 105.
    Não rodar! Demoramuito! landsat_2018_merge <- merge(landsat_2018_baixada, landsat_2018_abc) plotRGB(landsat_2018_merge, r=3, g=2, b=1, stretch="lin") A 2ª imagem sobrepõe a 1ª
  • 106.
    Exercício 4 A –Importar, recortar e mascarar a imagem de 1985 da baixada santista para o ABC B - Fazer ajuste de histograma e mosaicagem das duas imagens de satélite de 1985 e 1986 C - Gerar um índice NDVI para a imagem mosaicada de 1985/6 D - Fazer a subtração entre o NDVI de 1985/6 e 2018
  • 107.
    A – Importar,recortar e mascarar a imagem de 1985 da baixada santista para o ABC # Abrir bandas landsat ## azul e1 <- raster('landsat_1985_baixada/LT05_L1TP_219077_19850616_20170219_01_T1_sr_band1.tif') ## verde e2 <- raster('landsat_1985_baixada/LT05_L1TP_219077_19850616_20170219_01_T1_sr_band2.tif') ## vermelho e3 <- raster('landsat_1985_baixada/LT05_L1TP_219077_19850616_20170219_01_T1_sr_band3.tif') ## infravermelho proximo e4 <- raster('landsat_1985_baixada/LT05_L1TP_219077_19850616_20170219_01_T1_sr_band4.tif') ## infravermelho de ondas curtas 1 e5 <- raster('landsat_1985_baixada/LT05_L1TP_219077_19850616_20170219_01_T1_sr_band5.tif') ## infravermelho de ondas curtas 2 e7 <- raster('landsat_1985_baixada/LT05_L1TP_219077_19850616_20170219_01_T1_sr_band7.tif') # ajunta as camadas em um arquivo landsat_1985_baixada <- stack(e1,e2,e3,e4,e5,e7)
  • 108.
    A – Importar,recortar e mascarar a imagem de 1985 da baixada santista para o ABC plotRGB(landsat_1985_baixada, r=3, g=2, b=1, axes=TRUE, stretch="lin")
  • 109.
    A – Importar,recortar e mascarar a imagem de 1985 da baixada santista para o ABC landsat_1985_baixada_crop <- crop(landsat_1985_baixada, mun_abc_wgs84) landsat_1985_baixada_mask <- mask(landsat_1985_baixada_crop, mun_abc_wgs84) writeRaster(landsat_1985_baixada_mask, "landsat_1986_baixada_mask.tif", overwrite=TRUE) landsat_1985_baixada_mask2 <- stack("landsat_1986_baixada_mask.tif") rm(landsat_1985_baixada_mask) plotRGB(landsat_1985_baixada_mask2, r=3, g=2, b=1, stretch="lin")
  • 110.
    Exercício 4 A –Importar, recortar e mascarar a imagem de 1985 da baixada santista para o ABC (já feito) B - Fazer ajuste de histograma e mosaicagem das duas imagens de satélite de 1985 e 1986 C - Gerar um índice NDVI para a imagem mosaicada de 1985/6 D - Fazer a subtração entre o NDVI de 1985/6 e 2018
  • 111.
    Conteúdo •Fontes de imagensde satélite •Manipulação e visualização de imagens •Índices espectrais e transformações •Classificação espectral
  • 112.
  • 113.
  • 114.
    Classificação não supervisionada Procurasimilaridade entre os pixels Wegmann, Martin, Benjamin Leutner, and Stefan Dech, eds. Remote sensing and GIS for ecologists: using open source software. Pelagic Publishing Ltd, 2016.
  • 115.
    Classificação não supervisionada Verma,Vandana (2014). Digital Image Processing. Axis Institute of Technology and Management.
  • 116.
    Classificação não supervisionada Verma,Vandana (2014). Digital Image Processing. Axis Institute of Technology and Management.
  • 117.
    Classificação não supervisionada Verma,Vandana (2014). Digital Image Processing. Axis Institute of Technology and Management.
  • 118.
    Classificação não supervisionada landsat_2018_abc_cluster<- unsuperClass(landsat_2018_abc_mask2, nClasses=3, norm=TRUE) plot(landsat_2018_abc_cluster$map, col=rainbow(3)) Normaliza os valores das bandas para cada uma ter a mesma importancia
  • 119.
    Classificação supervisionada Wegmann, Martin,Benjamin Leutner, and Stefan Dech, eds. Remote sensing and GIS for ecologists: using open source software. Pelagic Publishing Ltd, 2016.
  • 120.
    Classificação supervisionada Verma, Vandana(2014). Digital Image Processing. Axis Institute of Technology and Management.
  • 121.
    Classificação supervisionada Verma, Vandana(2014). Digital Image Processing. Axis Institute of Technology and Management.
  • 122.
    Classificação supervisionada ● Receita debolo padrão – Visível – Infravermelho ● Receita para exploração – Visível – Infravermelho – Termal – Pancromática – Imagens de estações do ano diferentes – Radar – Luz noturna – Índices espectrais – Índices de textura – Índices morfométricos (altura, declividade, curvatura,…) – Rasters climáticos (temperatura, pluviosidade, …) – Rasters socioeconômicos Big Data
  • 123.
    Classificação supervisionada ● Importar ospolígonos classificados landsat_2018_treino <- shapefile("landsat_2018_treino.shp") plotRGB(landsat_2018_abc_mask2, r=3, g=2, b=1, stretch="lin") paleta<-c("red","blue","green") plot(landsat_2018_treino, col=paleta[landsat_2018_treino$classe], add=TRUE) Formato sp, e não sf
  • 124.
    Assinatura espectral ● Transformar oshapefile em raster landsat_2018_rasterize <- rasterize(landsat_2018_treino, landsat_2018_abc_mask2, field = "classe") plot(landsat_2018_rasterize, col=c("red","blue","green"))
  • 125.
    Assinatura espectral ● Estatística zonalda reflectância média das bandas em cada classe de uso do solo landsat_2018_zonal <- zonal(landsat_2018_abc_mask2, landsat_2018_rasterize, fun="mean", na.rm=TRUE) View(landsat_2018_zonal) Fonte das informações Classes sumarizadas Dado sumarizado: média Não usar pixels de valor nulo
  • 126.
    Assinatura espectral ● Inversão databela com a estatística zonal assinatura<-t(landsat_2018_zonal) View(assinatura)
  • 127.
    Assinatura espectral ● Gráfico coma assinatura espectral plot(0, ylim=c(0,2500), xlim = c(1,7), type='n', xlab="Bandas", ylab = "Reflectancia") lines(assinatura[,1], col="red", lwd=3) lines(assinatura[,2], col="blue", lwd=3) lines(assinatura[,3], col="green", lwd=3) legend("topleft", legend = c("Urbano","Agua","Vegetacao"), col=paleta, lty=1, lwd=3) “plot” começa criando um gráfico vazio (type=”n”) Limites dos eixos Y e X Título dos eixos Y e X Insere linhas no gráfico coluna na tabela assinatura cor largura Local no gráfico Insere a legenda Texto da legenda cor largura Tipo de linha 1 = contínua
  • 129.
    Classificação supervisionada ● Importando polígonosde validação val <- shapefile("landsat_2018_validation.shp") plotRGB(landsat_2018_abc_mask2, r=3, g=2, b=1, stretch="lin") plot(val, col=paleta[val$classe], add=TRUE)
  • 130.
    Classificação supervisionada install.packages("randomForest") library(randomForest) landsat_2018_supervisionado <-superClass(landsat_2018_abc_mask2, model="rf", trainData = landsat_2018_treino, valData = val, responseCol = "descricao") Imagem a ser classificada Modelo Random Forest Polígonos de treino Polígonos de validacação Atributos com as classes
  • 131.
    Classificação supervisionada landsat_2018_supervisionado superClass results ************Validation ************** $validation Confusion Matrix and Statistics Reference Prediction agua urbano vegetacao agua 1006 0 0 urbano 0 1006 0 vegetacao 0 2 1004 Overall Statistics Accuracy : 0.9993 95% CI : (0.9976, 0.9999) No Information Rate : 0.334 P-Value [Acc > NIR] : < 2.2e-16 Kappa : 0.999
  • 132.
    Classificação supervisionada landsat_2018_supervisionado *************** Map****************** $map class : RasterLayer dimensions : 1362, 1271, 1731102 (nrow, ncol, ncell) resolution : 30, 30 (x, y) extent : 331605, 369735, -2651625, -2610765 (xmin, xmax, ymin, ymax) coord. ref. : +proj=utm +zone=23 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0 data source : in memory names : descricao values : 1, 3 (min, max) attributes : ID value 1 agua 2 urbano 3 vegetacao
  • 133.
  • 134.
    Filtro focal demaioria https://gisgeography.com/map-algebra-global-zonal-focal-local/ Cada pixel recebe o valor mais frequente entre os seus 8 vizinhos
  • 135.
    Filtro focal demaioria Original Após filtro de maioria https://www.slideshare.net/polylsgiedx/remote-sensing-lec-11
  • 136.
    Filtro focal demaioria landsat_2018_limpo <- focal(landsat_2018_supervisionado$map, matrix(1,3,3), fun = modal) Imagem a ser limpa Janela de 3X3 pixels Função de moda (maioria)
  • 137.
    Filtro focal demaioria plot(landsat_2018_limpo, col=paleta2) Original Após filtro de maioria
  • 138.
    Exercício 5 ● Faça umaclassificação supervisionada sobre a imagem mosaicada para o ABC paulista de 1985-6, incluindo a validação. Grave os resultados da validação e o mapa com o resultado da classificação.
  • 139.