Traduções desta página:

Ferramentas do usuário

Ferramentas do site


05_curso_antigo:r2014:alunos:trabalho_final:adgonzalez86:start

Adrian David González Chaves

546594_388138107942155_1748063171_n.jpg

Mestrado em Ecologia, Laboratório de Abelhas (BeeLab), IB - USP.

Orientado pela Prof. Dra. Astrid de Matos Peixoto Kleinert lattes, e coorientado pelo Postdoc Dr. Rodolfo Jaffé lattes. A ideai inicial do projeito é avaliar a efetividade da polinização pelas abelhas nativas em Poços de Caldas.

Meus Exercícios

Trabalho Final

Plano A

Ajudando em campo uma amigo que precisa construir umas estruturas (com bambu) para excluir aves dos pés de café. Fiquei pensando no útil que seria uma função na que a gente fornecesse as dimensões dos quatro (4) pés a excluir (altura, largura e comprimento) e ele desse o tamanhos dos bambu que a gente precisa para construir a estrutura. Cada estrutura consiste em 4 painéis com telas e um teto. Mas para a função seria só pensando nos painéis. As dimensões dos painéis são altura do café vs. Comprimento ou largura dos 4 pés, só que a altura tem que ter 40 cm a mais (embaixo) para entrar no chão, enquanto que todas as demais dimensões têm que ter 5 cm a mais pra poder fazer os nó. A ideia da função seria então que o output dela fosse os tamanhos do bambu que a gente precisar cortar pra construir 40 estruturas. Para intentar incluir mais coisas, poderia se incluir o tamanho mínimo e máximo da estrutura, que vai ser usada por 4 meses, considerando que o café cresce 5 cm por mês quando tem suficiente chuva ou 1 cm por mês se as condições não fossem ótimas.

Plano B

Pensando nos futuros dados da minha pesquisa, eu estou procurando si a comunidade de abelhas afeita a efetividade de polinização de algumas espécies em particular. Eu gostaria de uma função que gerasse valores de correlação para as espécies em presencia de vários graus de riqueza de abelhas. Mas só para as abelhas que tenham aumentado significativamente a frutificação, comparando as meias de frutificação (ou peso do fruto) de cada abelha vs. o controle (autopolinização). Uma vez selecionadas as espécies polinizadoras do café, o seguinte seria comparar as correlações de fruto vs. riqueza, primeiro com o modelo nulo (randomização dos dados) e depois entre as diferentes espécies de abelhas para ver alguma espécies e mais susceptível na sua performance segundo a comunidade de abelhas. A ideia geral da função é dar um output de valores de correlação de frutos vs. riqueza para as espécies polinizadoras. Complicando ainda mais: O valor de riqueza por pé não é um fator fácil controlar si não que a gente vai se aproximar a ele segundo a distância do pé de café até a mata. É dizer se espera obter valores de polinização/frutificação/peso do fruto para cada espécie perto e afastado dos fragmentos de mata atlântica. Por isso também se poderia corroborar a diminuição da riqueza de abelha com a distância. Para comparar assim si a distância ou a riqueza explica melhor o serviço de polinização.

Comentários:

Ambas as propostas estão muito focadas em um único problema. Você consegue explicar o que sua função faz em 4 palavras? Pense mais em funções genéricas, como “análise de variância”, “regressão linear”, do que “uma função que gera valores de correlação para as espécies de café polinizadas por uma série de espécies de abelhas”.

Feito isso, a proposta B me parece mais interessante; principalmente na parte de geração de modelos nulos.

—-André Chalom

Complementação do Plano B>

Esteve pensando em como complicar mais um pouco a função do Plano B. Achei que seria legal simular paisagens com diferente porcentagem de cobertura para garantir a maior efetividade na polinização das abelhas que foram seleccionadas na primeira regressao linear. Isso partindo da premissa de incremento na diversidade com o aumento da cobertura florestal envolta do café, usando uma taxa de incremento(ex: 3 sp incremento de 60% na produção de fruto, 20 sp 90% de incremento, tomado de Klein et al. 2003). Poderiam se avaliar diferenças entre incremento na cobertura mediante um só fragmento o varios pequenhos.

Não sei que você acha. Nesse caso poderia ser visto como algo mais generico tentando simular a provisão de serviços de fragmentos de mata, avaliando variacões na cobertura e usando o modelo linear gerado de dados sobre serviço e riqueza de especies.

Alternativa C

