You are on page 1of 25

Mapas

no R e RStudio

Tabela de contedos
Introduo

Seo 1

Conceitos bsicos

1.1

Tipos de shapefile

1.2

Tipos de mapas

1.3

Tipos de coordenadas

1.4

Seo 2

Carregar shapefile

2.1

Ver atributos da projeo

2.2

Ver a classe do objeto

2.3

Plotar mapa

2.4

Plotar linhas

2.4.1

Plotar pontos

2.4.2

Seo 3

Selecionar polgonos especficos

3.1

Centride de polgonos

3.2

Mapas no R e RStudio

Mapas no R e RStudio
Autor: Raul Ossada
Verso: 0.2.1 - "Sorriso Certo"
Este livro tem como objetivo de apresentar alguns pacotes, funes e parmetros dessas
funes, presentes no programa R relacionados criao, manipulao, visualizaao e
anlises de mapas.
A cpia parcial do contedo deste livro permitida desde que citada a fonte.
Este livro est em constante atualizao, portanto o uso do contedo deste de
responsabilidade do usurio. Comentrios, crticas e sugestes que visem melhorar o
contedo do livro so bem-vindos.

Introduo

Mapas no R e RStudio

Seo 1
Nesta seo iremos ver alguns conceitos mais bsicos quando se trabalha com mapas.

Seo 1

Mapas no R e RStudio

Planeta Terra
Uma rpida introduo sobre os conceitos bsicos quando se usa mapas

Elipside
Os diversos elipsides usados para representar o Planeta Terra.

Datum
Globo (3D)
Tipos de coordenada: Unprojected (Geographic) Latitude/Longitude
Representao: graus decimais e 'grau, minuto, segundo'

Projection
Mapa (2D)
Tipos de coordenada: Projected (Easting/Northing)

Conceitos bsicos

Mapas no R e RStudio

Tipos de shapefile
Shape de Polgonos
Shape de Linhas
Shape de Pontos

Tipos de shapefile

Mapas no R e RStudio

Tipos de mapas
Mapas Vetoriais
Objetivo deste livro

Mapas de Raster
Futuramente podem vir a serem tratados neste livro

Tipos de mapas

Mapas no R e RStudio

Tipos de coordenadas
Coordenadas geogrficas (No-projetadas)
Latitude/Longitude

Coordenadas projetadas
UTM

Tipos de coordenadas

Mapas no R e RStudio

Seo 2
Nesta seo iremos ver alguns pacotes e funes para visualizar mapas no R e no RStudio.
Os shapefiles usados nesta seo foram obtidos do site da Agncia Executiva de Gesto
das guas do Estado da Paraba AESA, seguindo o caminho:
Arquivos Shapefiles
Municipios.zip
Estrada_Ferro.zip
Sedes_Municipais.zip
Importante! Lembre-se de descompactar os arquivos "*.zip" antes de us-los.

Seo 2

Mapas no R e RStudio

Como carregar um shapefile no R


Funo: readOGR
Recomenda-se o uso da funo readOGR do pacote rgdal , pois esta l tanto o arquivo
".shp", quanto o arquivo ".prj".
Parmetros interessantes da funo:
dsn : Pasta (diretrio), onde se encontram os arquivos (*.cpg, *.dbf, *.prj, *.shp, *.shx,

etc).
layer : Nome do arquivo, sem a extenso.
verbose : Indica se deve ser exibido um relatrio de progresso da leitura do arquivo.
stringsAsFactors : Indica se os vetores do tipo character devem ser convertidos para o

tipo factor.
library("rgdal");
pb_poligonos_rgdal <- readOGR(dsn="aesa_pb/Municipios", layer="Municipios", verbose=FALSE

Sugestes de busca em ingls: "r read shapefile".


Sugestes de busca em portugus: "r como abrir um shapefile", "r como ler um shapefile".
Importante! Neste livro, os shapefiles sero carregados com essa funo. Ficando as
funes de outros pacotes como uma curiosidade extra.

Carregar shapefile

10

Mapas no R e RStudio

Como ver os atributos da projeo


Funo: proj4string
Para ver os atributos da projeo de um objeto carregado usando a funo readOGR ,
podemos usar a funo proj4string do pacote sp .
Parmetros interessantes da funo:
obj : Nome do objeto com os dados do shapefile.

1) Vamos carregar o shapefile:


library("rgdal");
pb_poligonos_rgdal <- readOGR(dsn="aesa_pb/Municipios", layer="Municipios", verbose=FALSE

2) Vamos ver quais so os atributos da projeo desse shapefile:


proj4string(obj=pb_poligonos_rgdal);

[1] "+proj=longlat +ellps=aust_SA +no_defs"

Alguns atributos de projees:


+ellps
+datum
+proj
+zone
+units
+init

Importante! importante conhecer os atributos de uma projeo para evitar problemas


como: pontos aparecendo fora de um mapa ou clculos de distncia entre pontos muito
absurdos, etc.
Sugestes de busca em ingls: "r shapefile projection".

Ver atributos da projeo

11

Mapas no R e RStudio

Como ver a classe de um objeto


