Não foi possível enviar o arquivo. Será algum problema com as permissões?
Diferenças

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Próxima revisão
Revisão anterior
software:art:scripts:scriptgm-pj [2007/11/16 19:26]
paulojus criada
software:art:scripts:scriptgm-pj [2007/11/18 23:11] (atual)
paulojus
Linha 1: Linha 1:
-Script by PJ on 16/11/2007+Script by PJ on 18/​11/​2007 ​(23:00 BRT)
  
 <code R> <code R>
Linha 8: Linha 8:
 ##    - poligonos com municípios do Paraná ##    - poligonos com municípios do Paraná
 ## ##
- 
 ## carregando os pacotes que serão usados (aRT) ## carregando os pacotes que serão usados (aRT)
 require(aRT) require(aRT)
Linha 18: Linha 17:
 ##Apagar banco já existente ##Apagar banco já existente
 if(any(showDbs(con)=="​geomedicina"​)) deleteDb(con,​ "​geomedicina",​ force=T) if(any(showDbs(con)=="​geomedicina"​)) deleteDb(con,​ "​geomedicina",​ force=T)
- 
 ##Criando um novo banco ##Criando um novo banco
 db=createDb(con,​ "​geomedicina"​) db=createDb(con,​ "​geomedicina"​)
 db db
- 
 ## string definindo a projeção ## string definindo a projeção
 proj="​+proj=latlong +ellps=GRS67 +towgs84=-66.8700,​-4.3700,​-38.5200"​ proj="​+proj=latlong +ellps=GRS67 +towgs84=-66.8700,​-4.3700,​-38.5200"​
- 
 ## ##
 ## Layer 1: municípios ## Layer 1: municípios
Linha 35: Linha 31:
 ##Adicionar ao BD o contorno do Paraná disponível em shapefile (fonte: IBGE) ##Adicionar ao BD o contorno do Paraná disponível em shapefile (fonte: IBGE)
 addShape(l.pr,​ tab="​Parana",​ file="​parana_pol.shp",​ id="​CODIGO",​ length=10) addShape(l.pr,​ tab="​Parana",​ file="​parana_pol.shp",​ id="​CODIGO",​ length=10)
- 
 ## verificando status do banco e layer ## verificando status do banco e layer
 db db
Linha 72: Linha 67:
 ## Lendo atributos dos poligonos (munícipios) de outra fonte (DATASUS) ## Lendo atributos dos poligonos (munícipios) de outra fonte (DATASUS)
 ## (serão necessárias operações para compatibilizar com dados do IBGE) ## (serão necessárias operações para compatibilizar com dados do IBGE)
- 
 figado <- read.csv("​cancerfigadopop2005.csv"​) figado <- read.csv("​cancerfigadopop2005.csv"​)
 head(figado) head(figado)
Linha 82: Linha 76:
  
 ## um município trocou o nome..... ## um município trocou o nome.....
-## fix (temporário até obter mapa atualizado do IBGE)+## fix (temporário até obter mapa atualizado do IBGE.... se tiver... 
 +## no site do IBGE consta Alto Paraíso -- o nome atual--, mas no arquivo apra download ainda está 
 +## Alta Vista, mesmo para 2005)
 ## para arquivo do IBGE (Vila Alta == Alto Paraíso) ## para arquivo do IBGE (Vila Alta == Alto Paraíso)
  
Linha 88: Linha 84:
 figado[figado$municipio == "Alto Paraíso",​ "​municipio"​] <- "Vila Alta" figado[figado$municipio == "Alto Paraíso",​ "​municipio"​] <- "Vila Alta"
  
 +## verificando igualdade entre nomes de Municípios
 all.equal(municDt$NOME,​figado$municipio) all.equal(municDt$NOME,​figado$municipio)
 ##estão em ordem diferente... ##estão em ordem diferente...
Linha 105: Linha 102:
  
 ## checando e corrigindo **CODIGOS** dos municípios:​ ## checando e corrigindo **CODIGOS** dos municípios:​
-## código do IBGE tem 1 campo a mais que o do DATASUS+## código do IBGE tem 1 dígito ​a mais que o do DATASUS ... 
 +## vamos extrair do IBGE e anexar ao do DATASUS
 figado$id <- as.character(figado$id) figado$id <- as.character(figado$id)
  
-cbind(figado$id,​ municDt$CODIGO)+head(cbind(figado$id,​ municDt$CODIGO))
 figado$id <- paste(figado$id,​substr(municDt$CODIGO,​ 7, 7),​sep=""​) figado$id <- paste(figado$id,​substr(municDt$CODIGO,​ 7, 7),​sep=""​)
 all.equal(municDt$CODIGO,​figado$id) all.equal(municDt$CODIGO,​figado$id)
  
