Índice
- O Curso R
-
- Tutoriais
-
- Apostila
-
- 6. Testes de Hipótese (em preparação!)
- Exercícios
-
- Material de Apoio
-
- Área dos Alunos
-
- Cursos Anteriores
-
IBUSP
Outras Insitutições
Linques
Visitantes
Outras Insitutições
Olá, sou Alessandra, veterinária e trabalho com animais marinhos, em especial, cetáceos.
1.Trabalho final
1.1.Plano A - Cálculo da distância da costa a partir de coordenadas geográficas de interesse
Contextualização
O conhecimento da distancia onde ocorrem os animais marinhos e a atividade pesqueira, tendo como referência a linha de costa, é importante para a conservação da fauna marinha e o manejo da pesca. Por exemplo, a distância da costa pode ser uma variável preditora da ocorrência de cetáceos (do Amaral et al. 2018) e algumas pescarias. A sobreposição entre pequenos cetáceos e atividade pesqueira pode ocasionar interações negativas como a captura acidental de golfinhos em redes de pesca, um problema mundial de conservação que afeta várias espécies de cetáceos(Leeney et al. 2008). Recentemente uma Instrução Normativa (IN n°12/2012),com o intuito de ordenar a pesca de emalhe da região sudeste e sul do Brasil, estabeleceu a proibição da pesca desta modalidade à 1 milha náutica de distância da costa para todas as embarcações motorizadas e à 4 milhas náuticas para embarcações de arqueação bruta maior que 20. Neste caso, a aferição da distância da costa dos lances de pesca pode ser útil para fins de fiscalização da atividade pesqueira.
Nesse sentido, a função proposta pretende calcular as distâncias da costa de pontos de interesse, através de arquivos do tipo shapefile1, criar um dataframe
com essas distâncias e gerar um mapa contendo a linha de costa e os pontos de interesse. Dentro da função, os objetos contendo os shapefiles serão transformados em unidades métricas através do EPSG 5641 2, que é um código que atua em toda a América Latina (https://epsg.io/5641).
Figura 1. EPSG 5641
1 shapefile é um arquivo para dados vetoriais, desenvolvido pela empresa ESRI e é composto por três arquivos que possuem as extensões: .shp: armazena entidades geométricas do objeto; .shx: armazena o índice de entidade geométricas; .dbf: armazena a tabela de atributos dos objetos. Além dessas extensões, é comum encontrar a extensão .prj que contém as informações do sistema de coordenadas.
2 Uma fonte de dados classificada como espacial deve possuir um Sistema de Coordenadas (SRC) que está organizado em Sistema de Coordenadas Geográficas (ou Geodésicas) ou Sistema de Coordenadas Planas (ou Projetadas). Esse sistema deve ser verificado antes de executar qualquer ação no sistema de informação geográfica. Após a escolha do sistema de referência de coordenadas, o passo seguinte é a escolha do modelo da Terra ou Datum. Código EPSG é uma padronização dos Sistemas de Referência de Coordenadas do mundo formalizada pela organização European Petroleum Survey Group (EPSG). Uma projeção de qualquer parte do globo pode ser identificada através do padrão EPSG. Na nossa função utilizaremos o sistema de coordenadas planas (EPSG=5641) para calcularmos a distância da costa em unidades métricas. Se utilizássemos o sistema de coordenadas geográficas, calcularíamos a distância em graus.
Planejamento da função O usuário deve baixar os seguintes pacotes: “sf”, “mapview”, “tidyverse”.
Entrada:dist.costa(x,y)
Pseudo-código
dataframe
.dataframe
dataframe
da camada das coordenadasSaída
dataframe
contendo a camada de pontos e as distancias calculadas em relação a linha de costa1.2.Plano B - Conversão de coordenadas geográficas GMS em coordenadas decimais
Contextualização
A conversão de coordenadas geográficas GMS (grau, minuto, segundo) em coordenadas decimais é muito comum e fundamental para importar os pontos geográficos para softwares de SIG (Sistema de Informações Geográficas).
A conversão acontece por meio da fórmula:
Graus decimais = 1)
dataframe
contendo 3 colunas nomeadas como: “graus”, “min”, “seg”.
Verificando os parâmetros
dataframe
com as coordenadas em GMS e as coordenadas em graus dataframe
com as três colunas contendo os “graus”, “min” e “seg” e uma quarta coluna contendo as coordenadas em graus decimais calculadas.===== Função "dist.costa"===== Autora: Alessandra Rocha #Carregando os pacotes necessários# library(sf) library(tidyverse) library(mapview) #criando os objetos x e y# x<-st_read("drive/pasta do computador/arquivo.shp") y<-st_read("drive/pasta do computador/arquivo_de_coordenadas.shp") #####Função##### dist.costa<-function(x, #objeto contendo a camada vetorial linear de referência y, #objeto contendo a camada de coordenadas geográficas nboot=1000 #número de simulações, por padrão será 1000 valores simulados ) { #verificando parâmetros# if(class(x)!= c("sf", "data.frame") && class(y)!=c("sf", "data.frame")) {stop("o vetor de dados não é da classe sf")} #verificando a classe dos objetos x e y que devem ser "sf" "data.frame" if(nboot<=0|as.integer(nboot)!=(nboot)) #verifica se o número de simulações indicado é um número inteiro maior que zero { nboot=1000 warning("nboot deve ser um número inteiro e maior que zero, função rodou com o nboot padrão de 1000 simulações") #se o número em nboot não for inteiro e maior que zero, a função rodará com o número padrão de 1000 valores e mostrará essa mensagem de 'warning' } sn<-readline("quer visualizar o mapa? (s/n)") #pergunta ao usuário, no console, se quer visualizar o mapa ou não if(sn=="s")#se o usuário quiser visualizar o mapa, deverá digitar a letra "s" no console e a função irá prosseguir { #início da função# w<-mapview(x, color="grey")+y} #gera o mapa x%>% st_transform(st_crs(5641)) #modifica o Datum do objeto x para UTM,sistema de coordenadas planas, para realizar o cálculo das distâncias em metros y%>% st_transform(st_crs(5641))#modifica o Datum do objeto y para UTM, sistema de coordenadas planas, para realizar o cálculo das distâncias em metros dist<- as.data.frame(st_distance(y,x)) #calcula as distâncias e cria um objeto com o data.frame das distâncias tab<-data.frame(y) #cria um data.frame da camada vetorial y (coordenadas geográficas) tab.dist<-data.frame(tab,dist) #junta o data.frame com as distâncias e o data.frame com as coordenadas media.dist<-mean(tab.dist$st_distance.y..x.) #calcula a média das distâncias calculadas #preparando para o ciclo for() - bootstrap# nboot=nboot #atribui o objeto nboot com os valor do padrão ou o valor que o usuário escolher para a simulação do bootstrap boot.sim<-rep(NA, nboot) #cria um objeto com NAs, de mesmo comprimento que o nboot boot.sim[1]<-media.dist #coloca na posição 1 do objeto de valores NA, a média das distâncias calculada for(i in 2:nboot){ #cria um ciclo for() que começa na posição 2, pois na posição 1 já está a média das distâncias com comprimento nboot boot.sim[i]<-mean(sample(tab.dist$st_distance.y..x., replace=TRUE))#faz uma amostragem com reposição dos valores de distância encontrados e calcula a média desses valores } z<-hist(boot.sim) #gera um histograma com os valores de distância média simulados abline(v=boot.sim[1], lty=2, col="red") #coloca uma linha tracejada vermelha no histograma, indicando a média da distância dos valores reais q<-quantile(boot.sim, prob=c(0.05, 0.95)) #calcula os quantis para o intervalo de confiança de 95% #preparando os resultados da função# if(sn=="s"){ #se quiser o mapa final<-list(tab.dist,z,q, w)} #o objeto 'final' do return conterá o mapa if(sn=="n"){ #se não quiser o mapa final<-list(tab.dist,z,q)} #o objeto 'final' do return não retornará o mapa return(final) #apresenta os resultados do cálculo de distâncias, o histograma de valores simulados com a média da distância de valores calculados e o valor de média dos dados, os quantis do intervalo de confiança do bootstrap e um mapa caso o usuário queira visualizar o mapa. ####fim da função#### }Help função dist.costa
dist.costa package:unkown R Documentation Cálculo da distância da costa a partir de coordenadas geográficas de interesse Description: Função para calcular distâncias euclideanas entre coordenadas geográficas e um shapefile (camada vetorial linear) de referência. As distânca são calculadas em metros. A função fornece a opção de um mapa, representando methods/html/as.html">as coordenadas e o shapefile de referência. O mapa possui opções de 'layout' no menu do canto esquerdo. Um dataframe contendo methods/html/as.html">as distâncias calculadas é fornecido, assim como a média das distâncias e um histograma contendo valores simulados e o calculo do intervalo de confiança de 95%. A função é especialmente útil para usuários que desejam conhecer distâncias lineares, por exemplo, de pontos (coordenadas geográficas), tomando-se como referência uma linha de costa. Usage: dist.costa (x,y, nboot=1000) Arguments: x : objeto da classe "sf" "data.frame" y : objeto da classe "sf" "data.frame" nboot=1000: número de simulação para o bootstrap com o padrão de 1000 valores simulados. Details: Para usar esta função, os pacotes "sf", "tidyverse" e "mapview" devem estar instalados e carregados. Para ler o shapefile, pode-se usar a função st_read (e.g. Examples). A ordem das variáveis faz diferença, sendo a primeira variável(x) o shapefile de referência para o cálculo da distância e a segunda variável (y), o shapefile contendo methods/html/as.html">as coordenadas geográficas de interesse. O shapefile de referência (x) deve ser uma camada vetorial linear. A função funciona melhor na região da América Latina pois o código EPSG usado é o 5641. É possível optar pela visualização do mapa ou não. Momentos após o usuário rodar a função, virá a pergunta sobre a visualização do mapa, que deve ser respondida com a letra 's' se deseja visualizar o mapa e com a letra 'n' se não deseja visualizar o mapa. A função retorna a distância média, representada por uma linha tracejada, dentro de um histograma de 'nboot' valores médios simulados e o intervalo de confiança de 95%, calculados por bootstrap. Value: Mapa de visualização contendo a camada com methods/html/as.html">as coordenadas geográficas de interesse e o shapefile de referência. Dataframe contendo methods/html/as.html">as distâncias calculadas em unidades métricas. Histograma contendo a indicação (linha tracejada) da média dos valores das distâncias calculadas, os valores médios simulados de distância e o intervalo de confiança destes valores, calculados por bootstrap. Warning: Se x e y não forem arquivos da classe "sf" "data.frame" a função não é executada. O mapa só é gerado se o usuário quiser, clicando a letra "s" depois de se executar a função, no console. Se o valor escolhido para o nboot não for um número inteiro maior que zero, a função rodará com o número de simulações do padrão da função (1000 valores). A função funciona melhor e tem bastante utilidade quando se usa uma camada vetorial linear como shapefile de referência. Author(s): Alessandra Rocha email: emaildaalessandra@gmail.com Examples linha_costa<-st_read("C:/Users/R/linha_rs.shp") pontos_n<-st_read("C:/Users/R/linha_rs.shp") distancias<-dist.costa(linha_costa, pontos_n, nboot=2000) #se quiser 2000 valores simulados no bootstrap distancias.1<-dista.costa(linha_costa, pontos_n) #se quer utilizar o número de simulações do padrão (1000 valores)Link de arquivos para se utilizar como exemplo no help da função 'dist.costa': arquivos_exemplos_r.rar
Taio
Resposta Alessandra Rocha