Como criar uma função no R e estimar parâmetros do solo?

Aprenda como criar funções programando em R e veja como podemos aplicá-las na estimativa da CTC e no cálculo da necessidade de calcário do solo.

Na Pedologia, ao estudarmos um determinado solo, levantamos diferentes propriedades, tais como velocidade de infiltração, porosidade, granulometria, teor de matéria orgânica e saturação de bases. Há inúmeras propriedades do solo.

Entretanto, algumas delas são de difícil obtenção. Ou pior, são muito caras para serem realizadas.

Visando contornar esse problema, e sabendo que muitas propriedades do solo estão correlacionadas, pesquisadores criam Funções de Pedotransferência para obter dados que eles precisam a partir dos dados disponíveis.

O termo Função de Pedotransferência foi cunhado pelo cientista do solo Johan Bouma, em seu artigo de 1989 intitulado “Using soil survey data for quantitative land evaluation“.

As funções de pedotransferência utilizam técnicas de regressão e de mineração de dados para extrair essas correlações.

Neste tutorial, iremos mostrar como montar duas funções. A primeira será utilizada para estimar a Capacidade de Troca Catiônica (CTC) do solo a partir do teor de argila e de matéria orgânica e a segunda nos fornecerá a quantidade de calcário a ser utilizada para corrigir o pH de um solo.

Estimativa da CTC com teor de Argila e Matéria Orgânica

Utilizaremos as relações entre CTC e teor de Argila e Matéria Orgânica apresentada por Osman (2013). Estas relações possibilitam ter uma boa estimativa da CTC de solos tropicais, onde predominam caulinita e óxidos de Ferro e Alumínio.

Os solos possuem cargas elétricas que possibilitam a retenção de íons em sua superfície, ou seja, íons que são adsorvidos às suas partículas. A soma de todos os cátions (íons de carga positiva) adsorvidos no solo representa a CTC.

As relações apresentadas por este autor são as seguintes:

  • Para cada 10% do teor de argila de um solo, teremos um cmolc/kg de CTC;
  • Para cada 1% de teor de matéria orgânica do solo, teremos 3 cmolc/kg de CTC;
  • A estimativa da CTC é a soma das CTC obtidas nas duas relações acima.

Agora, com estas informações, iremos criar nossa função no R. Nosso primeiro passo será dar um nome para ela e definir as variáveis de entrada (input).


estimaCTC = function(tA, MO){}

Aqui, definimos que o nome da nossa função é estimaCTC e chamamos a função function() para dizer ao R que estamos criando nossa própria função. Dentro de function(), inserimos os parâmetros de entrada, ou seja, tA (teor de Argila) e MO (teor de Matéria Orgânica).

Dentro das chaves, iremos colocar os cálculos necessários para obter o valor estimado da CTC.


estimaCTC = function(tA, MO){
  eCTC = (tA / 10) + (MO * 3)
}

Se mantivermos a função nesse formato, ao executarmos ela, o R não irá retornar nenhuma informação para nós.

Por isso, é comum na confecção de funções, colocar o comando return(), o qual ira retornar os valores inseridos dentro deste comando. Vamos utilizá-lo para que a saída seja a do resultado do nosso cálculo.

 

estimaCTC = function(tA, MO){
 eCTC = (tA / 10) + (MO * 3)
 return(eCTC)
} 

Desta forma, ao executarmos a função, obteremos no nosso terminal do R o resultado dos nossos cálculos.

Faça um teste de sua função com os seguintes dados:

  • Teor de Argila: 40%;
  • Teor de Matéria Orgânica: 4%

Você deverá inserir no terminal do R, caso tenha utilizado o mesmo nome que o utilizado neste tutorial, a função desta forma: estimaCTC(40, 4).

O resultado deverá ser 16 cmolc/kg, ou seja, o solo tem aproximadamente 16 cmolc/kg.

Quantidade de Calcário para Correção do pH do Solo

Nesta função, iremos utilizar as equações apresentadas em SBCS (2004).  A adição de calcário nos solos é realizada para elevar o seu pH, ou seja, para reduzir sua acidez.

