Dados Espaciais 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
Junho, 2023
São Bernardo do Campo - SP
Objetivo
Adquirir os conhecimentos e
habilidades básicas para importação
e visualização de dados espaciais no
ambiente R
Conteúdo
•Principais formatos de dados espaciais em R
•Conversão entre formatos de dados espaciais
•Reprojeção de sistemas de coordenadas
•Junção de dados tabulares e espaciais
•Visualização de dados espaciais
•Layout de mapas
•Exportar do R
Principais linguagens para
análise espacial
●
R
– Estatística espacial
●
Python
– Automação interna (QGis, ArcGis)
– Big Data
●
PostGreSQL
– Bancos de dados espaciais em servidores
– Geoportais
Abrir o RStudio
É sempre recomendável verificar
atualizações nos pacotes instalados
antes de começar a trabalhar
Abrir o R Studio
Fontes de Referência
CRAN Task View: Analysis of Spatial Data
https://cran.r-project.org/web/views/Spatial.html
Links para os manuais de cada pacote R
Livros
Mas, Jean-Francois,
Horta, M.B.
Vasconcelos, R. N.
Análise espacial com
R. Feira de Santana:
UEFS Editora, 2019.
●
Operações básicas
em R para análise
espacial
https://bit.ly/2KpSI7C
https://www.researchgate.net/publication/33
2865022_Analise_espacial_com_R
Livros
Pebesma, E., & Bivand, R.
(2023). Spatial data science:
With applications in R. CRC
Press.
https://r-spatial.org/book/
●
Conteúdo de referência
– Dados vetoriais
(formatos sf e stars)
– Estatística espacial
Livros
Lovelace, Robin; Nowosad,
J.; Muenchow, J.
Geocomputation with R.
CRC Press. 2019.
https://geocompr.robinlovelace.net/
●
Conteúdo de
referência:
– Dados vetoriais (sf) e
raster
– Visualização
Tutoriais
https://www.rspatial.org/
Elementos de um mapa
Título
Rosa dos Ventos
Escala Gráfica
Mapa e
coordenadas
Legenda
Legenda
• Sistema de projeção
• Fontes das bases
cartográficas
• Método de
visualização
• Autoria e data
Materiais de aula disponiveis em:
https://app.box.com/s/rlp75p8gvl1v363g1v4m6xbb4rdlz91y
Baixar os dados em:
D:/R_CTA/aula_3/
●
Pasta de nome curto, perto da raiz, sem
caracteres especiais, nem espaços
●
Não criar pasta em “Área de trabalho”,
“Meus documentos”, etc...
Atividade
●
Novo projeto
Dados espaciais em R - 2023 - UFABC - Geoprocessamento
D:/R_CTA
●
Ao criar o projeto, ele já especifica a mesma pasta
como diretório de trabalho
●
Confirmando o diretório de trabalho
getwd()
[1] "D:/R_CTA/aula3"
●
Criar um novo script de
programação
●
Configurar o diretório de trabalho
●
Exemplo de código:
setwd("D:/R_CTA/aula3")
Roteiro
• Abrir a tabela “pocos_abc.csv”
• Dados obtidos no sistema Siagas
http://siagasweb.cprm.gov.br
• O formato CSV é o recomendado para importação
no R
• Recomendação: converter do XLS para o CSV no
LibreOffice
• O LibreOffice é mais recomendado que o Excel para
trabalhar com formatos CSV e DBF
• Na hora de gravar arquivos CSV e DBF no LibreOffice,
configure e anote qual é o sistema de codificação.
- Sistema UTF-8 lida melhor com caracteres
especiais
Abrindo no Bloco de Notas
Abrindo no
LibreOffice
Calc
Abrindo no LibreOffice Calc
Dados espaciais em R - 2023 - UFABC - Geoprocessamento
• File/URL: abra o arquivo pocos_abc.csv
• Delimiter: semicolon
• Locale → configure
•Decimal Mark: , (vírgula)
•Grouping Mark: . (ponto)
• Verifique o formato dos dados de cada coluna:
 Character para “municipio”
 Double para as demais colunas
