Não foi possível enviar o arquivo. Será algum problema com as permissões?
Exemplo do Banco do Saudavel

Exemplo do Banco do Saudavel

require(aRT)

1. conectando ao banco de origem dos dados e importando dados desejados para o R

Abrindo a conexão

cnn <- openConn(user="curso", pass="fiocruz", host="guaja.est.ufpr.br", port=3306)
showDbs(cnn)

Abrindo e inspecionando o conteúdo o Banco

db <- openDb(cnn, "saudavel", up=T )
db

Abrindo o Layer das armadilhas

la <- openLayer(db, "LAYER_ARMADILHAS")
la

Abrindo a tabela Coletas

coleta <- openTable(la, "COLETAS")
coleta

Puxando os dados da tabela coleta - "COD_ARMADILHA", "DATA_COLETA", "NRO_OVOS"

aed <- getData(coleta)[c("COD_ARMADILHA", "DATA_COLETA", "NRO_OVOS")]
dim(aed)
names(aed)

Formatando como Data

aed$DATA_COLETA <- as.Date(aed$DATA_COLETA)
 
vendo o período de dados disponíveis)
range(aed$DATA_COLETA)

Definindo os 4 Grupos das armadilhas

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)

Pegando os pontos (coordenadas das armadilhas)

pts <- getPoints(la)
pts[1:10,]   # em formato sp: SpatialPointsDataFrame
head(coordinates(pts)) # em formato de matriz

Pegando os polígonos
Abrindo o Layer de Poligonos dos bairros

lb <- openLayer(db, "IBGE_Bairros")
aed.poly <- getPolygons(lb) ## formato sp (SpatialPolygons)

Se quiser convertar para uma lista de polygonos para facilitar a manipulação do objeto…

poly_bai <- sapply(1:94, function(x)poly_bai@polygons[[x]]@Polygons[[1]]@coords)

Criando um objeto separando por bairro e por data:

aed.armas <- split(aed, aed$COD_ARMADILHA)
names(aed.armas)

2. algumas análises descritivas no R

Plotando dados da evolução de ovos de uma armadilha:

plot(aed.armas[[5]]$NRO_OVOS, type="l", xaxt="n", xlab="", ylab="Total de Ovos")
labels <- aed.armas[[1]]$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!

Criando uma função para plotar graficos da evolução do número de ovos nas armadilhas…

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()
}

… e gerando os gráficos para o Bairro BT (ver a tela grafica do R)

plot.arma("BT101")
sapply(names(aed.armas)[1:80], plot.arma)

Gerando arquivos com estes resultados (para todas armadilhas de todos os bairros)

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()   

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

cloc <- openConn()
cloc

Criando novo banco

BDuser <- "myDengue"

Apaga banco pré-existente (se houver) e cria novo banco ("light")

if(any(showDbs(cloc) == BDuser)) deleteDb(cloc, BDuser, force=T)
 
dblight = createDb(cloc, BDuser)
dblight

Pegando mais alguns dados que usaremos no novo banco
Pegando a projeção (poderia definir se desejado – formato proj4)

proj=getProj(la)
proj

Trazendo tabelas para o R (Exportação das tabelas do banco para o R)
Note os tipos de tabelas existentes neste layer!

tab=openTable(la, "ARMADILHAS")
tab
tab2=getData(tab)

Criação do Layer ARMADILHAS no novo banco

l1=createLayer(dblight,"LAYER_ARMADILHAS", proj=proj)
l1

Adicionando as coordenadas dos pontos (armadilhas) no banco

addPoints(l1, pts)
l1

Adicionando a tabela estática (Importação pelo banco da tabela estática)

importTable(l1,"ARMADILHAS", id="COD_ARMADILHA", data=tab2)
l1

Adicionando uma tabela de mídia com os graficos das evoluções de ovos nas armadilhas
Criar tabela de mídia

midia=createTable(l1, type="media")

Adicionar dados à tabela de mídia

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)

Transferindo os polígonos dos bairros para o novo banco

l2=createLayer(dblight,"BAIRROS", proj=proj)
l2
addPolygons(l2, aed.poly)
createTable(l2, "tbairros")
l2
 
tbbairro <- openTable(lb, "bairro2000_rec")
tbbairro
tbb2 <- getData(tbbairro)
head(tbb2)
 
importTable(l2, "tbairros", id="ID_BAIRROS", data=tbb2)
l2

Associando uma tabela de mídia com filmes .avi com a evolução dos ovos segundo um modelo GAM (generalised additive model). O código para os filmes não está mostrado aqui e está disponível na pagina do saudavel no wiki.

medbairro <- createTable(l2, type="media")
url <- data.frame(object_id = c(94, 54, 55, 39, 40, 73, 51, 52),
                  media_names=paste("http://www.leg.est.ufpr.br/~paulojus/aviDengue/gam",
                    c("BT", "CFP", "CFP", "DI", "DI", "EM", "MCP", "MCP"), ".avi", sep=""), stringsAsFactors=F)
url
 
url1 <- data.frame(object_id=1:94,
                   media_names=as.character("http://www.leg.est.ufpr.br/~paulojus/aviDengue/nulo.html"), stringsAsFactors=F)
url1$media_names[url$object_id] <- url$media_names
url1
dim(url1)
 
addRows(medbairro, url1)

Criar tema/vista para visualizar os relatórios na TV e com acesso às mídias

th=createTheme(l1, "Coletas", table="ARMADILHAS", view="armas")
th=createTheme(l2, "Bairros", table="tbairros", view="armas")

4. inspecionando no terraView e abrindo mídias

  1. abrir o TV
  2. abrir um navegador (mozilla ou outro)
  3. dar um zoom num bairro
  4. selecionar um ponto (armadilha) e exibir a "media default"
  5. selecionar um bairro com armadilha e exibir a "media default"

QR Code
QR Code software:art:curso:scriptleitura (generated for current page)