Skip to contents

this function parses coordinates from DMS to decimal degrees

Usage

dms2dd(x, lat, long, dms)

Arguments

x

an input data frame to apply operations to

lat

a name of the column holding the latitude values

long

a name of the colymn holding the longitude values

dms

are coordinates in degrees minutes seconds? TRUE for yes, FALSE for decimal degrees

Value

data frame(/tibble) with coordinates unambiguously labeled as being in both degrees, minutes, seconds (_dms) and decimal degrees (_dd).

Examples

 coords <- data.frame(
  input_longitude = runif(15, min = -120, max = -100),
  input_latitude = runif(15, min = 35, max = 48)
)
coords_formatted <- dms2dd( coords )
#> argument to `lat` not found. detected and using:  input_latitude
#> argument to `long` not found. detected and using:  input_longitude
head(coords_formatted)
#>   longitude_dd latitude_dd latitude_dms longitude_dms
#> 1   -106.79281    38.28896   N 38°17'20   W 106°47'34
#> 2   -109.76417    46.94444   N 46°56'40   W 109°45'51
#> 3   -103.28895    46.27555   N 46°16'32   W 103°17'20
#> 4   -105.82438    38.23100   N 38°13'52   W 105°49'28
#> 5   -102.51588    40.23746   N 40°14'15   W 102°30'57
#> 6   -119.77041    45.00519    N 45°0'19   W 119°46'13
colnames(coords_formatted)
#> [1] "longitude_dd"  "latitude_dd"   "latitude_dms"  "longitude_dms"

rm(coords, coords_formatted)

# example with tibble input
data(uncleaned_collection_examples)

dms2dd(uncleaned_collection_examples) |>
  dplyr::select(latitude_dd, longitude_dd, latitude_dms, longitude_dms)
