Essa é uma revisão anterior do documento!
Exemplo do Banco do Saudavel
<code R> require(aRT) </code R>
1. conectando ao banco de origem dos dados e importando dados desejados para o R
Abrindo a conexão <code R> cnn ← openConn(user="curso", pass="fiocruz", host="guaja.est.ufpr.br", port=3306) showDbs(cnn) </code R>
Abrindo e inspecionando o conteúdo o Banco <code R> db ← openDb(cnn, "saudavel", up=T ) db </code R>
Abrindo o Layerdas armadilhas <code R> la ← openLayer(db, "LAYER_ARMADILHAS") la </code R>
Abrindo a tabela Coletas <code R> coleta ← openTable(la, "COLETAS") coleta </code R>
Puxando os dados da tabela coleta - "COD_ARMADILHA", "DATA_COLETA", "NRO_OVOS" <code R> aed ← getData(coleta)[c("COD_ARMADILHA", "DATA_COLETA", "NRO_OVOS")] dim(aed) names(aed) </code R>
Formatando como Data <code R> aed$DATA_COLETA ← as.Date(aed$DATA_COLETA)
vendo o período de dados disponíveis) range(aed$DATA_COLETA) </code R>
Definindo os 4 Grupos das armadilhas <code R> aed$GRUPO ← substr(aed$COD_ARM, start=ifelse(nchar(aed$COD_ARM) == 5,3,4),
stop=ifelse(nchar(aed$COD_ARM) == 5,3,4))
## Definindo códigos para os bairros aed$BAIRRO ← substr(aed$COD_ARM, 1, ifelse(nchar(aed$COD_ARM)==5, 2, 3))
head(aed) </code R>
Pegando os pontos (coordenadas das armadilhas) <code R> pts ← getPoints(la) pts[1:10,] # em formato sp: SpatialPointsDataFrame head(coordinates(pts)) # em formato de matriz </code R>
Pegando os polígonos ## Abrindo o Layer de Poligonos dos bairros <code R> lb ← openLayer(db, "IBGE_Bairros") aed.poly ← getPolygons(lb) ## formato sp (SpatialPolygons) </code R>
Se quiser convertar para uma lista de polygonos para facilitar a manipulação do objeto… <code R> poly_bai ← sapply(1:94, function(x)poly_bai@polygonsx@Polygons1@coords) </code R>
Criando um objeto separando por bairro e por data: <code R> aed.armas ← split(aed, aed$COD_ARMADILHA) names(aed.armas) </code R>
2. algumas análises descritivas no R
Plotando dados da evolução de ovos de uma armadilha: <code R> plot(aed.armas5$NRO_OVOS, type="l", xaxt="n", xlab="", ylab="Total de Ovos") labels ← aed.armas1$DATA_COLETA text(1:length(labels), par("usr")[3] - 0.25, srt = 90, adj = 1,labels = labels,
xpd = TRUE, cex = 0.6)
mtext(side=1, line=3, "Data") ## veja o gráfico! </code R>
Criando uma função para plotar graficos da evolução do número de ovos nas armadilhas… <code R> plot.arma ← function(arma, log = F, …) {
plot(if(!log)aed.armas[[arma]]$NRO_OVOS else log(aed.armas[[arma]]$NRO_OVOS+1), type="l", xaxt="n", xlab="", ylab="Total de Ovos", ...) labels <- aed.armas[[arma]]$DATA_COLETA text(1:length(labels), par("usr")[3] - 0.25, srt = 90, adj = 1,labels = labels, xpd = TRUE, cex = 0.6) mtext(side=1, line=3, "Data") title(unique(aed.armas[[arma]]$COD_ARMADILHA)) invisible()
} </code R>
… e gerando os gráficos para o Bairro BT (ver a tela grafica do R) <code R> plot.arma("BT101") sapply(names(aed.armas)[1:80], plot.arma) </code R>
Gerando arquivos com estes resultados (para todas armadilhas de todos os bairros) <code R> dir.create("armaPlots") getwd() basedir ← getwd() setwd("armaPlots") getwd() sapply(names(aed.armas),
function(x){ jpeg(paste(x, ".jpg", sep="")) plot.arma(x) dev.off() })
## veja que os arquivos são criados no diretório (demora um pouco…) ## digite na linah de comando do LINUX: $ ls armaPlots setwd(basedir) getwd() </code R>
3. criando um "novo" banco de dados (no caso em outro DBMS local, mas poderia ser no orginal tb)
conexão com o banco local <code R> cloc ← openConn() cloc </code R>
Criando novo banco <code R> BDuser ← "myDengue" </code R>
Apaga banco pré-existente (se houver) e cria novo banco ("light") <code R> if(any(showDbs(cloc) == BDuser)) deleteDb(cloc, BDuser, force=T)
dblight = createDb(cloc, BDuser) dblight </code R>
Pegando mais alguns dados que usaremos no novo banco
Pegando a projeção (poderia definir se desejado – formato proj4)
<code R>
proj=getProj(la)
proj
</code R>
Trazendo tabelas para o R (Exportação das tabelas do banco para o R)
Note os tipos de tabelas existentes neste layer!
<code R>
tab=openTable(la, "ARMADILHAS")
tab
tab2=getData(tab)
</code R>
Criação do Layer ARMADILHAS no novo banco <code R> l1=createLayer(dblight,"LAYER_ARMADILHAS", proj=proj) l1 </code R>
Adicionando as coordenadas dos pontos (armadilhas) no banco <code R> addPoints(l1, pts) l1 </code R>
Adicionando a tabela estática (Importação pelo banco da tabela estática) <code R> importTable(l1,"ARMADILHAS", id="COD_ARMADILHA", data=tab2) l1 </code R>
Adicionando uma tabela de mídia com os graficos das evoluções de ovos nas armadilhas
Criar tabela de mídia
<code R>
midia=createTable(l1, type="media")
</code R>
Adicionar dados à tabela de mídia <code R> url ← data.frame(object_id = sort(unique(aed$COD_ARMADILHA)),
media_names = paste(system("echo $PWD", intern=T), "/armaPlots/", sort(unique(aed$COD_ARMADILHA)), ".jpg",sep=""))
url[1:10,] addRows(midia, url) </code R>
Criando vistas e temas para a TV
Criar tema para visualizar os relatórios
<code R>
th=createTheme(l1, "Coletas", table="ARMADILHAS", view="armas")
</code R>
- abrir o TV
- abrir um navegador (mozilla ou outro)
- dar um zoom num bairro
- selecionar um ponto e exibir a "media default"