- +## 
-## Q: suponha agora que eu tenha varios ​atributos ​no R, provenientes ​de outra +## Adicionando ​atributos de outra fonte de dados aos polígonos 
-##    ​fonte e associados ​aos polígonos ​como acima. +##
-##    Qual a melhor maneira de adicionar à tabela já existente (Paraná)?​ +
-##    (tem que ser coluna a coluna com updatecolumns ou melhor abrir outra tabela ?+
 ## No exemplo abaixo quero adicionar o data frame "​figado"​ ao banco  ## No exemplo abaixo quero adicionar o data frame "​figado"​ ao banco 
  
Linha 124: Linha 120:
 #> getID(municTab) #> getID(municTab)
 #Erro em getID(municTab) : Not implemented yet #Erro em getID(municTab) : Not implemented yet
- 
  
 ## 1. adicionando à tabela já existente: ## 1. adicionando à tabela já existente:
-## (o que tentei a seguir nao funcionou, tem que ser coluna a coluna...???​) +## 1.1 Adicionar/​atualizar ​todas as colunas de uma só vez: updateColumns() 
- +## Erros aconteciam abaixo qdo usava-se o nome errado da variável id: 
-## 1.1 tentando adcionar ​todas as colunas de uma só vez:+## a msg poderia ser informativa?​ 
 +## msg de erro era: 
 +## Erro em if (poskey != 1) { : argumento tem comprimento zero
  
-## CODIGO foi usado como ID para munic no addShape() portanto uando aqui tb para figado 
 all.equal(municDt$CODIGO,​figado$id) all.equal(municDt$CODIGO,​figado$id)
 municTab municTab
-updateColumns(municTab,​ figado) ## nao funcionou mas pelo vignette aRTtable deveria... 
-## Erro em if (poskey != 1) { : argumento tem comprimento zero 
- 
- 
-## 1.2 adicionando as colunas uma a uma... (arrrgh) 
 names(figado) names(figado)
-for(cc in names(figado)[3:​4]){ 
-  tmp <- data.frame(id=figado$id,​ data = figado[,​cc]) 
-  names(tmp)[2] <- cc 
-  print(head(tmp)) 
-  createColumn(municTab,​ cc, type="​int"​) 
-  updateColumns(municTab,​ tmp) 
-} 
-## mesmo erro que acima: 
-##Erro em if (poskey != 1) { : argumento tem comprimento zero 
  
 +## note que para updateColumns() a doc diz que o id deve estar na primeira coluna do data-frame!
 +## o ID deve ter o mesmo nome da tabela original (CODIGO neste exemplo)
 +## CODIGO foi usado como ID para munic no addShape() portanto usando aqui tb para figado
 +names(figado)[1] <- "​CODIGO"​
 +updateColumns(municTab,​ figado)
 +
 +## 1.2 alternativa adicionando as colunas uma a uma... ​
 +## note que o ID dev e ser chamado de CODIGO que foi definido anteriormente
 +#​names(figado)
 +#for(cc in names(figado)[3:​4]){
 +#  tmp <- data.frame(CODIGO=figado$id,​ data = figado[,​cc])
 +#  names(tmp)[2] <- cc
 +#  print(head(tmp))
 +#  createColumn(municTab,​ cc, type="​int"​)
 +#  updateColumns(municTab,​ tmp)
 +#}
  
 ## 2. adicionando como uma nova tabela ## 2. adicionando como uma nova tabela
 +## 2.1 usando importTable()
 +figadoTab1 <- importTable(l.pr,​ "​FigadoCancer",​ id="​id",​ figado)
 +l.pr
  
-## 2.usando creatTable()+## 2.usando creatTable()
 figadoTab <- createTable(l.pr,​ "​CancerFigado"​) figadoTab <- createTable(l.pr,​ "​CancerFigado"​)
 figadoTab figadoTab
Linha 159: Linha 160:
 updateColumns(figadoTab,​ figado) updateColumns(figadoTab,​ figado)
 figadoTab figadoTab
- 
-## usando importTable() 
-figadoTab1 <- importTable(l.pr,​ "​FigadoCancer",​ id="​id",​ figado) 
- 
 l.pr l.pr
  
Linha 168: Linha 165:
 ##    A segunda simplesmente encapsula os comandos da primeira em uma unica chamada? ##    A segunda simplesmente encapsula os comandos da primeira em uma unica chamada?
  
 +## removendo tabela(s):
 +## o seguinte não funcionou:
 +deleteTable(l.pr,​ "​FigadoCancer"​)
 +#Erro em function (classes, fdef, mtable) ​ : 
 +#  unable to find an inherited method for function "​deleteTable",​ for signature "​aRTlayer"​
 +
 +## e o seguinte deu um crash!
 +#​deleteTable(db,​ "​FigadoCancer"​)
  
 ## ##
 ## Layer 2: dados geoquímicos ## Layer 2: dados geoquímicos
 ## ##
- 
 ## Q: ## Q:
 ## Pedro, aqui estou tentando usar 3 formas diferentes de colocar ## Pedro, aqui estou tentando usar 3 formas diferentes de colocar
 ## o dado de pontos no banco, mas as baseadas im importSpData() ## o dado de pontos no banco, mas as baseadas im importSpData()
 ## estao dando problemas ## estao dando problemas
- 
  
 ## ##
