Traduções desta página:

Ferramentas do usuário

Ferramentas do site


05_curso_antigo:r2018:alunos:trabalho_final:ivanlaurino:start

Ivan Laurino

win_20161106_131905_2_.jpg

Doutorando do Instituto Oceanográfico da USP, atuo na área de ecologia de ecossistemas costeiros. O título da minha tese é “Processos da biodiversidade como base para a avaliação da vulnerabilidade de praias arenosas frente a eventos climáticos extremos”.

e-mail: ivanlaurino@usp.br


Exercícios

Link para os meus exercícios: Ivan Laurino


Trabalho Final

Plano A: Qualidade ambiental de ecossistemas marinhos

Contextualização

Com o aumento das ameaças relacionadas à poluição ambiental no planeta, crescentes análises da biodiversidade vêm permitido o avanço de técnicas de avaliação e monitoramento da qualidade ambiental em ecossistemas marinhos. Para as comunidades bentônicas costeiras, estudos detalhados classificaram uma série de gêneros e famílias em grupos bioindicadores de poluição (Grall & Glémarec, 1997). Tais grupos englobam desde os organismos mais sensíveis, os quais, quando presentes, indicam baixos níveis de poluição, até os mais tolerantes e oportunistas, comuns em ambientes perturbados. A proporção entre estes diferentes grupos permite calcular coeficientes e índices os quais são a base para classificar o grau de poluição de uma área e o nível de “saúde” de sua comunidade biológica. A Fig. 1 sintetiza uma técnica de avaliação da qualidade ambiental em ecossistemas costeiros planejada por Borja et al. (2000) inicialmente para a Europa, a qual também pode ser aplicada para ecossistemas no Atlântico da América do Sul (Muniz et al.,2005) e hoje é comumente utilizada em programas de monitoramento e estudos de impacto ambiental na costa brasileira.

fig._1.jpg Fig. 1. Fórmula para cálculo do Coeficiente Biótico a partir da proporção de abundância dos diferentes grupos bioindicadores bentônicos (esquerda da imagem). Tabela com os critérios de conversão do Coeficiente Biótico para o Índice Biótico e classificação da qualidade da área e saúde da comunidade bentônica (direita da imagem). Adaptado de Borja et al. (2000).

Tal técnica envolve diferentes etapas, como buscar nos catálogos a classificação dos organismos coletados em seus respectivos grupos bioindicadores, calcular a proporção em que cada grupo ocorre na amostra, calcular o coeficiente e índice bióticos e extrapolar os valores para a classificação da qualidade da área e a saúde da comunidade bentônica. A presente função tem como objetivo agrupar e sistematizar estas diferentes tarefas de forma que, tendo-se a lista de taxa bentônicos com suas respectivas abundâncias em amostras de qualquer ecossistema marinho de subtrato inconsolidado (praias, estuários, manguezais), em qualquer região, possamos obter a qualidade ambiental da área e saúde da comunidade bentônica.

Planejamento da função

Premissas: Para a função rodar será necessária uma tabela base contendo a classificação dos grupos bioindicadores por taxa bentônico, a qual foi elaborada por Borja et al. (2000) e adaptada aqui para leitura no R (tabela_base.txt). Essa tabela base possuí duas colunas, uma com todos os taxa já classificados como bioindicadores (mais de 400 taxa) e outra com o respectivo grupo ao qual cada um pertence. A matriz está disponível aqui na página da função e deverá ser baixada para o diretório de trabalho do usuário.

Entrada: quali.ambi (dados, N)

dados = dataframe com a abundância por amostra de cada taxa (mínimo de duas colunas: X=”Taxa”, Y=”abundância”).

N = Número total de amostras (N ≥ 1). Deve equivaler ao número de colunas numéricas (ex: abundância Y, Z, W, …) da matriz de entrada. As amostras podem representar diferentes locais, diferentes coletas, etc.

Verificando os parâmetros:

• O objeto dados é um dataframe? Se não, escreve: “O objeto de entrada deve ser um dataframe”.

• O objeto dados é um dataframe com no mínimo duas colunas? Se não, escreve: “O objeto de entrada deve ser um dataframe com no mínimo duas colunas”.

• A primeira coluna do objeto dados apresenta dados categóricos? Se não, escreve: “O objeto de entrada deve conter a lista de taxa na primeira coluna (classe: character)”.

N+ 1 é igual ao número de colunas do objeto dados? Se não, escreve: “N deve apresentar um número de amostras igual ao do objeto de entrada”

Pseudo-código:

1. Busca o arquivo tabela_base.txt no diretório e o carrega no workspace como objeto tabela.base da classe “dataframe”.

