繁体   English   中英

如何将十进制度分转换为十进制度

[英]How to convert degrees decimal minutes, to decimal degrees

我有数以千计的十进制分钟坐标,我只需要将它们转换为十进制。 已经提出了类似的问题,但有不同的分钟和秒格式,因此任何答案都将不胜感激。

我的数据看起来像:

纬度 413190,经度 1710130 东

纬度 425510,经度 1762550 W

...

解释第一行,纬度:41 度,31.90 分钟,经度:171 度,东经 01.30 分钟。

提前致谢!

假设你的数据在列中设置,lat 是 N,lon 是一个字符串:这是我从https://stackoverflow.com/a/37194428/16247331修改的一些代码

library(measurements)
df <- data.frame(lat = c(413190, 425510), lon = c("1710130 E", "1762550 W")) #assuming lat is N
df$nlat <- paste0(substr(df$lat, 1, nchar(df$lat) - 4), " ", substr(df$lat, nchar(df$lat) - 3, nchar(df$lat) - 2), ".", substr(df$lat, nchar(df$lat) - 1, nchar(df$lat)))
df$nlon <- paste0(substr(df$lon, 1, nchar(df$lon) - 6), " ", substr(df$lon, nchar(df$lon) - 5, nchar(df$lon) - 4), ".", substr(df$lon, nchar(df$lon) - 3, nchar(df$lon) - 2))
df$nlat <- as.numeric(measurements::conv_unit(df$nlat, from = 'deg_dec_min', to = 'dec_deg'))
df$nlon <- as.numeric(measurements::conv_unit(df$nlon, from = 'deg_dec_min', to = 'dec_deg'))
df$nlon[substr(df$lon, nchar(df$lon), nchar(df$lon)) == "W"] <- -1*df$nlon[substr(df$lon, nchar(df$lon), nchar(df$lon)) == "W"]

结果:

     lat       lon     nlat      nlon
1 413190 1710130 E 41.53167  171.0217
2 425510 1762550 W 42.91833 -176.4250

不知道有没有更漂亮的方法。 祝你好运!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM