Convertendo UTM para Lat/Long no R

Esses dias precisei converter coordenadas UTM para formato lat/long em graus decimais. Fiz uma rápida pesquisa e achei sites que fazem esse tipo de conversão, BINGO! No entanto, a maioria faz conversões uma a uma. E se eu tenho uma planilha com mais de 3000 coordenadas para converter?

Mais uma vez o R me salvou.

Fui direto para no “Task Views” (http://cran.r-project.org/), lá você pode encontrar diferentes áreas que o R apresnta pacotes, na área “Spatial” encontrei o pacote PBSmapping() que apresenta a função convUL(). Depois de uma estudada na função percebi que é bem fácil de entender e usar.

Abaixo segue o que eu fiz:

library(PBSmaping) # carregando o pacote PBS mapping
# coordenadas em UTM importadas contendo duas colunas, X e Y
dataUTM 
# A funcnao solicita que seja feitas duas coisas com os dados:
# especificar para os dados a zona e a projeção, neste caso 22 e UTM.
attr(dataUTM, "zone")<- 22
attr(dataUTM, "projection")<-"UTM"
#agora convetendo de UTM para lat/long
# use "km=F" caso as coordenadas UTM estejam em metros e "southern=T" sendo no hemisfério sul.
dataLL<-convUL(dataUTM, km=F, southern=T) 
head(dataLL)
  head(data)
  X         Y
1 -51.33704 -29.95326
2 -51.33704 -29.95326
3 -51.33704 -29.95326
4 -51.33704 -29.95326
5 -51.33704 -29.95326
6 -51.33704 -29.95326
#exportando como "tab delimited"
write.table(dataLL,"dataLL.txt", sep="\t")

Demorei um tempo para achar uma função mais fácil de usar, mas valeu a pena. Esta está guardada para um uso futuro. No entanto, existe muita coisa interessante referente a parte de análises espaciais, vale a pena dar uma conferida.