Converting geo coordinates from degree to decimal

后端 未结 7 928
滥情空心
滥情空心 2020-11-28 10:48

I want to convert my geographic coordinates from degrees to decimals, my data are as follows:

         lat     long
105252 30°25.264 9°01.331
105253 30°39.23         


        
7条回答
  •  误落风尘
    2020-11-28 11:06

    Thanks for answers by @Gord Stephen and @CephBirk. Sure helped me out. I thought I'd just mention that I also found that measurements::conv_unit doesn't deal with "E/W" "N/S" entries, it requires positive/negative degrees. My coordinates comes as character strings "1 1 1W" and needs to first be converted to "-1 1 1".
    I thought I'd share my solution for that.

    df <- c("1 1 1E", "1 1 1W", "2 2 2N","2 2 2S")  
    measurements::conv_unit(df, from = 'deg_min_sec', to = 'dec_deg')
    [1] "1.01694444444444" NA                 NA                 NA  
    Warning message:
    In split(as.numeric(unlist(strsplit(x, " "))) * c(3600, 60, 1),  :
      NAs introduced by coercion
    
    ewns <- ifelse( str_extract(df,"\\(?[EWNS,.]+\\)?") %in% c("E","N"),"+","-")
    dms <- str_sub(df,1,str_length(df)-1)
    df2 <- paste0(ewns,dms)
    
    df_dec <- measurements::conv_unit(df2, 
                                      from = 'deg_min_sec', 
                                      to = 'dec_deg'))
    df_dec
    [1] "1.01694444444444"  "-1.01694444444444" "2.03388888888889"  "-2.03388888888889"
    as.numeric(df_dec)
    [1]  1.016944 -1.016944  2.033889 -2.033889
    

提交回复
热议问题