====== TRABALHO FINAL ====== ===== Apresentação ===== Trata-se de uma função simples que calcula distâncias geográficas entre as coordenadas fornecidas. Matrizes de distâncias são utilizadas para diversas analises, incluindo o Teste de Mantel. A função calcula a menor distância entre duas localidades (distancia euclidiana)e retorna os dados de distância, em Kilômetros. Assim, utilizando o Teorema de Pitágoras, a distancia entre 2 pontos quaisquer será o tamanho da hipotenusa do triâgulo formado pela união dos pontos, e os catetos são as diferenças de valor entre suas respectivas coordenadas. {{ :bie5782:01_curso_atual:alunos:trabalho_final:ana_carolina_pavan:bra_geo.jpg?250 |}} Tais valores são corrigidos conforme a latitude das coordenadas, pois a medida que saímos da linha do Equador em direção aos pólos da Terra, a variação em 1 grau na coordenada geográfica longitude (leste-oeste) tende a corresponder a uma distância física menor, devido à convergência dos meridianos da Terra nos pólos. {{ :bie5782:01_curso_atual:alunos:trabalho_final:ana_carolina_pavan:dist.jpg |}} ====== Observações ====== Os dados de entrada da função deverão estar representados sob a forma de uma planilha no formato csv, contendo três colunas, sendo 1) o nome das localidades; 2)LONGITUDE, em graus decimais; 3) LATITUDE, em graus decimais. Cada linha representa uma localidade, enquanto cada coluna é uma variável (lugar, long, lat). Para coordenadas em UTM, a conversão pode ser feita [[http://www.uwgb.edu/dutchs/usefuldata/ConvertUTMNoOZ.HTM|aqui]]. Se as coordenadas estão em graus, minutos e segundos, a conversão pode ser feita utilizando essa fórmula: decimal = D + M / 60 + S / 3600, ou também no link acima. Para maiores informações, visite a página:\\ http://www.uwgb.edu/dutchs/FieldMethods/UTMSystem.htm\\ Se você precisa das coordenadas das localidades, poderá obte-las [[http://www.fallingrain.com/world/index.html|aqui]], ja convertidas para o formato de entrada na função. ===== PÁGINA DE AJUDA ===== dist.geografica package:nenhum R Documentation Matriz de distâncias geográficas Description: Trata-se de uma função simples para calcular distâncias entre coordenadas geográficas. Os dados de entrada da função deverão estar representados sob a forma de uma planilha no formato csv, contendo três colunas, sendo 1) o nome das localidades; 2)LONGITUDE, em graus decimais; 3) LATITUDE, em graus decimais. Cada linha representa uma localidade, enquanto cada coluna é uma variável (lugar, long, lat). Usage: dist.geografica(x,map=TRUE,save.map=FALSE) Arguments: x: objeto contendo uma planilha de três colunas no formato "csv". map: além da matriz de distâncias gerada na função, plota os pontos em um mapa. save.map: salva o mapa em uma figura "jpeg". Details: O argumento x deve ser uma planilha com coordenadas em grau decimal. Para utilização do argumento "map" será necessária a instalação prévia do pacote maptools: http://cran.r-project.org/web/packages/maptools/index.html. Também será necessário que o usuário salve no diretório o shape que será lido na construção do mapa, nomeando-o dentro do código da função com o mesmo nome que está no diretório. Value: A função retorna uma matriz de distâncias com valores par-a-par em KILÔMETROS. Essa matriz é automaticamente salva no formato "csv" no diretório que está sendo utilizado. Se save.map=TRUE, a função também salva uma figura no formato "jpeg". Warning: Caso o objeto de entrada não contenha três colunas, uma mensagem de erro será dada pela função e esta será interrompida. Uma mensagem de aviso também aparecerá caso se suspeite que as colunas LONG e LAT dos dados fornecidos estão invertidas, mas a função rodará normalmente. Note: As coordenadas geograficas podem ser convertidas aqui: http://www.uwgb.edu/dutchs/usefuldata/ConvertUTMNoOZ.HTML Os shapes para plot dos mapas podem ser baixados aqui: http://www.diva-gis.org/Data Author(s): Ana Carolina Pavan References: http://cran.r-project.org/web/packages/maptools/index.html http://www.uwgb.edu/dutchs/UsefulData/UTMFormulas.HTM http://www.diva-gis.org/Data Examples: x<-read.csv2("localidades.csv", header=TRUE,sep=";") dist.geografica(x,map=FALSE) #Calcula matriz de distâncias geográficas e salva no diretório dist.geografica(x) #Cria matriz e mapa com os pontos dist.geografica(x,map=TRUE,save.map=TRUE) #Não cria o mapa, mas salva no diretório ===== FUNÇÃO ===== dist.geografica<-function(x,map=TRUE,save.map=FALSE) { ##verificar se o objeto possui três colunas: if(ncol(x)!=3){ stop("ERRO!Seu arquivo de entrada não apresenta 3 colunas!") } ##verificar se a matriz tem dados de longitude antes de latitude: if(abs(sum(x[,2])) shape plot(shape, xlim=xlim, ylim=ylim) par(new=TRUE) pontos<- data.frame(entrada) points(pontos$X1, pontos$X2, pch=16, col=2, cex=1) } else { } if(save.map=="TRUE") { jpeg(filename = "mapa.jpg", width = 480, height = 480, pointsize = 12, quality = 100,bg = "white", res = NA) require(maptools) xlim<-c(min(entrada[,1]),max(entrada[,1])) ylim<-c(min(entrada[,2]),max(entrada[,2])) readShapeLines("name.shp") -> shape plot(shape, xlim=xlim, ylim=ylim) par(new=TRUE) pontos<- data.frame(entrada) points(pontos$X1, pontos$X2, pch=16, col=2, cex=1) dev.off() } else { } return(result) } ===== Arquivos para teste ===== dados de localidades:{{:bie5782:01_curso_atual:alunos:trabalho_final:ana_carolina_pavan:localidades.csv|}}\\ shape (lembre de renomeá-lo na função : {{:bie5782:01_curso_atual:alunos:trabalho_final:ana_carolina_pavan:americas_adm0.zip|}}