Não foi possível enviar o arquivo. Será algum problema com as permissões?

Essa é uma revisão anterior do documento!


Exemplo: combinando dados de municípios e mesoregiões

Exemplo: combinando dados de municípios e mesoregiões

Script para construir um banco com as cidades e as mesoregioes do parana a partir de um shapefile e um csv (arquivos já incluídos no pacote aRT). São criados vários temas com diferentes opções de visualização/fatiamento.

require(aRT)
con=openConn()
con
 
if(any(showDbs(con)=="meso"))
  deleteDb(con, "meso", force=T)

criando o banco

db=createDb(con,db="meso")

importando o shapefile e informando sobre projecao

proj="+proj=poly" +lon_0=0.0 +lat_0=0.0 +x_0=0.0 +y_0=0.0 +a=6378160.0 +f=0.003353"

criando layer a partir do shapefile (diretamente s/ impotar p/ R)

l=createLayer(db, l="cidades", proj=proj)
getProj(l)
addShape(l, tab="tab", file=system.file("meso/parana_pol.shp",package="aRT"), id="CODIGO")

visualizando diretamente do banco

getPolygons(l)->lpol
aRTplot(lpol)

abre a tabela do shapefile e importa dados para o R

tab = openTable(l,"tab")
tdata <- getData(tab)

e calcula as meso-regioes

mesogeom <- list()
mesonomes <- unique(tdata$CODIREGIAO)
 
for(i in 1:length(mesonomes))
{
  selecionando municipios dentro da regiao i
  id=tdata$CODIGO[which(tdata$CODIREGIAO == mesonomes[i])]
  cat(paste("Processando mesoregiao",mesonomes[i], "com",length(id), "cidades\n"))
  unindo os poligonos dos municipios para formar pol. da regiao
  set=getSetOperation(l,"union",id=id)
  set@polygons[[1]]@ID = paste(mesonomes[i])
  adicionando ao objeto (list) das regioes
  mesogeom[i] = set@polygons
  aRTplot(set, col=terrain.colors(length(mesonomes)+1)[i+1], add=T, lwd=2)
}
 
aRTplot(lpol, add=T)
res = SpatialPolygons(mesogeom, 1:length(mesogeom))

insere os dados das meso-regioes, e cria temas para visualizacao

l2=createLayer(db,l="mesoreg", proj=proj)
addPolygons(l2, res)

importa a tabela estatica de um csv

mr=read.csv(system.file("meso/parana_regions.csv",package="aRT"), sep=";")
tabmeso=importTable(l2, "tabmeso", id="CODIGO", data=mr)

##########NOVO ################################ carrega os dados da tabela no R

data=getData(tabmeso)

cria um dataframe com duas colunas: o CODIGO e a soma das producoes de QPM entre 2000 e 2003

somaQPM=data.frame(CODIGO=data$CODIGO,
                   somaQPM=as.integer(data$QPM_2000)+
				           as.integer(data$QPM_2001)+
						   as.integer(data$QPM_2002)+
						   as.integer(data$QPM_2003))

as colunas do banco. Para cada coluna que nao existe ele cria antes de atualizar, e o codigo é utilizado para manter as referencias corretas

updateColumns(tabmeso, somaQPM)

#######FIM NOVO ################################

nova classe em desenvolvimento para gerar temas coloridos para TV

v = visualPolygons(color="blue", transp=80, ccolor="black")
t = createTheme(l2, "mesoregioes",view="view")
setVisual(t, v)

modificando a visualizacao das cores (vai ser encapsulado em funcoes)

v@ccolor = col2rgb("#F0F0F0")
v@transp=as.integer(50)
t = createTheme(l, "cidades",view="view")
setVisual(t, v)
 
v1=visualRaster()
aRTsilent(TRUE)

criando temas com as atributos dos minicipios

#colnames = colnames(tdata)
#for(i in 1:length(colnames))
#{
#	if(!(any(colnames[i] == c("CODIGO", "AREA_1", "PERIMETRO_", "NOME", "CODIREGIAO"))))
#	{
#		cat(paste("Creating theme", colnames[i], "\n"))
#		t=createTheme(l, th=colnames[i], view = "view")
#		setVisual(t, v1, colnames[i])
#	}
#}

#######NOVO ################################ cria os temas para os cinco atributos, quatro producoes e a soma, coloridos. Estes temas sao criados a partir do layer de mesoregioes

#for(i in c("QPM_2000", "QPM_2001","QPM_2002","QPM_2003","somaQPM"))
#{
 cat(paste("Creating theme meso", i, "\n", sep=""))
 t=createTheme(l2, th=paste("meso", i, sep=""), view = "view")
 setVisual(t, v1, att=i)
#}

##########FIM NOVO ################################

for(i in c("e","q","s"))
{
  cat(paste("Creating theme ", "QPM_2003", i, "\n", sep=""))
  t=createTheme(l, paste("cidadesQPM_2003", i, sep=""), view = "view")
    #mode abaixo define o criterio de criacao da legend (padrao TL)
  setVisual(t, v1, att="QPM_2003", mode=i)
 setVisible(t, FALSE)
}

temas com atributos das mesoregioes

#colnames = colnames(mr)
#for(i in 1:length(colnames))
#{
#	cat(paste("Creating theme", colnames[i], "\n"))
#	if(!(any(colnames[i] == c("NOME", "CODIGO"))))
#	{
#		t=createTheme(l2, th=colnames[i], view = "view")
#		setVisual(t, v1, colnames[i])
#	}
#}

operacoes em R

#munic <- getGeometry(l)
#is.list(munic)
#names(munic)
#is.list(munic$polygons)
#length(munic$polygons)
#plot(munic)


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