Diferenças

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

Link para esta página de comparações

Ambos lados da revisão anteriorRevisão anterior
Próxima revisão
Revisão anterior
software:art:curso:chuvapr [2007/12/12 00:34] paulojussoftware:art:curso:chuvapr [2007/12/12 00:56] (atual) paulojus
Linha 1: Linha 1:
 ====== Exemplo: chuva no Paraná e Krigagem ====== ====== Exemplo: chuva no Paraná e Krigagem ======
  
-1. exemplo: Banco de Dados de Chuva no PR +Exemplo: Banco de Dados de Chuva no PR\\ 
-Banco existente no SGBD+Banco existente no SGBD\\
 (banco geográfico no formato TerraLib) (banco geográfico no formato TerraLib)
-## 
-2. Conectando e inspecionando o banco 
-## 
  
-para ilustrar o uso vamos fazer as operações no R via aRT +// 
-e acompanhar visualizando no terraView+// 
 +** 1. Conectando banco, visualizando no R e criando vistasno TV **
  
 +**//Fazer no TV://**
 +  - abrir o terraView e conectar ao banco "chuvaPR"
 +  - se existir alguma vista já criada, visualize!
  
-## +<code R>
-1. Conectando banco, visualizando no e criando vistasno TV +
-## +
- +
-**** fazer no TV: +
-a. abrir o terraView e conectar ao banco "chuvaPR" +
-## +
-b. se existir alguma vista já criada, visualize! +
 require(aRT) require(aRT)
 +</code>
  
-estabelecendo conexão com o DBMS (SGBD)+Estabelecendo conexão com o DBMS (SGBD) 
 +<code R>
 con <- openConn() con <- openConn()
 con con
 +</code>
  
-listando os bancos existentes no DBMS+Listando os bancos existentes no DBMS 
 +<code R>
 showDbs(con) showDbs(con)
 +</code>
  
-conectando a um banco da dados+Conectando a um banco da dados 
 +<code R>
 pr <- openDb(con, "chuvaPR", update=T) pr <- openDb(con, "chuvaPR", update=T)
 +</code>
  
-visualizando informações deste banco+Visualizando informações deste banco 
 +<code R>
 pr pr
 +</code>
  
-abrindo o layer com contorno do estado+Abrindo o layer com contorno do estado 
 +<code R>
 pr.l_contorno <- openLayer(pr, "contorno") pr.l_contorno <- openLayer(pr, "contorno")
 pr.l_contorno pr.l_contorno
 visualizando dado do layer visualizando dado do layer
 plot(pr.l_contorno) plot(pr.l_contorno)
 +</code>
  
-abrindo outro layer, das estações meteorológicas e dados de precipitação+Abrindo outro layer, das estações meteorológicas e dados de precipitação 
 +<code R>
 pr.l_dados <- openLayer(pr, "dados") pr.l_dados <- openLayer(pr, "dados")
 pr.l_dados pr.l_dados
 +</code>
  
-visualizando, sobrepondo ao gráfico anterior+Visualizando, sobrepondo ao gráfico anterior 
 +<code R>
 plot(pr.l_dados, add=T) plot(pr.l_dados, add=T)
 +</code>
  
