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