Aqui você vê as diferenças entre duas revisões dessa página.
Próxima revisão | Revisão anterior Próxima revisão Ambos lados da revisão seguinte | ||
ecovirt:roteiro:pad_spat [2021/08/03 16:47] adalardo criada |
ecovirt:roteiro:pad_spat [2021/09/20 11:23] adalardo [Contexto] |
||
---|---|---|---|
Linha 11: | Linha 11: | ||
===== Contexto ===== | ===== Contexto ===== | ||
- | Um padrão espacial é uma estrutura previsível que pode ser detectada e quantificada. Em geral, considera-se que um padrão é uma estrutura diferente do aleatório, entretanto, no caso dos padrões espaciais (e outros também) o padrão aleatório também pode ser considerado um padrão, afinal tem {{:ecovirt:roteiro:26_fha_rshow_terra5.jpg?300 |}}alguma previsibilidade ((por exemplo, em relação ao número médio de indivíduos)) e pode ser detectado e quantificado. Existem diversas métricas utilizadas para quantificar agregação de indivíduos que são capazes de diferenciar, com maior ou menor eficiência, os três padrões espaciais básicos: aleatório, homogêneo e agregado. | + | Um padrão espacial é uma estrutura previsível que pode ser detectada e quantificada. Em geral, considera-se que um padrão é uma estrutura diferente do aleatório, entretanto, no caso dos padrões espaciais (e outros também) o padrão aleatório também pode ser considerado um padrão, afinal tem {{:ecovirt:roteiro:26_fha_rshow_terra5.jpg?300 |}}alguma previsibilidade ((por exemplo, em relação ao número médio de indivíduos)) e pode ser detectado e quantificado. Existem diversas métricas utilizadas para descrever a distribuição de indivíduos que são capazes de diferenciar, com maior ou menor eficiência, os três padrões espaciais básicos: aleatório, homogêneo e agregado. |
<WRAP center round box 60%> | <WRAP center round box 60%> | ||
//**__Padrões Espaciais__**// | //**__Padrões Espaciais__**// | ||
Linha 28: | Linha 28: | ||
Para essa prática usaremos uma estimativa de aleatoriedade de pontos chamada K-Ripley. Primeiro iremos utilizar dados de distribuição de pontos simulados com diferentes padrões e em seguida utilizar a mesma técnica para detectar o padrão espacial em uma população natural. | Para essa prática usaremos uma estimativa de aleatoriedade de pontos chamada K-Ripley. Primeiro iremos utilizar dados de distribuição de pontos simulados com diferentes padrões e em seguida utilizar a mesma técnica para detectar o padrão espacial em uma população natural. | ||
- | <WRAP round box center leftalign 60% > | + | <WRAP round box center leftalign 100% > |
//**__Roteiro__**// | //**__Roteiro__**// | ||
- | /* [[ep1| Parte 1]]: simulando amostras dentro da parcela; */ | + | /* [[ep1| Parte 1]]: simulando amostras dentro da parcela; |
* [[2019:roteiros:ep2|Padrão Multiescala]] | * [[2019:roteiros:ep2|Padrão Multiescala]] | ||
+ | */ | ||
</WRAP> | </WRAP> | ||
+ | |||
+ | ===== Padrões multiescala ===== | ||
+ | |||
+ | <WRAP center round box 40%> | ||
+ | |||
+ | {{ :ecovirt:roteiro:pattern.jpg |}} | ||
+ | |||
+ | |||
+ | </WRAP> | ||
+ | |||
+ | /* | ||
+ | O roteiro de [[ep1|índice de dispersão]]((podem rodá-lo em outro momento!)) demonstra como o padrão de distribuição pode ser afetado pelo tamanho da parcela usada. Isso significa que o padrão espacial pode ser **dependente de escala**. | ||
+ | */ | ||
+ | Nesta prática vamos quantificar o padrão espacial usando um método multiescala. Os métodos de multiescala permitem, com uma única métrica, avaliar como o padrão espacial varia com a escala. Ao invés de trabalhar com amostras de uma população de interesse iremos descrever o padrão espacial para o conjunto total de indivíduos em uma população. Neste caso, temos um censo da população numa área delimitada e iremos ver o que acontece com as medidas de agregação desde a escala de indivíduos vizinhos até a escala mais ampla da população. | ||
+ | <WRAP right round box 25%> | ||
+ | {{ :ecovirt:roteiro:mandelbrot-fractals-o.gif?|}} | ||
+ | </WRAP> | ||
+ | |||
+ | |||
+ | Para a prática vamos utilizar um programinha chamado [[https://www.ufz.de/index.php?en=41413|Programita]], feito pelo pesquisador Thorsten Wiegand para quantificar o padrões espaciais usando medidas multiescala baseadas em distância entre pontos. Para baixar o manual do **Programita** clique {{:ecovirt:roteiro:manualprogramita2004b.pdf|aqui}}. | ||
+ | |||
+ | No **Programita** existem várias medidas que podem ser usadas para calcular agregação, vamos usar duas delas: o **O-ring** e o **L de Ripley**. | ||
+ | |||
+ | Ambas são abordagens baseadas em pontos, que utilizam o cálculo de distâncias ponto a ponto dentro de uma área delimitada. Essas medidas podem ser usadas para análises univariadas, ou seja, identificando o padrão para uma única classe de pontos, ou para análises bivariadas, que identifica o padrão entre dois tipos de pontos. As análises bivariadas podem ser usadas no contexto de populações para verificar se indivíduos de um dado estágio estão espacialmente associados a outro, ou no contexto de estruturação de comunidades para analisar a agregação de uma espécie ao redor de outra. | ||
+ | |||
+ | ==== L de Ripley (L(r)) ==== | ||
+ | {{:ecovirt:roteiro:ripleys_game.jpg?100 |}} | ||
+ | |||
+ | O L de Ripley é uma medida da densidade média ao redor de cada ponto. Para cada ponto na área de estudo é calculada a densidade no interior de um círculo de raio r centrado no ponto (área cinza da figura). Em seguida, calcula-se uma média desses valores obtidos para todos os pontos. | ||
+ | |||
+ | A operação é repetida para diferentes valores de $r$. O $L(r)$ é uma medida derivada dessa densidade média ao redor dos pontos em função do raio de influência $(r)$, que permite avaliar de maneira contínua a agregação dos indivíduos. | ||
+ | |||
+ | {{ :ecovirt:roteiro:lripley.jpg?200 |}} | ||
+ | Figura: Implementação da estatística L de Ripley: contagem do número de pontos distantes de $i$ no interior do círculo de raio $r$. Extraído de Wiegand & Moloney (2004). | ||
+ | |||
+ | O $L_{(r)}$ é baseado na função K de Ripley, que é a densidade média de pontos a uma dada distância $r$ de cada ponto, dividida pela intensidade ($\lambda$) dos pontos na área de estudo((intensidade, nesse caso, é a densidade total; número de pontos médio por unidade de área)): | ||
+ | |||
+ | $$ K_{(r)} = \frac{\sum_{i\neq{j}}^{i}I({d_{ij}<r})}{n}\frac{1}{\lambda}$$ | ||
+ | |||
+ | |||
+ | Onde: | ||
+ | * $d_{ij}$ é a distância do ponto $i$ ao ponto $j$; | ||
+ | * $I({d_{ij}<r})$ função indicadora, sendo 1 se o ponto está a uma distância menor que $r$ de $i$, fora desse raio o ponto tem valor 0; e | ||
+ | * $n$ é o número de pontos total. | ||
+ | |||
+ | A interpretação visual do $K_{(r)}$ não é muito intuitiva por ser uma função cumulativa. Por isso foi criado o L de Ripley, $L_{(r)}$, que é a transformação: | ||
+ | |||
+ | $$ L_{(r)}= (\sqrt{\frac{K_{(r)}}{\pi}}-r) $$ | ||
+ | |||
+ | |||
+ | que tem uma interpretação mais simples: $L(r)>0$ indica agregação, enquanto $L(r)<0$ indica padrão homogêneo. | ||
+ | |||
+ | | ||
+ | ==== O-ring (O(r)) ==== | ||
+ | {{:ecovirt:roteiro:onion_ring.jpg?200 |Onion ring to rule them all}} | ||
+ | |||
+ | A estatística **O-ring** é similar ao L de Ripley, mas baseada em um anel, ao invés de um círculo. É medida pela contagem do número de pontos em um anel de raio r e largura fixa. Da mesma forma que o L-Ripley também são calculadas as intensidades para diferentes tamanhos de anel, mantendo a largura fixa. | ||
+ | |||
+ | {{ :ecovirt:roteiro:o-ring.jpeg?200 |}} | ||
+ | Figura: Implementação da estatística //O-ring//: contagem do número de pontos distantes de //i// ao longo do raio //r//. Extraído de Wiegand & Moloney (2004). | ||
+ | |||
+ | Logo, definimos $O(r)$ como: | ||
+ | $$ O_{(r)} = L_{(r)} - L_{(r-l)}$$ | ||
+ | |||
+ | Onde: | ||
+ | * $r -l$ : é o raio menos a largura do anel ((igual ao raio interno do anel)) | ||
+ | Na completa aleatoriedade espacial $O(r) = \lambda$ (intensidade do padrão), quando o padrão é agregado $O(r) > \lambda$ e quando é homogêneo $O(r) < \lambda$ | ||
+ | |||
+ | |||
+ | <WRAP center round tip 60%> | ||
+ | As medidas $K_{(r)}$, $L_{(r)}$ ou $O_{(r)}$ apresentam soluções analíticas teóricas para o padrão definido como processo Poisson ou Completa Aleatoriedade Espacial (CAE). Ou seja, quando a distribuições dos pontos no espaço estudado não é diferente do esperado pelo acaso. Para uma dada densidade de pontos conseguimos calcular esses valores teóricos para qualquer raio. Dessa forma, para interpretar o padrão espacial dos pontos observados precisamos: | ||
+ | |||
+ | * calcular os valores observados e o teóricos para CAE; | ||
+ | * comparar esses valores; | ||
+ | * definir quando uma diferença é ou não aceitável para afirmar que o padrão é diferente do aleatório; | ||
+ | |||
+ | Para os dois primeiros tópicos acima, usamos as fórmulas e calculamos os valores. Para tirar a subjetividade do terceiro, podemos calcular intervalos de confiança ou gerar envelopes((equivalente a intervalo de confiança obtido por simulação numérica )) de confiança gerados por simulações, para definir objetivamente o que é algo diferente do esperado. | ||
+ | |||
+ | </WRAP> | ||
+ | |||
+ | |||
+ | ===== Padrões de Pontos Simulados ===== | ||
+ | |||
+ | |||
+ | <WRAP round box center centeralign 60% > | ||
+ | <WRAP round safety > | ||
+ | **//__Atividade 1:__//** | ||
+ | </WRAP> | ||
+ | {{ :ecovirt:roteiro:escala.jpg?300 |}} | ||
+ | Qual processo gerou o padrão de pontos? | ||
+ | </WRAP> | ||
+ | |||
+ | ==== Instruções gerais ==== | ||
+ | |||
+ | * 1. baixe os arquivos relacionados ao padrão espacial 1 ou 2. Caso abra uma página mostrando os dados, clique no link com o botão direito do mouse para salvar o arquivo no seu computador: | ||
+ | <WRAP center round box 80%> | ||
+ | //**__ Dados para Análise Espacial__**// | ||
+ | === Padrão 1 === | ||
+ | * {{:ecovirt:roteiro:padrao01all.dat|População (todos os indivíduos, sem distinguir adultos e jovens)}} | ||
+ | * {{:ecovirt:roteiro:padrao01par.dat|Parentais (somente os adultos)}} | ||
+ | * {{:ecovirt:roteiro:padrao01prole.dat|Prole (somente os jovens)}} | ||
+ | * {{:ecovirt:roteiro:padrao01bi.dat|Bivariado (todos os indivíduos, distinguindo adultos e jovens)}} | ||
+ | |||
+ | === Padrão 2 === | ||
+ | * {{:ecovirt:roteiro:padrao02all.dat|População (todos os indivíduos, sem distinguir adultos e jovens)}} | ||
+ | * {{:ecovirt:roteiro:padrao02par.dat|Parentais (somente os adultos)}} | ||
+ | * {{:ecovirt:roteiro:padrao02prole.dat|Prole (somente os jovens)}} | ||
+ | * {{:ecovirt:roteiro:padrao02bi.dat|Bivariado (todos os indivíduos, distinguindo adultos e jovens)}} | ||
+ | |||
+ | </WRAP> | ||
+ | |||
+ | * caso não tenha o ''programita'' instalado, baixe o {{:ecovirt:roteiro:programita.zip|programita aqui}} na mesma pasta do arquivo de dados; | ||
+ | * descompacte o arquivo //programita.zip//; | ||
+ | * clique 2x para abrir o arquivo executável ''ProgramitaJulio2006.exe''. | ||
+ | |||
+ | |||
+ | Bem vindo(a) ao **Programita**! Agora vamos abrir os dados que iremos trabalhar. | ||
+ | |||
+ | |||
+ | O **Programita** aceita arquivos de texto das extensões .dat e .asc. São arquivos em formato de texto, separados por tabulação (ou espaço). Os arquivo de dados possui a seguinte estrutura: | ||
+ | |||
+ | ** A primeira linha contém informações gerais sobre o arquivo de dados:** | ||
+ | * valor mínimo de x; | ||
+ | * valor máximo de x; | ||
+ | * valor mínimo de y; | ||
+ | * valor máximo de y; e | ||
+ | * número total de indivíduos | ||
+ | |||
+ | ** A partir da segunda linha, estão os dados dos pontos que serão analisados:** | ||
+ | * primeira coluna com as coordenadas x dos indivíduos; | ||
+ | * segunda coluna com as coordenadas y dos indivíduos; | ||
+ | * terceira coluna com os pontos do padrão 1 identificados por 1 e do padrão 2 por 0 ((no caso de dados bivariados)); | ||
+ | * quarta coluna com os pontos do padrão 1 identificado por 0 e do padrão 2 por 1 ((tb. no caso de dados com dois tipos de pontos)). | ||
+ | |||
+ | No caso de dados univariados, a terceira coluna será sempre 1 e a quarta coluna sempre 0. Para dados bivariados as terceira e quarta colunas terão valores de 0 e 1 de acordo com o padrão do ponto. | ||
+ | |||
+ | <WRAP center round box 80%> | ||
+ | {{ :ecovirt:roteiro:ex_dados.png |}} | ||
+ | Fig. Exemplo de arquivo .dat no formato de uso no //Programita//. | ||
+ | </WRAP> | ||
+ | |||
+ | ==== Padrão Univariado: todos os pontos ==== | ||
+ | * 1. Verifique se na janela //Input data file// estão aparecendo os arquivos .dat. Caso não esteja, verifique se o arquivo executável do programita está na mesma pasta dos arquivos //.dat//. | ||
+ | <WRAP center round box 60%> | ||
+ | <WRAP center round important 60%> | ||
+ | Dependendo da configuração do seu navegador o arquivo salvo pode aparecer com uma extensão diferente (p.ex. ".bin"). Nesse caso é preciso mudar a extensão do arquivo para ".dat". | ||
+ | </WRAP> | ||
+ | |||
+ | </WRAP> | ||
+ | * 2. no menu à esquerda selecione o arquivo ** padrao"0X"all.dat**. No caso **X** vai ser 1 ou 2 dependendo da sua escolha; | ||
+ | |||
+ | |||
+ | <WRAP center round box 60%> | ||
+ | {{ :ecovirt:roteiro:arquivos.png?300 |}} | ||
+ | Figura. Janela de entrada de dados do //Programita//. | ||
+ | </WRAP> | ||
+ | * 3. Em //**How your data are organized**// selecione //**List**// | ||
+ | * 4. Vamos começar usando o L de Ripley então em //**Which method to use**// selecione //**Circle**// | ||
+ | * 5. Em //**Select modus of data**// selecione //**List with coordinates no grid**//. Ao selecionar esta opção aparecerá uma janela com a opção //**Select a new cell size**//: | ||
+ | <WRAP center round box 60%> | ||
+ | {{ :ecovirt:roteiro:cell_size.png?300 |}}. | ||
+ | |||
+ | </WRAP> | ||
+ | * 6. Caso tenha menos de 500 pontos, altere o //**proposed cell size**// para 1. Caso contrário deixe no padrão do programa. | ||
+ | * 7. Feito tudo isso, você deve estar assim: | ||
+ | <WRAP center round box 60%> | ||
+ | |||
+ | |||
+ | {{ :ecovirt:roteiro:programita.jpg?300 |}} | ||
+ | |||
+ | </WRAP> | ||
+ | * 8. Você pode agora respirar fundo e apertar o botão //**Calculate index**//; | ||
+ | |||
+ | |||
+ | A saída visual do programa é um mapa onde os indivíduos aparecem em pontos vermelhos, seguindo as coordenadas do arquivo de dados. O gráfico no canto superior direito corresponde ao valor do L-Ripley para diferentes raios. Nessa saída gráfica é possível analisar como o padrão espacial varia de acordo com a escala. | ||
+ | |||
+ | Porém, isso não é suficiente para afirmamos em que escalas a população é agregada. Para isso precisamos comparar o resultado observado com o padrão que seria gerado pela distribuição dos pontos completamente aleatório. Esse modelo nulo é chamado de **//completa aleatoriedade espacial//**. Para gerar esse modelo por simulação é necessário recolocar o mesmo número de pontos de forma aleatória na mesma área. Se fizermos isso, muitas e muitas vezes, é possível gerar um envelope de confiança (similar ao intervalo de confiança) no qual o padrão de distribuição aleatória é encontrado. Se os valores observados estão contidos dentro do envelope podemos concluir que nosso padrão não é diferente do aleatório. | ||
+ | |||
+ | Para fazer isso você deve: | ||
+ | * 9. selecionar a opção **//Calculate confidence limits//** e; | ||
+ | * 10. na janela **//Select a null model//** selecionar o modelo nulo //**Pattern 1 and 2 random**//; | ||
+ | * 11. verifique se sua tela está como a figura e clique novamente no botão //**Calculate index**//. | ||
+ | |||
+ | |||
+ | <WRAP center round box 80%> | ||
+ | {{ :ecovirt:roteiro:null_model.png |}} | ||
+ | </WRAP> | ||
+ | |||
+ | <WRAP center round box 60%> | ||
+ | <wrap hi>Caso a simulação esteja demorando muito </wrap> | ||
+ | * aperte o botão de //stop// ao lado do //Calculate index//; | ||
+ | * selecione outro //"modus of data"// e em seguida selecione novamente //list with coordenate,...//; | ||
+ | * na janela //Select a new cell size//, altere //proposed cell size // para 2; | ||
+ | * na janela // Select a null model// altere //# simulations// para 20; | ||
+ | * aperte novamente o botão //Calculate index//; | ||
+ | | ||
+ | </WRAP> | ||
+ | |||
+ | |||
+ | |||
+ | <WRAP center round important 80%> | ||
+ | //**__Descreva o padrão observado__**// | ||
+ | |||
+ | | ||
+ | O //Programita// permite acompanhar graficamente a simulação ao longo do tempo ;-). É possível observar que a cada simulação é gerada uma distribuição aleatória dos indivíduos e recalculado os valores de L-Ripley. Ao final é gerado o gráfico com os valores observados a partir do arquivo de dados, acompanhado do envelope de confiança gerado a partir da simulação de completa aleatoriedade espacial. Valores fora do intervalo de confiança indicam a existência de um padrão espacial diferente do aleatório. | ||
+ | |||
+ | |||
+ | <WRAP round tip > | ||
+ | **//__Dica:__//** | ||
+ | Faça um //Print Screen// dos seus resultados para salvar o gráfico de cada análise que fizer ao longo da prática. | ||
+ | </WRAP> | ||
+ | </WRAP> | ||
+ | |||
+ | * 12. Faça o mesmo procedimento, porém em **//Which method to use//** selecione **//Ring//** | ||
+ | * 13. Compare os resultados entre o L-Ripley e o O-Ring. | ||
+ | |||
+ | |||
+ | <WRAP round box center 80% > | ||
+ | <WRAP round notice > | ||
+ | **//__Atividade__//** | ||
+ | </WRAP> | ||
+ | * repita a análise para os arquivos com: | ||
+ | * os pontos dos parentais (adultos): //padrao"0X"par.dat// e; | ||
+ | * os pontos dos pontos associados - prole (jovens): //padrao"0X"prole.dat//; | ||
+ | * interprete o resultado para cada tipo de ponto; | ||
+ | </WRAP> | ||
+ | ==== Padrão Bivariado: duas classes de pontos ==== | ||
+ | O //Programita// permite a análise de padrão de pontos de uma classe em relação a outra. Para isso é necessário diferenciar os pontos no arquivo de dados, utilizando 0 ou 1 nas colunas 3 e 4, como mostra a figura abaixo, em um arquivo que distinguia indivíduos adultos de juvenis: | ||
+ | <WRAP center round box 80%> | ||
+ | {{ :ecovirt:roteiro:ex_dados2.png?700 |}} | ||
+ | </WRAP> | ||
+ | |||
+ | |||
+ | Vamos agora analisar o padrão dos pontos associados (PROLE) em relação aos parentais (PAR), seguindo o mesmo procedimento anterior. | ||
+ | * 1. selecione o arquivo com a separação de classes de pontos parentais e associados: //padrao"0X"bi.dat//; | ||
+ | * 2. em //**What do you want to do**// selecione a opção //**Point-pattern analysis**// | ||
+ | * 3. em //**How your data are organized**// selecione //**List**// | ||
+ | * 4. neste caso, estamos interessados na análise do padrão em escala cumulativa para entender até que distância há agregação, por isso, em //Which method to use// selecione //L-Ripley// | ||
+ | * 5. em //**Select modus of data**// selecione //**List with coordinates no grid**// | ||
+ | * 6. para testarmos se existe agregação dos pontos PROLE em relação ao PAR , utilizaremos o envelope de confiança. selecione a opção //**Calculate confidence limits**// e selecione o modelo nulo //**Pattern 1 fix, 2 random**//. | ||
+ | * 7. rode a análise apertando: //**Calculate index**// | ||
+ | * 8. interprete os resultados. | ||
+ | |||
+ | <WRAP center round box 80%> | ||
+ | //**__Descubra o algoritmo__**// | ||
+ | |||
+ | Algoritmo é uma sequência de passos para executar uma tarefa. Os pontos dos arquivos de dados foram gerados por um algoritmo muito simples em duas fases: primeiro foram gerados os pontos parentais e em seguida os pontos associados (prole). Descreva uma sequencia de tarefas ((p.ex: gerar 10 valores de x a partir de uma distribuição aleatória uniforme de 0 a 100; gerar valores de uma sequência de 10 a 90 a cada intervalo de 5 como o y.... )) que seria capaz de gerar a distribuição de pontos (incluindo ambas classes de pontos) que você observou a partir do seu arquivo de dados. | ||
+ | |||
+ | </WRAP> | ||
+ | ------ | ||
+ | ------ | ||
+ | ===== Distribuição Espacial de Palmitos na Restinga ===== | ||
+ | |||
+ | {{:ecovirt:roteiro:palmito00.jpg?300 |}} | ||
+ | O Palmiteiro (//Euterpe edulis// Mart.) é uma espécie muito característica das florestas atlânticas e costuma ocorrer com densidades altas em áreas mais preservadas. Vamos agora analisar os dados referentes a uma população de palmitos que ocorre em uma parcela de floresta de Restinga na Ilha do Cardoso, Cananéia -SP. Os dados foram coletados nos anos de 2009/2010 em uma área de 10,24ha (320m x 320m). | ||
+ | |||
+ | Preparamos três arquivos no formato lido pelo //Programita//: | ||
+ | - dados de indivíduos juvenis (diâmetro do tronco entre 1 e 5 cm): {{:2014:roteiros:juvenil.dat|}} | ||
+ | - dados de indivíduos adultos (diâmetro do tronco > 5 cm): {{:2014:roteiros:adulto.dat|}} | ||
+ | - juvenis e adultos (padrão 1 adulto, padrão 2 juvenil): {{:2014:roteiros:juvenil_adulto.dat|}} | ||
+ | \\ | ||
+ | \\ | ||
+ | |||
+ | Utilizando as ferramentas disponíveis no //Programita// para descrever os padrões espaciais: | ||
+ | * da população total de palmito; | ||
+ | * apenas dos juvenis e; | ||
+ | * apenas dos adultos. | ||
+ | Investigue se a distribuição dos juvenis está associada a dos adultos. | ||
+ | |||
+ | <WRAP center round box 60%> | ||
+ | //**__Padrões & Processos__**// | ||
+ | Junte-se em um grupo de 2 a 4 alunos e discuta quais possíveis processos poderiam gerar os padrões descritos. | ||
+ | |||
+ | </WRAP> | ||
+ | | ||