2. Cria um objeto dataframe tabela contendo todos os taxa do objeto dados classificados com seu respectivo grupo bioindicador retirados do objeto tabela.base.

  • a. Aos taxa do objeto dados que não forem encontrados no objeto tabela.base são atribuídos NA na coluna referente ao grupo bioindicador do objeto tabela.
  • b. Posteriormente, excluí linhas do objeto dados que possuírem NA, registrando o valor n com o número de exclusões.
  • c. Escreve: “ Aviso: n NA(s) atribuído(s) para o(s) taxa não classificado(s) como bioindicador(es) ou por estar(em) com erro de escrita no objeto de entrada”.

4. Se N = 1:

  • a. No objeto dados, calcula a proporção (porcentagem) de cada grupo bioindicador em relação ao total da amostra e guarda em um objeto dataframe porcentagem.
  • b. Aplica a fórmula para cálculo do coeficiente biótico (fórmula na Fig. 1) e guarda o valor no objeto CB.
  • c. Calcula o índice biótico a partir do coeficiente biótico (critério utilizado na Fig. 1) e guarda o valor no objeto IB.
  • d. A partir dos valores em CB e IB, determina a classificação e a saúde da comunidade (critério utilizado na Fig.1) a qual aparecerá na tela como mensagem de texto, junto com os valores dos índices.
  • e. Abre uma janela gráfica.
  • f. Plota o objeto porcentagem.

5. Se N > 1:

  • a. Para cada coluna numérica do objeto dados, calcula a proporção (porcentagem) de cada grupo bioindicador em relação ao total por amostra e guarda em um objeto dataframe porcentagem.
  • b. Aplica a fórmula para cálculo do coeficiente biótico (fórmula na Fig. 1) para cada coluna numérica do objeto dados.
  • c. Guarda o coeficiente biótico por amostra em um objeto CB.
  • d. Calcula o índice biótico para cada coluna numérica a partir do coeficiente biótico (critério utilizado na Fig. 1).
  • e. Guarda o índice biótico por amostra em um objeto IB.
  • f. A partir dos valores em CB e IB, determina a classificação e a saúde da comunidade de cada amostra (critério utilizado na Fig.1).
  • g. A classificação e a saúde da comunidade de cada amostra aparecerá na tela como mensagem de texto, junto com os valores dos índices.
  • h. Abre uma janela gráfica e modifica o padrão para o número de gráficos agrupados na forma mais adeuqada para o número de amostras N.
  • i. Plota o objeto porcentagem, fazendo um gráfico por amostra com suas respectivas porcentagens de cada grupo bioindicador.
  • j. Plota os objetos CB e IB em um mesmo gráfico (1 gráfico) de pontos com linhas, representando os valores de ambos por amostra.

6. Cria um objeto resultado contendo o objeto tabela.

Saída:

• Coeficiente biótico e Índice Biótico da(s) amostra(s).

• Classificação do nível de poluição da(s) amostra(s) (de “Não poluída” à “Extremamente Poluída”).

• Nível da saúde da comunidade da(s) amostra(s) (de “Normal” à “Azóico”).

• Gráfico(s) com a porcentagem de cada grupo bioindicador na(s) amostra(s).

• Gráfico dos índices e coeficientes bióticos por amostra (no caso de N>1).


Plano B: Monitoramento de manguezais

Contextualização

No atual cenário das mudanças climáticas, a implementação de programas de monitoramento de larga escala espaço-temporal, com múltiplas variáveis respostas, em ecossistemas costeiros, se mostra como um grande desafio. Diante disso, a Rede de Monitoramento de Hábitats Bentônicos Costeiros (ReBentos) criou um protocolo de monitoramento visando padronizar as amostragens ao longo das diferentes regiões do país (Turra & Denadai, 2015). Parte desse protocolo padroniza o monitoramento de manguezais, de forma que múltiplas variáveis são sugeridas para a coleta. Tais variáveis incluem a circunferência da altura do peito das árvores de mangue (CAP), a largura da abertura das tocas do caranguejo Uçá e a abundância por espécie da fauna bentônica. Essas variáveis, a partir da aplicação de cálculos específicos, permitem a obtenção de parâmetros fundamentais para o monitoramento em larga-escala espacial, como a área basal e densidade por classes de tamanho das árvores, a estimativa do tamanho médio dos caranguejos e a diversidade das comunidades. No entanto, tais análises envolvem diferentes áreas do conhecimento, com diferentes etapas e cálculos que inclusive podem variar conforme a localidade. Neste contexto, a presente função tem como objetivo agrupar os diferentes cálculos, tarefas e etapas desse processo, dando flexibilidade para analisar os diferentes grupos amostrados (vegetação, caranguejos e comunidades) em diferentes localidades do país.

Planejamento da função

Entrada: mangue (dados, grupo, parcela, latitude)

dados = vetor numérico (CAP das árvores (cm); ou largura das tocas de Uça (cm); ou abundância de espécies da comunidade bentônica).

