Re: [R-br] Ler .MAP no R - Shapefile

Mauro, bom dia! Use o segundo bloco de código informado no email pra criar um arquivo readMap.R. Melhor criar o arquivo no diretório de trabalho (que pode ser definido por setwd()). Éder Comunello ---------- Mensagem encaminhada ---------- De: Mauro Sznelwar <sznelwar@uol.com.br> Data: 13 de abril de 2014 19:42 Assunto: Re: [R-br] Ler .MAP no R - Shapefile Para: ecomunel@gmail.com Como eu carrego esta rotina? source("readMap.R")

Eder Eu gostaria de plotar algumas taxas nesses mapas, porém não sei como fazer. O que poderia ser feito? Poderia levar a informação da taxa, cruzando pelo código do município. Quando trabalho com shp eu uso: brks <- c(-Inf, 0.33,0.66, 0.87,1.04,1.83, Inf) cols <-c("#f7f7f7", "#cccccc", "#969696", "#636363", "#252525") plot(mapa, lwd=0.01, col = cols[findInterval(mapa$taxa, brks)],border="white") Será que não dá pra adaptar essa sintaxe para salvar o mapa como SpatialPolygonsDataFrame al invés de polylist? Em 14 de abril de 2014 12:51, Éder Comunello <comunello.eder@gmail.com>escreveu:
Mauro, bom dia!
Use o segundo bloco de código informado no email pra criar um arquivo readMap.R. Melhor criar o arquivo no diretório de trabalho (que pode ser definido por setwd()).
Éder Comunello
---------- Mensagem encaminhada ---------- De: Mauro Sznelwar <sznelwar@uol.com.br> Data: 13 de abril de 2014 19:42 Assunto: Re: [R-br] Ler .MAP no R - Shapefile Para: ecomunel@gmail.com
Como eu carrego esta rotina? source("readMap.R")
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
-- Sérgio Henrique Almeida da Silva Junior Doutorando em Epidemiologia em Saúde Pública Escola Nacional de Saúde Pública Sérgio Arouca - ENSP/FIOCRUZ http://lattes.cnpq.br/1611345552843383 Tel: (21) 968463637 http://www.linkedin.com/profile/view?id=250437145&trk=tab_pro

Sérgio, boa noite! A conversão de 'polylist' pra 'SPolygonsDF' é plenamente possível e considero a melhor estratégia. No entanto será necessário estudar o modelo das classes pra poder compatibilizá-las. Um ponto que já pude perceber é que o objeto 'polylist' gerado no exemplo inicial (readMap.R) tem algumas diferenças do que encontrei como esperado para um objeto 'polylist' padrão. Tem também a questão do tratamento de polígonos múltiplos, contendo ilhas (ou holes) e outras coisas mais. Um objeto 'polylist' padrão seria convertido facilmente utilizando algo como: require(sp) poly <- sapply(mapa, function(x) Polygon(as.data.frame(x)) polygons.sp<-SpatialPolygons(poly,1:length(poly)) Mas isso não está sendo possível por inconsistências do formato 'polylist'. A questão é que precisaria trabalhar na função read.map() pra acertá-la e tornar sua saída mais 'adequada' à conversão em SPolygonsDF, o que poderá render bastante trabalho. Alternativas: 1) Tentar buscar nos fóruns do R funções ou códigos existentes... 2) Usar arquivos .shp no lugar de .map.. Me parece que boa parte do conteúdo dos arquivos .map pode ser suprido pelos .shp disponibilizados no site do IBGE. Espero que ajude. Att., Éder Comunello <c <comunello.eder@gmail.com>omunello.eder@gmail.com> Dourados, MS - [22 16.5'S, 54 49'W] Em 14 de abril de 2014 14:49, Sérgio Henrique almeida da silva ju < sergio.edfisica@gmail.com> escreveu:
Eder
Eu gostaria de plotar algumas taxas nesses mapas, porém não sei como fazer.
O que poderia ser feito? Poderia levar a informação da taxa, cruzando pelo código do município.
Quando trabalho com shp eu uso:
brks <- c(-Inf, 0.33,0.66, 0.87,1.04,1.83, Inf) cols <-c("#f7f7f7", "#cccccc", "#969696", "#636363", "#252525") plot(mapa, lwd=0.01, col = cols[findInterval(mapa$taxa, brks)],border="white")
Será que não dá pra adaptar essa sintaxe para salvar o mapa como SpatialPolygonsDataFrame al invés de polylist?
Em 14 de abril de 2014 12:51, Éder Comunello <comunello.eder@gmail.com>escreveu:
Mauro, bom dia!
Use o segundo bloco de código informado no email pra criar um arquivo readMap.R. Melhor criar o arquivo no diretório de trabalho (que pode ser definido por setwd()).
Éder Comunello
---------- Mensagem encaminhada ---------- De: Mauro Sznelwar <sznelwar@uol.com.br> Data: 13 de abril de 2014 19:42 Assunto: Re: [R-br] Ler .MAP no R - Shapefile Para: ecomunel@gmail.com
Como eu carrego esta rotina? source("readMap.R")
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
-- Sérgio Henrique Almeida da Silva Junior Doutorando em Epidemiologia em Saúde Pública Escola Nacional de Saúde Pública Sérgio Arouca - ENSP/FIOCRUZ http://lattes.cnpq.br/1611345552843383 Tel: (21) 968463637 http://www.linkedin.com/profile/view?id=250437145&trk=tab_pro
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.