#> argument to `lat` not found. detected and using:  Latitude
#> argument to `long` not found. detected and using:  Longitude
#>     latitude_dd longitude_dd latitude_dms longitude_dms
#> 1      39.28469   -119.73222    N 39°17'5   W 119°43'56
#> 2      39.28396   -119.73159    N 39°17'2   W 119°43'54
#> 3      39.28396   -119.73159    N 39°17'2   W 119°43'54
#> 4      39.28417   -119.73362    N 39°17'3    W 119°44'1
#> 5      39.32677   -119.78537   N 39°19'36    W 119°47'7
#> 6      39.32677   -119.78537   N 39°19'36    W 119°47'7
#> 7      39.32677   -119.78537   N 39°19'36    W 119°47'7
#> 8      39.32677   -119.78537   N 39°19'36    W 119°47'7
#> 9      39.32677   -119.78537   N 39°19'36    W 119°47'7
#> 10     39.32677   -119.78537   N 39°19'36    W 119°47'7
#> 11     39.32677   -119.78537   N 39°19'36    W 119°47'7
#> 12     39.32789   -119.76939   N 39°19'40   W 119°46'10
#> 13     39.32789   -119.76939   N 39°19'40   W 119°46'10
#> 14     39.51740   -119.79742    N 39°31'3   W 119°47'51
#> 15     43.52120   -119.28640   N 43°31'16   W 119°17'11
#> 16     43.52120   -119.28640   N 43°31'16   W 119°17'11
#> 17     43.52120   -119.28640   N 43°31'16   W 119°17'11
#> 18     43.52120   -119.28640   N 43°31'16   W 119°17'11
#> 19     43.52120   -119.28640   N 43°31'16   W 119°17'11
#> 20     43.52120   -119.28640   N 43°31'16   W 119°17'11
#> 21     43.49020   -119.79070   N 43°29'25   W 119°47'27
#> 22     43.49020   -119.79070   N 43°29'25   W 119°47'27
#> 23     43.49020   -119.79070   N 43°29'25   W 119°47'27
#> 24     43.49020   -119.79070   N 43°29'25   W 119°47'27
#> 25     43.49020   -119.79070   N 43°29'25   W 119°47'27
#> 26     43.50050   -119.78434    N 43°30'2    W 119°47'4
#> 27     43.50050   -119.78434    N 43°30'2    W 119°47'4
#> 28     43.53852   -119.63960   N 43°32'19   W 119°38'23
#> 29     43.53461   -119.38468    N 43°32'5    W 119°23'5
#> 30     43.02470   -118.63331    N 43°1'29   W 118°37'60
#> 31     43.02470   -118.63331    N 43°1'29   W 118°37'60
#> 32     43.02470   -118.63331    N 43°1'29   W 118°37'60
#> 33     43.02470   -118.63331    N 43°1'29   W 118°37'60
#> 34     43.02470   -118.63331    N 43°1'29   W 118°37'60
#> 35     43.02470   -118.63331    N 43°1'29   W 118°37'60
#> 36     43.02470   -118.63331    N 43°1'29   W 118°37'60
#> 37     43.02470   -118.63331    N 43°1'29   W 118°37'60
#> 38     43.02470   -118.63331    N 43°1'29   W 118°37'60
#> 39     43.02470   -118.63331    N 43°1'29   W 118°37'60
#> 40     42.69267   -118.94006   N 42°41'34   W 118°56'24
#> 41     42.69267   -118.94006   N 42°41'34   W 118°56'24
#> 42     42.69267   -118.94006   N 42°41'34   W 118°56'24
#> 43     42.69267   -118.94006   N 42°41'34   W 118°56'24
#> 44     42.66514   -118.91850   N 42°39'55    W 118°55'7
#> 45     42.69267   -118.94006   N 42°41'34   W 118°56'24
#> 46     42.69198   -118.93668   N 42°41'31   W 118°56'12
#> 47     42.98307   -118.07864   N 42°58'59    W 118°4'43
#> 48     42.98307   -118.07864   N 42°58'59    W 118°4'43
#> 49     42.98307   -118.07864   N 42°58'59    W 118°4'43
#> 50     42.98307   -118.07864   N 42°58'59    W 118°4'43
#> 51     42.94320   -118.12275   N 42°56'36    W 118°7'22
#> 52     42.94450   -118.12047   N 42°56'40    W 118°7'14
#> 53     43.94420   -118.12047   N 43°56'39    W 118°7'14
#> 54     42.99080   -118.07760   N 42°59'27    W 118°4'39
#> 55     39.29750   -120.50498   N 39°17'51   W 120°30'18
#> 56     39.29750   -120.50498   N 39°17'51   W 120°30'18
#> 57     39.29750   -120.50498   N 39°17'51   W 120°30'18
#> 58     39.29750   -120.50498   N 39°17'51   W 120°30'18
#> 59     39.30425   -120.50950   N 39°18'15   W 120°30'34
#> 60     39.31052   -120.51647   N 39°18'38   W 120°30'59
#> 61     39.31052   -120.51647   N 39°18'38   W 120°30'59
#> 62     39.31052   -120.51647   N 39°18'38   W 120°30'59
#> 63     39.31052   -120.51647   N 39°18'38   W 120°30'59
#> 64     38.38033   -116.06490   N 38°22'49    W 116°3'54
#> 65     38.38033   -116.06490   N 38°22'49    W 116°3'54
#> 66     38.38033   -116.06490   N 38°22'49    W 116°3'54
#> 67     38.38033   -116.06490   N 38°22'49    W 116°3'54
#> 68     38.38033   -116.06490   N 38°22'49    W 116°3'54
#> 69     38.38033   -116.06490   N 38°22'49    W 116°3'54
#> 70     38.47370   -116.05509   N 38°28'25    W 116°3'18
#> 71     38.48027   -116.09800   N 38°28'49    W 116°5'53
#> 72     38.48027   -116.09800   N 38°28'49    W 116°5'53
#> 73     38.35795   -116.23762   N 38°21'29   W 116°14'15
#> 74     38.35795   -116.23762   N 38°21'29   W 116°14'15
#> 75     38.35795   -116.23762   N 38°21'29   W 116°14'15
#> 76     38.35795   -116.23762   N 38°21'29   W 116°14'15
#> 77     39.26829   -117.68883    N 39°16'6   W 117°41'20
#> 78     39.26829   -117.68883    N 39°16'6   W 117°41'20
#> 79     39.26829   -117.68883    N 39°16'6   W 117°41'20
#> 80     39.26829   -117.68883    N 39°16'6   W 117°41'20
#> 81     39.26829   -117.68883    N 39°16'6   W 117°41'20
#> 82     39.26177   -117.72002   N 39°15'42   W 117°43'12
#> 83     39.26177   -117.72002   N 39°15'42   W 117°43'12
#> 84     39.26177   -117.72002   N 39°15'42   W 117°43'12
#> 85     39.26177   -117.72002   N 39°15'42   W 117°43'12
#> 86     39.26177   -117.72002   N 39°15'42   W 117°43'12
#> 87     39.26177   -117.72002   N 39°15'42   W 117°43'12
#> 88     39.26177   -117.72002   N 39°15'42   W 117°43'12
#> 89     39.24000   -117.77788   N 39°14'24   W 117°46'40
#> 90     39.24248   -117.78432   N 39°14'33    W 117°47'4
#> 91     39.24248   -117.78432   N 39°14'33    W 117°47'4
#> 92     39.24248   -117.78432   N 39°14'33    W 117°47'4
#> 93     39.64643   -113.86204   N 39°38'47   W 113°51'43
#> 94     39.26177   -117.72002   N 39°15'42   W 117°43'12
#> 95     39.26177   -117.72002   N 39°15'42   W 117°43'12
#> 96     42.67298   -118.69107   N 42°40'23   W 118°41'28
#> 97     42.67298   -118.69107   N 42°40'23   W 118°41'28
#> 98     42.67298   -118.69107   N 42°40'23   W 118°41'28
#> 99     42.67298   -118.69107   N 42°40'23   W 118°41'28
#> 100    42.67298   -118.69107   N 42°40'23   W 118°41'28
#> 101    42.67298   -118.69107   N 42°40'23   W 118°41'28
#> 102    42.67298   -118.69107   N 42°40'23   W 118°41'28
#> 103    42.67298   -118.69107   N 42°40'23   W 118°41'28
#> 104    42.75810   -118.72030   N 42°45'29   W 118°43'13
#> 105    42.75810   -118.72030   N 42°45'29   W 118°43'13
#> 106    42.75810   -118.72030   N 42°45'29   W 118°43'13
#> 107    41.53350   -115.69877    N 41°32'1   W 115°41'56
#> 108    41.53350   -115.69877    N 41°32'1   W 115°41'56
#> 109    41.53350   -115.69877    N 41°32'1   W 115°41'56
#> 110    41.69690   -115.49667   N 41°41'49   W 115°29'48
#> 111    42.67340   -118.69429   N 42°40'24   W 118°41'39
#> 112    42.67340   -118.69429   N 42°40'24   W 118°41'39
#> 113    42.67340   -118.69429   N 42°40'24   W 118°41'39
#> 114    42.67340   -118.69429   N 42°40'24   W 118°41'39
#> 115    42.67340   -118.69429   N 42°40'24   W 118°41'39
#> 116    42.67340   -118.69429   N 42°40'24   W 118°41'39
#> 117    38.32676   -116.20948   N 38°19'36   W 116°12'34