Linha 190: Linha 193:
 ## convertendo teores para SpatialPointsDataFrame ## convertendo teores para SpatialPointsDataFrame
 names(teores) names(teores)
 +teores$ID <- as.character(1:​nrow(teores))
 coordinates(teores) <- c("​LONGITUDE","​LATITUDE"​) coordinates(teores) <- c("​LONGITUDE","​LATITUDE"​)
-teores$ID <- as.character(1:​nrow(teores)) 
 ## Q: como atribuir projeção ao Layer criado com importSpData()?​ O seguinte é válido? ## Q: como atribuir projeção ao Layer criado com importSpData()?​ O seguinte é válido?
 attr(teores,​ "​proj4string"​) <- CRS(proj) attr(teores,​ "​proj4string"​) <- CRS(proj)
-l1.geoq <- importSpData(db,​ teores, "​GQ1"​)+l1.geoq <- importSpData(db,​ teores, "GQ1", "geoq1")
 ## MSG DE ERRO: ## MSG DE ERRO:
 #Erro em .aRTcall(object,​ "​cppUpdateColumns",​ colnames = colnames(data), ​ :  #Erro em .aRTcall(object,​ "​cppUpdateColumns",​ colnames = colnames(data), ​ : 
Linha 204: Linha 207:
 ## ##
 teores <- read.table("​aguafix.csv",​ head=T, sep=";"​) teores <- read.table("​aguafix.csv",​ head=T, sep=";"​)
-teores$ID <- as.character(1:nrow(teores)+names(teores)[1] <- "​ID"​ 
-#ll <- SpatialPoints(teores[,​c("​LONGITUDE",​ "​LATITUDE"​)],​ proj=CRS(proj))+teores$ID <- as.character(teores$ID
 +##ll <- SpatialPoints(teores[,​c("​LONGITUDE",​ "​LATITUDE"​)],​ proj=CRS(proj))
 lldf <- SpatialPointsDataFrame(coords=teores[,​c("​LONGITUDE",​ "​LATITUDE"​)],​ lldf <- SpatialPointsDataFrame(coords=teores[,​c("​LONGITUDE",​ "​LATITUDE"​)],​
                                ​data=teores[,​-(4:​5)],​                                ​data=teores[,​-(4:​5)],​
                                proj = CRS(proj))                                proj = CRS(proj))
-l12.geoq <- importSpData(db,​ lldf, "​GQ2"​)+l12.geoq <- importSpData(db,​ lldf, "GQ2", "geoq2")
 #Erro em .aRTcall(object,​ "​cppUpdateColumns",​ colnames = colnames(data), ​ :  #Erro em .aRTcall(object,​ "​cppUpdateColumns",​ colnames = colnames(data), ​ : 
 #  Could not update the table #  Could not update the table
Linha 219: Linha 223:
 teores <- read.table("​aguafix.csv",​ head=T, sep=";"​) teores <- read.table("​aguafix.csv",​ head=T, sep=";"​)
 coordinates(teores) <- c("​LONGITUDE","​LATITUDE"​) coordinates(teores) <- c("​LONGITUDE","​LATITUDE"​)
-teores$ID <- as.character(1:nrow(teores))+names(teores)[1] <- "​ID"​ 
 +teores$ID <- as.character(teores$ID)
 attr(teores,​ "​proj4string"​) <- CRS(proj) attr(teores,​ "​proj4string"​) <- CRS(proj)
  
Linha 233: Linha 238:
 ## Forma 4: (Funcionou, mas...) ## Forma 4: (Funcionou, mas...)
 ## ##
-## alternativa a importSpData() seria fazer passo a passo 
 teores <- read.table("​aguafix.csv",​ head=T, sep=";"​) teores <- read.table("​aguafix.csv",​ head=T, sep=";"​)
-teores$ID <- as.character(1:nrow(teores))+names(teores)[1] <- "​ID"​ 
 +teores$ID <- as.character(teores$ID)
 lldf <- SpatialPointsDataFrame(coords=teores[,​c("​LONGITUDE",​ "​LATITUDE"​)],​ lldf <- SpatialPointsDataFrame(coords=teores[,​c("​LONGITUDE",​ "​LATITUDE"​)],​
                                ​data=teores[,​-(4:​5)],​                                ​data=teores[,​-(4:​5)],​
Linha 245: Linha 250:
 l4.geoq l4.geoq
 ## ele nao aceitou usar o nome da tabela "​Elementos"​ já usado acima ## ele nao aceitou usar o nome da tabela "​Elementos"​ já usado acima
-##  mesmo etando ​em outro layer !!!!!!+##  mesmo estando ​em outro layer !!!!!!
 tb4.geoq <- importTable(l4.geoq,​ "​Elem",​ id="​ID",​ lldf) tb4.geoq <- importTable(l4.geoq,​ "​Elem",​ id="​ID",​ lldf)
 l4.geoq l4.geoq
 tb4.geoq tb4.geoq
-</​code ​R>+</​code>​
  

QR Code
QR Code software:art:scripts:scriptgm-pj (generated for current page)