O problema é que não estou encontrando os .shp para as macrorregiões do Rio de Janeiro. :-( Em 14 de abril de 2014 21:57, Éder Comunello <comunello.eder@gmail.com>escreveu:
Sérgio, boa noite!
A conversão de 'polylist' pra 'SPolygonsDF' é plenamente possível e considero a melhor estratégia. No entanto será necessário estudar o modelo das classes pra poder compatibilizá-las. Um ponto que já pude perceber é que o objeto 'polylist' gerado no exemplo inicial (readMap.R) tem algumas diferenças do que encontrei como esperado para um objeto 'polylist' padrão. Tem também a questão do tratamento de polígonos múltiplos, contendo ilhas (ou holes) e outras coisas mais.
Um objeto 'polylist' padrão seria convertido facilmente utilizando algo como: require(sp) poly <- sapply(mapa, function(x) Polygon(as.data.frame(x)) polygons.sp<-SpatialPolygons(poly,1:length(poly))
Mas isso não está sendo possível por inconsistências do formato 'polylist'.
A questão é que precisaria trabalhar na função read.map() pra acertá-la e tornar sua saída mais 'adequada' à conversão em SPolygonsDF, o que poderá render bastante trabalho.
Alternativas: 1) Tentar buscar nos fóruns do R funções ou códigos existentes... 2) Usar arquivos .shp no lugar de .map.. Me parece que boa parte do conteúdo dos arquivos .map pode ser suprido pelos .shp disponibilizados no site do IBGE.
Espero que ajude. Att.,
Éder Comunello <c <comunello.eder@gmail.com>omunello.eder@gmail.com> Dourados, MS - [22 16.5'S, 54 49'W]
Em 14 de abril de 2014 14:49, Sérgio Henrique almeida da silva ju < sergio.edfisica@gmail.com> escreveu:
Eder
Eu gostaria de plotar algumas taxas nesses mapas, porém não sei como fazer.
O que poderia ser feito? Poderia levar a informação da taxa, cruzando pelo código do município.
Quando trabalho com shp eu uso:
brks <- c(-Inf, 0.33,0.66, 0.87,1.04,1.83, Inf) cols <-c("#f7f7f7", "#cccccc", "#969696", "#636363", "#252525") plot(mapa, lwd=0.01, col = cols[findInterval(mapa$taxa, brks)],border="white")
Será que não dá pra adaptar essa sintaxe para salvar o mapa como SpatialPolygonsDataFrame al invés de polylist?
Em 14 de abril de 2014 12:51, Éder Comunello <comunello.eder@gmail.com>escreveu:
Mauro, bom dia!
Use o segundo bloco de código informado no email pra criar um arquivo readMap.R. Melhor criar o arquivo no diretório de trabalho (que pode ser definido por setwd()).
Éder Comunello
---------- Mensagem encaminhada ---------- De: Mauro Sznelwar <sznelwar@uol.com.br> Data: 13 de abril de 2014 19:42 Assunto: Re: [R-br] Ler .MAP no R - Shapefile Para: ecomunel@gmail.com
Como eu carrego esta rotina? source("readMap.R")
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
-- Sérgio Henrique Almeida da Silva Junior Doutorando em Epidemiologia em Saúde Pública Escola Nacional de Saúde Pública Sérgio Arouca - ENSP/FIOCRUZ http://lattes.cnpq.br/1611345552843383 Tel: (21) 968463637 http://www.linkedin.com/profile/view?id=250437145&trk=tab_pro
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
-- Sérgio Henrique Almeida da Silva Junior Doutorando em Epidemiologia em Saúde Pública Escola Nacional de Saúde Pública Sérgio Arouca - ENSP/FIOCRUZ http://lattes.cnpq.br/1611345552843383 Tel: (21) 968463637 http://www.linkedin.com/profile/view?id=250437145&trk=tab_pro

2014-04-15 12:12 GMT-03:00 Sérgio Henrique almeida da silva ju < sergio.edfisica@gmail.com>:
O problema é que não estou encontrando os .shp para as macrorregiões do Rio de Janeiro.
Tente: if(!file.exists("rj.zip")) download.file(" ftp://geoftp.ibge.gov.br/malhas_digitais/municipio_2010/rj.zip", destfile = "rj.zip") unzip("rj.zip") library(rgdal) rj <- readOGR("rj", "33MEE250GC_SIR") plot(rj, col = rainbow(6, s = 0.4))