Funo: class
Para ver a classe do objeto que guarda os dados do shapefile podemos usar a funo
class .

Parmetros interessantes da funo:


x : Nome do objeto com os dados do shapefile.

1) Vamos carregar o shapefile:


library("rgdal");
pb_poligonos_rgdal <- readOGR(dsn="aesa_pb/Municipios", layer="Municipios", verbose=FALSE

2) Vamos ver qual a classe do objeto que guarda os dados do shapefile:


class(x=pb_poligonos_rgdal);

[1] "SpatialPolygonsDataFrame"
attr(,"package")
[1] "sp"

Como podemos ver, nosso objeto pertence classe SpatialPolygonsDataFrame. Ou seja,


trata-se de um objeto que contm informaes sobre um shape de polgonos (Spatial
Polygons).
Outras possibilidades que iremos explorar sero os objetos que contm informaes sobre
um shape de linhas (Spatial Lines) e sobre um shape de pontos (Spatial Points).
Importante! importante saber que tipo de classe um objeto pertence, pois uma mesma
funo pode apresentam sadas diferentes dependendo do tipo de objeto que fornecido
como entrada.
Sugestes de busca em ingls:

Ver a classe do objeto

12

Mapas no R e RStudio

Como plotar um mapa no R


Funo: plot
Para plotar um mapa de um objeto carregado usando a funo readOGR , podemos usar a
funo plot .
Parmetros interessantes da funo:
axes : Indica se devem ser plotados os eixos x e y do grfico.
border : Define a cor da linha de borda dos polgonos. (Exemplos: "black", "darkgray",

"red", etc).
lty : Define o tipo da linha de borda. (1-linha contnua, 2-tracejado, 3-pontos, etc).
lwd : Define a grossura das linhas de borda.
col : Define a cor de preenchimento dos polgonos. (Exemplos: "white", "brown",

"blue", etc)
main : Texto do ttulo do grfico.

1) Vamos carregar o shapefile:


library("rgdal");
pb_poligonos_rgdal <- readOGR(dsn="aesa_pb/Municipios", layer="Municipios", verbose=FALSE

2) Vamos plotar o mapa

plot(pb_poligonos_rgdal, axes=TRUE, border="darkgrey", lty=1, lwd=1, col="white", main="Mapa dos muni

Plotar mapa

13

Mapas no R e RStudio

Sugestes de busca em ingls: "r plot shapefile".

Plotar mapa

14

Mapas no R e RStudio

Como plotar um mapa no R


Extra: Adicionar um shape de linhas
Vamos adicionar o shape de linhas de Estrada de Ferro
1) Carregar o shape de polgonos e verificar os atributos de sua projeo:
pb_poligonos_rgdal <- readOGR(dsn="aesa_pb/Municipios", layer="Municipios", verbose=FALSE
proj4string(pb_poligonos_rgdal);

[1] "+proj=longlat +ellps=aust_SA +no_defs"

2) Carregar o shape de linhas e verificar os atributos de sua projeo:


pb_linhas_rgdal <- readOGR(dsn="aesa_pb/Estrada_Ferro", layer="Estrada_Ferro", verbose=FALSE
proj4string(pb_linhas_rgdal);

[1] "+proj=longlat +ellps=aust_SA +no_defs"

Observe que no caso deste exemplo os atributos do shape de polgonos e de linhas so os


mesmos. Caso eles fossem diferentes seria necessrio transformar os atributos de um dos
shapes para garantir a consistncia de nossas anlises.
3) Plotar o mapa de municpios e adicionar as linhas da estrada de ferro:

plot(pb_poligonos_rgdal, axes=TRUE, border="darkgrey", lty=1, lwd=1, col="white", main="Mapa dos muni


plot(pb_linhas_rgdal, add=TRUE, col="black");

Plotar linhas

15

Mapas no R e RStudio

Sugestes de busca em ingls:

Plotar linhas

16

Mapas no R e RStudio

Como plotar um mapa no R


Extra: Adicionar um shape de pontos
Vamos adicionar o shape de pontos de Sedes Municipais.
1) Carregar o shape de polgonos e verificar os atributos de sua projeo:
pb_poligonos_rgdal <- readOGR(dsn="aesa_pb/Municipios", layer="Municipios", verbose=FALSE
proj4string(pb_poligonos_rgdal);

[1] "+proj=longlat +ellps=aust_SA +no_defs"

2) Carregar o shape de pontos e verificar os atributos de sua projeo:


pb_pontos_rgdal <- readOGR(dsn="aesa_pb/Sedes_Municipais", layer="Sedes_Municipais", verbose=
proj4string(pb_pontos_rgdal);

[1] "+proj=longlat +ellps=aust_SA +no_defs"

Observe que no caso deste exemplo os atributos do shape de polgonos e de pontos so


os mesmos. Caso eles fossem diferentes seria necessrio transformar os atributos de um
dos shapes para garantir a consistncia de nossas anlises.
3) Plotar o mapa de municpios e adicionar os pontos das sedes municipais:

