Chegou a hora de fixar o nosso aprendizado sobre a aula de mapas!
Para isso, vamos fazer dois exercícios independentes e usar diferentes conjunto de dados do tidytuesday
Exercício 1
Utilizando recursos apresentados em aula, faremos mapas do estado e do município onde nasci: Curitiba - PR.
# Carregando pacotes necessários para o scriptlibrary(geobr)library(ggsn)library(ggplot2)library(sf)library(dplyr)library(tidyverse)library(rgdal)library(wesanderson)library(scales)library(ggspatial)# Carregando conjunto de dados do geobrdatasets <-list_geobr() head(datasets)
Agora vamos criar um mapa do estado do Paraná, destacando Curitiba em meio aos demais municípios
# Plotando mapa do Paraná com destaque para Curitibacwb_pr_sf_plt <-ggplot() +geom_sf(data = muni_PR,fill = my_palette2[1], color = my_palette1[3],size =0.15,alpha =0.75,show.legend =FALSE) +geom_sf(data = muni_cwb_sf,color ="black",fill = my_palette2[4],size =0.15,show.legend =TRUE) +labs(title ="Municípios do Paraná, com destaque para Curitiba (capital) - 2020") +theme_minimal() +theme(title =element_text(size =28),axis.text.y =element_text(size =24),axis.title.y =element_blank(),axis.text.x =element_text(size =24),axis.title.x =element_blank()) +north(muni_PR, symbol =4, location ="bottomright") +scalebar(muni_PR, location ="bottomleft", dist =100, dist_unit ="km",transform =TRUE, model ="WGS84")cwb_pr_sf_plt
É recomendado que locais que não sejam ilhas não sejam representados graficamente de forma isolada. Portanto, agora iremos refazer nossos gráficos destacando o estado do Paraná em meio aos demais estados brasileiros, posteriormente dando algum destaque também ao município de Curitiba.
# Carregando bibliotecaslibrary(png)library(cowplot)# Importando imagem para inserir no gráfico (aqui é necessário conferir o seu diretório)cap <-readPNG("cap-logo.png")# Baixando todos os estados do Brasilestados_BR <-read_state(code_state ="all", year=2020, showProgress =FALSE)
Using year 2020
Problem connecting to data server. Please try again in a few minutes.
# Plotando mapa do Brasil com destaque para o estado do Paranámapa_br <-ggplot() +borders("world", fill ="white", colour ="gray") +geom_sf(data = estados_BR, fill ="white",color ="darkgray", show.legend =FALSE) +geom_sf(data =filter(estados_BR, name_state =="Paraná"),fill ="lightgray", color="darkgray", show.legend =FALSE) +coord_sf(xlim =c(-80,-30), ylim =c(-40,10))+theme_void()mapa_br
Coordinate system already present. Adding new coordinate system, which will
replace the existing one.
cwb_br_plot
Exercício 2
Utilizando dados do meu projeto de doutorado, aqui apresento a distribuição de amostras genéticas coletadas de indivíduos do grupo de espécies Tropidurus spinulosus.
# Determinando limites da distribuição de Tropidurusdistribuicao <-c(min(trops_dados$longitude, na.rm = T)-2,min(trops_dados$latitude, na.rm = T)-2,max(trops_dados$longitude, na.rm = T)+2,max(trops_dados$latitude, na.rm = T)+2)head(distribuicao)
[1] -66.37000 -31.50000 -50.16453 -12.77000
# Carregando dados de mapa mundialmundo <-map_data("world")class(mundo)
[1] "data.frame"
str(mundo)
'data.frame': 99338 obs. of 6 variables:
$ long : num -69.9 -69.9 -69.9 -70 -70.1 ...
$ lat : num 12.5 12.4 12.4 12.5 12.5 ...
$ group : num 1 1 1 1 1 1 1 1 1 1 ...
$ order : int 1 2 3 4 5 6 7 8 9 10 ...
$ region : chr "Aruba" "Aruba" "Aruba" "Aruba" ...
$ subregion: chr NA NA NA NA ...
# Destacando países da América do Sulsa <-c("Brazil", "Argentina", "Chile", "Uruguay", "Paraguay", "Ecuador", "Peru", "Venezuela", "Colombia", "Bolivia", "French Guiana", "Suriname", "Guyana")mapa_sa <-map_data("world", region = sa)# Plotando distribuição das espécies de Tropidurus no mapa da América do Sulbiomas <-read_biomes(year=2019, showProgress =FALSE)head(biomas)
# Combinando os dois plotstropidurus_sa_final <-ggarrange(tropidurus_sa, tropidurus_sa2,common.legend =TRUE,ncol =1)tropidurus_sa_final
Vamos fazer outro mapa de distribuição de Tropidurus, mas agora considerando todas as ecorregiões da América do Sul.
library(ggplot2)library(rgdal)library(ggspatial)library(rnaturalearth)library(sf)library(cowplot)# Carregando arquivo .shp com ecorregiões da América do Suleco_regions <-readOGR("C:/Users/User/OneDrive/manipulacao-visualizacao-dados-r/tm_ecoregions/tm_ecoregions_2017.shp")
OGR data source with driver: ESRI Shapefile
Source: "C:\Users\User\OneDrive\manipulacao-visualizacao-dados-r\tm_ecoregions\tm_ecoregions_2017.shp", layer: "tm_ecoregions_2017"
with 847 features
It has 12 fields
# Combinando os dois plotstropidurus_sa_ecorregions_final <-ggarrange(tropidurus_sa_ecoregions, tropidurus_sa_ecoregions2,ncol =1)tropidurus_sa_ecorregions_final
Agora vamos criar um novo mapa, plotando a distribuição das espécies sobre uma camada de dados ambientais do WorldClim
# Carregando pacoteslibrary(terra)# Baixando dados de altitude no seu diretório# download.file("http://www.dpi.inpe.br/amb_data/AmericaSul/SAmerica_WCLIM.zip", destfile = "SAmerica_WCLIM.zip") # necessário unzipar arquivo de destino# Importando dados de altitudealt_data <-rast('C:/Users/User/OneDrive/manipulacao-visualizacao-dados-r/sa_wclim/alt.asc')class(alt_data)
[1] "SpatRaster"
attr(,"package")
[1] "terra"
plot(alt_data)
# Convertendo dados de altitude em data.framealt_df <-as.data.frame(alt_data, xy = T)range(alt_df$alt)
[1] -70 6269
# Cortando dados de altitude de acordo com limites de distribuição de Tropidurusext <-c(-70,-50, -31,-14) # Para alguma localização específicaalt_tropidurus <-crop(alt_data, ext)plot(alt_tropidurus) # visualizando apenas para ver se deu certo
# Convertendo em data.framealt_tropidurus_df <-as.data.frame(alt_tropidurus, xy = T)head(alt_tropidurus_df)
x y alt
1 -69.97820 -14.01868 4473
2 -69.93653 -14.01868 4508
3 -69.89486 -14.01868 4275
4 -69.85319 -14.01868 4074
5 -69.81152 -14.01868 3093
6 -69.76985 -14.01868 2692