Código final do comando de importação
Data.Frame
Importado
• Grave a sua base de dados (arquivos de extensão *.RData)
save.image("C:/R_CTA/aula_3/aula3.RData")
• Código
Abrir script de código da aula
Pacotes a serem utilizados
readr Leitura de tabelas
rgdal Conversão de formatos espaciais e projeções
sf Formato espacial sf
dplyr Manipulação de banco de dados (com uniões)
raster Formato espacial raster antigo
terra Formato espacial raster novo
prettymapr Escalas e legendas em método incremental
tmap Mapas em método não-incremental
install.packages( ) Instala
library( ) Carrega na memória
• Grave o script de trabalho (arquivo de extensão *.R)
• Imprimir nosso primeiro mapa
plot(latitude_decimal ~longitude_decimal, data=pocos_abc )
Principais pacotes para
formatos espaciais em R
•sp: classes e métodos para dados espaciais
•sf (Simple Features): atualização do sp nos
padrões Open Geospatial Consortium
(OGC) para dados vetoriais
•stars: dados espaço-temporais
•raster: formato raster antigo
•terra: formato raster novo
CRAN Task View: Analysis of Spatial Data https://cran.r-project.org/web/views/Spatial.html
Além de formatos específicos de cada pacote
Lovelace, R.; Nowosad, J.; Muenchow, J. Geocomputation with R. CRC Press. 2023.
Pacotes para acesso a
bases de dados externas
•rgdal e maptools:
conversão de formatos espaciais
•OpenStreetMap, rosm e osmdata:
OpenStreetMaps
•RgoogleMaps, googleway e ggmap:
Google Maps
•ows4R: geoservicos de portais WebGis
CRAN Task View: Analysis of Spatial Data https://cran.r-project.org/web/views/Spatial.html
Pacote sf
Lovelace, R.; Nowosad, J.;
Muenchow, J. Geocomputation with R.
CRC Press. 2019.
Além de formatos
específicos com
curvas em vez de
linhas (para CAD)
Pacote sf
sfg
Geometria de um objeto
sfg
Geometria de um objeto
sfg
Geometria de um objeto
sfc
Lista de geometrias de
objetos
Simple feature geometry
Simple feature column
sf
data.frame de
atributos e sfc
Simple feature
Projeções em R
Relembrando a segunda aula
Código WKT (Well Known Text)
Projeções
• Site oficial: https://epsg.org/
• Pegar código WKT (ou proj4):
https://epsg.io/
http://spatialreference.org
• Pacote rgdal (proj4)
• Ou copiando de uma outra base projetada
https://epsg.org/
http://spatialreference.org
Procure por sirgas 2000
Escolha o EPSG:4674
Selecione a opção OGC WKT
GEOGCS["SIRGAS 2000",
DATUM["Sistema_de_Referencia_Geocentrico_para_Am
erica_del_Sur_2000",
SPHEROID["GRS 1980",6378137,298.257222101,
AUTHORITY["EPSG","7019"],
TOWGS84[0,0,0,0,0,0,0],
AUTHORITY["EPSG","6674"]],
PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],
UNIT["degree",0.01745329251994328,
AUTHORITY["EPSG","9122"]],
AUTHORITY["EPSG","4674"]]
●
Instalar o pacote sf:
install.packages("sf")
library(sf)
Convertendo tabelas com
coordenadas para Simple Features
st_as_sf(data, coords = c(x, y), crs = “código EPSG” ou “WKT”)
●
Verificar tipo de dado:
class(pocos_abc)
[1] "spec_tbl_df" "tbl_df" "tbl" "data.frame"
●
Extender para SimpleFeature (sf)
sf_pocos_abc <- st_as_sf(pocos_abc, coords =
c("longitude_decimal", "latitude_decimal"), crs = 4674)
class(sf_pocos_abc)
[1] "sf" "tbl_df" "tbl" "data.frame"
●
Na aba “Environment”, clique no objeto sf_pocos_abc
●
Ou digite View(sf_pocos_abc)
●
Visualizando:
plot(st_geometry(sf_pocos_abc))
Apenas geometria,
sem atributos
• Simple feature geometry (sfg): lista de pares de coordenadas (vértices)
• Simple feature column (sfc): lista de linhas
• Simple features (sf): tabela de atributos associados a uma lista de linhas
Linhas
Bivand, Roger. 2014. Applied Spatial Data Analysis with R. Open Source Geospatial
Research and Education Symposium, Aalto University, Finland
Rowlingson, Barry. Geospatial data in R and beyond! Lancaster University, 2012
• Simple feature geometry (sfg): lista de pares de coordenadas em que
o último vértice coincide com o primeiro.
• Simple feature column (sfc): lista de polígonos
• Simple features (sf): tabela de atributos associados a uma lista de
polígonos
Polígonos
Bivand, Roger. 2014. Applied Spatial Data Analysis with R. Open Source Geospatial Research and
Education Symposium, Aalto University, Finland
Rowlingson, Barry. Geospatial data in R and beyond! Lancaster University, 2012
Polígonos multi-parte (ilhas)
Polígonos com buracos (anéis)
Próximos passos
●
Importar um arquivo shapefile com
hidrografia do ABC paulista
1:50.000, vetorizadas das cartas do IBGE
Fonte: http://datageo.ambiente.sp.gov.br
●
Função read_sf, do pacote sf, converte
arquivos para formato sf
padrão: read_sf(“arquivo.extensão”)
hidrografia_abc <- read_sf("hidrografia_abc.shp")
st_crs(hidrografia_abc)
Coordinate Reference System:
User input: SIRGAS 2000 / UTM zone 23S
wkt:
PROJCRS["SIRGAS 2000 / UTM zone 23S",
BASEGEOGCRS["SIRGAS 2000",
DATUM["Sistema de Referencia Geocentrico para las AmericaS
2000",
(...)
ID["EPSG",4674]],
CONVERSION["UTM zone 23S",
METHOD["Transverse Mercator",
ID["EPSG",9807]],
(...)
USAGE[
SCOPE["Engineering survey, topographic mapping."],
AREA["Brazil - between 48°W and 42°W, northern and southern
hemispheres, onshore and offshore."],
BBOX[-33.5,-48,5.13,-42]],
ID["EPSG",31983]]
●
Essa é a projeção Sirgas 2000 UTM 23S
●
Vamos retransformar para Sirgas 2000
●
Função st_transform(arquivo, projeção desejada)
hidrografia_abc_sirgas2000<-st_transform(hidrografia_abc,
st_crs(sf_pocos_abc))
hidrografia_abc_sirgas2000<-st_transform(hidrografia_abc, 4674)
ou
st_crs(hidrografia_abc_sirgas2000)
Coordinate Reference System:
User input: EPSG:4674
wkt:
GEOGCRS["SIRGAS 2000",
DATUM["Sistema de Referencia Geocentrico para las AmericaS 2000",
ELLIPSOID["GRS 1980",6378137,298.257222101,
LENGTHUNIT["metre",1]]],
PRIMEM["Greenwich",0,
ANGLEUNIT["degree",0.0174532925199433]],
CS[ellipsoidal,2],
AXIS["geodetic latitude (Lat)",north,
ORDER[1],
ANGLEUNIT["degree",0.0174532925199433]],
AXIS["geodetic longitude (Lon)",east,
ORDER[2],
ANGLEUNIT["degree",0.0174532925199433]],
USAGE[
SCOPE["Horizontal component of 3D system."],
AREA["Latin America - Central America and South America - onshore and offshore.
Brazil - onshore and offshore."],
BBOX[-59.87,-122.19,32.72,-25.28]],
ID["EPSG",4674]]
plot(st_geometry(hidrografia_abc_sirgas2000))
Importando polígonos
●
Abrir um shapefile com os setores censitários do
Estado de São Paulo (Censo 2010, IBGE)
ftp://geoftp.ibge.gov.br/organizacao_do_territorio/malhas_territoriais/malhas_de_setores_censitari
os__divisoes_intramunicipais/censo_2010/setores_censitarios_shp/sp/sp_setores_censitarios.zip
setores_sp <- read_sf("35SEE250GC_SIR.shp")
View(setores_sp)
Códigos do IBGE para o ABC
CD_GEOCODM NM_MUNICP
3513801 DIADEMA
3529401 MAUÁ
3547809 SANTO ANDRÉ
3548708 SÃO BERNARDO DO CAMPO
3548807 SÃO CAETANO DO SUL
3543303 RIBEIRÃO PIRES
3544103 RIO GRANDE DA SERRA
Recortando o Shapefile
●
Função subset(objeto, condição)
codigo_abc <- c(3513801,3529401,3547809, 3548708, 3548807, 3543303, 3544103)
setores_abc <- subset(setores_sp, setores_sp$CD_GEOCODM %in% codigo_abc)
plot(setores_abc)
●
Verificar projeção
st_crs(setores_abc)
Coordinate Reference System:
User input: EPSG:4674
wkt:
GEOGCRS["SIRGAS 2000",
DATUM["Sistema de Referencia Geocentrico para las AmericaS 2000",
ELLIPSOID["GRS 1980",6378137,298.257222101,
LENGTHUNIT["metre",1]]],
PRIMEM["Greenwich",0,
ANGLEUNIT["degree",0.0174532925199433]],
CS[ellipsoidal,2],
AXIS["geodetic latitude (Lat)",north,
ORDER[1],
ANGLEUNIT["degree",0.0174532925199433]],
AXIS["geodetic longitude (Lon)",east,
ORDER[2],
ANGLEUNIT["degree",0.0174532925199433]],
USAGE[
SCOPE["Horizontal component of 3D system."],
AREA["Latin America - Central America and South America - onshore and offshore. Brazil -
onshore and offshore."],
BBOX[-59.87,-122.19,32.72,-25.28]],
ID["EPSG",4674]]
●
Atribuir projeção
st_crs(setores_abc)<-4674
st_crs(setores_abc)
Coordinate Reference System:
User input: EPSG:4674
wkt:
GEOGCRS["SIRGAS 2000",
DATUM["Sistema de Referencia Geocentrico para las AmericaS 2000",
ELLIPSOID["GRS 1980",6378137,298.257222101,
LENGTHUNIT["metre",1]]],
PRIMEM["Greenwich",0,
ANGLEUNIT["degree",0.0174532925199433]],
CS[ellipsoidal,2],
AXIS["geodetic latitude (Lat)",north,
ORDER[1],
ANGLEUNIT["degree",0.0174532925199433]],
AXIS["geodetic longitude (Lon)",east,
ORDER[2],
ANGLEUNIT["degree",0.0174532925199433]],
USAGE[
SCOPE["Horizontal component of 3D system."],
AREA["Latin America - Central America and South America - onshore and offshore. Brazil - onshore and
offshore."],
BBOX[-59.87,-122.19,32.72,-25.28]],
ID["EPSG",4674]]
Relacionando um shapefile
com uma base de dados
●
Dados do Censo 2010:
ftp://ftp.ibge.gov.br/Censos/Censo_Demografico_2010/Resultados_do_Universo/Agregados_por_Setores_Censitarios/
censo2010 <- read.csv("censo2010.csv",sep = ";", dec = ",")
View(censo2010)
●
Código do setor censitário
●
Setor: Urbano (1-3) e Rural (4-7)
●
Domicílios
●
Pessoas
●
Renda média do(a) chefe de domicílio
●
% de coleta de esgoto
●
% de coleta de lixo
install.packages("dplyr")
library(dplyr)
setores_abc_censo <- left_join(setores_abc, censo2010, by =
c(CD_GEOCODI = "Cod_setor"))
Error: Can't join on 'Cod_setor' x 'CD_GEOCODI' because of
incompatible types (numeric / character)
is.numeric(censo2010$Cod_setor)
is.numeric(setores_abc$CD_GEOCODI)
setores_abc$CD_GEOCODI <- as.numeric (setores_abc$CD_GEOCODI)
setores_abc_censo <- left_join(setores_abc, censo2010, by =
c(CD_GEOCODI = "Cod_setor"))
View(setores_abc_censo)
●
Exportando para shapefile:
st_write(setores_abc_censo,"setores_abc_censo.shp")
●
Exportando para geopackage:
st_write(setores_abc_censo,"setores_abc.gpkg", layer = "censo")
st_write(objeto, “nome do arquivo”)
●
Exportando para KML (Google Earth):
st_write(setores_abc_censo,"setores_abc_censo.kml")
O pacote plotKML possui opções mais avançadas de
exportação de KML, incluindo cores, legendas,
visualização 3D, dados espaço-temporais, fotos e rasters
http://plotkml.r-forge.r-project.org/fig_eberg_two_aesthetics.jpg
plot(setores_abc_censo["Renda"], axes = TRUE,
border = NA, cex.axis=0.5, breaks = "quantile")
Primeiro mapa temático
Camada
Tamanho do
texto na grade de
coordenadas
Grade de
Coordenadas
Variável
Não desenhar
bordas dos
polígonos
Método de
classificação
Comando plot do
pacote sf
breaks = “métodos de classificação”
●
fixed: definidos pelos usuário
●
equal: intervalos iguais
●
pretty: quase intervalos iguais, em números
arredondados
●
quantile: número de objetos iguais por classe
●
sd: desvio padrão em relação à média
●
fisher: quebras naturais
e outros
Exportando mapas
Dados espaciais em R - 2023 - UFABC - Geoprocessamento
Atividade 1
Criar um mapa do percentual de
rede de esgoto com intervalo por
quebras naturais
Submeter código e imagem do mapa
Pacote raster
●
Extensão das classes sp
●
Permite trabalhar com arquivos maiores e
de forma mais eficiente que o sp
●
RasterLayer → uma camada raster
●
RasterBrick → várias camadas em um
arquivo
●
RasterStack → tabela apontando para
diversas camadas raster
Pacote terra
●
Extensão da classe raster
●
Permite trabalhar com arquivos maiores e
de forma mais eficiente
●
Formatos
– SpatRaster: armazena camadas raster (uma
ou mais bandas)
– SpatVector: armazena os dados vetoriais
para análise das camadas raster
Abrir arquivos raster
●
Elevação: srtm_abc.tif
– Resolução 30m, fonte:
https://earthexplorer.usgs.gov/
●
Abrir uma classe raster:
install.packages("terra")
library(terra)
srtm_abc <- rast("srtm_abc.tif")
class(srtm_abc)
crs(srtm_abc)
crs(srtm_abc) <- "epsg:4326"
crs(srtm_abc)
Caso o arquivo fosse importado sem a informação de
projeção, mas nós saibamos qual é a projeção, podemos
informá-la
srtm_abc_sirgas2000 <- project(srtm_abc, "epsg:4674")
plot(srtm_abc_sirgas2000)
writeRaster(srtm_abc_sirgas2000, "srtm_abc_sirgas2000.tif",
overwrite=TRUE)
Cógido EPSG
da nova projeção
Caso o arquivo já exista,
grava por cima
Pacotes para visualização de
dados espaciais
• sp, sf, raster, terra: visualização básica
• lattice, ggplot2: gráficos (e mapas) avançados
• rasterVis: visualização raster
• RColorBrewer: paletas de cores para legendas
• classInt: métodos de classificação de intervalos
• tmap, cartography: cartografia temática
• quickmapr, mapmisc: modelos para mapas rápidos
• mapview, leaflet, plotGoogleMaps, plotKML,
plotly: mapas interativos para Web
CRAN Task View: Analysis of Spatial Data https://cran.r-project.org/web/views/Spatial.html
Métodos de visualização
●
Incremental
– Cada linha de código
adiciona camadas de
informação.
– Ex: plot, cartography
●
Não incremental
– Cada bloco de código é
um mapa
– Ex: lattice, ggplot2,
ggspatial, tmap
Método Incremental
●
Abrir uma tela de mapa maior
(a do Rstudio é muito pequena)
dev.new(width=10, height=10)
plot(srtm_abc_sirgas2000, cex.axis=0.6,
main ="ABC Paulista")
Camada
Tamanho do
texto na grade de
coordenadas
Título
Como instalamos o
pacote “terra”, usará a
função plot( ) desse
pacote para as
camadas SpatRaster
Método Incremental
●
Parâmetros específicos para grades de
coordenadas
axis( )
●
Parâmetros específicos para título
title( )
mun_abc <- read_sf("mun_abc.shp")
View(mun_abc)
plot(st_geometry(mun_abc),
border="gray30", lwd=2, add=TRUE)
Geometria da camada
Cor da borda
do polígono
Adicionar
Largura
da borda
https://www.ling.upenn.edu/~joseff/rstudy/week4.html#col
Cores no R
657 cores nomeadas em
http://www.stat.columbia.edu/~tzheng/files/Rcolor.pdf
●
Adicionar a hidrografia
plot(st_geometry(hidrografia_abc_sirgas2000), col=4, add=TRUE)
Geometria da camada cor azul adicionar
●
Adicionar os poços
plot(st_geometry(sf_pocos_abc), pch=20, col="deeppink", cex=0.4, add=TRUE)
Geometria da camada cor adicionar
símbolo tamanho
Símbolos (pch)
http://www.sthda.com/english/wiki/ggplot2-point-shapes
Argumentos úteis para formatos vetoriais
Classe Argumento Significado
Pontos
pch Símbolo
col Cor
bg Cor de preenchimento
cex Tamanho do símbolo
Linhas
col Cor
lwd Largura da linha
lty Tipo de linha
Polígonos
col
Cor de preenchimento
ou de hashuras
border Cor da borda
lwd Largura da borda
density
Densidade de
hashuras
angle Ângulo de hashuras
https://www.r-graph-gallery.com/6-graph-parameters-reminder/
text(st_coordinates(st_centroid(mun_abc)),
mun_abc$NM_MUNICIP, cex=0.7)
Coordenadas dos centróides dos polígonos
Coluna com os nomes Tamanho
da fonte
text(locator(1), "Serra do mar", cex=0.7)
Posição
interativa
Tamanho
da fonte
Texto
●
Adicionando escala com a função scalebar( ) do
pacote terra
scalebar(10, xy=click(), type="bar", divs=4,
below="Km", cex=0.7)
distância
posição
interativa
tipo de
escala divisões
texto tamanho
do texto
●
Adicionando rosa dos ventos
O pacote prettymapr também possui opções avançadas
para adicionar escalas gráficas e setas de norte
north(xy="bottomright", type=2, cex = 0.8)
localização tipo de seta
tamanho
da fonte
Localização dos elementos
bottomright
right
center
left
bottomleft
topleft topright
top
bottom
Dados espaciais em R - 2023 - UFABC - Geoprocessamento
Exportando mapas
Atividade 2
Modificar o mapa incremental com as seguintes
alterações:
●
Dobrar o tamanho de fonte dos eixos de coordenadas
●
Limites municipais com borda de cor preta
●
Hidrografia com linha pontilhada
●
Pontos de poços de cor amarela e formato quadrado
●
Nome dos municípios apenas em Santo André e São
Bernardo do Campo, colocados manualmente com a
função locator
●
Seta de norte no canto superior direito
Obs: submeter código e imagem
Mapas temáticos não incrementais
Pacote tmap
●
Incorpora métodos de:
– sf (Simple Features)
– ggplot2: gráficos gerais
– RColorBrewer: paletas de cores para mapas
– classInt: classificação de intervalos
– leaflet: mapas web interativos
●
Fluxo de programação
– Fontes: tm_shape(dados, vetor ou raster)
– Elementos: ex: tm_polygons( ) + tm_grid( )
install.packages("tmap")
library(tmap)
dev.new(width=10, height=10)
tmap_options (check.and.fix = TRUE)
Se tiver erros de vetorização dos polígonos,
tenta corrigir automaticamente
tm_shape(setores_abc_censo) + tm_polygons()
fonte elemento
Elementos Desenho
tm_polygons Polígonos com bordas
tm_fill Polígonos sem bordas
tm_borders Bordas dos polígonos
tm_symbols Pontos (símbolos)
tm_lines Linhas
tm_raster Raster
tm_text Rótulos
tm_basemap
Mapa de fundo
(ex: OpenStreetMaps)
tm_bubbles Símbolos proporcionais
tm_iso
Isolinhas
(curvas de nível)
tm_rgb Imagem
Acessórios Desenho
tm_grid
Grade de
coordenadas
tm_scale_bar Escala
tm_compass Seta de norte
tm_credits Caixa de texto
tm_logo Logo institucional
tm_xlab Eixo de longitude
tm_ylab Eixo de latitude
Mais elementos e informações:
help("tmap-element")
vignette("tmap-getstarted")
dev.new(width=10, height=10)
tm_shape(setores_abc_censo) +
tm_grid(alpha = 0.2, labels.rot = c(0,90),
labels.inside.frame = FALSE) +
tm_fill(col = "Renda", style = "quantile",
palette = "YlOrBr") +
Transparência Rotação do texto (horizontal,vertical)
Coordenadas fora do mapa
Grade
Polígonos sem borda Classificação por quantil
Paleta de cores do ColorBrewer
https://www.r-graph-gallery.com/38-rcolorbrewers-palettes/
Paletas do RColorBrewer
Sequenciais
Divergentes Qualitativas
Seleção amigável para deficientes visuais de cores
(como o daltonismo)
https://www.r-graph-gallery.com/38-rcolorbrewers-palettes/
dev.new(width=10, height=10)
tm_shape(setores_abc_censo) +
tm_grid(alpha = 0.2, labels.rot = c(0,90),
labels.inside.frame = FALSE) +
tm_fill(col = "Renda", style = "quantile",
palette = "YlOrBr") +
tm_compass(position = c("right", "top")) +
tm_scale_bar() +
tm_credits("Projeção SIRGAS 2000 n Fonte: Censo
IBGE(2010) n Classificacao por quantis") +
tm_layout(main.title = "Renda no ABC",
main.title.position = "center", outer.margins = 0.05)
Transparência Rotação do texto (horizontal,vertical)
Coordenadas fora do mapa
Grade
Polígonos sem borda Classificação por quantil
Paleta de cores do ColorBrewer
Seta de norte
Escala
Texto
Título
Dados espaciais em R - 2023 - UFABC - Geoprocessamento
dev.new(width=10, height=10)
tm_shape(srtm_abc_sirgas2000) +
tm_raster(breaks = c(0,200,400,600,800,1000,1200)) +
tm_legend(title = "Elevacao (m)") +
tm_grid(alpha = 0, labels.rot = c(0,90), labels.inside.frame = FALSE) +
tm_shape(mun_abc) + tm_borders(col = "gray30", lwd = 2) +
tm_add_legend(type = "line", col = "gray30", labels = "Limites municipais") +
tm_shape(hidrografia_abc_sirgas2000) + tm_lines(col = "blue") +
tm_add_legend(type = "line", col = "blue", labels = "Hidrografia") +
tm_shape(sf_pocos_abc) + tm_symbols(shape = 20, col = "deeppink", scale = 0.2) +
tm_add_legend(type = "symbol", shape = 20, col = "deeppink", labels = "Pocos") +
tm_shape(mun_abc) + tm_text("NM_MUNICIP", size = 0.5) +
tm_compass(position = c("right","top")) +
tm_scale_bar() +
tm_credits("Projecao SIRGAS 2000 n Fonte: IBGE, NASA") +
tm_layout(main.title = "ABC", main.title.position = "center", legend.outside = TRUE)
Combinação de camadas
Dados espaciais em R - 2023 - UFABC - Geoprocessamento
Mapas Interativos
tmap_mode("view")
tm_shape(setores_abc_censo) +
tm_fill(col = "Renda", style = "quantile", popup.vars = c("Pessoas", "Renda")) +
tm_scale_bar()
Para retornar ao modo
normal de visualização:
tmap_mode(“plot”)
Informações ao clicar no mapa
Cor Classificação
Pacote cartography
Densidade
de pontos
Descontinuidades
Fluxos
Símbolos proporcionais
bivariados
Atividades para a
próxima semana
•Em grupo:
- Fazer um mapa de localização
para o trabalho final usando o pacote
tmap (submeter código e figura)
•Individual:
- Leitura de um artigo com análise
espacial de dados vetoriais, relacionado
ao tema do projeto final (para atividade
no início da próxima aula)
Obrigado!
Ângela Terumi Fushita
Vitor Vieira Vasconcelos

Mais conteúdo relacionado

PDF
Análise de dependência espacial em R
PDF
Dados espaciais em R
PDF
Dados espaciais em R (2020)
PDF
Análise de Pontos em R
PDF
Operações com dados espaciais (Vetor) em R
PDF
GEOPROCESSAMENTO - MODELAGEM DOS DADOS.pdf
PPT
GIS em 3 horas
PDF
Dados espaciais
Análise de dependência espacial em R
Dados espaciais em R
Dados espaciais em R (2020)
Análise de Pontos em R
Operações com dados espaciais (Vetor) em R
GEOPROCESSAMENTO - MODELAGEM DOS DADOS.pdf
GIS em 3 horas
Dados espaciais

Semelhante a Dados espaciais em R - 2023 - UFABC - Geoprocessamento (20)

PDF
PGDAY - Palestra PostGIS + PgRouting
PPT
Geoprocessamento
PDF
Introdução à visualização espacial em R
PPTX
Aula 1-Introdução a ArcGis_Aula Teorica_
PPTX
Aula 1-Introdução a ArcGis_Aula Teorica_
PDF
Georreferenciamento de Bases Cartográficas
PPT
Aula 01 noções de cartografia e geoprocessamento
PPT
Geoprocessamento Parte1
PDF
Introdução Postgis
PDF
Atividade prática - Introdução ao QGis, parte 1
PPTX
PDF
Apostila arcgis-prof-patricia
PPT
aula-sig-1.ppt
KEY
Geo on Rails - Um guia para manter o seu cabelo.
PPT
Introduo ao-sig-26820
PPTX
Curso Introdutório em Geotecnologias .pptx
PDF
Curso Introdutório em Geotecnologias .pdf
PDF
Oficina de Mapas
PDF
Treinamento SIG - Introdução e Conceitos Básicos
PDF
Análise Espacial Baseada em Localização
PGDAY - Palestra PostGIS + PgRouting
Geoprocessamento
Introdução à visualização espacial em R
Aula 1-Introdução a ArcGis_Aula Teorica_
Aula 1-Introdução a ArcGis_Aula Teorica_
Georreferenciamento de Bases Cartográficas
Aula 01 noções de cartografia e geoprocessamento
Geoprocessamento Parte1
Introdução Postgis
Atividade prática - Introdução ao QGis, parte 1
Apostila arcgis-prof-patricia
aula-sig-1.ppt
Geo on Rails - Um guia para manter o seu cabelo.
Introduo ao-sig-26820
Curso Introdutório em Geotecnologias .pptx
Curso Introdutório em Geotecnologias .pdf
Oficina de Mapas
Treinamento SIG - Introdução e Conceitos Básicos
Análise Espacial Baseada em Localização
Anúncio

Mais de Vitor Vieira Vasconcelos (20)

PDF
Geocodificação, Roteirização e Geotagging - Prática no QGIS
PDF
Territorial Land use - Environmental Science - 2024
PDF
ANOVA, significance levels, p-values and Bayesian Analysis
PDF
Hypothesis testing - Environmental Data analysis
PDF
Probability and Statistical Inference - 2024
PDF
Geocodificação de endereços, roteirização e geotagging no QGis
PDF
Acesso e aquisição de bases de imagens de satélite gratuitas
PDF
Prática de interpretação de imagens de satélite no QGIS
PDF
Integração entre Biodiversidade, Geodiversidade e Paisagem - Estudos de Caso ...
PDF
Sensoriamento remoto - Introdução - 2024
PDF
Anáise espacial baseada em distância - Prática no QGis - 2024
PDF
Análise Espacial baseada em Localização - Prática no QGis - 2024
PDF
Escalas, Resolução: Conceitos e aplicações
PDF
Sistemas de Coordenadas e Projeções Cartográficas
PDF
Atividade prática - Introdução ao QGis - parte 2
PDF
Introdução à Cartografia e Geoprocessamento - Conceitos Básicos
PDF
Representação Computacional do Espaço (Geoprocessamento)
PDF
Relações entre espécies e características ambientais - Prática de modelagem d...
PDF
Planejamento Sistemático de Conservação - Prática com o Marxan
PDF
Atividade prática de Biodiversidade e Agrodiversidade no R
Geocodificação, Roteirização e Geotagging - Prática no QGIS
Territorial Land use - Environmental Science - 2024
ANOVA, significance levels, p-values and Bayesian Analysis
Hypothesis testing - Environmental Data analysis
Probability and Statistical Inference - 2024
Geocodificação de endereços, roteirização e geotagging no QGis
Acesso e aquisição de bases de imagens de satélite gratuitas
Prática de interpretação de imagens de satélite no QGIS
Integração entre Biodiversidade, Geodiversidade e Paisagem - Estudos de Caso ...
Sensoriamento remoto - Introdução - 2024
Anáise espacial baseada em distância - Prática no QGis - 2024
Análise Espacial baseada em Localização - Prática no QGis - 2024
Escalas, Resolução: Conceitos e aplicações
Sistemas de Coordenadas e Projeções Cartográficas
Atividade prática - Introdução ao QGis - parte 2
Introdução à Cartografia e Geoprocessamento - Conceitos Básicos
Representação Computacional do Espaço (Geoprocessamento)
Relações entre espécies e características ambientais - Prática de modelagem d...
Planejamento Sistemático de Conservação - Prática com o Marxan
Atividade prática de Biodiversidade e Agrodiversidade no R
Anúncio

Último (20)

PPT
REDAÇÃO-OFICIAL-completo.pptREDAÇÃO-OFICIAL-completo.ppt
PDF
A verdade sobre Jesus. (Jesus Cristo no islam)
PPTX
material-didatico-1a-revisao-pre-enem-livepdf.pptx
PDF
livro de inEbook_Informatica_Aplicada_UnP.pdf
PDF
Educacao_Contempranea_educação paulo freire
PPTX
Slides Lição 10, CPAD, A Expansão da Igreja, 3Tr25.pptx
PPTX
O TRABALHO EM MARX, WEBER E DURKHRIM.pptx
PPTX
Continente europeu sua Hegemonia Europeia na Cultura.pptx
PDF
Orientação de profeta Muhammad (que a paz e benção de Deus estejam com ele) n...
PPTX
Aula de psicofarmacologia: classes de psicofármacos
PPT
Aulão dos descritores SAEB-SAEPE maio - slide aulão 2.ppt
PDF
Os pilares da fé. (Religião muçulmana)
PPTX
Aulas explicativa sobre Vacinas do futuro.pptx
PDF
Termo de cessão de direitos autorais - Seduc-SP
PPTX
SLIDES PROGRAMA DE ATENÇÃO INSLIDESTEGRAL A SAÚDE DA MULHER.pptx
PPTX
Aula de Psicofarmacologia: Psicotrópicos
PPT
Processos+Químicos+Industriais+-+Anchieta.ppt
PPTX
EDUCAÇÃO FINANCEIRA - PORCENT E JUROS SIMPLLES.pptx
PDF
ebook_historia_pessoal_dos_mitos_gregos.pdf
PPTX
slide aulao saepe-saeb descritores att.pptx
REDAÇÃO-OFICIAL-completo.pptREDAÇÃO-OFICIAL-completo.ppt
A verdade sobre Jesus. (Jesus Cristo no islam)
material-didatico-1a-revisao-pre-enem-livepdf.pptx
livro de inEbook_Informatica_Aplicada_UnP.pdf
Educacao_Contempranea_educação paulo freire
Slides Lição 10, CPAD, A Expansão da Igreja, 3Tr25.pptx
O TRABALHO EM MARX, WEBER E DURKHRIM.pptx
Continente europeu sua Hegemonia Europeia na Cultura.pptx
Orientação de profeta Muhammad (que a paz e benção de Deus estejam com ele) n...
Aula de psicofarmacologia: classes de psicofármacos
Aulão dos descritores SAEB-SAEPE maio - slide aulão 2.ppt
Os pilares da fé. (Religião muçulmana)
Aulas explicativa sobre Vacinas do futuro.pptx
Termo de cessão de direitos autorais - Seduc-SP
SLIDES PROGRAMA DE ATENÇÃO INSLIDESTEGRAL A SAÚDE DA MULHER.pptx
Aula de Psicofarmacologia: Psicotrópicos
Processos+Químicos+Industriais+-+Anchieta.ppt
EDUCAÇÃO FINANCEIRA - PORCENT E JUROS SIMPLLES.pptx
ebook_historia_pessoal_dos_mitos_gregos.pdf
slide aulao saepe-saeb descritores att.pptx

Dados espaciais em R - 2023 - UFABC - Geoprocessamento

  • 1. Dados Espaciais 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 Junho, 2023 São Bernardo do Campo - SP
  • 2. Objetivo Adquirir os conhecimentos e habilidades básicas para importação e visualização de dados espaciais no ambiente R
  • 3. Conteúdo •Principais formatos de dados espaciais em R •Conversão entre formatos de dados espaciais •Reprojeção de sistemas de coordenadas •Junção de dados tabulares e espaciais •Visualização de dados espaciais •Layout de mapas •Exportar do R
  • 4. Principais linguagens para análise espacial ● R – Estatística espacial ● Python – Automação interna (QGis, ArcGis) – Big Data ● PostGreSQL – Bancos de dados espaciais em servidores – Geoportais
  • 6. É sempre recomendável verificar atualizações nos pacotes instalados antes de começar a trabalhar Abrir o R Studio
  • 7. Fontes de Referência CRAN Task View: Analysis of Spatial Data https://cran.r-project.org/web/views/Spatial.html Links para os manuais de cada pacote R
  • 8. Livros Mas, Jean-Francois, Horta, M.B. Vasconcelos, R. N. Análise espacial com R. Feira de Santana: UEFS Editora, 2019. ● Operações básicas em R para análise espacial https://bit.ly/2KpSI7C https://www.researchgate.net/publication/33 2865022_Analise_espacial_com_R
  • 9. Livros Pebesma, E., & Bivand, R. (2023). Spatial data science: With applications in R. CRC Press. https://r-spatial.org/book/ ● Conteúdo de referência – Dados vetoriais (formatos sf e stars) – Estatística espacial
  • 10. Livros Lovelace, Robin; Nowosad, J.; Muenchow, J. Geocomputation with R. CRC Press. 2019. https://geocompr.robinlovelace.net/ ● Conteúdo de referência: – Dados vetoriais (sf) e raster – Visualização
  • 12. Elementos de um mapa Título Rosa dos Ventos Escala Gráfica Mapa e coordenadas Legenda Legenda • Sistema de projeção • Fontes das bases cartográficas • Método de visualização • Autoria e data
  • 13. Materiais de aula disponiveis em: https://app.box.com/s/rlp75p8gvl1v363g1v4m6xbb4rdlz91y Baixar os dados em: D:/R_CTA/aula_3/ ● Pasta de nome curto, perto da raiz, sem caracteres especiais, nem espaços ● Não criar pasta em “Área de trabalho”, “Meus documentos”, etc...
  • 17. ● Ao criar o projeto, ele já especifica a mesma pasta como diretório de trabalho ● Confirmando o diretório de trabalho getwd() [1] "D:/R_CTA/aula3" ● Criar um novo script de programação
  • 18. ● Configurar o diretório de trabalho ● Exemplo de código: setwd("D:/R_CTA/aula3")
  • 19. Roteiro • Abrir a tabela “pocos_abc.csv” • Dados obtidos no sistema Siagas http://siagasweb.cprm.gov.br • O formato CSV é o recomendado para importação no R • Recomendação: converter do XLS para o CSV no LibreOffice • O LibreOffice é mais recomendado que o Excel para trabalhar com formatos CSV e DBF • Na hora de gravar arquivos CSV e DBF no LibreOffice, configure e anote qual é o sistema de codificação. - Sistema UTF-8 lida melhor com caracteres especiais
  • 20. Abrindo no Bloco de Notas
  • 24. • File/URL: abra o arquivo pocos_abc.csv • Delimiter: semicolon • Locale → configure
  • 25. •Decimal Mark: , (vírgula) •Grouping Mark: . (ponto)
  • 26. • Verifique o formato dos dados de cada coluna:  Character para “municipio”  Double para as demais colunas
  • 27. Código final do comando de importação
  • 29. • Grave a sua base de dados (arquivos de extensão *.RData) save.image("C:/R_CTA/aula_3/aula3.RData") • Código
  • 30. Abrir script de código da aula
  • 31. Pacotes a serem utilizados readr Leitura de tabelas rgdal Conversão de formatos espaciais e projeções sf Formato espacial sf dplyr Manipulação de banco de dados (com uniões) raster Formato espacial raster antigo terra Formato espacial raster novo prettymapr Escalas e legendas em método incremental tmap Mapas em método não-incremental install.packages( ) Instala library( ) Carrega na memória
  • 32. • Grave o script de trabalho (arquivo de extensão *.R)
  • 33. • Imprimir nosso primeiro mapa plot(latitude_decimal ~longitude_decimal, data=pocos_abc )
  • 34. Principais pacotes para formatos espaciais em R •sp: classes e métodos para dados espaciais •sf (Simple Features): atualização do sp nos padrões Open Geospatial Consortium (OGC) para dados vetoriais •stars: dados espaço-temporais •raster: formato raster antigo •terra: formato raster novo CRAN Task View: Analysis of Spatial Data https://cran.r-project.org/web/views/Spatial.html Além de formatos específicos de cada pacote
  • 35. Lovelace, R.; Nowosad, J.; Muenchow, J. Geocomputation with R. CRC Press. 2023.
  • 36. Pacotes para acesso a bases de dados externas •rgdal e maptools: conversão de formatos espaciais •OpenStreetMap, rosm e osmdata: OpenStreetMaps •RgoogleMaps, googleway e ggmap: Google Maps •ows4R: geoservicos de portais WebGis CRAN Task View: Analysis of Spatial Data https://cran.r-project.org/web/views/Spatial.html
  • 37. Pacote sf Lovelace, R.; Nowosad, J.; Muenchow, J. Geocomputation with R. CRC Press. 2019. Além de formatos específicos com curvas em vez de linhas (para CAD)
  • 38. Pacote sf sfg Geometria de um objeto sfg Geometria de um objeto sfg Geometria de um objeto sfc Lista de geometrias de objetos Simple feature geometry Simple feature column sf data.frame de atributos e sfc Simple feature
  • 40. Relembrando a segunda aula Código WKT (Well Known Text)
  • 41. Projeções • Site oficial: https://epsg.org/ • Pegar código WKT (ou proj4): https://epsg.io/ http://spatialreference.org • Pacote rgdal (proj4) • Ou copiando de uma outra base projetada
  • 46. ● Instalar o pacote sf: install.packages("sf") library(sf)
  • 47. Convertendo tabelas com coordenadas para Simple Features st_as_sf(data, coords = c(x, y), crs = “código EPSG” ou “WKT”)
  • 48. ● Verificar tipo de dado: class(pocos_abc) [1] "spec_tbl_df" "tbl_df" "tbl" "data.frame" ● Extender para SimpleFeature (sf) sf_pocos_abc <- st_as_sf(pocos_abc, coords = c("longitude_decimal", "latitude_decimal"), crs = 4674) class(sf_pocos_abc) [1] "sf" "tbl_df" "tbl" "data.frame"
  • 49. ● Na aba “Environment”, clique no objeto sf_pocos_abc ● Ou digite View(sf_pocos_abc)
  • 51. • Simple feature geometry (sfg): lista de pares de coordenadas (vértices) • Simple feature column (sfc): lista de linhas • Simple features (sf): tabela de atributos associados a uma lista de linhas Linhas Bivand, Roger. 2014. Applied Spatial Data Analysis with R. Open Source Geospatial Research and Education Symposium, Aalto University, Finland Rowlingson, Barry. Geospatial data in R and beyond! Lancaster University, 2012
  • 52. • Simple feature geometry (sfg): lista de pares de coordenadas em que o último vértice coincide com o primeiro. • Simple feature column (sfc): lista de polígonos • Simple features (sf): tabela de atributos associados a uma lista de polígonos Polígonos Bivand, Roger. 2014. Applied Spatial Data Analysis with R. Open Source Geospatial Research and Education Symposium, Aalto University, Finland Rowlingson, Barry. Geospatial data in R and beyond! Lancaster University, 2012 Polígonos multi-parte (ilhas) Polígonos com buracos (anéis)
  • 53. Próximos passos ● Importar um arquivo shapefile com hidrografia do ABC paulista 1:50.000, vetorizadas das cartas do IBGE Fonte: http://datageo.ambiente.sp.gov.br ● Função read_sf, do pacote sf, converte arquivos para formato sf padrão: read_sf(“arquivo.extensão”) hidrografia_abc <- read_sf("hidrografia_abc.shp")
  • 54. st_crs(hidrografia_abc) Coordinate Reference System: User input: SIRGAS 2000 / UTM zone 23S wkt: PROJCRS["SIRGAS 2000 / UTM zone 23S", BASEGEOGCRS["SIRGAS 2000", DATUM["Sistema de Referencia Geocentrico para las AmericaS 2000", (...) ID["EPSG",4674]], CONVERSION["UTM zone 23S", METHOD["Transverse Mercator", ID["EPSG",9807]], (...) USAGE[ SCOPE["Engineering survey, topographic mapping."], AREA["Brazil - between 48°W and 42°W, northern and southern hemispheres, onshore and offshore."], BBOX[-33.5,-48,5.13,-42]], ID["EPSG",31983]]
  • 55. ● Essa é a projeção Sirgas 2000 UTM 23S ● Vamos retransformar para Sirgas 2000 ● Função st_transform(arquivo, projeção desejada) hidrografia_abc_sirgas2000<-st_transform(hidrografia_abc, st_crs(sf_pocos_abc)) hidrografia_abc_sirgas2000<-st_transform(hidrografia_abc, 4674) ou
  • 56. st_crs(hidrografia_abc_sirgas2000) Coordinate Reference System: User input: EPSG:4674 wkt: GEOGCRS["SIRGAS 2000", DATUM["Sistema de Referencia Geocentrico para las AmericaS 2000", ELLIPSOID["GRS 1980",6378137,298.257222101, LENGTHUNIT["metre",1]]], PRIMEM["Greenwich",0, ANGLEUNIT["degree",0.0174532925199433]], CS[ellipsoidal,2], AXIS["geodetic latitude (Lat)",north, ORDER[1], ANGLEUNIT["degree",0.0174532925199433]], AXIS["geodetic longitude (Lon)",east, ORDER[2], ANGLEUNIT["degree",0.0174532925199433]], USAGE[ SCOPE["Horizontal component of 3D system."], AREA["Latin America - Central America and South America - onshore and offshore. Brazil - onshore and offshore."], BBOX[-59.87,-122.19,32.72,-25.28]], ID["EPSG",4674]]
  • 58. Importando polígonos ● Abrir um shapefile com os setores censitários do Estado de São Paulo (Censo 2010, IBGE) ftp://geoftp.ibge.gov.br/organizacao_do_territorio/malhas_territoriais/malhas_de_setores_censitari os__divisoes_intramunicipais/censo_2010/setores_censitarios_shp/sp/sp_setores_censitarios.zip setores_sp <- read_sf("35SEE250GC_SIR.shp") View(setores_sp)
  • 59. Códigos do IBGE para o ABC CD_GEOCODM NM_MUNICP 3513801 DIADEMA 3529401 MAUÁ 3547809 SANTO ANDRÉ 3548708 SÃO BERNARDO DO CAMPO 3548807 SÃO CAETANO DO SUL 3543303 RIBEIRÃO PIRES 3544103 RIO GRANDE DA SERRA
  • 60. Recortando o Shapefile ● Função subset(objeto, condição) codigo_abc <- c(3513801,3529401,3547809, 3548708, 3548807, 3543303, 3544103) setores_abc <- subset(setores_sp, setores_sp$CD_GEOCODM %in% codigo_abc) plot(setores_abc)
  • 61. ● Verificar projeção st_crs(setores_abc) Coordinate Reference System: User input: EPSG:4674 wkt: GEOGCRS["SIRGAS 2000", DATUM["Sistema de Referencia Geocentrico para las AmericaS 2000", ELLIPSOID["GRS 1980",6378137,298.257222101, LENGTHUNIT["metre",1]]], PRIMEM["Greenwich",0, ANGLEUNIT["degree",0.0174532925199433]], CS[ellipsoidal,2], AXIS["geodetic latitude (Lat)",north, ORDER[1], ANGLEUNIT["degree",0.0174532925199433]], AXIS["geodetic longitude (Lon)",east, ORDER[2], ANGLEUNIT["degree",0.0174532925199433]], USAGE[ SCOPE["Horizontal component of 3D system."], AREA["Latin America - Central America and South America - onshore and offshore. Brazil - onshore and offshore."], BBOX[-59.87,-122.19,32.72,-25.28]], ID["EPSG",4674]]
  • 62. ● Atribuir projeção st_crs(setores_abc)<-4674 st_crs(setores_abc) Coordinate Reference System: User input: EPSG:4674 wkt: GEOGCRS["SIRGAS 2000", DATUM["Sistema de Referencia Geocentrico para las AmericaS 2000", ELLIPSOID["GRS 1980",6378137,298.257222101, LENGTHUNIT["metre",1]]], PRIMEM["Greenwich",0, ANGLEUNIT["degree",0.0174532925199433]], CS[ellipsoidal,2], AXIS["geodetic latitude (Lat)",north, ORDER[1], ANGLEUNIT["degree",0.0174532925199433]], AXIS["geodetic longitude (Lon)",east, ORDER[2], ANGLEUNIT["degree",0.0174532925199433]], USAGE[ SCOPE["Horizontal component of 3D system."], AREA["Latin America - Central America and South America - onshore and offshore. Brazil - onshore and offshore."], BBOX[-59.87,-122.19,32.72,-25.28]], ID["EPSG",4674]]
  • 63. Relacionando um shapefile com uma base de dados
  • 64. ● Dados do Censo 2010: ftp://ftp.ibge.gov.br/Censos/Censo_Demografico_2010/Resultados_do_Universo/Agregados_por_Setores_Censitarios/ censo2010 <- read.csv("censo2010.csv",sep = ";", dec = ",") View(censo2010) ● Código do setor censitário ● Setor: Urbano (1-3) e Rural (4-7) ● Domicílios ● Pessoas ● Renda média do(a) chefe de domicílio ● % de coleta de esgoto ● % de coleta de lixo
  • 65. install.packages("dplyr") library(dplyr) setores_abc_censo <- left_join(setores_abc, censo2010, by = c(CD_GEOCODI = "Cod_setor")) Error: Can't join on 'Cod_setor' x 'CD_GEOCODI' because of incompatible types (numeric / character) is.numeric(censo2010$Cod_setor) is.numeric(setores_abc$CD_GEOCODI) setores_abc$CD_GEOCODI <- as.numeric (setores_abc$CD_GEOCODI) setores_abc_censo <- left_join(setores_abc, censo2010, by = c(CD_GEOCODI = "Cod_setor"))
  • 67. ● Exportando para shapefile: st_write(setores_abc_censo,"setores_abc_censo.shp") ● Exportando para geopackage: st_write(setores_abc_censo,"setores_abc.gpkg", layer = "censo") st_write(objeto, “nome do arquivo”) ● Exportando para KML (Google Earth): st_write(setores_abc_censo,"setores_abc_censo.kml")
  • 68. O pacote plotKML possui opções mais avançadas de exportação de KML, incluindo cores, legendas, visualização 3D, dados espaço-temporais, fotos e rasters http://plotkml.r-forge.r-project.org/fig_eberg_two_aesthetics.jpg
  • 69. plot(setores_abc_censo["Renda"], axes = TRUE, border = NA, cex.axis=0.5, breaks = "quantile") Primeiro mapa temático Camada Tamanho do texto na grade de coordenadas Grade de Coordenadas Variável Não desenhar bordas dos polígonos Método de classificação Comando plot do pacote sf
  • 70. breaks = “métodos de classificação” ● fixed: definidos pelos usuário ● equal: intervalos iguais ● pretty: quase intervalos iguais, em números arredondados ● quantile: número de objetos iguais por classe ● sd: desvio padrão em relação à média ● fisher: quebras naturais e outros
  • 73. Atividade 1 Criar um mapa do percentual de rede de esgoto com intervalo por quebras naturais Submeter código e imagem do mapa
  • 74. Pacote raster ● Extensão das classes sp ● Permite trabalhar com arquivos maiores e de forma mais eficiente que o sp ● RasterLayer → uma camada raster ● RasterBrick → várias camadas em um arquivo ● RasterStack → tabela apontando para diversas camadas raster
  • 75. Pacote terra ● Extensão da classe raster ● Permite trabalhar com arquivos maiores e de forma mais eficiente ● Formatos – SpatRaster: armazena camadas raster (uma ou mais bandas) – SpatVector: armazena os dados vetoriais para análise das camadas raster
  • 76. Abrir arquivos raster ● Elevação: srtm_abc.tif – Resolução 30m, fonte: https://earthexplorer.usgs.gov/ ● Abrir uma classe raster: install.packages("terra") library(terra) srtm_abc <- rast("srtm_abc.tif") class(srtm_abc)
  • 77. crs(srtm_abc) crs(srtm_abc) <- "epsg:4326" crs(srtm_abc) Caso o arquivo fosse importado sem a informação de projeção, mas nós saibamos qual é a projeção, podemos informá-la
  • 78. srtm_abc_sirgas2000 <- project(srtm_abc, "epsg:4674") plot(srtm_abc_sirgas2000) writeRaster(srtm_abc_sirgas2000, "srtm_abc_sirgas2000.tif", overwrite=TRUE) Cógido EPSG da nova projeção Caso o arquivo já exista, grava por cima
  • 79. Pacotes para visualização de dados espaciais • sp, sf, raster, terra: visualização básica • lattice, ggplot2: gráficos (e mapas) avançados • rasterVis: visualização raster • RColorBrewer: paletas de cores para legendas • classInt: métodos de classificação de intervalos • tmap, cartography: cartografia temática • quickmapr, mapmisc: modelos para mapas rápidos • mapview, leaflet, plotGoogleMaps, plotKML, plotly: mapas interativos para Web CRAN Task View: Analysis of Spatial Data https://cran.r-project.org/web/views/Spatial.html
  • 80. Métodos de visualização ● Incremental – Cada linha de código adiciona camadas de informação. – Ex: plot, cartography ● Não incremental – Cada bloco de código é um mapa – Ex: lattice, ggplot2, ggspatial, tmap
  • 81. Método Incremental ● Abrir uma tela de mapa maior (a do Rstudio é muito pequena) dev.new(width=10, height=10)
  • 82. plot(srtm_abc_sirgas2000, cex.axis=0.6, main ="ABC Paulista") Camada Tamanho do texto na grade de coordenadas Título Como instalamos o pacote “terra”, usará a função plot( ) desse pacote para as camadas SpatRaster
  • 83. Método Incremental ● Parâmetros específicos para grades de coordenadas axis( ) ● Parâmetros específicos para título title( )
  • 85. plot(st_geometry(mun_abc), border="gray30", lwd=2, add=TRUE) Geometria da camada Cor da borda do polígono Adicionar Largura da borda
  • 87. 657 cores nomeadas em http://www.stat.columbia.edu/~tzheng/files/Rcolor.pdf
  • 88. ● Adicionar a hidrografia plot(st_geometry(hidrografia_abc_sirgas2000), col=4, add=TRUE) Geometria da camada cor azul adicionar
  • 89. ● Adicionar os poços plot(st_geometry(sf_pocos_abc), pch=20, col="deeppink", cex=0.4, add=TRUE) Geometria da camada cor adicionar símbolo tamanho
  • 91. Argumentos úteis para formatos vetoriais Classe Argumento Significado Pontos pch Símbolo col Cor bg Cor de preenchimento cex Tamanho do símbolo Linhas col Cor lwd Largura da linha lty Tipo de linha Polígonos col Cor de preenchimento ou de hashuras border Cor da borda lwd Largura da borda density Densidade de hashuras angle Ângulo de hashuras
  • 93. text(st_coordinates(st_centroid(mun_abc)), mun_abc$NM_MUNICIP, cex=0.7) Coordenadas dos centróides dos polígonos Coluna com os nomes Tamanho da fonte
  • 94. text(locator(1), "Serra do mar", cex=0.7) Posição interativa Tamanho da fonte Texto
  • 95. ● Adicionando escala com a função scalebar( ) do pacote terra scalebar(10, xy=click(), type="bar", divs=4, below="Km", cex=0.7) distância posição interativa tipo de escala divisões texto tamanho do texto
  • 96. ● Adicionando rosa dos ventos O pacote prettymapr também possui opções avançadas para adicionar escalas gráficas e setas de norte north(xy="bottomright", type=2, cex = 0.8) localização tipo de seta tamanho da fonte
  • 100. Atividade 2 Modificar o mapa incremental com as seguintes alterações: ● Dobrar o tamanho de fonte dos eixos de coordenadas ● Limites municipais com borda de cor preta ● Hidrografia com linha pontilhada ● Pontos de poços de cor amarela e formato quadrado ● Nome dos municípios apenas em Santo André e São Bernardo do Campo, colocados manualmente com a função locator ● Seta de norte no canto superior direito Obs: submeter código e imagem
  • 101. Mapas temáticos não incrementais Pacote tmap ● Incorpora métodos de: – sf (Simple Features) – ggplot2: gráficos gerais – RColorBrewer: paletas de cores para mapas – classInt: classificação de intervalos – leaflet: mapas web interativos ● Fluxo de programação – Fontes: tm_shape(dados, vetor ou raster) – Elementos: ex: tm_polygons( ) + tm_grid( )
  • 102. install.packages("tmap") library(tmap) dev.new(width=10, height=10) tmap_options (check.and.fix = TRUE) Se tiver erros de vetorização dos polígonos, tenta corrigir automaticamente
  • 104. Elementos Desenho tm_polygons Polígonos com bordas tm_fill Polígonos sem bordas tm_borders Bordas dos polígonos tm_symbols Pontos (símbolos) tm_lines Linhas tm_raster Raster tm_text Rótulos tm_basemap Mapa de fundo (ex: OpenStreetMaps) tm_bubbles Símbolos proporcionais tm_iso Isolinhas (curvas de nível) tm_rgb Imagem
  • 105. Acessórios Desenho tm_grid Grade de coordenadas tm_scale_bar Escala tm_compass Seta de norte tm_credits Caixa de texto tm_logo Logo institucional tm_xlab Eixo de longitude tm_ylab Eixo de latitude Mais elementos e informações: help("tmap-element") vignette("tmap-getstarted")
  • 106. dev.new(width=10, height=10) tm_shape(setores_abc_censo) + tm_grid(alpha = 0.2, labels.rot = c(0,90), labels.inside.frame = FALSE) + tm_fill(col = "Renda", style = "quantile", palette = "YlOrBr") + Transparência Rotação do texto (horizontal,vertical) Coordenadas fora do mapa Grade Polígonos sem borda Classificação por quantil Paleta de cores do ColorBrewer
  • 108. Seleção amigável para deficientes visuais de cores (como o daltonismo) https://www.r-graph-gallery.com/38-rcolorbrewers-palettes/
  • 109. dev.new(width=10, height=10) tm_shape(setores_abc_censo) + tm_grid(alpha = 0.2, labels.rot = c(0,90), labels.inside.frame = FALSE) + tm_fill(col = "Renda", style = "quantile", palette = "YlOrBr") + tm_compass(position = c("right", "top")) + tm_scale_bar() + tm_credits("Projeção SIRGAS 2000 n Fonte: Censo IBGE(2010) n Classificacao por quantis") + tm_layout(main.title = "Renda no ABC", main.title.position = "center", outer.margins = 0.05) Transparência Rotação do texto (horizontal,vertical) Coordenadas fora do mapa Grade Polígonos sem borda Classificação por quantil Paleta de cores do ColorBrewer Seta de norte Escala Texto Título
  • 111. dev.new(width=10, height=10) tm_shape(srtm_abc_sirgas2000) + tm_raster(breaks = c(0,200,400,600,800,1000,1200)) + tm_legend(title = "Elevacao (m)") + tm_grid(alpha = 0, labels.rot = c(0,90), labels.inside.frame = FALSE) + tm_shape(mun_abc) + tm_borders(col = "gray30", lwd = 2) + tm_add_legend(type = "line", col = "gray30", labels = "Limites municipais") + tm_shape(hidrografia_abc_sirgas2000) + tm_lines(col = "blue") + tm_add_legend(type = "line", col = "blue", labels = "Hidrografia") + tm_shape(sf_pocos_abc) + tm_symbols(shape = 20, col = "deeppink", scale = 0.2) + tm_add_legend(type = "symbol", shape = 20, col = "deeppink", labels = "Pocos") + tm_shape(mun_abc) + tm_text("NM_MUNICIP", size = 0.5) + tm_compass(position = c("right","top")) + tm_scale_bar() + tm_credits("Projecao SIRGAS 2000 n Fonte: IBGE, NASA") + tm_layout(main.title = "ABC", main.title.position = "center", legend.outside = TRUE) Combinação de camadas
  • 113. Mapas Interativos tmap_mode("view") tm_shape(setores_abc_censo) + tm_fill(col = "Renda", style = "quantile", popup.vars = c("Pessoas", "Renda")) + tm_scale_bar() Para retornar ao modo normal de visualização: tmap_mode(“plot”) Informações ao clicar no mapa Cor Classificação
  • 115. Atividades para a próxima semana •Em grupo: - Fazer um mapa de localização para o trabalho final usando o pacote tmap (submeter código e figura) •Individual: - Leitura de um artigo com análise espacial de dados vetoriais, relacionado ao tema do projeto final (para atividade no início da próxima aula)