Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
Ambos lados da revisão anteriorRevisão anterior | |||
software:art:scripts:scriptgm-pj [2007/11/16 19:26] – paulojus | 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/ |
<code R> | <code R> | ||
- | |||
## | ## | ||
## Importação dos dados de arquivos | ## Importação dos dados de arquivos | ||
Linha 9: | 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 19: | Linha 17: | ||
##Apagar banco já existente | ##Apagar banco já existente | ||
if(any(showDbs(con)==" | if(any(showDbs(con)==" | ||
- | |||
##Criando um novo banco | ##Criando um novo banco | ||
db=createDb(con, | db=createDb(con, | ||
db | db | ||
- | |||
## string definindo a projeção | ## string definindo a projeção | ||
proj=" | proj=" | ||
- | |||
## | ## | ||
## Layer 1: municípios | ## Layer 1: municípios | ||
Linha 36: | 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, | addShape(l.pr, | ||
- | |||
## verificando status do banco e layer | ## verificando status do banco e layer | ||
db | db | ||
Linha 73: | 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(" | figado <- read.csv(" | ||
head(figado) | head(figado) | ||
Linha 83: | 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 89: | Linha 84: | ||
figado[figado$municipio == "Alto Paraíso", | figado[figado$municipio == "Alto Paraíso", | ||
+ | ## verificando igualdade entre nomes de Municípios | ||
all.equal(municDt$NOME, | all.equal(municDt$NOME, | ||
##estão em ordem diferente... | ##estão em ordem diferente... | ||
Linha 106: | 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 |
+ | ## vamos extrair do IBGE e anexar ao do DATASUS | ||
figado$id <- as.character(figado$id) | figado$id <- as.character(figado$id) | ||
- | cbind(figado$id, | + | head(cbind(figado$id, |
figado$id <- paste(figado$id, | figado$id <- paste(figado$id, | ||
all.equal(municDt$CODIGO, | all.equal(municDt$CODIGO, | ||
- | + | ## | |
- | ## Q: suponha agora que eu tenha varios | + | ## Adicionando |
- | ## | + | ## |
- | ## 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 " | ## No exemplo abaixo quero adicionar o data frame " | ||
Linha 125: | 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/ |
- | + | ## Erros aconteciam abaixo qdo usava-se o nome errado da variável id: | |
- | ## 1.1 tentando adcionar | + | ## 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, | all.equal(municDt$CODIGO, | ||
municTab | municTab | ||
- | updateColumns(municTab, | + | names(figado) |
- | ## 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] <- " | ||
+ | updateColumns(municTab, | ||
- | ## 1.2 adicionando as colunas uma a uma... | + | ## 1.2 alternativa |
- | names(figado) | + | ## note que o ID dev e ser chamado de CODIGO que foi definido anteriormente |
- | for(cc in names(figado)[3: | + | #names(figado) |
- | tmp <- data.frame(id=figado$id, data = figado[, | + | #for(cc in names(figado)[3: |
- | names(tmp)[2] <- cc | + | # tmp <- data.frame(CODIGO=figado$id, data = figado[, |
- | print(head(tmp)) | + | # |
- | createColumn(municTab, | + | # |
- | updateColumns(municTab, | + | # |
- | } | + | # |
- | ## mesmo erro que acima: | + | #} |
- | ##Erro em if (poskey != 1) { : argumento tem comprimento zero | + | |
## 2. adicionando como uma nova tabela | ## 2. adicionando como uma nova tabela | ||
+ | ## 2.1 usando importTable() | ||
+ | figadoTab1 <- importTable(l.pr, | ||
+ | l.pr | ||
- | ## 2.1 usando creatTable() | + | ## 2.2 usando creatTable() |
figadoTab <- createTable(l.pr, | figadoTab <- createTable(l.pr, | ||
figadoTab | figadoTab | ||
Linha 160: | Linha 160: | ||
updateColumns(figadoTab, | updateColumns(figadoTab, | ||
figadoTab | figadoTab | ||
- | |||
- | ## usando importTable() | ||
- | figadoTab1 <- importTable(l.pr, | ||
- | |||
l.pr | l.pr | ||
Linha 169: | 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, | ||
+ | #Erro em function (classes, fdef, mtable) | ||
+ | # unable to find an inherited method for function " | ||
+ | |||
+ | ## e o seguinte deu um crash! | ||
+ | # | ||
## | ## | ||
## 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 191: | Linha 193: | ||
## convertendo teores para SpatialPointsDataFrame | ## convertendo teores para SpatialPointsDataFrame | ||
names(teores) | names(teores) | ||
+ | teores$ID <- as.character(1: | ||
coordinates(teores) <- c(" | coordinates(teores) <- c(" | ||
- | teores$ID <- as.character(1: | ||
## Q: como atribuir projeção ao Layer criado com importSpData()? | ## Q: como atribuir projeção ao Layer criado com importSpData()? | ||
attr(teores, | attr(teores, | ||
- | l1.geoq <- importSpData(db, | + | l1.geoq <- importSpData(db, |
## MSG DE ERRO: | ## MSG DE ERRO: | ||
#Erro em .aRTcall(object, | #Erro em .aRTcall(object, | ||
Linha 205: | Linha 207: | ||
## | ## | ||
teores <- read.table(" | teores <- read.table(" | ||
- | teores$ID <- as.character(1:nrow(teores)) | + | names(teores)[1] <- " |
- | #ll <- SpatialPoints(teores[, | + | teores$ID <- as.character(teores$ID) |
+ | ##ll <- SpatialPoints(teores[, | ||
lldf <- SpatialPointsDataFrame(coords=teores[, | lldf <- SpatialPointsDataFrame(coords=teores[, | ||
| | ||
proj = CRS(proj)) | proj = CRS(proj)) | ||
- | l12.geoq <- importSpData(db, | + | l12.geoq <- importSpData(db, |
#Erro em .aRTcall(object, | #Erro em .aRTcall(object, | ||
# Could not update the table | # Could not update the table | ||
Linha 220: | Linha 223: | ||
teores <- read.table(" | teores <- read.table(" | ||
coordinates(teores) <- c(" | coordinates(teores) <- c(" | ||
- | teores$ID <- as.character(1:nrow(teores)) | + | names(teores)[1] <- " |
+ | teores$ID <- as.character(teores$ID) | ||
attr(teores, | attr(teores, | ||
Linha 234: | Linha 238: | ||
## Forma 4: (Funcionou, mas...) | ## Forma 4: (Funcionou, mas...) | ||
## | ## | ||
- | ## alternativa a importSpData() seria fazer passo a passo | ||
teores <- read.table(" | teores <- read.table(" | ||
- | teores$ID <- as.character(1:nrow(teores)) | + | names(teores)[1] <- " |
+ | teores$ID <- as.character(teores$ID) | ||
lldf <- SpatialPointsDataFrame(coords=teores[, | lldf <- SpatialPointsDataFrame(coords=teores[, | ||
| | ||
Linha 246: | Linha 250: | ||
l4.geoq | l4.geoq | ||
## ele nao aceitou usar o nome da tabela " | ## ele nao aceitou usar o nome da tabela " | ||
- | ## mesmo etando | + | ## mesmo estando |
tb4.geoq <- importTable(l4.geoq, | tb4.geoq <- importTable(l4.geoq, | ||
l4.geoq | l4.geoq |