[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