Traduções desta página:

Ferramentas do usuário

Ferramentas do site


05_curso_antigo:r2013:alunos:trabalho_final:lilianapiatti:start

Liliana

Liliana Piatti

Doutoranda em Ecologia no IB/USP http://lattes.cnpq.br/9114006685473486

Projeto de Pesquisa: Biogeografia e diversidade filogenética e morfológica das serpentes do Pantanal.

Cursarei a disciplina com a intenção de me familiarizar com o ambiente R e sua linguagem, e dominar as funções básicas necessárias para analisar dados ecológicos. Acredito que com um bom aproveitamento do curso estarei preparada para, no R,aplicar as análises necessárias aos meus dados, explorando-os de maneira correta e apresentando meus resultados de forma clara e objetiva.

Meus Exercícios

Exercícios 1 exec

Exercícios 4 ex_4-2_a_4-5.r

Exercícios 5 exer5.r

Exercícios 6 ex6_1-2.r

Exercício 7.2 ex7_2.r

Exercícios 8.2 ex8_2.r

Trabalho Final

Plano A

Uma função em que as coordenadas de um registro fossem trasnformadas em uma vetor fator que dissesse se a coordenada está dentro ou fora de uma dada área de interesse. Os dados de entrada seriam duas colunas referentes as coordenadas(latitude e longitude) e um aquivo com um shape que delimita qual a área de interesse. O resultado seria uma coluna da classe fator, dizendo se as coordenadas de entrada estão dentro ou fora dessa área. Essa proposta envolve manipulações de mapas no R, o que eu não tenho a mínima ideia de como fazer. Estou com a esperança de que o conhecimento exigido seja básico, que eu consiga obter através dos helps dos pacotes exigidos.

Plano B

Uma função que corrigisse erros de digitação de nomes científicos de planilha de dados. Atualmente é bem comum planilhas com milhares de linhas, construídas por várias pessoas, e os erros de digitação são comuns. A correção automática, com base em um arquivo com os nomes corretos retirados de uma fonte confiável, pode poupar um bom tempo na manipulação dos dados. Os arquivos de entrada seriam o vetor contendo o nome das espécies retirado da planilha original (o que deve ser corrigido) e um vetor com o nome das espécies escrito de maneira correta, que pode ser retirado dos sites das sociedades oficiais dos grupos, por exemplo. o output da função seria o vetor de espécies da planilha original com todos os nomes conferidos e escritos na grafia correta.

Comentário

Liliana, sua proposta A parece interessante, porém a saída dela está um tanto simples. Nesse primeiro momento tenho duas sugestões: 1- Não conheço muito sobre como lidar com shapes em mapas, mas creio que para um mesmo conjunto de pontos de um shape, você possa fazer diferentes interpolações para definir a área. Seria interessante se você colocasse um argumento que você pudesse escolher o tipo de interpolação, pois isso vai mudar o shape e indivíduos que estão próximos às bordas podem estar dentro ou fora dependendo de como essa interpolação é feita. 2- Você pode tentar plotar um gráfico com o shape (se você tiver as coordenadas, pode inclusive plotar em um mapa - ver a função da monitora Tauana em 2012), com pontos representando as espécies tanto fora quanto dentro desses limites.

Gustavo Burin

Função Final

Função construída a partir do plano A e comentários.

Função que transforma coordenadas de ocorrências de espécies em um vetor fator que diz se os registros estão dentro ou fora de uma dada área de interesse (uma reserva biológica, por exemplo).

HELP

inside					pacote:nenhum				R Documentation

~~ Verifica se uma coordenada geográgica está localizada dentro de uma área de interesse ~~

Descrição:
	Esta função retorna um data frame contendo um vetor lógico, indicando se as coordenadas geográficas 
	estão dentro de uma área de interesse, delimitada por um arquivo .kml.
	É dado também um plot, para que a área e a localização dos pontos possa ser visualizada.

Uso:
	inside(x, y).

Argumentos:
	x	data frame ou matriz numérica com as coordenadas geográficas.
	y	nome do arquivo kml, onde a área de interesse está delimitada.


Detalhes:
	É necessário que estejam instalados os pacotes calibrate, gplots, maptools e rgeos.
	Os dados de entrada devem estar organizados de forma que a primeira coluna contenha os valores de 
	longitude e a segunda de latitude, dadas em graus decimais.

Valor:
	A função retorna um data frame contendo um vetor lógico, com TRUE nas linhas referente às coordenadas 
	que estão dentro da área de interesse. A ordem das cordenadas de entrada é mantida no vetor retornado.
	São plotadas a área de interesse e todas as coordenadas, com números que correspondem à linha na qual 
	se encontram na matriz de entrada.

Warning:
	Para que todos os pontos possa ser visualizados no plot, pontos sobrepostos são realocados e mostrados
	lado a lado. Por isso o plot deve ser usado apenas para a vizualização, devendo-se utilizar as coordenadas
	originais para outras análises.
	
Autora:
       Liliana Piatti

See Also:
	getKMLcoordinates, SpatialPoints

Exemplo:	
	#Baixe o arquivo "registros.csv" e "ufms.kml" e salve-os no diretório de trabalho que será usado no R.	
	reg<-read.csv("registros.csv", header=T, sep=";") 
	#Registros de ocorrências de serpentes em Campo Grande, disponibilizados pela Coleão Zoológica da UFMS.
	#Quais registros estão dentro da reserva da UFMS?	
	inside(reg[,4:5],"ufms.kml")

CÓDIGO DA FUNÇÃO

inside<- function(x,y){
  library(rgeos)
  library(maptools)
  library(calibrate)
  library(gplots)
  
  perimetro<-getKMLcoordinates(y)
  areacheia<-gConvexHull(SpatialPoints(perimetro[[1]][,1:2]))
  pontos<-SpatialPoints(x)
  
  result<-data.frame(rep(NA,dim(x)[1]))
  for(i in 1:dim(x)[1]){
    result[i,1]<-gContains(areacheia,pontos[i,])
  }
  names(result)<-"Inside"
  
  s<-summary(pontos)
  eixoy<-c(s[[2]][2,1],s[[2]][2,2],min(perimetro[[1]][,2]),max(perimetro[[1]][,2]))
  eixox<-c(s[[2]][1,1],s[[2]][1,2],min(perimetro[[1]][,1]),max(perimetro[[1]][,1]))
  no<-(space(x[,1], x[,2]))
  plot(areacheia, col="gray",xlab=" ", ylab=" ", bty="n", pch=19, ylim=c(min(eixoy),max(eixoy)),xlim=c(min(eixox),max(eixox)))
  points(space(x[,1], x[,2]), pch=19, col="gray16")
  textxy(no$x,no$y,labs=rownames(x),cx = 0.8, dcol = "black")
  return(result)
}

Arquivos

Dados de registros de espécies: registros.csv

Shape da área de interesse: https://dl.dropboxusercontent.com/u/65568550/UFMS.kml

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