Capítulo 9 Produção de Mapas

Felipe Micail da Silva Smolski

Este capítulo almeja levantar o ferra mental básico para a construção de mapas simples no RStudio. Ainda, interessa demonstrar os comandos para a manipulação destes tipos de bases de dados, inclusive possibilitando a junção de indicadores de municípios, regiões e países. Estes dados podem ser advindos de institutos de pesquisas ou mesmo dados criados pelo estudante em suas análises.

Os pacotes utilizados neste capítulo são: tmap, maptools, tmap e rgdal.

9.1 Introdução aos shapes

Existem vários softwares específicos para a produção de mapas, sejam produtos comerciais ou no formato software livre. A grande vantagem da utilização do R para criação de mapas é a utilização dos shapes disponibilizadas para vários programas.

Denominam-se shapes os arquivos que contém os elementos gráficos, em formato de ponto, linhas ou polígonos, contendo coordenadas geográficas para um elemento para que possa ser transformado em mapa. O shape é formado por três arquivos principais individuais que armazenam os dados: o arquivo “.shp”, “.shx” e “.dbf”. Além disto, podem ser acompanhados de arquivos “.prj”, o “.sbn” e o “.sbx” (Semace 2018).

Os shapefiles podem ser obtidos de várias fontes oficiais, como institutos de pesquisa e universidades. A seguir alguns links para download:

