Economia Regional: Mapas de coeficiente de especialização em R
Licença
This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
Citação
Sugestão de citação: FIGUEIREDO, Adriano Marcos Rodrigues. Economia Regional: Mapas de Coeficiente de Especialização em R. Campo Grande-MS,Brasil: RStudio/Rpubs, 2020. Disponível em http://rpubs.com/amrofi/Regional_Economics_CEmaps e https://adrianofigueiredo.netlify.app/post/regional_economics_cemaps/.
Script para reprodução (se utilizar, citar como acima)
Download 2020-05-22-Regional_Economics_CEmaps.RmdIntrodução
Para realizar seu mapa em R, inicialmente o leitor deve baixar os programas e pacotes necessários ao projeto. Neste caso, sugere-se que utilize o RStudio e o R atualizados, a partir de: http://cran.r-project.org/bin/windows/base/ e https://www.rstudio.com/products/rstudio/download3/. Quando esta revisão foi feita, a versão do RStudio era a RStudio Desktop 1.2.5042 e do R-4.0 for Windows (32/64 bit).
Primeiro instale o R e posteriormente o RStudio, de modo que o segundo reconheça automaticamente o primeiro. Se tudo estiver perfeito, a tela inicial do RStudio mostrará corretamente a versão do R.
Mapas em R
Agora a meta é gerar um mapa simples em R. Para tanto, primeiro define-se a malha municipal desejada. Para o presente caso, utilizam-se as malhas digitais do IBGE de http://mapas.ibge.gov.br/bases-e-referenciais/bases-cartograficas/malhas-digitais. Primeiro faz-se o download do arquivo zip completo para Mato Grosso do Sul (MS). A partir de ftp://geoftp.ibge.gov.br/organizacao_do_territorio/malhas_territoriais/malhas_municipais/municipio_2015/UFs/MS/MS.zip, o arquivo foi descompactado no mesmo diretorio de trabalho do projeto R, numa pasta de nome MS. Neste arquivo zip, existem arquivos referentes a unidade da federação 50 para Mato Grosso do Sul (50UE), assim como para a mesorregião (50ME), microrregião (50MI) e municípios (50MU). A referência E250GC_SIR diz respeito à escala (1:250.000) e origem georeferenciada dos mapas (Datum SIRGAS).
Pacotes necessários
Agora deve-se instalar os pacotes úteis para fazer os mapas. O R vem com alguns pacotes automaticamente instalados, mas outros pacotes púbicos devem ser chamados para realizar operações específicas. Um deles é o pacote rgdal.
library(rgdal)
library(maptools)
library(readxl)
library(spdep)
library(ctv)
library(sf)
O pacote rgdal já fornecerá a primeira função prática para fazer o mapa. Usa-se aqui a função readOGR e indica-se o nome do arquivo shape a ser buscado, neste caso, na pasta MS e o arquivo de nome 50MUE250GC_SIR. Neste caso, a base de municípios (indicado por MU). A saída (plot) mostra o mapa e as características básicas (79 municípios e 2 campos - nome e código do município).
MS.mu <- readOGR("arquivos", "50MUE250GC_SIR")
OGR data source with driver: ESRI Shapefile
Source: "C:\Users\amrof\Documents\blogdown\content\post\arquivos", layer: "50MUE250GC_SIR"
with 79 features
It has 2 fields
plot(MS.mu)
Agora propõe-se colorir o mapa municipal com cores inserindo o valor do Coeficiente de Especialização - CE. Para tanto, será necessário o pacote sf. Colocaremos a saída dput() dos dados do CE calculado para os 79 municipios e 87 divisões CNAE, a partir dos dados de empregos do MTE/RAIS.
# pacotes chamados anteriormente
library(rgdal)
library(maptools)
library(readxl)
library(spdep)
library(ctv)
library(sf)
emprego_sf <- st_read("arquivos/50MUE250GC_SIR.shp")
Reading layer `50MUE250GC_SIR' from data source `C:\Users\amrof\Documents\blogdown\content\post\arquivos\50MUE250GC_SIR.shp' using driver `ESRI Shapefile'
Simple feature collection with 79 features and 2 fields
geometry type: POLYGON
dimension: XY
bbox: xmin: -58.16851 ymin: -24.06858 xmax: -50.92291 ymax: -17.16635
geographic CRS: SIRGAS 2000
# ou para ver apenas o contorno
plot(st_geometry(emprego_sf))
Agora usarei o comando merge
para juntar os dados de CE ao objeto emprego_sf
criado no último chunk (bloco de scripts).
ce_2016 <- structure(list(codmun = c("5000203", "5000252", "5000609", "5000708",
"5000807", "5000856", "5000906", "5001003", "5001102", "5001243", "5001508",
"5001904", "5002001", "5002100", "5002159", "5002209", "5002308", "5002407",
"5002605", "5002704", "5002803", "5002902", "5002951", "5003108", "5003157",
"5003207", "5003256", "5003306", "5003454", "5003488", "5003504", "5003702",
"5003751", "5003801", "5003900", "5004007", "5004106", "5004304", "5004403",
"5004502", "5004601", "5004700", "5004809", "5004908", "5005004", "5005103",
"5005152", "5005202", "5005251", "5005400", "5005608", "5005681", "5005707",
"5005806", "5006002", "5006200", "5006259", "5006275", "5006309", "5006358",
"5006408", "5006606", "5006903", "5007109", "5007208", "5007307", "5007406",
"5007505", "5007554", "5007695", "5007802", "5007703", "5007901", "5007935",
"5007950", "5007976", "5008008", "5008305", "5008404"), nomemun = c("Água Clara - MS",
"Alcinópolis - MS", "Amambai - MS", "Anastácio - MS", "Anaurilândia - MS", "Angélica - MS",
"Antônio João - MS", "Aparecida do Taboado - MS", "Aquidauana - MS", "Aral Moreira - MS",
"Bandeirantes - MS", "Bataguassu - MS", "Batayporã - MS", "Bela Vista - MS",
"Bodoquena - MS", "Bonito - MS", "Brasilândia - MS", "Caarapó - MS", "Camapuã - MS",
"Campo Grande - MS", "Caracol - MS", "Cassilândia - MS", "Chapadão do Sul - MS",
"Corguinho - MS", "Coronel Sapucaia - MS", "Corumbá - MS", "Costa Rica - MS",
"Coxim - MS", "Deodápolis - MS", "Dois Irmãos do Buriti - MS", "Douradina - MS",
"Dourados - MS", "Eldorado - MS", "Fátima do Sul - MS", "Figueirão - MS", "Glória de Dourados - MS",
"Guia Lopes da Laguna - MS", "Iguatemi - MS", "Inocência - MS", "Itaporã - MS",
"Itaquiraí - MS", "Ivinhema - MS", "Japorã - MS", "Jaraguari - MS", "Jardim - MS",
"Jateí - MS", "Juti - MS", "Ladário - MS", "Laguna Carapã - MS", "Maracaju - MS",
"Miranda - MS", "Mundo Novo - MS", "Naviraí - MS", "Nioaque - MS", "Nova Alvorada do Sul - MS",
"Nova Andradina - MS", "Novo Horizonte do Sul - MS", "Paraíso das Águas - MS",
"Paranaíba - MS", "Paranhos - MS", "Pedro Gomes - MS", "Ponta Porã - MS", "Porto Murtinho - MS",
"Ribas do Rio Pardo - MS", "Rio Brilhante - MS", "Rio Negro - MS", "Rio Verde de Mato Grosso - MS",
"Rochedo - MS", "Santa Rita do Pardo - MS", "São Gabriel do Oeste - MS", "Selvíria - MS",
"Sete Quedas - MS", "Sidrolândia - MS", "Sonora - MS", "Tacuru - MS", "Taquarussu - MS",
"Terenos - MS", "Três Lagoas - MS", "Vicentina - MS"), CE_2016 = c(0.5772, 0.5627,
0.2312, 0.4615, 0.4398, 0.7682, 0.5212, 0.4393, 0.2811, 0.4744, 0.4282, 0.4141,
0.3852, 0.3901, 0.4941, 0.4008, 0.4639, 0.3579, 0.3499, 0.19, 0.5811, 0.2847,
0.3367, 0.5722, 0.4153, 0.2426, 0.4267, 0.2797, 0.3323, 0.4934, 0.4316, 0.2656,
0.2798, 0.3251, 0.564, 0.3027, 0.3983, 0.3286, 0.4468, 0.3832, 0.4548, 0.2763,
0.6395, 0.5064, 0.2479, 0.6099, 0.4653, 0.6171, 0.5526, 0.2785, 0.3785, 0.3125,
0.2198, 0.431, 0.449, 0.2381, 0.3679, 0.5354, 0.3131, 0.4944, 0.4372, 0.1949,
0.5528, 0.5936, 0.4358, 0.4569, 0.3518, 0.5224, 0.5895, 0.344, 0.5973, 0.3571,
0.3364, 0.498, 0.4703, 0.6074, 0.4552, 0.3702, 0.5127)), class = c("tbl_df",
"tbl", "data.frame"), row.names = c(NA, -79L))
Aos leitores mais curiosos, uma boa leitura está em https://r-spatial.github.io/sf/articles/sf5.html.
emprego_sf_merged <- merge(emprego_sf, ce_2016, by.x = "CD_GEOCMU", by.y = "codmun")
names(emprego_sf_merged)
[1] "CD_GEOCMU" "NM_MUNICIP" "nomemun" "CE_2016" "geometry"
plot(emprego_sf_merged[, "CE_2016"], border = "red", axes = TRUE, main = "CE 2016 MS, 79obs",
breaks = c(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1))
Ou fazendo igual ao mapa de Figueiredo (2020), ou associar o objeto sf
com o ggplot2
::
library(ggplot2)
library("ggspatial")
ggplot() + geom_sf(data = emprego_sf_merged, aes(fill = CE_2016), color = NA, size = 0.15) +
labs(title = "CE 2016 dos Municípios de MS", caption = "Fonte: Elaboração própria",
size = 8) + scale_fill_distiller(palette = "RdGy", limits = c(0.1, 0.8),
name = "CE_2016") + theme_minimal() + annotation_north_arrow(location = "bl",
which_north = "true", pad_x = unit(0.65, "in"), pad_y = unit(0.3, "in"), style = north_arrow_fancy_orienteering) +
annotation_scale(location = "bl", width_hint = 0.3)
Ou usando o mapview
conforme Pebesma (2018) e https://r-spatial.github.io/sf/articles/sf5.html:
library(mapview)
library(sf)
library(mapview)
library(leaflet)
library(leafem)
library(leaflet.extras)
library(htmlwidgets)
library(dplyr)
m <- emprego_sf_merged %>% mapview::mapview(zcol = "CE_2016")
# mapshot(m, url = paste0(getwd(), '/map.html'))
m
O chunk acima gerou um arquivo html que foi colocado externamente para vocês aqui.
library(tmap)
library(sf)
map_emprego = qtm(emprego_sf_merged, fill = "CE_2016")
tmap_mode(mode = c("plot")) # 'view' para mapa dinamico
map_emprego + tm_compass(type = "8star", position = c("left", "top")) + tm_scale_bar(breaks = c(0,
100, 200), text.size = 1)
Referências
ENGEL, Claudia A. Using Spatial Data with R. Disponível em: https://cengel.github.io/R-spatial/. 11 Feb, 2019.
FIGUEIREDO, Adriano Marcos Rodrigues. Economia Regional: polos, diversidade e especialização em R. Campo Grande-MS,Brasil: RStudio/Rpubs, 2019. Disponível em http://rpubs.com/amrofi/Regional_Economics_poles_diversity.
FIGUEIREDO, Adriano Marcos Rodrigues. Economia Regional em R: Indicadores de análise de especialização regional - QL, CE, KSI, RDI, DIV, UBIQ. Campo Grande-MS,Brasil: RStudio/Rpubs, 2020. Disponível em http://rpubs.com/amrofi/regional_parte_2 e https://adrianofigueiredo.netlify.app/post/economia-regional-em-r-indicadores-de-analise-2/.
PEBESMA, E., 2018. Simple Features for R: Standardized Support for Spatial Vector Data. The R Journal 10 (1), 439-446, https://doi.org/10.32614/RJ-2018-009.