grupo = argumento que especifica ao que se refere o objeto dados inserido. Opções: 1) vegetal (dados devem ser o CAP das árvores em cm); 2) tocas (dados devem ser o diâmetro da abertura das tocas de caranguejo Uça em cm); 3) comunidade (dados devem ser a abundância por espécie da fauna bentônica).

Parcela = argumento com um número indicando a área da parcela amostrada em m² (necessário apenas quando houver vegetal ou tocas no argumento grupo).

Latitude = argumento que indica a região brasileira em que foi feita a amostragem. Opçãoe: 1) norte-nordeste; 2) sul-sudeste (necessário apenas quando houver tocas no argumento grupo).

Verificando parâmetros:

• O objeto dados é um vetor numérico? Se não, escreve: “O objeto de entrada deve ser um vetor numérico”.

• O objeto dados possui NA? Se sim, exclui os NAs, guarda o número de exclusões no objeto n e escreve: “n NAs excluídos do objeto de entrada”.

• O argumento grupo foi informado com uma das opções: vegetal, tocas ou comunidade? Se não, escreve: “ o argumento grupo não foi informado ou foi preenchido com uma opção inválida”.

• Se no argumento grupo foi indicado vegetal ou tocas, o argumento parcela foi informado com um valor numérico? Se não, escreve: “O argumento parcela não foi informado com um valor numérico em m²”.

• Se no argumento grupo indicou-se tocas, o argumento latitude foi informado com uma das opções: norte-nordeste ou sul-sudeste? Se não, escreve: “ o argumento latitude não foi informado ou foi preenchido com uma opção inválida”

Pseudo-código:

1. Se grupo = vegetal.

  • a. Divide os valores do vetor dados por Pi (3,14) e guarda em um novo objeto vetor DAP.
  • b. Aplica a função summary para o objeto vetor DAP e guarda no objeto resumo.DAP.
  • c. Divide os valores do objeto vetor DAP por 2 e guarda no objeto vetor raio.
  • d. Eleva o objeto vetor raio ao quadrado, multiplica por Pi e divide por 10000, guardando o resultado no objeto vetor a.basal.m².
  • e. Aplica a função summary para o objeto vetor a.basal.m² e guarda no objeto resumo.AB.
  • f. Separa o vetor DAP em três classes de valores: I) valores < 2,5; II) 2,5 < valores < 10; III) valores > 10. Guarda o resultado em um objeto dataframe classes de três colunas numéricas nomeadas “pequenos”, “médios” e “grandes”.
  • g. Conta o número de elementos por coluna no objeto classes e divide esse valor de cada coluna pelo número informado no argumento parcela. Guarda o resultado em um novo objeto dataframe densidade.
  • h. Multiplica o objeto densidade por 100 e divide pelo número de elementos do vetor DAP, guardando o resultado em um novo objeto dataframe densidade.relativa.por.classe.
  • i. Abre uma janela gráfica e muda o padrão para três gráficos juntos.
  • j. Faz um histograma de frequência para o objeto DAP.
  • k. Faz um histograma de frequência para o objeto a.basal.m².
  • l. Plota o objeto densidade.
  • m. Cria um objeto lista resultado unindo os objetos: resumo.DAP, resumo.AB e densidade.relativa.por.classes.

2. Se grupo = tocas.

  • a. Divide o número de elementos do vetor dados pelo valor informado no argumento parcela, guardando o resultado no objeto densidade.tocas.
  • b. Se latitude = norte-nordeste.
  • I. Cria um objeto CC com um vetor de valores resultados da aplicação da fórmula [CC = (dados – 0,36)/1,04].
  • II. Cria um objeto LC com um vetor de valores resultados da aplicação da fórmula [LC = -0,05 + 1,30 x CC] (comentário: fórmulas para cálculo do tamanho corpóreo do caranguejo Uça a partir do diâmetro das tocas proposto por Schmidt et al. (2008) para a região norte-nordeste do Brasil).
  • c. Se latitude = sul-sudeste.
  • I. Cria um objeto LC com um vetor de valores resultados da aplicação da fórmula [LC = 13,210 + 9,602 x dados] (comentário: fórmula para cálculo do tamanho corpóreo do caranguejo Uça a partir do diâmetro das tocas proposto por Pinheiro (2006) para a região sul-sudeste).
  • d. Aplica a função summary no objeto LC e guarda o resultado em resumo.LC.
  • e. Abre uma janela gráfica.
  • f. Faz um histograma de frequência para o objeto LC.
  • g. Cria um objeto dataframe total com duas colunas, uma nomeada “diâmetro das tocas (cm)” contendo os valores do objeto dados e outra nomeada “Largura da carapaça (cm)” contendo os valores do objeto LC.
  • h. Cria um objeto lista resultado unindo os objetos: densidade.tocas, resumo.LC e total.

