Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
| Próxima revisão | Revisão anterior | ||
| software:art:curso:chuvapr [2007/12/12 00:34] – criada paulojus | software:art:curso:chuvapr [2007/12/12 00:56] (atual) – paulojus | ||
|---|---|---|---|
| Linha 1: | Linha 1: | ||
| - | ====== Exemplo: | + | ====== Exemplo: |
| + | |||
| + | Exemplo: Banco de Dados de Chuva no PR\\ | ||
| + | Banco existente no SGBD\\ | ||
| + | (banco geográfico no formato TerraLib) | ||
| + | |||
| + | // | ||
| + | // | ||
| + | ** 1. Conectando banco, visualizando no R e criando vistasno TV ** | ||
| + | |||
| + | **//Fazer no TV://** | ||
| + | - abrir o terraView e conectar ao banco " | ||
| + | - se existir alguma vista já criada, visualize! | ||
| + | |||
| + | <code R> | ||
| + | require(aRT) | ||
| + | </ | ||
| + | |||
| + | Estabelecendo conexão com o DBMS (SGBD) | ||
| + | <code R> | ||
| + | con <- openConn() | ||
| + | con | ||
| + | </ | ||
| + | |||
| + | Listando os bancos existentes no DBMS | ||
| + | <code R> | ||
| + | showDbs(con) | ||
| + | </ | ||
| + | |||
| + | Conectando a um banco da dados | ||
| + | <code R> | ||
| + | pr <- openDb(con, " | ||
| + | </ | ||
| + | |||
| + | Visualizando informações deste banco | ||
| + | <code R> | ||
| + | pr | ||
| + | </ | ||
| + | |||
| + | Abrindo o layer com contorno | ||
| + | <code R> | ||
| + | pr.l_contorno <- openLayer(pr, | ||
| + | pr.l_contorno | ||
| + | visualizando dado do layer | ||
| + | plot(pr.l_contorno) | ||
| + | </ | ||
| + | |||
| + | Abrindo outro layer, das estações meteorológicas e dados de precipitação | ||
| + | <code R> | ||
| + | pr.l_dados <- openLayer(pr, | ||
| + | pr.l_dados | ||
| + | </ | ||
| + | |||
| + | Visualizando, | ||
| + | <code R> | ||
| + | plot(pr.l_dados, | ||
| + | </ | ||
| + | |||
| + | Apagando uma " | ||
| + | <code R> | ||
| + | deleteView(pr, | ||
| + | </ | ||
| + | |||
| + | **//Fazer no TV://** | ||
| + | - reconectar o banco o TV e ver que a vista " | ||
| + | |||
| + | Criando uma vista/tema com o contorno ... | ||
| + | <code R> | ||
| + | tema_pol <- createTheme(pr.l_contorno, | ||
| + | setVisual(tema_pol, | ||
| + | </ | ||
| + | |||
| + | ... e adicionando os pontos à vista já criada | ||
| + | <code R> | ||
| + | tema_dados <- createTheme(pr.l_dados, | ||
| + | setVisual(tema_dados, | ||
| + | </ | ||
| + | |||
| + | **// Fazer no TV://** | ||
| + | - reconectar o banco o TV e ver que " | ||
| + | |||
| + | // | ||
| + | // | ||
| + | ** 2. Operações da TL via aRT ** | ||
| + | |||
| + | Ilustrando como (algumas) operações da terraLib podem ser usadas | ||
| + | <code R> | ||
| + | getProj(pr.l_contorno) | ||
| + | getMetric(pr.l_contorno, | ||
| + | getMetric(pr.l_contorno, | ||
| + | |||
| + | getDistance(pr.l_contorno, | ||
| + | getDistance(pr.l_contorno, | ||
| + | getDistance(pr.l_contorno, | ||
| + | </ | ||
| + | |||
| + | // | ||
| + | // | ||
| + | ** 3. Trazendo e manipulando dados e fazendo análises no R ** | ||
| + | |||
| + | Abrindo o tema e trazendo dados para um objeto do R\\ | ||
| + | Duas possibilidades: | ||
| + | - via " | ||
| + | <code R> | ||
| + | pr | ||
| + | th_dados <- openTheme(pr, | ||
| + | th_dados | ||
| + | dados <- getData(th_dados) | ||
| + | head(dados) | ||
| + | </ | ||
| + | - via tabela do banco | ||
| + | <code R> | ||
| + | pr.l_dados | ||
| + | tb_dados <- openTable(pr.l_dados, | ||
| + | tb_dados | ||
| + | dat <- getData(tb_dados) | ||
| + | dat[1:5,] | ||
| + | pts <- getPoints(pr.l_dados) | ||
| + | dat[1:5,] | ||
| + | </ | ||
| + | |||
| + | Trazendo o polígono com a borda do espaço para um objeto do R | ||
| + | <code R> | ||
| + | pol <- getPolygons(pr.l_contorno) | ||
| + | pol | ||
| + | plot(pol) | ||
| + | </ | ||
| + | |||
| + | Fazendo agora uma interpolação dos dados de chuva via geoestatística/ | ||
| + | |||
| + | * Carregando o pacote geoR | ||
| + | <code R> | ||
| + | require(geoR) | ||
| + | </ | ||
| + | * Convertendo dados os dados para o formato " | ||
| + | <code R> | ||
| + | geo <- as.geodata(dados, | ||
| + | geo$borders <- pol@polygons[[1]]@Polygons[[1]]@coords | ||
| + | plot(geo) | ||
| + | </ | ||
| + | * Estimando parâmetros | ||
| + | <code R> | ||
| + | ml <- likfit(geo, trend=" | ||
| + | definindo e visualizando grid de predição | ||
| + | loc0 <- pred_grid(geo$borders, | ||
| + | points(geo, bor=borders) | ||
| + | points(loc0, | ||
| + | </ | ||
| + | * e fazendo krigagem | ||
| + | <code R> | ||
| + | kc <- krige.conv(geo, | ||
| + | </ | ||
| + | * visualizando no R | ||
| + | <code R> | ||
| + | image(kc, col=terrain.colors(15), | ||
| + | </ | ||
| + | |||
| + | Preparing the predictions for aRT to transfer as a raster to the DBMS | ||
| + | <code R> | ||
| + | georpred <- .prepare.graph.kriging(locations=loc0, | ||
| + | names(georpred)[3] <- " | ||
| + | </ | ||
| + | |||
| + | Criando um novo layer no banco para armazenar o grid de predição | ||
| + | <code R> | ||
| + | pr.l_pred <- createLayer(pr, | ||
| + | addRaster(pr.l_pred, | ||
| + | </ | ||
| + | |||
| + | Checking the current status of the DB | ||
| + | <code R> | ||
| + | pr | ||
| + | </ | ||
| + | |||
| + | **// Fazer no TV://** | ||
| + | - reconectar o banco o TV e ver que um novo layer foi criado | ||
| + | |||
| + | Optional : setting to a TV view | ||
| + | <code R> | ||
| + | th <- createTheme(pr.l_pred, | ||
| + | setVisual(th, | ||
| + | pr | ||
| + | </ | ||
| + | |||
| + | **// Fazer no TV://** | ||
| + | - reconectar o banco o TV e ver que um novo tema foi adicionado a vista | ||
| + | - visualize!!!! | ||
| + | |||
| + | |||
| + | // | ||
| + | // | ||
| + | ** 4. Adicionando uma nova coluna (com predições) à tabela de dados **\\ | ||
| + | Para exemplificar isto vamos fazer a krigagem nos pontos onde há dados | ||
| + | <code R> | ||
| + | kc0 <- krige.conv(geo, | ||
| + | prs <- data.frame(id=rownames(geo$coords), | ||
| + | createColumn(tb_dados, | ||
| + | updateColumns(tb_dados, | ||
| + | </ | ||
| + | |||
| + | veja o novo status da tabela | ||
| + | <code R> | ||
| + | tb_dados | ||
| + | </ | ||
| + | |||
| + | |||
| + | **//Fazer no TV://** | ||
| + | - reconectar o banco e ver que há agora uma nova tabela no layer de dados | ||
| + | |||
| + | // | ||
| + | // | ||
| + | ** 5. Some plots ** | ||
| + | |||
| + | Plotting directly from the data-base (not using R objects) | ||
| + | <code R> | ||
| + | plot(pr.l_pred, | ||
| + | plot(pr.l_dados, | ||
| + | plot(pr.l_contorno, | ||
| + | </ | ||
| + | |||
| + | |||
| + | Deletando um layer | ||
| + | <code R> | ||
| + | deleteLayer(con, | ||
| + | </ | ||