-apagando uma "vista" pré-existente do banco+Apagando uma "vista" pré-existente do banco 
 +<code R>
 deleteView(pr, "Parana" type Y at the R prompt deleteView(pr, "Parana" type Y at the R prompt
 +</code>
  
-**** fazer no TV: +**//Fazer no TV://** 
-reconectar o banco o TV e ver que a vista "sumiu"!!!+  reconectar o banco o TV e ver que a vista "sumiu"!!!
  
- +Criando uma vista/tema com o contorno ... 
-criando uma vista/tema com o contorno ...+<code R>
 tema_pol <- createTheme(pr.l_contorno, "contorno", view="Parana") tema_pol <- createTheme(pr.l_contorno, "contorno", view="Parana")
 setVisual(tema_pol, visualPolygons()) setVisual(tema_pol, visualPolygons())
 +</code>
  
 ... e adicionando os pontos à vista já criada ... e adicionando os pontos à vista já criada
 +<code R>
 tema_dados <- createTheme(pr.l_dados, "estacoes", view = "Parana") tema_dados <- createTheme(pr.l_dados, "estacoes", view = "Parana")
 setVisual(tema_dados, visualPoints(pch=21, color="black", size=5)) setVisual(tema_dados, visualPoints(pch=21, color="black", size=5))
 +</code>
  
-**** fazer no TV: +**// Fazer no TV://** 
-reconectar o banco o TV e ver que "apareceu" a vista agora chamada "parana" !!!+  reconectar o banco o TV e ver que "apareceu" a vista agora chamada "parana" !!!
  
-## +// 
-2. Operações da TL via aRT +// 
-## +** 2. Operações da TL via aRT ** 
-ilustrando como (algumas) operações da terraLib podem ser usadas+ 
 +Ilustrando como (algumas) operações da terraLib podem ser usadas 
 +<code R>
 getProj(pr.l_contorno) getProj(pr.l_contorno)
 getMetric(pr.l_contorno, "area") getMetric(pr.l_contorno, "area")
Linha 78: Linha 93:
 getDistance(pr.l_contorno, id=as.character(c(1,3)), pr.l_dados) getDistance(pr.l_contorno, id=as.character(c(1,3)), pr.l_dados)
 getDistance(pr.l_contorno, id=as.character(c(2,3)), pr.l_dados) getDistance(pr.l_contorno, id=as.character(c(2,3)), pr.l_dados)
 +</code>
  
 +//
 +//
 +** 3. Trazendo e manipulando dados e fazendo análises no R **
  
- +Abrindo o tema e trazendo dados para um objeto do R\\ 
-## +Duas possibilidades: 
-3. Trazendo e manipulando dados e fazendo análises no R +  via "theme" 
-## +<code R>
- +
-abrindo o tema e trazendo dados para um objeto do R +
- +
-duas possibilidades: +
-a. via "theme"+
 pr pr
 th_dados <- openTheme(pr, "estacoes") th_dados <- openTheme(pr, "estacoes")
Linha 94: Linha 108:
 dados <- getData(th_dados) dados <- getData(th_dados)
 head(dados) head(dados)
- +</code> 
-b. via tabela do banco+  via tabela do banco 
 +<code R>
 pr.l_dados pr.l_dados
 tb_dados <- openTable(pr.l_dados, "t_dados") tb_dados <- openTable(pr.l_dados, "t_dados")
Linha 103: Linha 118:
 pts <- getPoints(pr.l_dados) pts <- getPoints(pr.l_dados)
 dat[1:5,] dat[1:5,]
 +</code>
  
-trazendo o polígono com a borda do espaço para um objeto do R+Trazendo o polígono com a borda do espaço para um objeto do R 
 +<code R>
 pol <- getPolygons(pr.l_contorno) pol <- getPolygons(pr.l_contorno)
 pol pol
 plot(pol) plot(pol)
 +</code>
  
 Fazendo agora uma interpolação dos dados de chuva via geoestatística/krigagem Fazendo agora uma interpolação dos dados de chuva via geoestatística/krigagem
  
-carregando o pacote geoR+  * Carregando o pacote geoR 
 +<code R>
 require(geoR) require(geoR)
- +</code> 
-convertendo dados os dados para o formato "geodata" da geoR (conveniente) +  * Convertendo dados os dados para o formato "geodata" da geoR (conveniente)  
 +<code R>
 geo <- as.geodata(dados, data.col=2) geo <- as.geodata(dados, data.col=2)
 geo$borders <- pol@polygons[[1]]@Polygons[[1]]@coords geo$borders <- pol@polygons[[1]]@Polygons[[1]]@coords
 plot(geo) plot(geo)
- +</code> 
-estimando parâmetros +  * Estimando parâmetros  
 +<code R>
 ml <- likfit(geo, trend="1st", ini=c(1000, 100)) um pouco demorado ml <- likfit(geo, trend="1st", ini=c(1000, 100)) um pouco demorado
 definindo e visualizando grid de predição definindo e visualizando grid de predição
Linha 125: Linha 146:
 points(geo, bor=borders) points(geo, bor=borders)
 points(loc0, pch=".", col=2) veja gráfico! points(loc0, pch=".", col=2) veja gráfico!
-e fazendo krigagem+</code> 
 +  * e fazendo krigagem 
 +<code R>
 kc <- krige.conv(geo, loc=loc0, krige=krige.control(obj=ml), bor=geo$borders) kc <- krige.conv(geo, loc=loc0, krige=krige.control(obj=ml), bor=geo$borders)
- +</code> 
-visualizando no R+  visualizando no R 
 +<code R>
 image(kc, col=terrain.colors(15), coords=parana$coords) ver gráfico image(kc, col=terrain.colors(15), coords=parana$coords) ver gráfico
 +</code>
  
 Preparing the predictions for aRT to transfer as a raster to the DBMS Preparing the predictions for aRT to transfer as a raster to the DBMS
 +<code R>
 georpred <- .prepare.graph.kriging(locations=loc0, borders=parana$borders, values=kc$pred) georpred <- .prepare.graph.kriging(locations=loc0, borders=parana$borders, values=kc$pred)
 names(georpred)[3] <- "z" names(georpred)[3] <- "z"
 +</code>
  
-criando um novo layer no banco para armazenar o grid de predição+Criando um novo layer no banco para armazenar o grid de predição 
 +<code R>
 pr.l_pred <- createLayer(pr, "predicao") pr.l_pred <- createLayer(pr, "predicao")
 addRaster(pr.l_pred, georpred) addRaster(pr.l_pred, georpred)
 +</code>
  
-checking the current status of the DB+Checking the current status of the DB 
 +<code R>
 pr pr
 +</code>
  
-**** fazer no TV: +**// Fazer no TV://** 
-reconectar o banco o TV e ver que um novo layer foi criado +  reconectar o banco o TV e ver que um novo layer foi criado
  
 Optional : setting to a TV view Optional : setting to a TV view
 +<code R>
 th <- createTheme(pr.l_pred, "raster", view="parana") th <- createTheme(pr.l_pred, "raster", view="parana")
 setVisual(th, visualRaster(color = terrain.colors(15)), mode="r") setVisual(th, visualRaster(color = terrain.colors(15)), mode="r")
 pr pr
 +</code>
  
-**** fazer no TV: +**// Fazer no TV://** 
-reconectar o banco o TV e ver que um novo tema foi adicionado a vista +  reconectar o banco o TV e ver que um novo tema foi adicionado a vista 
-visualize!!!! +  visualize!!!!
  
-## 
-Adicionando uma nova coluna (com predições) à tabela de dados 
-## 
  
-para exemplicifar isto vamos fazer a krigagem nos pontos onde há dados+// 
 +// 
 +** 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, loc=geo$coords, krige=krige.control(obj=ml), borders=NULL) kc0 <- krige.conv(geo, loc=geo$coords, krige=krige.control(obj=ml), borders=NULL)
 prs <- data.frame(id=rownames(geo$coords), pred=kc0$pred) prs <- data.frame(id=rownames(geo$coords), pred=kc0$pred)
 createColumn(tb_dados, "preds", type="numeric") createColumn(tb_dados, "preds", type="numeric")
 updateColumns(tb_dados, prs) updateColumns(tb_dados, prs)
 +</code>
  
 veja o novo status da tabela veja o novo status da tabela
 +<code R>
 tb_dados tb_dados
 +</code>
  
  
-*** fazer no TV: +**//Fazer no TV://** 
-reconectar o banco e ver que há agora uma nova tabela no layer de dados+  reconectar o banco e ver que há agora uma nova tabela no layer de dados
  
-## +// 
-4. Some plots +// 
-##+** 5. Some plots **
  
 Plotting directly from the data-base (not using R objects) Plotting directly from the data-base (not using R objects)
 +<code R>
 plot(pr.l_pred, col=terrain.colors(15)) plot(pr.l_pred, col=terrain.colors(15))
 plot(pr.l_dados, add=T) plot(pr.l_dados, add=T)
 plot(pr.l_contorno, add=T) veja a figura! plot(pr.l_contorno, add=T) veja a figura!
 +</code>
 +
  
-## 
 Deletando um layer Deletando um layer
- +<code R> 
-deleteLayer(con, "pr.l_pred"+deleteLayer(con, "pr.l_pred"
 +</code>
  
  

QR Code
QR Code software:art:curso:chuvapr (generated for current page)