3. Se grupo = comunidade:

  • a. Aplica a função summary para o objeto dados e guarda o resultado no objeto resumo.C.
  • b. Abre uma janela gráfica.
  • c. Faz um histograma de frequência para o objeto dados.
  • d. Calcula o índice de diversidade de Shannon para o objeto dados a partir da fórmula e guarda no objeto H.
  • e. Calcula o índice de diversidade de Simpson para o objeto dados a partir da fórmula e guarda no objeto S.
  • f. Cria um objeto lista resultado unindo os objetos: resumo.C, H e D.

Saída:

• Se grupo = vegetal:

  • Resumo com os dados de DAP e área basal.
  • Histograma de distribuição dos tamanhos de DAP e área basal.
  • Gráfico com a densidade de árvores por classes de tamanho.
  • Tabela com a densidade relativa de árvores por classe de tamanho

• Se grupo = tocas:

  • Densidade média de tocas (m²) na parcela.
  • Resumo com os dados de tamanhos dos caranguejos (largura da carapaça em cm)
  • Tabela com todos os valores de diâmetro das tocas e largura da carapaça dos caranguejos.
  • Histograma de frequência dos tamanhos dos caranguejos.

• Se grupo = comunidade:

  • Resumo com os dados de abundância da comunidade.
  • Histograma de frequência dos valores de abundância.
  • Índices de diversidade de Shannon e Simpson.

Referências

Borja, A., Franco, J., & Pérez, V. (2000). A marine biotic index to establish the ecological quality of soft-bottom benthos within European estuarine and coastal environments. Marine pollution bulletin, 40(12), 1100-1114.

Grall, J., & Glémarec, M. (1997). Using biotic indices to estimate macrobenthic community perturbations in the Bay of Brest. Estuarine, Coastal and Shelf Science, 44, 43-53.

Muniz, P., Venturini, N., Pires-Vanin, A. M., Tommasi, L. R., & Borja, A. (2005). Testing the applicability of a Marine Biotic Index (AMBI) to assessing the ecological quality of soft-bottom benthic communities, in the South America Atlantic region. Marine Pollution Bulletin, 50(6), 624-637.

Pinheiro, M.A.A. (2006). Biologia e manejo do caranguejo-uçá, Ucides cordatus (Linnaeus, 1763) (Crustacea, Decapoda, Brachyura). Relatório Científico Final do Projeto Uçá II (FAPESP). São Vicente, SP: FAPESP/UNESP, Campus Experimental do Litoral Paulista (CLP), p. 409.

Schmidt, A.J., Oliveira, M.A., Souza, E.P., May, M. & Araújo, S.M.B. (2008). Relação entre abertura de galeria e comprimento de cefalotórax do caranguejo-uçá, Ucides cordatus (Linnaeus, 1763) (Crustacea-Decapoda-Brachyura). Boletim Técnico-Científico do CEPENE, 16(1): 51-58.

Turra, A., & Denadai, M. R. (2015). Protocolos para o monitoramento de habitats bentônicos costeiros. Biblioteca Digital da Produção Intelectual - BDPI, Universidade de São Paulo (USP): http://www.producao.usp.br/handle/BDPI/48874

As duas propostas estão bem delimitadas e parecem usar um controle de fluxo que você está apto a fazer. Entretanto acho que a proposta A é mais interessante por ser mais dinâmica. Sugiro começar por ela e, se acontecer algum problema grande, só aí vc ir pra proposta B.

Se vc encontrar algum poblema crítico, no dia 15 ou 16 vou entrar aqui de novo pra olhar se tem alguma modificação da sua página (se houver tente deixar bem evidente, por favor) e te dar algum outro feedback se vc precisar. Depois desse prazo, se rolar algum problema grande, vc também pode tentar me contatar por whatsapp (por favor não mande áudio - (11) 9-9199-3842).

Matheus Januario

Conforme sugerido, segui por desenvolver o Plano A. Nesse caso, desenvolvi uma função (quali.ambi) que avalia a qualidade ambiental de ecossistemas costeiros (praias, estuários, manguezais) a partir de sua comunidade bentônica, considerando a proporção entre os diferentes grupos bioindicadores (baseado em Borja et al., 2000). Não se esqueça de baixar a tabela base (link abaixo) antes de utilizar a função. Leia também a página de ajuda da função.

  • Link para a página da minha função: quali.ambi
  • Link para a página de ajuda da minha função: Help
  • Link para a tabela base com a classificação dos taxa nos grupos bioindicadores

Clique com o botão direito do mouse e selecione “Salvar link como”: tabela_base.txt

Observação: É importante não mudar o nome do arquivo “tabela_base.txt”. Caso contrário, o R não irá encontra-lo durante a execução da função quali.ambi.

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