Senhores, boa tarde! Supondo que o mapa de regiões não estivesse disponível, ainda seria possível 'derivá-lo' do mapa de munícipios fornecido pelo IBGE. A rotina que segue une polígonos com uma característica (atributo) comum. Nesse caso específico utilizei a informação referente às mesoregiões do RJ, disponíveis no shape 1:500.000 com projeção Policônica. ### <code r> # install.packages('gpclib', dep=T) # library(gpclib) # General Polygon Clipping library library(maptools) # for geospatial services; also loads foreign and sp library(rgdal) # for map projection work; also loads sp setwd('c:/Lab/Datasus'); getwd() ### ALTERAR!!! URL1 <- 'ftp://geoftp.ibge.gov.br/malhas_digitais' URL2 <- 'municipio_2005/escala_500mil/proj_policonica/arcview_shp/uf/rj/33mu500pc.zip' fName <- basename(URL2) dirName <- gsub("\\.zip", "", fName) if(!file.exists(fName)) download.file(file.path(URL1, URL2), fName, mode='wb') unzip(fName, exdir=dirName) RJMun <- readShapePoly(file.path(dirName, gsub("\\.zip", "\\.shp", fName))) proj4string(RJMun) <- CRS("+init=epsg:29101") # policônica proj4string(RJMun) # print(CRSargs(CRS("+init=epsg:29101"))) plot(RJMun, col=terrain.colors(8)) names(RJMun@data) IDNew <- unlist(RJMun@data["MESOREGIAO"]) ### Novos IDs RJMeso <- unionSpatialPolygons(RJMun, IDNew) plot(RJMeso, col=heat.colors(6)) names(RJMeso) ### </code> ================================================ Éder Comunello Agronomist, MSc in Environ. Sciences (UEM) PhD Student in Agricultural Systems Engineering (USP/ESALQ) Piracicaba, SP, Brazil [22 42.7'S, 47 37.8'W] Researcher at Embrapa Western Region Agriculture Dourados, MS, Brazil [22 16.5'S, 54 49.0'W] ================================================ UTC-04:00 / DST: UTC-03:00

Olá Obrigado a todos pela ajuda!! Abraços 2014-04-15 17:22 GMT-03:00 Éder Comunello <comunello.eder@gmail.com>:
Senhores, boa tarde!
Supondo que o mapa de regiões não estivesse disponível, ainda seria possível 'derivá-lo' do mapa de munícipios fornecido pelo IBGE.
A rotina que segue une polígonos com uma característica (atributo) comum. Nesse caso específico utilizei a informação referente às mesoregiões do RJ, disponíveis no shape 1:500.000 com projeção Policônica.
### <code r> # install.packages('gpclib', dep=T) # library(gpclib) # General Polygon Clipping library library(maptools) # for geospatial services; also loads foreign and sp library(rgdal) # for map projection work; also loads sp
setwd('c:/Lab/Datasus'); getwd() ### ALTERAR!!!
URL1 <- 'ftp://geoftp.ibge.gov.br/malhas_digitais' URL2 <- 'municipio_2005/escala_500mil/proj_policonica/arcview_shp/uf/rj/33mu500pc.zip' fName <- basename(URL2) dirName <- gsub("\\.zip", "", fName)
if(!file.exists(fName)) download.file(file.path(URL1, URL2), fName, mode='wb') unzip(fName, exdir=dirName)
RJMun <- readShapePoly(file.path(dirName, gsub("\\.zip", "\\.shp", fName))) proj4string(RJMun) <- CRS("+init=epsg:29101") # policônica proj4string(RJMun) # print(CRSargs(CRS("+init=epsg:29101"))) plot(RJMun, col=terrain.colors(8))
names(RJMun@data) IDNew <- unlist(RJMun@data["MESOREGIAO"]) ### Novos IDs RJMeso <- unionSpatialPolygons(RJMun, IDNew)
plot(RJMeso, col=heat.colors(6)) names(RJMeso) ### </code>
================================================ Éder Comunello Agronomist, MSc in Environ. Sciences (UEM)
PhD Student in Agricultural Systems Engineering (USP/ESALQ) Piracicaba, SP, Brazil [22 42.7'S, 47 37.8'W]
Researcher at Embrapa Western Region Agriculture Dourados, MS, Brazil [22 16.5'S, 54 49.0'W] ================================================ UTC-04:00 / DST: UTC-03:00
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
-- Sérgio Henrique Almeida da Silva Junior Doutorando em Epidemiologia em Saúde Pública Escola Nacional de Saúde Pública Sérgio Arouca - ENSP/FIOCRUZ http://lattes.cnpq.br/1611345552843383 Tel: (21) 968463637 http://www.linkedin.com/profile/view?id=250437145&trk=tab_pro
participantes (3)
-
Jakson Alves de Aquino
-
Sérgio Henrique almeida da silva ju
-
Éder Comunello