Aula da disciplina de Uso de dados espaciais em estudos ambientais, Universidade Federal do ABC (UFABC), março de 2020.
Gravação de aula disponível em: https://youtu.be/ap7IcO2Icgs
Base de dados disponíveis em: https://app.box.com/s/qf2hsg4b2uontvrawbk3el4fg9cxjufg
1. Operações com dados
espacias (vetor) 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, 2020
São Bernardo do Campo - SP
2. Conceitos anteriores
Noções de cartografia
Comandos plot, join,
manipulação de vetores e tabelas
Dados vetoriais (formato sf)
4. É sempre recomendável verificar
atualizações nos pacotes instalados antes
de começar a trabalhar
Abrir o R Studio
5. Materiais de aula disponíveis em:
Baixar os dados em:
D:/R_CTA/aula4/
●
Pasta de nome curto, perto da raiz, sem
caracteres especiais, nem espaços
●
Não criar pasta em “Área de trabalho”,
“Meus documentos”, etc...
https://app.box.com/s/qf2hsg4b2uontvrawbk3el4fg9cxjufg
10. Pacotes a serem utilizados
sf Formato espacial sf
units Atribuição e conversão de unidades de medida
xml2 Visualização de tabelas xml2
tidyr Manipulação de dados em tabelas
cleangeo Correção topológica
rmapshaper Simplificação e sobreposição de camadas
spatialEco Amostragem e métricas de paisagem
install.packages( ) Instala
library( ) Carrega na memória
11. Conteúdo
●
Áreas e distâncias
●
Operações com atributos
●
Agregação
●
Correção topológica
●
Simplificação de geometrias
●
Buffer e seleção espacial
●
Sobreposição de camadas (overlay)
●
Amostragem
●
União espacial (spatial join)
12. 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/332865
022_Analise_espacial_com_R
13. 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
14. Livros
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/uti6bqyiscqp
oqu2dsmd06yk5xw5m9qw
Site de apoio:
https://asdar-book.org/
●
Conteúdo de referência
– Dados vetoriais e raster
(formato sp)
– Estatística espacial
17. Padronizar a projeção cartográfica
st_crs(pocos_abc)
Coordinate Reference System:
No EPSG code
proj4string: "+proj=utm +zone=23 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"
st_crs(pocos_abc)<-31983
st_crs(hidrografia_abc)<-31983
st_crs(setores_abc_censo)<-31983
st_crs(contaminadas_abc)<-31983
Os dados estão em SIRGAS 2000 UTM 23S (EPSG 31983)
Vamos usar projeção UTM, mais adequada para cáculos de
área e distância
19. Calcular áreas e comprimentos
setores_abc_censo$area_m2<-st_area(setores_abc_censo)
View(setores_abc_censo)
hidrografia_abc$comprimento_m<-st_length(hidrografia_abc)
View(hidrografia_abc)
20. Cálculo de valores dos campos
e unidades de medida
setores_abc_censo$area_ha <- setores_abc_censo$area_m2/10000
View(setores_abc_censo)
setores_abc_censo$area_ha <- set_units(setores_abc_censo$area_ha, NULL)
View(setores_abc_censo)
21. Cálculo de valores dos campos
e unidades de medida
View(valid_udunits())
22. Cálculo de valores dos campos
e unidades de medida
setores_abc_censo$area_ha <-
set_units(setores_abc_censo$area_ha, "hectare")
View(setores_abc_censo)
23. Cálculo de valores dos campos
e unidades de medida
plot(setores_abc_censo["area_ha"], main="Area(ha)",
axes = TRUE, border = NA, cex.axis=0.5,
breaks = "fisher")
24. Atividade 1
A) Criar uma variável de densidade
demográfica, denominada
"pessoas_km2" para cada setor
censitário
B) Plotar um mapa da densidade
demográfica
Obs: submeta o código e a figura
gerados
25. Lidando com valores nulos (NA)
View(setores_abc_censo)
Ordenar por ordem crescente
de pessoas
Setores zerados Setores nulos
Censo 2010
27. O que fazer com os
valores nulos e zerados?
●
Por que eles estão nulos ou zerados?
– Áreas desertas
– Falhas de preenchimento (interpolar?)
●
Faz sentido analisar esses elementos?
– Focar o estudo em áreas não desertas
– Trabalhar com amostras e não com universo dos dados
●
Os modelos aceitam dados faltantes ou zerados?
– Substituir por zero para agregar em áreas maiores
– Descartar para análise de vizinhança
– Dados zerados podem atrapalhar regressões
31. Agregação de setores para bairros
f1 <- function(x) sum(x)
bairros_abc_censo <-
aggregate(setores_abc_censo["Pessoas_sem_na"],
by=list(setores_abc_censo$CD_GEOCODB),
FUN = f1)
View(bairros_abc_censo)
32. Agregação de setores para bairros
plot(st_geometry(setores_abc_censo))
plot(st_geometry(bairros_abc_censo),
border="blue", add=T)
38. Correção topológica de
geometrias inválidas
bairros_clean <- clgeo_Clean(bairros_sp)
clgeo_IsValid(bairros_clean)
bairros_sf <- st_as_sf(bairros_clean)
plot(st_geometry(bairros_sf))
[1] TRUE
Converte do
formato sp para sf
39. Agregar ponderando pela área
setores_abc_censo$pessoas_km2_sem_na <-
replace_na(setores_abc_censo$pessoas_km2, 0)
bairros_abc_censo_densidade <-
st_interpolate_aw(setores_abc_censo["pessoas_k
m2_sem_na"], to = bairros_sf, extensive = FALSE)
View(bairros_abc_censo_densidade)
Variável a agregar
Camada com novas
geometrias
FALSE: agrega pela média
(ex: densidade)
TRUE: agrega pela soma
(ex: população)
41. Agregar ponderando pela área
setores_abc_censo$domicilios_sem_na <-
replace_na(setores_abc_censo$Domicilios,0)
bairros_abc_censo_domicilios <-
st_interpolate_aw(setores_abc_censo["domicilios_
sem_na"], to = bairros_sf, extensive = TRUE)
View(bairros_abc_censo_domicilios)
Variável a agregar
Camada com novas
geometrias
FALSE: agrega pela média
(ex: densidade)
TRUE: agrega pela soma
(ex: população)
43. Atividade 2
A) Agregar a variável "Domicilios" por
município (identificado pelo atributo
CD_GEOCODM) e plotar um mapa pelo
método de intervalos "pretty"
B) Fazer a agregação ponderada pela
area para porcentagem de cobertura de
rede de esgoto ("rede_esg") pela área do
município e plotar um mapa pelo método
de intervalos iguais
44. Simplificação cartográfica
Cecconi, A. and Galanda, M., 2002, December. Adaptive zooming in web
cartography. In Computer Graphics Forum (Vol. 21, No. 4, pp. 787-799).
Oxford, UK: Blackwell Publishing, Inc.
45. Escala -> Resolução
Escala
Resolução horizontal aproximada (m)
Mapas
Impressos
Interpretação
Digital
Objeto Mínimo
Detectável
1:1.000.000 200 500 1.000
1:450.000 90 225 450
1:250.000 50 125 250
1:100.000 30 50 100
1:50.000 10 25 50
1:25.000 5 12,5 25
1:10.000 2 5 10
IMHOF, E. Cartographic relief presentation. ESRI, 2007.
TOBLER, Waldo. 1987. “Measuring Spatial Resolution”, Proceedings, Land Resources Information Systems Conference, Beijing, pp. 12-16.
TOBLER, Waldo. 1988. “Resolution, Resampling, and All That”, pp. 129-137 of H. Mounsey and R. Tomlinson, eds., Building Data Bases for Global
Science, London, Taylor and Francis
48. Atividade 3
Simplificar a camada agregada
por municípios para escala
1:1.000.000.
Plotar dois mapas, lado a lado,
para comparar a camada original
com a simplificada
53. Buffer
(zona de amortecimento)
contaminadas_buff<-
st_buffer(contaminadas_abc, 250)
Raio do
buffer
Campbell, Jonathan E., and Michael Shin. Essentials of geographic information systems. Saylor books, 2011
https://saylordotorg.github.io/text_essentials-of-geographic-information-systems/s11-01-single-layer-analysis.html
62. Envoltória (convex hull)
zona_pocos <-
st_convex_hull(st_union(pocos_contaminados))
envoltória agrupa
todos os
elementos
plot(st_geometry(zona_pocos), border="purple",
lwd=3, add=T)
63. União de geometrias
abc <- st_union(municipios_simplificado_ms)
plot(st_geometry(abc), add=T)
64. Atividade 5
A) Fazer um buffer com a áreas de preservação
permanente (APP) de 30 metros dos cursos de
água
B) Criar uma camada com os trechos de APPs
potencialmente contaminados, que estão a 100
metros de áreas contaminadas
C) Montar um mapa com as APPs totais em
fundo verde e borda verde, e APPs
potencialmente contaminadas com fundo
vermelho e borda vermelha
D) Fazer um polígono envolvente das APPs
potencialmente contaminadas, e sobrepor ao
mapa gerado na etapa anterior (C)
74. Diferença de camadas
Campbell, Jonathan E., and Michael Shin. Essentials of geographic information systems. Saylor books, 2011
https://saylordotorg.github.io/text_essentials-of-geographic-information-systems/s11-geospatial-analysis-i-vector-o.html
76. Revendo os comandos
Lovelace, Robin; Nowosad, J.; Muenchow, J. Geocomputation with R. CRC Press. 2019.
https://geocompr.robinlovelace.net/geometric-operations.html
77. Anexar camadas
setores_todos <- rbind(setores_tamanduatei,
setores_sem_tamanduatei)
plot(st_geometry(setores_todos))
Junta linhas (objetos),
mas colunas devem ser iguais
78. Atividade 6
A) Carregue a camada da subbacia do rio dos
Couros (bacia_couros) no geopackage “abc” e
atribua a projeção Sirgas 2000 UTM 23S (EPSG
31983)
B) Apague na camada da bacia do rio
Tamanduateí, a área correspondente à sub-bacia
do rio dos Couros
C) Junte a camada construída em B com a
subbacia do rio dos Couros, em uma única
camada sf (dica: as colunas devem ser iguais)
D) Faça um mapa com a bacia do rio Tamanduateí
junto com a sub-bacia do Rio dos Couros
79. Pontos em Polígonos
Centróide = centro geométrico,
baricentro,
centro de gravidade,
centro de massa
Média geométrica de
todos os pontos
(ou vértices) em um
elemento
https://en.wikipedia.org/wiki/Centroid#/media/File:Triangle.Centroid.svg
80. Pontos em Polígonos
Centróide
Média geométrica de todos os pontos (ou
vértices) em um elemento
http://93.187.166.52:8081/opengeo-docs/processing/processes/vector/centroid.html
81. Pontos em Polígonos
Média geométrica de todos os pontos
(ou vértices) em um elemento
https://gis.stackexchange.com/questions/22739/finding-center-of-geometry-of-object
88. Atividade 7
Copiar as variáveis com as
coordenadas X e Y para a
camada sf
"ponto_no_setor"
89. União espacial (spatial join)
York, R. Spatial Joins (Chapter 6). 2018. https://slideplayer.com/slide/12316942/
90. União espacial (spatial join)
contaminacao_social <- st_join(contaminadas_abc,
setores_abc_censo, join = st_intersects, left=T)
View(contaminacao_social)
Elemento que vai
receber atributos
Elemento que cede
atributos
Consulta espacial T = Left Join
(mantém todos
elementos)
F = Inner join
(mantém apenas
elementos recebem
atributos)
91. Atividade 8
A) Fazer um inner join
(opção left=FALSE), para trazer as
informações de contaminação apenas
para os poços que estão dentro do
buffer de 250m das áreas contaminadas
B) Plotar os poços totais do ABC em
preto, sobrepondo os poços em que foi
feito o inner join em vermelho
97. Amostragem estratificada
espacialmente
library(spatialEco)
mun_sp <- as(mun_abc,"Spatial")
estratificado_sp <-
sample.poly(mun_sp, n=10, type="random")
estratificado_sf <- st_as_sf(estratificado_sp)
Amostras
por polígono
Tipo de
amostragem
Converte para
formato sp
Converte para
formato sf
99. Atividade 10
Faça a amostragem
estratificada espacialmente
no formato hexagonal e
compare com a
estratificada aleatória
100. Para a próxima aula:
Leitura dos capítulos 7 e 8 do livro
CÂMARA, Gilberto; DAVIS, Clodoveu;
MONTEIRO, Antônio Miguel Vieira.
Introdução à ciência da geoinformação. 2001.
http://www.dpi.inpe.br/gilberto/livro/introd/