plot(pb_poligonos_rgdal, axes=TRUE, border="darkgrey", lty=1, lwd=1, col="white", main="Mapa dos muni


plot(pb_pontos_rgdal, add=TRUE, col="red", pch=19, cex=0.1);

Plotar pontos

17

Mapas no R e RStudio

Sugestes de busca em ingls:

Plotar pontos

18

Mapas no R e RStudio

Seo 3
Nesta seo iremos ver alguns pacotes e funes para trabalhar com mapas no R e no
RStudio.

Seo 3

19

Mapas no R e RStudio

Escolher 1 ou mais polgonos especficos


Funo: slot + lgica de programao
Recomenda-se o uso da funo slot em conjunto com algumas operaes de lgica de
programao.
Parmetros interessantes da funo:
object : Objeto com os dados do shape.
name : Nome do slot que contm os dados de interesse.

1) Carregar o shapefile
library("rgdal");
pb_poligonos_rgdal <- readOGR(dsn="aesa_pb/Municipios", layer="Municipios", verbose=FALSE

2) Separar os dados do shape num data frame


pb_dados <- slot(object=pb_poligonos_rgdal, name="data");
print( pb_dados[1:6, 1:5] );

OBJECTID GEOCODIG_M UF Sigla Nome_Munic


0 1 2500106 25 PB gua Branca
1 2 2500205 25 PB Aguiar
2 3 2500304 25 PB Alagoa Grande
3 4 2500403 25 PB Alagoa Nova
4 5 2500502 25 PB Alagoinha
5 6 2500536 25 PB Alcantil

Importante! Observe que a coluna que contm os nomes dos municpios se chama
Nome_Munic e est no objeto pb_dados .

3) Criar uma lista com os nomes dos municpios desejados


lista_municipios <- c("Cruz do Esprito Santo", "Joo Pessoa");

4) Encontrar o indice numrico correspondente aos municpios desejados

Selecionar polgonos especficos

20

Mapas no R e RStudio

Observe que neste passo usamos o nome da coluna que contm os nomes dos municpios
( Nome_Munic ) para este exemplo especfico. Lembre-se de alterar esse nome para se
ajustar aos seus dados!
indice_numerico <- which( pb_dados$Nome_Munic %in% lista_municipios );
print(indice_numerico);

[1] 66 96

5) Pegar apenas as informaes dos polgonos dos municpios desejados


dados_municipio <- pb_poligonos_rgdal[indice_numerico, ];

6) Fazer o plot dos municpios desejados


plot( dados_municipio, axes=TRUE, border="darkgrey", main="Poligonos dos municipios selecionados"

Sugestes de busca em ingls: "r subset polygon shapefile", "r get polygon shapefile"

Selecionar polgonos especficos

21

Mapas no R e RStudio

Sugestes de busca em portugus: "r como selecionar 1 polgono especfico", "r como
selecionar vrios polgonos", "como selecionar os polgonos alguns municpios".

Extra
Caso queria plotar os poligonos sobre o mapa de municpios basta fazer o que segue:

plot( pb_poligonos_rgdal, axes=TRUE, border="darkgrey", main="Mapa de municipios do Estado da Paraiba


plot( dados_municipio, border="darkgray", col="red", add=TRUE );

Extra - Problemas com Encoding


Caso voc tenha problemas de encoding no passo 2, tente usar a funo read.dbf do
pacote foreign para ler o arquivo "*.dbf".

Selecionar polgonos especficos

22

Mapas no R e RStudio

library("foreign");
pb_dados <- read.dbf(file="aesa_pb/Municipios/Municipios.dbf", as.is=TRUE);

Selecionar polgonos especficos

23

Mapas no R e RStudio

Calcular o centride de 1 ou mais polgonos


Funo: coordinates
Recomenda-se o uso da funo coordinates do pacote sp .
Parmetros interessantes da funo:
obj : Objeto com os dados do shape.

1) Carregar o shapefile
library("rgdal");
pb_poligonos_rgdal <- readOGR(dsn="aesa_pb/Municipios", layer="Municipios", verbose=FALSE
proj4string(pb_poligonos_rgdal);

[1] "+proj=longlat +ellps=aust_SA +no_defs"

2) Calcular as coordenadas dos centrides dos polgonos


centroide_poligonos <- coordinates(obj=pb_poligonos_rgdal);

3) Transformar as coordenadas para um objeto SpatialPoints e definir os atributos da


projeo para serem os mesmos dos polgonos

centroide_poligonos <- SpatialPoints(coords=centroide_poligonos, proj4string=CRS( proj4string(pb_poli


proj4string(centroide_poligonos);

[1] "+proj=longlat +ellps=aust_SA +no_defs"

4) Plotar o mapa de municpios adicionando os pontos dos centrides calculados


anteriormente.

plot(pb_poligonos_rgdal, axes=TRUE, border="darkgrey", lty=1, lwd=1, col="white", main="Mapa dos muni


points(centroide_poligonos, pch=19, cex=0.5, col="purple");

Centride de polgonos

24

Mapas no R e RStudio

Sugestes de busca em ingls: "r polygon centroid".

Centride de polgonos

25

You might also like