Este documento apresenta uma introdução ao uso de dados espaciais no programa R, abordando tópicos como formatos de dados espaciais, conversão entre formatos, reprojetação de sistemas de coordenadas, junção de dados tabulares e espaciais, visualização de dados espaciais e exportação de mapas. O documento também fornece referências bibliográficas e tutoriais online sobre análise espacial em R.
Dados Espaciais em R: Introdução à importação e visualização
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
Fevereiro, 2019
Santo André - SP
3. Conteúdo
•Principais formatos de dados espaciais em R
•Conversão entre formatos de dados espaciais
•Re-projeção de sistemas de coordenadas
•Junção de dados tabulares e espaciais
•Visualização de dados espaciais
•Layout de mapas
•Exportar do R
4. 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
5. 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
●
Bivand, Roger. S., Pebesma, E. J., Gomez-Rubio, V., &
Pebesma, E. J. (2013). Applied spatial data analysis with R.
New York: Springer.
https://app.box.com/s/uti6bqyiscqpoqu2dsmd06yk5xw5m9qw
Site de apoio: https://asdar-book.org/
– Conteúdo de referência
●
Dados vetoriais e raster (formato sp)
●
Estatística espacial
6. Livros
●
Dorman, Michael. (2014). Learning R for geospatial
analysis. Packt Publishing Ltd.
https://opendata.hcmgis.vn/documents/93/download
(abrir com o navegador de internet e não com Adobe Reader)
– Conteúdo de referência:
●
Noções de R úteis para análise espacial
●
Análise de dados rasters
●
Lansley, Guy; Chesire, James. (2016) An introduction to
spatial data analysis and visualisation in R. Consumer
Data Research Centre.
http://www.spatialanalysisonline.com/An%20Introduction%20to%20Spatial%20Data%20Analysis%20in%20R.pdf
●
Harris, Richard. (2013). An introduction to mapping and
spatial modelling R. University of Bristol.
https://www.researchgate.net/publication/258151270_An_Introduction_to_Mapping_and_Spatial_Modelling_in_R
12. ●
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/aula_3"
●
Criar um novo script de
programação
14. ●
É sempre recomendável verificar
atualizações nos pacotes instalados antes
de começar a trabalhar
15.
16. Atividade
• Abrir a tabela “pocos_abc.csv” no Rstudio
• 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
25. • Grave a sua base de dados (arquivos de extensão *.RData)
save.image("C:/R_CTA/aula_3/aula3.RData")
• Código
26. • Imprimir nosso primeiro mapa
plot(latitude_decimal ~longitude_decimal, data=pocos_abc )
27. • Grave o script de trabalho (arquivo de extensão *.R)
28. 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)
• raster: extensão do sp para dados raster
• stars e spacetime: dados espaço-temporais
• stplanr e shp2graph: análise de redes e rotas
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
30. 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
• rgbif: importação do Global Biodiversity Information
Facility (GBIF)
• ows4R: geoservicos de portais WebGis
(em desenvolvimento)
CRAN Task View: Analysis of Spatial Data https://cran.r-project.org/web/views/Spatial.html
31. 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)
32. 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
34. Projeções
• Site oficial: http://www.epsg-registry.org/
• Pegar código Proj4:
http://spatialreference.org
• Pacote rgdal
• Ou copiando de uma outra base projetada
37. Selecione a opção Proj4
+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs
38. Trabalhando com projeções no R
install.packages("rgdal")
library(rgdal)
EPSG <- make_EPSG()
View(EPSG)
National Center for Ecological Analysis and Synthesis, University of Califórnia, Santa
Barbara, https://www.nceas.ucsb.edu/scicomp/recipes/projections
39. ●
Como exemplo procure pela projeção SIRGAS 2000
●
A função “grep” procura casos na tabela que tenham
a expressão desejada
EPSG[grep("SIRGAS 2000", EPSG$note, ignore.case=TRUE), 1:2]
National Center for Ecological Analysis and Synthesis, University of Califórnia, Santa
Barbara, https://www.nceas.ucsb.edu/scicomp/recipes/projections
40. ● Recorte a informação PROJ.4 para um código EPSG
subset(EPSG, code==4674)
sirgas2000 <- "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs"
ou
sirgas2000 <- as.character(EPSG[321, 3])
● Atribua a projeção a uma variável
46. • 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
47. • 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)
48. Atividade
●
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")
49. st_crs(hidrografia_abc)
●
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
ou
hidrografia_abc_sirgas2000<-st_transform(hidrografia_abc, sirgas2000)
51. 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_censitario
s__divisoes_intramunicipais/censo_2010/setores_censitarios_shp/sp/sp_setores_censitarios.zip
setores_sp <- read_sf("35SEE250GC_SIR.shp")
View(setores_sp)
52. 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
56. ●
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
57. 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"))
60. 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
61. 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
CoordenadasVariável
Não desenhar
bordas dos
polígonos
Método de
classificação
62. 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
●
jenks: quebras naturais
e outros
63. Pacote raster
●
Extensão das classes sp
●
Permite trabalhar com arquivos maiores e
de forma mais eficiente
●
RasterLayer → uma camada raster
●
RasterBrick → várias camadas em um
arquivo
●
RasterStack → tabela apontando para
diversas camadas raster
66. Pacotes para visualização de
dados espaciais
• sp, sf, raster: 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
67. 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
69. 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 “raster”, usará a
função plot( ) desse
pacote para as
camadas raster
77. 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
density
Densidade de
hashuras
angle Ângulo de hashuras
79. ●
Adicionando escala com a função scalebar( ) do
pacote raster
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
Clique
aqui
80. ●
Adicionando rosa dos ventos
install.packages("prettymapr")
library(prettymapr)
addnortharrow("bottomright", scale = 0.5)
tamanhoposição
O pacote prettymapr
também possui opções
avançadas para adicionar
escalas gráficas
85. 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
86. 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")