Analisar pontos amostrais numa paisagem baseado na presencia de ninhos de abelhas na matriz. As paisagens estarão classificadas em três tipos de uso (1. Mata, 2. Café, 3. Outros), dentro das quais estarão entre 2 a 6 ninhos presente nos cafezais. Eu quero que a função gere os possíveis pontos segundo as seguintes premissas: - Quantidade de (1) Mata: ALTA > 60% de Mata (1); 35 % < MEDIA < 20 % de Mata; BAIXA < 10%.

- Quantidade de Café associada à quantidade de Mata: ALTA < 20% de café; 45% < MEDIA < 60% de café; BAIXA > 70%.

- Para cada tipo de cobertura com a presencia de um ninho ou não envolta de 1km.

Então a entrada seriam as paisagens de 2km de rádio com uma resolução de 10 metros com valores de 1 = Mata, 2 = Café e 3 = Outros. Mesmo que pareça muito especifico a ideia é uma função que num RASTER localize ponto segundo uma serie de premissas.

Adrian, vc. chegou a olhar as dicas para a estruturação das propostas? http://ecologia.ib.usp.br/bie5782/doku.php?id=bie5782:01_curso_atual:alunos:trabalho_final:start#a_proposta.

Faltam elementos para avaliar suas propostas e não conseguiu torná-las gerais. P.ex. a proposta C poderia ser definida como “uma função que a porcentagem de diferentes tipos de cobertura da paisagem a partir de pontos amostrais (não importa se é cafe, cana, floresta, cerrado ou banana). De qq. forma, a proposta C parece um desafio interessante, mas ainda está confusa. Faltou dizer um pouco o formato dos dados que entrarão na função (Raster não é um objeto do R) e não dá para entender como a função “gera pontos” para iniciar a contagem de cobertura. Minha sugestão é a seguinte:

  • entra o raster (uma matriz com valores de cada celula representado a classificação da paisagem naquele pixel) e uma matriz com mesma dimensão indicando se há ninhos amostrados ou a posição de cada ponto onde quer fazer a contagem da cobertura (a função gerar eu não consegui entender!).
  • para cada pixel onde há ninho ou foi definido o ponto, calcula a porcentagem de cada tipo de cobertura na paisagem em um raio definido pelo usuário (na escala de pixels ou que seja tranformado em pixels)
  • retorna um data frame com o valor da proporção de cada tipo de cobertura para cada localidade que tem ninho (ou ponto) no raio definido pelo usuário.

Caso essa sugestão não esteja adequado para o que havia imagino, reformule a proposta para deixá-la mais clara. — Alexandre Adalardo de Oliveira 2014/05/01 14:03

Alterações Finais

Continuando com a alternativa C, a posta fina é> Uma função que vai escolher pontos amostrais ao acaso numa paisagem segundo premissa de influência espacial de uma cobertura (objeto) sobre outra (resposta, a ser amostrada), onde quer ser testado o efeito da distância da cobertura resposta até a cobertura objeto. Então o input é um raster e a saída é uma tabela de dados geográficos e a imagem com só a cobertura resposta classificada segundo a distância (que você define) que vai ser amostrada e os pontos (a quantidade também é um argumento) selecionados nela. A cobertura pode ser cidade, cultivo, até pontos como presencia de uma ninho.