No exemplo abaixo, é utilizado um shape proveniente do IBGE representando os municípios do Estado do Rio Grande do Sul (ftp://geoftp.ibge.gov.br/organizacao_do_territorio/malhas_territoriais/malhas_municipais/municipio_2017/UFs/RS/rs_municipios.zip). Ao shape denominado municipios_IBGE será dado o nome de “MAPARS”, com a utilização do pacote raster para carregar a malha:

O arquivo MAPARS se constitui em um SpatialPolygonsDataFrame, objeto complexo que carrega informações dos dados (MAPARS@data) e demais informações com as coordenadas para criarem-se os mapas no R. Utilizando a função summary podem ser observados alguns dos os itens que compõe este objeto, o nome do municípios (NM_MUNICIP) o seu código IBGE (CD_GEOCMU), lembrando que cada município terá um código de IBGE diferente, informação extremamente útil como será visto posteriormente ao efetuar a manipulação da base de dados e a inclusão de informações provenientes de outras bases. Abaixo efetua-se também a padronização do código IBGE (comando substr), mantendo os 6 primeiros dígitos, sendo necessária para que posteriormente sejam agregados outros dados.

[1] "SpatialPolygonsDataFrame"
attr(,"package")
[1] "sp"
Object of class SpatialPolygonsDataFrame
Coordinates:
     min    max
x -57.65 -49.69
y -33.75 -27.08
Is projected: FALSE 
proj4string : [+proj=longlat +ellps=GRS80 +no_defs]
Data attributes:
  NM_MUNICIP         CD_GEOCMU        
 Length:497         Length:497        
 Class :character   Class :character  
 Mode  :character   Mode  :character  
   NM_MUNICIP CD_GEOCMU
0     ACEGUÃ\201    430003
1 Ã\201GUA SANTA    430005
2       AGUDO    430010
3   AJURICABA    430020
4     ALECRIM    430030
5    ALEGRETE    430040

Note novamente que este objeto pertence a uma classe diferente (SpatialPolygonsDataFrame), indicando que é constituída especialmente de um conjunto de polígonos para a construção de mapas conjuntamente com o carregamento de dados.

A seguir, a função plot() pode ser utilizada para a plotagem da malha carregada:

Um exercício simples é a filtragem dos dados do shape pelo nome do município, obtendo assim apenas o mapa da(s) unidade(s) escolhida(s):

9.2 Pacote tmap

O pacote tmap (Tennekes 2018) é utilizado para gerar mapas temáticos com relativa facilidade, sendo possível ajustar todos os itens de visualização (legendas, cores, bordas, alinhamento, etc.) para um ajuste desejado do pesquisador. Todas as funções do pacote podem ser encontradas em https://www.rdocumentation.org/packages/tmap/versions/2.2 ou no endereço https://www.jstatsoft.org/article/view/v084i06 como exemplos.

Inicialmente utiliza-se a função tm_shape para carregar a base, tm_fill para plotar o fundo e tm_borders cria as bordas entre os municípios. A função tmap_mode não é obrigatória, e varia da apresentação tradicional do mapa (“plot”) e da apresentação para web (“view”).

9.2.1 Adicionando dados ao mapa

Para enriquecer a análise, serão incluídos novos dados relativos aos municípios do Rio Grande do Sul provenientes da FEE (2016), como o indicador de IDESE (Índice de Desenvolvimento Socioeconômico), PIB (Produto Interno Bruto), população, etc.

# A tibble: 6 x 20
  Label_N COREDE CD_GEOCMU IDESE_2013 POUPANCA OP_CREDITO `OBRIGACOES _RE~
  <chr>   <chr>  <chr>     <chr>         <dbl>      <dbl>            <dbl>
1 Alto A~ "Alto~ 430055    0,7973015~       NA         NA               NA
2 Barros~ "Alto~ 430200    0,6103697~  7647609   27295139             5931
3 Campos~ "Alto~ 430410    0,7352054~       NA         NA               NA
4 Espumo~ "Alto~ 430750    0,79296863 45673907  230697134            66237
5 Fontou~ "Alto~ 430830    0,6336514~ 13985159   54390691             4177
6 Gramad~ "Alto~ 430915    0,6578415~  1119359    2073680                0
# ... with 13 more variables: DEP_A_VISTA_PRIV <dbl>, DEP_A_VISTA_GOV <dbl>,
#   DEP_PRAZO <dbl>, COOP_CRED <dbl>, CEF <dbl>, BANCO_COM <dbl>,
#   N_VINCULOS_EMP <dbl>, DENS_DEM_HABKM2 <dbl>, IMPOSTOS <dbl>,
#   AREA_KM2 <dbl>, PIB_PERC <dbl>, PIB <dbl>, POPULACAO <dbl>

Para agregar estas informações aos dados das malhas, é preciso em primeiro lugar que se tenha um campo em comum único dos arquivos. Neste caso, o código do IBGE dos municípios (“CD_GEOCMU”) será utilizado, sendo que precisa ser exatamente igual nos dois objetos que se quer unir, para que as informações de determinado município sejam corretamente unidas às informações geográficas da malha para o mapa.

 [1] "CD_GEOCMU"               "NM_MUNICIP"             
 [3] "Label_N"                 "COREDE"                 
 [5] "IDESE_2013"              "POUPANCA"               
 [7] "OP_CREDITO"              "OBRIGACOES _RECEBIMENTO"
 [9] "DEP_A_VISTA_PRIV"        "DEP_A_VISTA_GOV"        
[11] "DEP_PRAZO"               "COOP_CRED"              
[13] "CEF"                     "BANCO_COM"              
[15] "N_VINCULOS_EMP"          "DENS_DEM_HABKM2"        
[17] "IMPOSTOS"                "AREA_KM2"               
[19] "PIB_PERC"                "PIB"                    
[21] "POPULACAO"              
  CD_GEOCMU  NM_MUNICIP       Label_N             COREDE  IDESE_2013  POUPANCA
1    430003     ACEGUÃ\201     Acegu<e1>           Campanha 0,718832327    654998
2    430005 Ã\201GUA SANTA <c1>gua Santa           Nordeste 0,867600828   5771664
3    430010       AGUDO         Agudo            Central 0,702817421  60413751
4    430020   AJURICABA     Ajuricaba  Noroeste Colonial 0,785470135  10097428
5    430030     ALECRIM       Alecrim Fronteira Noroeste 0,677111834  11317058
6    430040    ALEGRETE      Alegrete    Fronteira Oeste 0,726877131 143979215
  OP_CREDITO OBRIGACOES _RECEBIMENTO DEP_A_VISTA_PRIV DEP_A_VISTA_GOV DEP_PRAZO
1    2123323                     990           436095          211613         0
2   58309611                   40094          1814681           89008   3205509
3  129527759                   28351          7005194          593901   5826631
4   89098650                   35621          4739225         1116209   2322985
5   14649086                     265          1754832          150166    740890
6  747409945                  232866         42122392         1138492  63194800
  COOP_CRED CEF BANCO_COM N_VINCULOS_EMP DENS_DEM_HABKM2 IMPOSTOS AREA_KM2
1        NA  NA         1           1075       2.922e+09  7712922  1549383
2        NA  NA         1            743       1.293e+08  2339861   291792
3         1   1         3           3374       3.105e+09 26733502   536114
4        NA  NA         2           1610       2.223e+08 12668813   323239
5        NA  NA         2            690       2.163e+09  3193931   314743
6        NA   1         6          20091       9.794e+09 96877929  7803954
  PIB_PERC       PIB POPULACAO
1   383451 1.778e+08      4623
2  6343962 2.435e+08      3825
3   206121 3.537e+08     17044
4  2715728 2.015e+08      7568
5  1202022 8.426e+07      6905
6  1902703 1.504e+09     78056

9.2.2 Plotando o mapa e melhorando a visualização

Após unidas as informações da malha e dos índices para todos os municípios, é possível criar o mapa temático. Além de utilizar a função tm_shape para carregar os novos dados e tm_fill inclui a área de cada município (KM\(^2\)). Ainda é possível definir opções de formato (tm_format_Europe2), de estilo (tm_style_classic), ajustar a legenda (tm_legend), incluir o compasso (tm_compass), a escala (tm_scale_bar).

Algumas opções de layout podem ser escolhidas pelo pesquisador com as funções:tm_format_World,tm_format_World_wide, tm_format_Europe, tm_format_Europe2, tm_format_Europe_wide, tm_format_NLD, tm_format_NLD_wide, tm_format_NLD_wide. Seguem as opções de estilo do gráfico:tm_style_white, tm_style_gray, tm_style_natural, tm_style_grey, tm_style_cobalt, tm_style_col_blind, tm_style_albatross, tm_style_beaver, tm_style_bw, tm_style_classic.

Abaixo segue um exemplo de criação e plotagem de múltiplos mapas na mesma imagem. A função style determinda como serão determinadas as cores do mapa, juntamente com a função palette. Já a função breaks ajuda a determinar os pontos de corte para a plotagem das cores, no primeiro mapa utilizando a função quantile e no segundo determinando intervalos de valores pré-determinados pelo autor.

É possível ainda efetuar a filtragem de uma determinada característica para a criação do mapa. No exemplo, são filtrados os municípios do Corede Sul:

9.2.3 Utilizando dados de fontes externas: pacote datasus

Encontrar informações de bases de dados que podem ser diretamente utilizadas no R é de extrama importância aos pesquisadores. Neste exemplo são demonstrados alguns comandos para utilizar o pacote datasus (Prado Siqueira 2018), que agiliza a utilização de alguns dados do Ministério da Saúde (http://www2.datasus.gov.br/DATASUS/index.php?area=02).

Utilizando o pacote devtools (library(devtools)) é feita ainstalação do pacote datasus diretamente do repositório Github pelo comando install_github("rpradosiqueira/datasus").

Após instalado o pacote datasus, utiliza-se a função sinasc_nv_uf para carregar a quantidade de nascimentos por município:

          Município   2014   2015   2016  Total
1             TOTAL 143315 148359 141411 433085
2     430003 Aceguá     73     55     49    177
3 430005 Água Santa     48     36     43    127
4      430010 Agudo    162    161    165    488
5  430020 Ajuricaba     61     68     78    207
6    430030 Alecrim     59     48     57    164

Efetua-se uma limpeza da linha de total, bem como a criação de uma coluna com o código do IBGE (“CD_GEOCMU”):

  CD_GEOCMU  NM_MUNICIP 2014 2015 2016 Total
2    430003      Aceguá   73   55   49   177
3    430005  Água Santa   48   36   43   127
4    430010       Agudo  162  161  165   488
5    430020   Ajuricaba   61   68   78   207
6    430030     Alecrim   59   48   57   164
7    430040    Alegrete  925  954  858  2737

Após é possível criar novo mapa (“RS2013MAPAN”), unindo as informações novas com o mapa anterior:

 [1] "CD_GEOCMU"               "NM_MUNICIP.x"           
 [3] "Label_N"                 "COREDE"                 
 [5] "IDESE_2013"              "POUPANCA"               
 [7] "OP_CREDITO"              "OBRIGACOES _RECEBIMENTO"
 [9] "DEP_A_VISTA_PRIV"        "DEP_A_VISTA_GOV"        
[11] "DEP_PRAZO"               "COOP_CRED"              
[13] "CEF"                     "BANCO_COM"              
[15] "N_VINCULOS_EMP"          "DENS_DEM_HABKM2"        
[17] "IMPOSTOS"                "AREA_KM2"               
[19] "PIB_PERC"                "PIB"                    
[21] "POPULACAO"               "NM_MUNICIP.y"           
[23] "2014"                    "2015"                   
[25] "2016"                    "Total"                  

Então pode ser criado o mapa com as informações de nascimentos por município. Neste caso, foi utilizado o style denomnado kmeans, pois utilizamos os quartis para determinar as faixas de cores das quantidades de nascimentos:

   0%   25%   50%   75%  100% 
    4    28    55   175 18635 
Warning: The argument auto.palette.mapping is deprecated. Please use midpoint
for numeric data and stretch.palette for categorical data to control the palette
mapping.

Referências

FEE. 2016. «Fundação de Economia e Estatística Siegfried Emanuel Heuser - FEEDADOS». http://feedados.fee.tche.br/feedados/.

Prado Siqueira, Renato. 2018. «datasus: An Interface to DATASUS System». https://cran.r-project.org/package=datasus.

Semace. 2018. «Shape – Definições e Conversão». http://www.semace.ce.gov.br/2011/06/shape-definicoes-e-conversao/.

Tennekes, Martijn. 2018. «{tmap}: Thematic Maps in {R}». Journal of Statistical Software 84 (6): 1–39. https://doi.org/10.18637/jss.v084.i06.