SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our User Agreement and Privacy Policy.
SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our Privacy Policy and User Agreement for details.
Successfully reported this slideshow.
Activate your 14 day free trial to unlock unlimited reading.
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
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
9.
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
10.
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)
11.
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
12.
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
13.
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
15.
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
17.
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)
18.
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)
19.
Cálculo de valores dos campos
e unidades de medida
View(valid_udunits())
20.
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)
21.
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")
22.
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
23.
Lidando com valores nulos (NA)
View(setores_abc_censo)
Ordenar por ordem crescente
de pessoas
Setores zerados Setores nulos
Censo 2010
24.
plot(setores_abc_censo["Pessoas"])
Lidando com valores nulos (NA)
25.
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
29.
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)
30.
Agregação de setores para bairros
plot(st_geometry(setores_abc_censo))
plot(st_geometry(bairros_abc_censo),
border="blue", add=T)
31.
Agregação de setores para bairros
plot(bairros_abc_censo["Pessoas_sem_na"])
32.
https://cran.r-project.org/web/packages/sf/vignettes/sf1.html
Correção topológica de
geometrias inválidas
Linha com
auto-interseção
Polígono com
auto-interseção
Polígono com
”ponta”
36.
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
37.
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)
38.
Agregar ponderando pela área
plot(bairros_abc_censo_densidade["pessoas_km2_sem_na"])
39.
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)
40.
Agregar ponderando pela área
plot(bairros_abc_censo_domicilios["domicilios_sem_na"])
41.
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
42.
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.
43.
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
44.
Simplificação cartográfica
hidrografia_simplificada <-
st_simplify(hidrografia_abc, dTolerance = 125,
preserveTopology = TRUE)
Distância mínima
entre vértices
Manter conexão entre elementos 125 metros =
resolução para
escala 1:250.000
45.
par(mfrow=c(1,2))
plot(st_geometry(hidrografia_abc))
plot(st_geometry(hidrografia_simplificada))
par(mfrow=c(1,1))
Simplificação cartográfica
2 mapas lado a lado (1 linha e 2 colunas)
Retorna para 1 mapa por tela
46.
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
48.
par(mfrow=c(1,3))
plot(st_geometry(municipios_abc_censo))
plot(st_geometry(municipios_simplificado))
plot(st_geometry(municipios_simplificado_ms))
par(mfrow=c(1,1))
Simplificação cartográfica
3 mapas lado a lado (1 linha e 3 colunas)
Retorna para 1 mapa por tela
49.
Atividade 4
Analisar a correção
topológica da camada
municipios_simplificado_ms,
e corrigir, se necessário
50.
Análise de distância
distancia_pocos_contaminacao <-
st_distance(pocos_abc,contaminadas_abc)
View(distancia_pocos_contaminacao)
Áreas contaminadas
Poços
Grupos de 50 colunas
51.
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
56.
Consultas topológicas
st_intersects()
st_disjoint()
st_touches()
st_crosses()
st_within()
st_contains()
st_contains_properly()
st_overlaps()
st_equals()
st_covers()
st_covered_by()
st_equals_exact(x, y, par)
st_is_within_distance(x, y, dist)
Está no interior mas não toca as bordas
Quase igual, com tolerância
Se sobrepõe ou encosta de alguma maneira
57.
Seleção espacial
pocos_contaminacao <-
st_intersects(pocos_abc, contaminadas_buff)
View(pocos_contaminacao) Número do buffer
de contaminação
58.
Seleção espacial
contaminacao <-
st_is_within_distance(contaminadas_abc, pocos_abc,
dist=250)
View(contaminacao) Número do poço
a 250 metros
60.
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)
61.
União de geometrias
abc <- st_union(municipios_simplificado_ms)
plot(st_geometry(abc), add=T)
62.
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)
70.
Interseção de camadas
View(setores_tamanduatei)
Atributos dos
setores censitários
Atributos da
bacia
71.
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
73.
Revendo os comandos
Lovelace, Robin; Nowosad, J.; Muenchow, J. Geocomputation with R. CRC Press. 2019.
https://geocompr.robinlovelace.net/geometric-operations.html
74.
Anexar camadas
setores_todos <- rbind(setores_tamanduatei,
setores_sem_tamanduatei)
plot(st_geometry(setores_todos))
Junta linhas (objetos),
mas colunas devem ser iguais
75.
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
76.
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
77.
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
78.
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
83.
Ponto interno ao polígono
st_point_on_surface st_centroid
http://www.h2gis.org/docs/dev/ST_PointOnSurface/
84.
Ponto sobre polígono
ponto_no_setor<-
st_point_on_surface(setores_abc_censo)
plot(st_geometry(setores_abc_censo))
plot(st_geometry(ponto_no_setor), cex=0.4,
col="red", add=TRUE)
85.
Atividade 7
Copiar as variáveis com as
coordenadas X e Y para a
camada sf
"ponto_no_setor"
86.
União espacial (spatial join)
York, R. Spatial Joins (Chapter 6). 2018. https://slideplayer.com/slide/12316942/
87.
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)
88.
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
89.
Ronald Fisher
William Gosset
“Student”
Hurlbert, S.H., 1984. Pseudoreplication and the design of ecological field experiments. Ecological monographs, 54(2), pp.187-211.
Amostragem
90.
Amostragem
mun_abc <- read_sf("abc.gpkg", layer="mun_abc")
st_crs(mun_abc)<-31983
aleatorio <- st_sample(mun_abc, 20, type = "random")
plot(st_geometry(mun_abc))
plot(st_geometry(aleatorio), pch=20, col="red", add=T)
Amostras
Tipo de
amostragem
91.
Amostragem
hexagonal <- st_sample(mun_abc, 20,
type = "hexagonal")
plot(st_geometry(mun_abc))
plot(st_geometry(hexagonal), pch=20,
col="blue", add=T)
Amostras
Tipo de
amostragem
92.
Atividade 9
Faça 2 mapas de 200
amostragens, no formato
aleatório e hexagonal
93.
Ronald Fisher
William Gosset
“Student”
Hurlbert, S.H., 1984. Pseudoreplication and the design of ecological field experiments. Ecological monographs, 54(2), pp.187-211.
Amostragem
94.
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
96.
Atividade 10
Faça a amostragem
estratificada espacialmente
no formato hexagonal e
compare com a
estratificada aleatória
97.
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/