Usualmente, a correção do pH é feita a partir do Índice SMP (pH medido em uma solução tamponada), porém, em solos pouco tamponados, esse método pode fornecer valores inferiores ao realmente necessário. Nessas situações, podemos calcular a necessidade de calcário a partir do teor de matéria orgânica e de alumínio no solo.

Considerando que cada cultura tem um pH ideal para o seu desenvolvimento, vamos utilizar três equações diferentes para três pH de referência. As equações são as seguintes:

  • pH (5,5): NC = -0,653 + 0,480*MO + 1,937*Al
  • pH (6,0): NC = -0,516 + 0,805*MO + 2,435*Al
  • pH (6,5): NC = -0,122 + 1,193*MO + 2,713*Al

Onde NC é a nossa necessidade de calcário em toneladas por hectare (com PRNT 100%), MO é o teor de matéria orgânica (em %) e Al é o teor de alumínio (cmolc/kg) no solo.

Primeiramente, iremos criar um nome para nossa função e por meio de function(), vamos inserir os valores de entrada (pH de Referência, Matéria Orgânica e Alumínio).

 

soloNC = function(pHref, MO, Al){ } 

Agora, vamos criar condições para os diferentes pH de referência, ou seja, teremos três if() na nossa função e inserir as três equações acima mencionadas em cada uma de suas condições.

 

soloNC = function(pHref, MO, Al){
 if(pHref == 5.5){
  NC = -0.653 + 0.480*MO + 1.937*Al
  return(NC)
 }

 if(pHref == 6.0){
  NC = -0.516 + 0.805*MO + 2.435*Al
  return(NC)
 }

 if(pHref == 6.5){
  NC = -0.122 + 1.193*MO + 2.713*Al
  return(NC)
 }
} 

Com esta função, você indicará qual é o pH que você pretende ter no solo e inserir os valores de matéria orgânica e alumínio.

Note que se você colocar um pH de referência diferente daqueles que estabelecemos, o R não retornará nenhum valor. Para evitar problemas, vamos inserir uma mensagem que será mostrada caso alguém digite um valor que não esta previsto na nossa função.

 soloNC = function(pHref, MO, Al){
 if(pHref == 5.5){
 NC = -0.653 + 0.480*MO + 1.937*Al
 return(NC)
 }

 if(pHref == 6.0){
 NC = -0.516 + 0.805*MO + 2.435*Al
 return(NC)
 }

 if(pHref == 6.5){
 NC = -0.122 + 1.193*MO + 2.713*Al
 return(NC)
 }else{return("pH de referência não suportado, use 5.5, 6 ou 6.5.")}
} 

Agora, quando alguém digitar valores como 6.2, 6.1 ou 4, o R irá retornar a mensagem “pH de referência não suportado, use 5.5, 6 ou 6.5.”, facilitando a compreensão da nossa função por outros usuários.

Faça um teste com os seguintes valores: pH de referência igual à 6, teor de matéria orgânica igual à 2 e teor de alumínio igual à 7. Insira as informações na função desta forma: soloNC( 6, 2 , 7).

O resultado deverá ser 18,139 t/ha de calcário.

Podemos criar funções para diversas outros processos ambientais, assim como desenvolver funções complexas para atender diferentes demandas, cabe ao profissional utilizar sua criatividade e programar.

Ficou com alguma dificuldade na realização destas funções? Deixe sua dúvida aqui nos comentários que estaremos respondendo assim que possível.

Referências consultadas.

OSMAN, K.T. Soils: Principles, Properties and Management. Springer Science + Business Media: 2013, 271 pp.

SBCS. Manual de adubação e de calagem para os Estados do Rio Grande do Sul e de Santa Catarina / Sociedade Brasileira de Ciência do Solo. Comissão de Química e Fertilidade do Solo. - 10. ed. Porto Alegre, 2004. 400 p.


Clique na figura abaixo e assine nossa lista de emails para receber nosso ebook "Como criar mapas de localização com ArcGIS 10.x".


Author: Fernando BS

Engenheiro Ambiental e de Segurança do Trabalho. Atua nas áreas de recuperação ambiental, geoprocessamento e ciência do solo. Busca soluções utilizando softwares como ArcGIS, R e MATLAB.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *