Ivan Laurino
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. 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
dadosque não forem encontrados no objetotabela.basesão atribuídosNAna coluna referente ao grupo bioindicador do objetotabela. - b. Posteriormente, excluí linhas do objeto
dadosque possuíremNA, registrando o valorncom 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 dataframeporcentagem. - 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
CBeIB, 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 dataframeporcentagem. - 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
CBeIB, 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
CBeIBem 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
dadosporPi(3,14) e guarda em um novo objeto vetorDAP. - b. Aplica a função
summarypara o objeto vetorDAPe guarda no objetoresumo.DAP. - c. Divide os valores do objeto vetor
DAPpor 2 e guarda no objeto vetorraio. - d. Eleva o objeto vetor
raioao quadrado, multiplica porPie divide por 10000, guardando o resultado no objeto vetora.basal.m². - e. Aplica a função
summarypara o objeto vetora.basal.m²e guarda no objetoresumo.AB. - f. Separa o vetor
DAPem três classes de valores: I) valores < 2,5; II) 2,5 < valores < 10; III) valores > 10. Guarda o resultado em um objeto dataframeclassesde três colunas numéricas nomeadas “pequenos”, “médios” e “grandes”. - g. Conta o número de elementos por coluna no objeto
classese divide esse valor de cada coluna pelo número informado no argumentoparcela. Guarda o resultado em um novo objeto dataframedensidade. - h. Multiplica o objeto
densidadepor 100 e divide pelo número de elementos do vetorDAP, guardando o resultado em um novo objeto dataframedensidade.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
resultadounindo os objetos:resumo.DAP,resumo.ABedensidade.relativa.por.classes.
2. Se grupo = tocas.
- a. Divide o número de elementos do vetor
dadospelo valor informado no argumentoparcela, guardando o resultado no objetodensidade.tocas.
- b. Se
latitude= norte-nordeste. - I. Cria um objeto
CCcom um vetor de valores resultados da aplicação da fórmula [CC= (dados– 0,36)/1,04]. - II. Cria um objeto
LCcom um vetor de valores resultados da aplicação da fórmula [LC= -0,05 + 1,30 xCC] (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
LCcom um vetor de valores resultados da aplicação da fórmula [LC= 13,210 + 9,602 xdados] (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
summaryno objetoLCe guarda o resultado emresumo.LC. - e. Abre uma janela gráfica.
- f. Faz um histograma de frequência para o objeto
LC. - g. Cria um objeto dataframe
totalcom duas colunas, uma nomeada “diâmetro das tocas (cm)” contendo os valores do objetodadose outra nomeada “Largura da carapaça (cm)” contendo os valores do objetoLC. - h. Cria um objeto lista
resultadounindo os objetos:densidade.tocas,resumo.LCetotal.
3. Se grupo = comunidade:
- a. Aplica a função
summarypara o objetodadose guarda o resultado no objetoresumo.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
dadosa partir da fórmula e guarda no objetoH. - e. Calcula o índice de diversidade de Simpson para o objeto
dadosa partir da fórmula e guarda no objetoS. - f. Cria um objeto lista
resultadounindo os objetos:resumo.C,HeD.
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
Links para o Trabalho Final
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.
