[R] converting coordinates from utm to longitude / latitude

Werner Wernersen pensterfuzzer at yahoo.de
Wed Aug 20 12:04:23 CEST 2008


You were absolutely right. If I use south everything is fine. That once again proves the danger of intuition. I simply assumed since almost all of the map is on the northern half that the projection should use north as well. But that is apparently wrong. I couldn't find any description of these definition string parameters which could have been informative. Since I am not a geographer either, I probably used the wrong terms for searching.

Anyway, now it works.
Thanks so much for the help, Jim!

Best regards,
  Werner



----- Ursprüngliche Mail ----
Von: Jim Regetz <regetz at nceas.ucsb.edu>
An: Werner Wernersen <pensterfuzzer at yahoo.de>
CC: r-help at stat.math.ethz.ch
Gesendet: Mittwoch, den 20. August 2008, 03:08:48 Uhr
Betreff: Re: converting coordinates from utm to longitude / latitude

Werner Wernersen wrote:
> It would be nicer to convert directly the entire shapefile object to long/lat coordinates but if that is not possible, I will convert the other points to UTM.
> Hence, I am playing around with rgdal.
> 
> library(rgdal)
> SP <- SpatialPoints(cbind(32.29252, -0.3228500), 
>   proj4string=CRS("+proj=longlat"))
> spTransform(SP, CRS("+proj=utm +zone=36"))
> 
> 
>> spTransform(SP, CRS("+proj=utm +zone=36"))
> SpatialPoints:
>      coords.x1 coords.x2
> [1,]  421274.4 -35687.37
> Coordinate Reference System (CRS) arguments: +proj=utm +zone=36 +ellps=WGS84 
> 
> This result corresponds with what I get when using convUL() but my map of that area in UTM coordinates does not extend to the negative.
> An external program converts the point to x=420994   y=9964407 which also seems correct with respect to the map. Fore sure, I am using the function wrongly somehow. Can anyone give me a hint?

It looks like you are specifying 36S in your external program, and 
(implicitly) 36N in R. Using your SP from above, note the following:

> spTransform(SP, CRS("+proj=utm +zone=36 +north"))
SpatialPoints:
      coords.x1 coords.x2
[1,]  421274.4 -35687.37
Coordinate Reference System (CRS) arguments: +proj=utm +zone=36 
+ellps=WGS84

> spTransform(SP, CRS("+proj=utm +zone=36 +south"))
SpatialPoints:
      coords.x1 coords.x2
[1,]  421274.4   9964313
Coordinate Reference System (CRS) arguments: +proj=utm +zone=36 +south 
+ellps=WGS84

The latter gets in the ballpark of output from your external program. 
I'd speculate that the remaining differences owe to different 
assumptions about e.g. the datum (WGS84 for the R statements given 
above), but I must admit I'm not a geographer.

Hope that helps,
Jim

> That's very much appreciated!
> 
> Thanks,
>    Werner
> 
> 
> 
> ----- Ursprüngliche Mail ----
> Von: Werner Wernersen <pensterfuzzer at yahoo.de>
> An: r-help at stat.math.ethz.ch
> Gesendet: Dienstag, den 19. August 2008, 20:28:29 Uhr
> Betreff: converting coordinates from utm to longitude / latitude
> 
> Hi,
> 
> is there a function in R to convert data read with read.shape and which is originally in UTM coordinates into longitude / latitude coordinates?
> I found the convUL() function from the PBSmapping package but I have no idea how I could apply that to the read.shape object.
> 
> Many thanks,
>   Werner
> 
> 
> ______________________________
> fügt über einen herausragenden Schutz gegen Massenmails. 
> http://mail.yahoo.com
> 
> 
> __________________________________________________
> Do 
> ragenden Schutz gegen Massenmails. 
> http://mail.yahoo.com
> 
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
> 


________________________________________
ber einen herausragenden Schutz gegen Massenmails. 
http://mail.yahoo.com


More information about the R-help mailing list