TRABALHO FINAL

 
pontos.am = function(x, cober, radio, npts) 
{ 
  psgm<-raster(x) ##transformacao do arquivo img pra raster
  forestraster<-psgm==cober ##raster com um tipo de cobertura
  w<-c(0,NA) ##vetor para gerar uma matrix 
  rw=matrix(w, ncol=2, byrow=T) ##matrix para reclasificar 0 por NA no raster
  forestNA=reclassify(forestraster, rw) ## reclasificacao das celulas do raster pra poder aplicar a seguente funcao
  forestB=buffer(forestNA, width=radio) ## amplia a area da cobertura cuyo efeito quer ser avaliado, segundo o raio definido
  n=c(1,0.5) ##transformacao do valores do raster para 0.5 
  rcl=matrix(n,ncol=2,byrow=T) ## se precisa pra poder gerar valores diferente dentro 
  forestB1<-reclassify(forestB,rcl) ## da cobertura que vai ser avaliada
  fd<-c(NA,0) ## nesse os NA mudam pra 0 para poder adicionar os raster mais para frente
  rfd<-matrix(fd,ncol=2, byrow=T) 
  forestDIST<-reclassify(forestB1,rfd)
  DIST=forestDIST+psgm ### o primero raster e somado com o buffer para sobrepor o efeito dele
  vg<-c(1.6,4,NA) ## ja que o efeito é sempre avaliado sobre a cobertura 1, entao tudo que nao é 1 ou 1.5 (perto) vira NA e poder procurar pontos ao acaso
  rvg=matrix(vg, ncol=3,byrow=T)
  EFECTOMATA=reclassify(DIST, rvg) ##raster como so a cobertura a amostrar segundo a clasificacao da distancia de uma outra cobertura
    perto<-EFECTOMATA==1.5 ## raster com so os pontos perto 
      p<-c(0.5,1,NA) 
      rp<-matrix(p,ncol=3,byrow=T)
    pertoNA<-reclassify(perto,rp) ## transformacao pra NA dos pontos que nao vao ser amostrados
  pt<-sampleRandom(pertoNA, size=npts, cells=TRUE, sp=TRUE, xy=T, na.rm=T) ## seleccao ao acaso de "npts" pontos amostrais dentro da clasificacao perto
  pontosperto<-coordinates(pt)  ## coordinadas dos pontos amostrais
    afastado<-EFECTOMATA==1
      a<-c(0.5,1,NA)
      ra<-matrix(a,ncol=3,byrow=T)
    afastadoNA<-reclassify(afastado,ra)
  af<-sampleRandom(afastadoNA, size=npts, cells=TRUE, sp=TRUE, xy=T, na.rm=T) ### mesmo proceso para os pontos afastados
  y<-c(pt[,4],af[,4]) ## para juntar as duas matrix de coordenadas dos ponotos pertos e afastados
  u<-coordinates(y)  ## para gerar a tabela com a info que se precisa
  colnames(u) <- c("Pontos Perto","X (perto)", "Y (perto)", "Pontos Afastados", "X(afas)", "Y(afast)") ## nome das colunas para reconhecer melhor a saida 
  plot(EFECTOMATA) ## para mostrar como a cobertura de interes ficou
  plot(pt, add=T)  ## plotar os pontos pertos 
  plot(af, add=T) ## plotar os pontos afastados 
  return(u)  ##retorna a tabela com as coordenadas em valores UTM
}

HELP

Postos Amostrais       package:raster                R Documentation

~~Escolhe pontos amostrais ao acaso a partir de imagines mapeadas, para comparar o efeito sobre um cobertura objeto sobre uma cobertura resposta ~~

Description:

     ~~ A função usa imagines tipo raster (por exemplo: .img), calcula um buffer envolta da cobertura objeto, e classifica a cobertura resposta (onde vai ser feito a amostragem) baseado na distância definida, depois para cada subcobertura amostral determina a quantidade de pontos amostrais ao acaso que sejam definidos   ~~

Usage:

     ~~pontos.am(x, cober, radio, npts)~~

Arguments:

 ~~ x = “paisagem tipo raster (exemplo: .img)tem que estar entre aspas e na pasta em uso” 
    cober = cobertura objeto, valor da célula que representa essa cobertura, pode ser 2 ou 3, já que 1 é sempre a cobertura resposta (onde vao ficar os pontos amostrais)
    radio = distancia que quere ser testada experimentalmente, escrita em metros, vai depender do tamanho da paisagem para paisagens de 2 km de largura ou comprimento depois de 500 mts fica pouco espaço amostral afastado, todo vira “perto”, é dizer quando mts a cobertura objeto afeita sobre a cobertura resposta 
    npts = numero de pontos amostrais que a função vai gerar~~ 

Details:

     ~~ Para a função funcionar precise ser instalado o pacote raster = install.packages(raster, dependencies=T) com as dependências e logo library(raster) para ele ficar ativo ~~

Value:

     Vai retornar uma table com 6 colunas, 3 para pontos amostrais perto da cobertura objeto e 3 coluna para os pontos amostrais afastado da cobertura objeto. As primeiras coluna indica o tipo de ponto amostral, as segundas terão as coordenadas “X” y “Y” de cada ponto amostral selecionado ao acaso em valores UTM


Author(s):

     Adrian David González Chaves

References:

     ~put references to the literature/web site here ~

See Also:

     ~~objects to See Also as 'help', ~~~

Examples:

Pontos.am("Area1_modelo.img", cober=2, radio=100, npts=5)      
 
archivos para rodas a função

nao estou conseguindo postar uns archivos para rodar a funcao… …enviare pelo email

05_curso_antigo/r2014/alunos/trabalho_final/adgonzalez86/start.txt · Última modificação: 2020/08/12 06:04 (edição externa)