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] – criada paulojussoftware: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)