===== Carla Piantoni ===== {{:bie5782:01_curso_atual:alunos:trabalho_final:piantoni:dsc00587.jpg?200|}} Doutoranda pelo Departamento de Fisiologia, Instituto de Biociências, USP Projeto: **Efeitos do aquecimento global sobre populações de //Tropidurus torquatus// (Squamata: Tropiduridae) no Brasil** Orientador: Carlos A. Navas ====Meus Exercícios==== {{:bie5782:01_curso_atual:alunos:trabalho_final:piantoni:aula_1.r|Aula 1}}, {{:bie5782:01_curso_atual:alunos:trabalho_final:piantoni:aula_2.r|Aula 2}}, {{:bie5782:01_curso_atual:alunos:trabalho_final:piantoni:aula_3.r|Aula 3}}, {{:bie5782:01_curso_atual:alunos:trabalho_final:piantoni:aula_4.r|Aula 4}}, {{:bie5782:01_curso_atual:alunos:trabalho_final:piantoni:aula_5_p.r|Aula 5}}, {{:bie5782:01_curso_atual:alunos:trabalho_final:piantoni:aula_6.r|Aula 6}}, {{:bie5782:01_curso_atual:alunos:trabalho_final:piantoni:aula_7.r|Aula 7}}, {{:bie5782:01_curso_atual:alunos:trabalho_final:piantoni:aula_9_f.r|Aula 9}} ====Proposta de Trabalho Final==== Um dos objetivos principais do meu projeto de doutorado é determinar as consequências das alterações climáticas ocorridas durante os últimos 25-30 anos em três populações de lagartos da espécie //Tropidurus torquatus// (Tropiduridae). De acordo com os dados climáticos obtidos até o momento junto a estações meteorológicas, as regiões selecionadas não apresentariam variações significativas da temperatura média mensal durante as últimas décadas (Figura 1). {{:bie5782:01_curso_atual:alunos:trabalho_final:piantoni:fig-1.jpg?nolink&200 |}} Este resultado foge aos padrões observados em outras regiões do Brasil onde o aumento das temperaturas médias foram significativos (Mendonça, 2007). Não obstante, o número de dias com temperatura média maior do que 27°C aumentou consideravelmente em algumas localidades das quais se têm dados meteorológicos (Figura 2). Um aumento do número de dias com temperaturas muito altas, ou seja, menos favoráveis, poderia provocar uma diminuição do número de horas de atividade anuais dos lagartos e, em consequência, uma diminuição no fitness das populações estudadas. {{ :bie5782:01_curso_atual:alunos:trabalho_final:piantoni:fig-2.jpg?nolink&300|}} Pretendo elaborar uma função que permita calcular a variação do número de dias nos quais as temperaturas (médias, máximas, mínimas) foram iguais, maiores ou menores a um determinado valor em um determinado período de tempo a partir de um data frame que contenha as varáveis diárias das últimas décadas. Mendonça, F. 2007. Effects of global warming on human health: An approach from “re-emergent” deceases in Brazil. Pp. 217–238 em P. Leite de Silva Dias, W. Costa Ribeiro, & L. Hidalgo Nunes ed. A contribution to understanding the regional impacts of global changes in South America. Instituto de Estudos Avançados da Universidade de São Paulo, São Paulo. **Daniel (Musgo):** Você poderia incluir gráfico(s) explicativo(s) como output da sua função, além do vetor contendo o resultado se foi "igual, maior ou menor" para cada temperatura. Seria interessante construir, a partir dos resultados da comparação da temperatura, uma previsão sobre o comportamento dos animais. Desta forma, com o resultado da sua função, seria possível verificar a alteração da temperatura e o reflexo no comportamento dos animais (talvez dois plots em um mesmo gráfico, um da mudança na temperatura e o outro da resposta comportamental). O que acha? **Carla:** Acho boa ideia, obrigada. As mudanças no comportamento dos animais poderiam ser representada com uma curva de desempenho que pode ser prevista com base em experimentos realizados a diferentes temperaturas. Ou uma curva que mostre a diminuição das horas de atividade quando as temperaturas superam um patamar. === Comentários === Acho legal o comentário do Musgo, mas a principio a idéia original é mais geral. Para fazer o que o Musgo sugere isso seria aplicável apenas para a sua espécie, ou daquelas que tenha informação prévia que estará contida na função. Como alternativa poderia incluir um arguemnto que o usuário poderia incluir o desempenho do bicho (qq espécieP). Lembre-se que curvas são dificeis de armazenar como dados, poderia ser um data frame com asas variáveis temperatura e a atividade média do bicho (não sei como são os dados brutos coletados desse experimentos!). Na sua função depois poderia usar esses dados para compor a curva de atividade... De qq forma como sugestão: concentre na primeira parte e avance se sentir que há tempo para isso,. --- //[[adalardo@usp.br|Alexandre Adalardo de Oliveira]] 2012/04/03 21:06// ====Trabalho Final==== === Página de Ajuda === diasquentesfun package:unknown R Documentation Função para os Dias Quentes Descrição Diasquentesfun pode ser utilizada para calcular o número de dias com temperaturas o precipitação maiores ou iguais a um valor pretendido por mês ou ano. Além de retornar uma tabela contendo os resultados em formato .csv a função cria um gráfico xy da variação do número de dias em função dos anos. Uso diasquentesfun <- function(x, var, varclim = "tmax", unidtempo = "ano") Argumentos x data.frame. con as colunas organizadas na seguinte ordem e nomenclatura sugerida: ano, mês, dia, prec (precipicação em mm), tmax (temperatura máxima diária em °C), tmed(temperatura media diária em °C), tmin (temperatura mínima diária em °C). A coluna "dia" deve apresentar somente o número 1 em todas as células. var numérico. Valor mínimo de precipitacão ou temperatura com o qual se calculará o número de dias. varclim caracter. A unidade usada pode ser "tmax","tmed", "tmin", e "prec", o resultado de "tmax", "tmed", e "tmin" é sempre em graus Celsius, e de "prec" em milimetros. unidtempo caracter. A unidade usada pode ser "ano", e "mes". Detalhes Transforma os dados brutos obtidos através de uma estação meteorológica em dados para análise da variação climática ao longo do tempo. A tabela contendo os resultados em formato .csv será guardada no diretorio com o nome "diasquentesfun.csv". ATENÇÃO: O arquivo será substituído por outro novo com o mesmo nome sempre que a função for usada. Valores Quando se usa "ano" como argumento, a função retorna um data frame com as colunas correspondentes aos anos e a variável climática fornecida como argumento da função ("tmax", "tmed", "tmin", ou "prec"). Quando se usa "mes" como argumento, retorna um data frame com as colunas correspondentes aos anos, a variável climática fornecida como argumento da função ("tmax","tmed", "tmin", ou "prec") e o meses. Autora Carla Piantoni Instituto de Biosciências, Universidade de São Paulo Departamento de Fisiologia carla.piantoni@gmail.com; piantoni@usp.br Referências Crawley, Michael J. 2007. The R Book. Wiley-Blackwell. West Sussex, UK. Exemplo ## Construção do data frame ano <- c(rep(2009,365), rep(2010,365), rep(2011,365)) mes <- rep(c(rep(1,31), rep(2,28), rep(3,31), rep(4,30), rep(5,31), rep(6,30), rep(7,31), rep(8,31), rep(9,30), rep(10,31), rep(11,30), rep(12,31)), 3) dia <- rep(1, 1095) prec <- c(rep(c(13.7,0,5.2,0,0), 219)) ano09 <- rep(c(31.8434,32.2444,32.4343,30.4641,32.4212), 73) ano10 <- c(ano09+1.5) ano11 <- c(ano10+2) tmax <- c(ano09, ano10, ano11) tmed <- c(tmax-7) tmin <- c(tmax-11) dados <- data.frame(cbind(ano, mes, dia, prec, tmax, tmed, tmin)) ## Número de dias por ano que apresentaram temperaturas máximas maiores ou iguais a 33 °C: diasquentesfun(dados, 33, varclim="tmax", unidtempo="ano") ## Número de dias por mes que apresentaram temperaturas mínimas maiores ou iguais a 22 °C diasquentesfun(dados, 33, varclim="tmax", unidtempo="ano") {{:bie5782:01_curso_atual:alunos:trabalho_final:piantoni:pagina_ajuda_diasquentesfun.txt|Página de Ajuda diasquentesfun.txt}} === Código da Função === diasquentesfun<-function(x,var,varclim="tmax",unidtempo="ano") { if(unidtempo=="ano") { if(varclim=="tmax") { diasquentes <- aggregate(x[,3]+x[,5]>=var~x[,1], data=x,sum, na.rm=TRUE) diasquentes <- as.data.frame(diasquentes) names(diasquentes) <- c("Ano", "TDTmax") diasquentes[, 1] <- as.factor(diasquentes[, 1]) diasquentes[, 2] <- as.factor(diasquentes[, 2]) diasquentes <- diasquentes[with(diasquentes, order(Ano)), ] write.table(diasquentes,file="diasquentesfun.csv",sep=",", row.names=FALSE) diasquentes <- read.csv("diasquentesfun.csv", header=TRUE, dec=".") names(diasquentes) <- c("Ano", "TDTmax") } if(varclim=="tmed") { diasquentes <- aggregate(x[,3]+x[,6]>=var~x[,1], data=x,sum, na.rm=TRUE) diasquentes <- as.data.frame(diasquentes) names(diasquentes) <- c("Ano", "TDTmed") diasquentes[, 1] <- as.factor(diasquentes[, 1]) diasquentes[, 2] <- as.factor(diasquentes[, 2]) diasquentes <- diasquentes[with(diasquentes, order(Ano)), ] write.table(diasquentes,file="diasquentesfun.csv",sep=",", row.names=FALSE) diasquentes <- read.csv("diasquentesfun.csv", header=TRUE, dec=".") names(diasquentes) <- c("Ano", "TDTmed") } if(varclim=="tmin") { diasquentes <- aggregate(x[,3]+x[,7]>=var~x[,1], data=x,sum, na.rm=TRUE) diasquentes <- as.data.frame(diasquentes) names(diasquentes) <- c("Ano", "TDTmin") diasquentes[, 1] <- as.factor(diasquentes[, 1]) diasquentes[, 2] <- as.factor(diasquentes[, 2]) diasquentes <- diasquentes[with(diasquentes, order(Ano)), ] write.table(diasquentes,file="diasquentesfun.csv",sep=",", row.names=FALSE) diasquentes <- read.csv("diasquentesfun.csv", header=TRUE, dec=".") names(diasquentes) <- c("Ano", "TDTmin") } if(varclim=="prec") { diasquentes <- aggregate(x[,3]+x[,4]>=var~x[,1], data=x,sum, na.rm=TRUE) diasquentes <- as.data.frame(diasquentes) names(diasquentes) <- c("Ano", "Prec") diasquentes[, 1] <- as.factor(diasquentes[, 1]) diasquentes[, 2] <- as.factor(diasquentes[, 2]) diasquentes <- diasquentes[with(diasquentes, order(Ano)), ] write.table(diasquentes,file="diasquentesfun.csv",sep=",", row.names=FALSE) diasquentes <- read.csv("diasquentesfun.csv", header=TRUE, dec=".") names(diasquentes) <- c("Ano", "Prec") } } if(unidtempo=="mes") { if(varclim=="tmax") { diasquentes <- aggregate(x[,3]+x[,5]>=var~x[,1]+x[,2], data=x,sum, na.rm=TRUE) diasquentes <- as.data.frame(diasquentes) names(diasquentes) <- c("Ano", "Mes", "TDTmax") diasquentes[, 1] <- as.factor(diasquentes[, 1]) diasquentes[, 2] <- as.factor(diasquentes[, 2]) diasquentes <- diasquentes[with(diasquentes, order(Ano, Mes)), ] diasquentes <- data.frame(diasquentes$Ano, diasquentes$TDTmax, diasquentes$Mes) write.table(diasquentes,file="diasquentesfun.csv",sep=",", row.names=FALSE) diasquentes <- read.csv("diasquentesfun.csv", header=TRUE, dec=".") names(diasquentes) <- c("Ano", "TDTmax", "Mes") } if(varclim=="tmed") { diasquentes <- aggregate(x[,3]+x[,6]>=var~x[,1]+x[,2], data=x,sum, na.rm=TRUE) diasquentes <- as.data.frame(diasquentes) names(diasquentes) <- c("Ano", "Mes", "TDTmed") diasquentes[, 1] <- as.factor(diasquentes[, 1]) diasquentes[, 2] <- as.factor(diasquentes[, 2]) diasquentes <- diasquentes[with(diasquentes, order(Ano, Mes)), ] diasquentes <- data.frame(diasquentes$Ano, diasquentes$TDTmed, diasquentes$Mes) write.table(diasquentes,file="diasquentesfun.csv",sep=",", row.names=FALSE) diasquentes <- read.csv("diasquentesfun.csv", header=TRUE, dec=".") names(diasquentes) <- c("Ano", "TDTmed", "Mes") } if(varclim=="tmin") { diasquentes <- aggregate(x[,3]+x[,7]>=var~x[,1]+x[,2], data=x,sum, na.rm=TRUE) diasquentes <- as.data.frame(diasquentes) names(diasquentes) <- c("Ano", "Mes", "TDTmin") diasquentes[, 1] <- as.factor(diasquentes[, 1]) diasquentes[, 2] <- as.factor(diasquentes[, 2]) diasquentes <- diasquentes[with(diasquentes, order(Ano, Mes)), ] diasquentes <- data.frame(diasquentes$Ano, diasquentes$TDTmin, diasquentes$Mes) write.table(diasquentes,file="diasquentesfun.csv",sep=",", row.names=FALSE) diasquentes <- read.csv("diasquentesfun.csv", header=TRUE, dec=".") names(diasquentes) <- c("Ano", "TDTmin", "Mes") } if(varclim=="prec") { diasquentes <- aggregate(x[,3]+x[,4]>=var~x[,1]+x[,2], data=x,sum, na.rm=TRUE) diasquentes <- as.data.frame(diasquentes) names(diasquentes) <- c("Ano", "Mes", "Prec") diasquentes[, 1] <- as.factor(diasquentes[, 1]) diasquentes[, 2] <- as.factor(diasquentes[, 2]) diasquentes <- diasquentes[with(diasquentes, order(Ano, Mes)), ] diasquentes <- data.frame(diasquentes$Ano, diasquentes$Prec, diasquentes$Mes) write.table(diasquentes,file="diasquentesfun.csv",sep=",", row.names=FALSE) diasquentes <- read.csv("diasquentesfun.csv", header=TRUE, dec=".") names(diasquentes) <- c("Ano", "Prec", "Mes") } } var <- read.table("diasquentesfun.csv", header=TRUE, dec=".") x11() plot(var[,1], var[,2], bty="l", tck=0.01, xlab=paste("Anos)"), ylab=paste("Número Total de Dias"), cex.axis= 0.8, pch=19) lines(lowess(var[,1],var[,2])) return(diasquentes) } {{:bie5782:01_curso_atual:alunos:trabalho_final:piantoni:diasquentesfun.txt|Função diasquentesfun.txt}}, {{:bie5782:01_curso_atual:alunos:trabalho_final:piantoni:diasquentesfun.r|Função diasquentesfun.R}}