Мои данные представлены в виде широты и долготы в виде градусов, минут и секунд. Это было сохранено в текстовой форме (character-class
, Игнорировать row.names
).Как преобразовать долготу/широту в UTM? R. rgdal, sp
> pasaporte
Latitud Longitud
4 13°50¨52" sur 73°45¨12" oeste
36 13°01¨ sur 75°05¨ oeste
46 13°09¨26" sur 74°13¨22" oeste
С помощью answer, представленной в списке рассылки, я преобразовал данные в десятичную форму ...
> pasaporte
Latitud Longitud
4 13.84778 73.75333
36 13.01667 75.08333
46 13.15722 74.22278
После этого я преобразовал data.frame
к а SpatialPoints
объекта ,
xy <- data.frame(cbind(round(pasaporte[, 'Longitud'], 5), round(pasaporte[, 'Latitud'], 5))) #Rounded the decimals out of doubt of it interfering later
xy <- SpatialPoints(coords = xy,
proj4string = CRS('+proj=longlat +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs'))
Затем приступил к преобразованию проекции через spTransform
xy_utm <- spTransform(xy, CRS('+proj=utm +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs +towgs84:0,0,0'))
Я преобразовал первую координату в примере, используя this website (делает Shure, чтобы обеспечить отрицательный, так как координаты относятся к Югу и Западу) и предоставляет следующие координаты: 633726.46 mE 8468757.51 mN Зона 18L, что является правильным. В отличии от этого sp
объекта после преобразования:
SpatialPoints:
X1 X2
[1,] 12051333 14804033
[2,] 12569894 14792671
[3,] 12301330 14684870
Coordinate Reference System (CRS) arguments: +proj=utm +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs +towgs84=0,0,0
spTransform
руководства по конкретно упоминается, что метаданные должны быть правильно предусмотрены. Мои данные используют эллипсоид WGS84 и находятся в зоне 18L. Точнее, epsg:32718. Где я ошибаюсь?
Это следует задать здесь: http://gis.stackexchange.com/questions/tagged/r –