Dados em uso Março 2009
23 de Março de 2009
Incluindo os dados de altura no arquivo peic_fev_2009.txt
Esses dados de altura são os dados que se encontram nos arquivos da página do PPSP. Os dois arquivos tem alguns dados conflitantes e repetidos. Após tirar esses conflitos fiz uma seleção utilizando a regressão entre dap e altura como critério de decisão. Os dados utilizados estão no arquivo abaixo:
ESSE ARQUIVO SERVIU APENAS PARA EXTRAIR OS DADOS DE ALTURA, TODO O RESTO FOI DESCARTADO, PORTANTO NÃO O USE!!!
Script do R
read.table("peic.alt2005.txt", header=T, sep="\t", as.is=T)->peic.alt
read.table("peic.alt2005.txt", header=T, sep="\t", as.is=T)->peic.alt
match(peic.alt$tag, peic$tag)->match.alt
table(is.na(match.alt))
## achei um NA
## parc tag Altura
##12494 M15 113441 5.5
peic.alt=peic.alt[peic.alt$tag!=113441,]
## retirei o dado em peic.alt que não existe nos dados peic
match(peic.alt$tag, peic$tag)->match.alt
## refaz o match para não ter dados faltantes (NA)
alt_2005=rep(NA,dim(peic)[1])
## cria um vetor com NA's com mesmo no. de dados do arquivo peic
alt_2005[match.alt]<-peic.alt$Altura
peic$alt_2005<-alt_2005
## coloca os dados de altura na posição certa dos tags do peic e depois coloca os dados em uma nova coluna em peic
write.table(peic, file="peic_mar_2009.txt", sep="\t", row.names=F)
19 de fevereiro de 2009
Notei que o campo /codes/ do arquivo com os dados de recenso não tinham a legenda /lx/ e /ly/ quando os dados apresentavam problemas no mapeamento. Isso foi feito durante o workshop do CTFS. Por algum motivo isso ficou fora do arquivo que atualizei em novembro. Caso não esteja preocupado com os códigos, o arquivo de novembro não apresenta diferenças. 0 arquivo com códigos completos e atual agora é:
O arquivo que estamos usando para o recenso agora é:
Dados em uso Novembro 08
ESSE PRIMEIRO ARQUIVO ESTÁ NO FORMATO CTFS E IRÁ PARA O BANCO DE DADOS MYSQL DO LABTROP. AS ESPÉCIES ESTÃO EM CÓDIGO E HÁ TB. CÓDIGOS DE OBSERVAÇÃO QUE ACOMPANHA EM ARQUIVOS SEPARADOS. APÓS SALVAR, RETIRAR A EXTENSÃO .PDF
Esse outro arquivo tem colunas com a espécie, mas os códigos de observações não foram atualizados, está com as colunas do original que o Renato passou. A principal modificação além do ajuste dos dados é que fustes múltiplos foram colocados em linhas diferentes, repetindo os outros valores e utilizando o stemtag como diferenciador. O fustes estão em ordem de tamanho, ou deveriam, fizemos uma função para isso.
CTFS Workshop
Outubro de 2008
Alexandre
Levei o arquivo fonecido pelo Renato com os dados de identificação corrigidos. A planilha foi aquela entregue pelo Marcão ao PPSP, depois do segundo censo. Fiz muitas correções e produzi um arquivo com os problemas encontrados, principalmente x,y.
Vou incluir aqui o roteiro de tudo que foi feito
Após retornar encontrei arquivos mais recentes, ao menos com relação ao xy das árvores no site do proejeto:
http://canjerana.esalq.usp.br/biotapp/
usuario:lerfbiota senha: b3t7L5r0
Verificando dados da Parcela da Ilha do Cardoso
A primeira planilha trabalhada com dados da Ilha foi aquela me encaminhada pelo Renato, que acertou as identificações, sobre as planilhas do Marcão de 2005. Esse dados foram trabalhados no workshop CTFS 2008 e foi produzido o banco de dados em MySql.
Dados no Site do PPSP
Após isso consegui acesso ao site do PPSP, canjerana.esalq.usp.br, e verifiquei que há dois outros arquivos com dados. Agora vou conferir esses arquivos com o que já trabalhei Arquivos:
peic_final_site.xls peic_utm_planas.xls
A principio a segunda teria os dados de xy cartesianos e o primeiro apenas UTM. No entanto o número de observações e distinto
dim(peic.site) #[1] 15879 23
dim(peic.sitexy) #[1] 16696 25
Além disso os dados apresentam números de placas repetidos, ambos.
table(duplicated(peic.site$ind)) FALSE TRUE 15260 619
table(duplicated(peic.sitexy$ind))
FALSE TRUE 14823 1873 length(unique(peic.sitexy$ind)) [1] 14823 length(unique(peic.site$ind)) [1] 15260
Fiz arquivo só com indivíduos duplicados e salvando arquivo txt para olhar
peic.site[peic.site$ind%in%peic.site.dup$ind,]->dupl write.table(dupl,file="duplicado.txt", sep="\t", row.names=FALSE)
Única diferença dos indivíduos duplicados é que algumas vezes a altura é diferente, em outras é zero. Montei um arquivo pegando só a maior
Fiz a função que elimina dados duplicados e pega a maior altura.
sem.dupl(peic.sitexy)->pei.sitexy.ale sem.dupl(peic.site)->pei.site.ale
## 28 DE OUTUBRO
FUNÇÃO:
sem.dupl=function(dados)
{
m=which(duplicated(dados$ind))
tags=unique(dados[m,"ind"])
sem.dupl=dados[!duplicated(dados$ind),]
for(i in 1:length(tags))
{
tg = tags[i]
alt=max(dados$Altura[dados$ind==tg])
sem.dupl[sem.dupl$ind==tg,"Altura"]<-alt
##cat(length(duplica),"\t")
}
return(sem.dupl)
}
RODANDO A FUNÇÃO: sem.dupl(peic.site)->peic.site.ale str(peic.site.ale) 'data.frame': 15260 obs. of 23 variables:
Dos dados do site PPSP USEI SOMENTE O PEIC.FINAL.SITE (15260 REGISTROS)
UTM em coordenadas XY
Alexandre
Há problemas com os cantos da parcela no site do PPSP, houve inversão dos dados dos cantos inferiores, veja arquivo anexo com minha correção:
TEMOS UM CONJUNTO DE FUNÇÕES, fornecido pelo Paulo Inácio, que transforma dados UTM em XY. Os comandos estão no arquivo:
funcaoutmtoxy.r.pdf Retirar a extensão .pdf
Para rodar a função é preciso utilizar três argumentos
- uma matrix com os dados utm x e y em duas colunas (utmx e utmy)
São as colunas com os dados UTM no arquivo peic.site.ale
- uma matrix com os dados de origem (orig)
orig
[1] 203978.3 7223164.0
- uma matrix com os dados de projeção. NÃO ME PERGUNTEM COMO CHEGUEI A isso, NÃO ENTENDI AINDA A LÓGICA (xy)
## são os pontos
xy
[,1] [,2]
eixo x 318.41493 33.07527
eixo y -33.25595 318.31910
a única lógica que consegui imaginar é que o ponto extremo do canto inferior direito (eixo x) está na coordenada 318 em relação à origem no eixo x e deslocado 33 no eixo y (como estamos passando de utm p xy esse valor é positivo pois irá somar na projeção). o mesmo para o ponto extremo no canto superior esquerdo (eixo y), o ponto extremo que seria o eixo y a 318 está deslocado -33 em relação à projeção que irá ser feita....
Não pergunte, só sei que funciona!!!
Aplicando a função:
utm2xy(peic.site.ale[,c("utmx","utmy")],orig,xy)->tmp ## cria os dados xy com a origem no canto sudoeste
tmp*-1 +320->cord_xy ## coloca a parcela na posição com origem na parcela A00, parece estranho mas funciona
peic.site.ale$x<-cord_xy[,1] ## cria uma coluna com os dados de x no arquivo pei.site.ale
peic.site.ale$y<-cord_xy[,2] ## cria uma coluna com os dados de y no arquivo pei.site.ale
pronto!
A função abaixo inclui os valores de x,y para aqueles que estavam sem dados no arquivo principal de dados CTFS para não perder os ajustes anteriores, fiz apenas a inclusão onde não havia xy. O arquivo tagxy é feito com o xy e tag das árvores que não tem registro de x ou y no arquivo original, ou que apresentam diferenças entre os valores da coordenada antiga com a nova maior que 1. Como conferi esses valores e não houve nenhum ganho, decidi apena incluir os valores para aqueles onde não existia (NA).
compara.xy=function(dados=peic,tagxy=tagxy)
{
peic.a<-peic
l=dim(peic.a)[1]
t=dim(tagxy)[1]
tags=match(tagxy$tag,peic.a$tag)
tags.start=match(tagxy$tag,peic$tag)
tags=tags[!is.na(tags)]
tags.start=tags.start[!is.na(tags.start)]
na.xy=is.na(peic.a$lx)
for(i in 1:t)
{
if(na.xy[tags[i]]==TRUE)
{
peic.a$lx[tags[i]]<-tagxy$x[i]-peic$startx[tags.start[i]]
peic.a$ly[tags[i]]<-tagxy$y[i]-peic$starty[tags.start[i]]
}
}
return(peic.a)
}
Fiz isso para o arquivo principal peic tb… 01 de novembro de 2008 Esses são os arquivos fixados para o recenso 2008!!!
Problemas 30 setembro 2008
DADOS ILHA DO CARDOSO – PROBLEMAS A RESOLVER E OUTROS
1.NÚMERO DE FICHAS LIVRES PARA NOVO CENSO
52.000 até 102.000 CUIDADO! Há números sendo usado acima disso!!! 2.CONFERIR CÓDIGOS CONSTANTES NA PLANILHA
1 INC Identificação não consta A 2 LNC Localização não consta A 3 MNC Medição não consta A 4 OK dados checados ok A 5 AB considerada morta, mas viva?? A 6 A viva?? A 7 AIF dados alterados, ok?? A 8 AM morta, alterada ? D 9 B considerada morta, mas viva?? A 10 IF Não sei! A 11 IFLNC Localização não consta A 12 IFM morta D 13 IP Não sei! A 14 IR Não sei! A 15 IRINC Identificação não consta A 16 IRLNC Localização não consta A 17 M morta D 18 PAP<15 menor que diametro de inclusão E
3.Preciso que coloque data para cada parcela, referente ao dia que foi iniciado o recenso (aquele que o Marcão fez e temos os dados originais no lab!). Estou repassando uma tabela para que inclua a data na coluna referida. O formato deve ser esse,.: AAAA-MM-DD (2004-07-01) Caso o Excell não permita esse formato é só mudar a configuração da coluna e colocar como caracter, não deixe como data que ele vai formatar de acordo com a configuração do Excel que o abrir.
4.Precisamos das coordenadas X e Y de cerca de 300 árvores. A lista das placas está no arquivo (mapear). Duas possibilidades: 1. ir aos dados originais ou nos mapas de campo do Marcão 2. Solicitar para o Selmo coletar no campo