Traduções desta página:

Ferramentas do usuário

Ferramentas do site


05_curso_antigo:r2011:alunos:trabalho_final:carlos:start

====== Carlos Eduardo Benfica ======sam_1308_copia.jpg

Mestrando em Ecologia, IB - USP e Pesquisador Efetivo da SOS FALCONIFORMES. Título da dissertação: “Riqueza e Abundância de Falconiformes em uma área protegida de Cerrado, PE Veredas do Peruaçu - MG”. Orientador: J.C. Motta Jr.

exec

Laboratório de Ecologia de Aves - LABECOAVES

SOS FALCONIFORMES

Exercício Final

Um dos objetivos de meu projeto é conseguir a densidade de Aves de Rapina diurnas presentes na área de estudo e para isso realizo transectos. Durante as transecções dados específicos são necessários, como a distância perpendicular do indivíduo registrado até o trasnsecto, porém, em certos momentos, não há possibilidade de medir tal distância. Nesses casos obtém-se outros dados (distância da hipotenusa e o ângulo entre os azimutes do transecto e do indivíduo registrado). Tais dados são colocados em formulas matemáticas para conseguir a medida almejada (um cateto)

PROPOSTA A.final <- PROPOSTA A + PROPOSTA B

Meus dados estao em tres colunas (A,B e C), porem quando a primeira esta preenchida nao preciso das restantes.

Criar uma coluna concatenada (D) com a preferencia para a primeira coluna (A), quando preenchida. Quando nao preenchida, fazer o calculo da diferenca entre as duas outras colunas (B e C), as quais contem medidas de angulos.

Criar uma funcao de analise exploratoria (graficos de barras separados por classe) a qual sera composta por uma coluna com dados exatos, no caso as distâncias perpendiculares dos ndividuos registrados ao longo dos transectos (ex: 2,5,8,8,3,9,10,8,14,37,58,100,69,124,etc.). O intuito é gerar um numero X (ex:5) de graficos, porem cada um com intervalos de classes diferentes (Default) Grafico 01 (Intervalos A=0-10,B=10-20,C=20-30,D=30-40,D=40-50) Grafico 02 (Intervalos A=0-15,B=15-30,C=30-45,D=45-60,D=60-75) Grafico 03 (Intervalos A=0-20,B=20-50,C=50-90,D=90-140,D=140-200) Grafico 04……. Grafico 05……

Comentários

Daniel:

A proposta é interessante pois vejo que facilitará o trabalho da sua dissertação. No entanto, me parece muito simples. Existem testes ou algumas outras manipulações nos dados que você gostaria de fazer? Uma alternativa seria agregar as suas duas propostas, ou seja, faça a manipulação da planilha e também gere os gráficos.

ALe: concordo com o Daniel, em parte. A manipulação de dados pode ser um desafio muito grande.. em geral as pessoas penam em fazer isso no R. A principio uma tarefa pode parecer simples, mas ao final se transformar em um grande desafio. Caso não encontre obstáculos desafiadores na primeira, agregue o plano B…

Paulo: uma maneira de tornar mais desafiador é generalizar a função para aplicação mais ampla que dados que tenham exatamente a mesmo estrutura dos seus. De todo modo, no help vc deve deixar clara a estrutura que o objeto de dados deve ter.

Após a entrega: sua indexação usa os nomes das colunas; isso pode dar problema se o usuário der outros nomes. Fácil corrigir com indexação numérica.

Função Final

Página de Ajuda

Dist.expl {R 2011}

				Distance Calculations For Transects
					
Description

By inputing the basic data collected on field (data.frame) along line transects (hypotenuse
and both azimuths - object registered and transect) it gives you a new column (dpc) with the
perpendicular distance from your object to your line transect and 4 histograms of your data
divided into distance classes (5,10,20&25m). Highest possible perpendicular distance 300m.


Usage

dist.expl(dados,...)


Arguments

dados 	a data.frame object composed by 6 columns and infinite rows. The columns must be on
a fixed sequence and must be named as follow: transecto (line transect identification number);
especie (Species); hipotenusa (hypotenuse, obtained when perpendicular distance is not possible
to measure); az1 (highest azimuth value); az2 (lowest azimute 	value); dpo (perpendicular
distance obtained during field work, when possible)
...


Details

All the records have their perpendicular distances calculated and are gathered into distance
classes for exploratory reasons. The classes are fixed into: 5m, 10m, 20m and 25m intervals
and so is the column order. 

Warning

The graphics provided are only for exploratory anylises 


Author(s)

Carlos Eduardo Benfica
caebenfica@ib.usp.br


See also

The package DSpat, which is all towards distance sampling methodology.

Examples				

dist.expl(dados) ### carregar arquivo localizado no fim da pagina

# Ex1:  # criando o data.frame exemplo1
a=seq(1,10,1)
transecto=sample(a,250, replace=TRUE)
especies=sample(c("R. magnirostris", "B. albicaudatus", "B. brachyurus", "H. coronatus", "H. meridionalis", "F. femoralis", "M. chimachima", "C. plancus", "H. cachinnans"), 250, replace=TRUE)
b=c(rpois(50,5),rpois (50,130),rpois (50,20),rpois(50,50),rpois(50,35))
hipotenusa=sample(b,250,replace=TRUE)
c=seq(180,360,1)
az1=sample(c,250,replace=TRUE)
d=seq(0,180,1)
az2=sample(d,250,replace=TRUE)
e=rep(0,249)
dpo=sample(e,250,replace=TRUE)
exemplo1<-data.frame(transecto,especies,hipotenusa,az1,az2,dpo)

dist.expl(exemplo1)

Código da função

dist.expl=function(dados=data.frame,.....){
dados$dpc<-dados$dpo		
	dados[which(dados$dpo==0),7]<-Mod(round(sin((dados[which(dados$dpo==0),4])-(dados[which(dados$dpo==0),5]))*(dados[which(dados$dpo==0),3]))) 

	quartz("Graficos Exploratorios - Distance Sampling",11,7.2)
	mat=matrix(c(1:4),2,2,byrow=TRUE)
	layout(mat,widths=c(1,1),heights=c(1,1))
	layout.show(4)
		
	classe5=c((seq(0,95,5)),(seq(100,300,50)))
	hist(dados$dpc, main="Intervalos de 5m (se d<100m)",xlab="Classes de Distancias", ylab="Registros",breaks=classe5,freq=TRUE)
	
	classe10=c((seq(0,90,10)),(seq(100,300,50)))
	hist(dados$dpc, main="Intervalos de 10m (se d<100m)",xlab="Classes de Distancias", ylab="Registros",breaks=classe10,freq=TRUE)
	
	classe20=c((seq(0,80,20)),(seq(100,300,50)))
	hist(dados$dpc, main="Intervalos de 20m (se d<100m)",xlab="Classes de Distancias", ylab="Registros",breaks=classe20,freq=TRUE)
	
	classe25=c((seq(0,75,25)),(seq(100,300,50)))
	hist(dados$dpc, main="Intervalos de 25m (se d<100m)",xlab="Classes de Distancias", ylab="Registros",breaks=classe25,freq=TRUE)
	return(dados)
	}

Arquivo da Função

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