Skip to contents

Convert the format of geographic or GPS coordinates to decimal degrees, to degrees and minutes or to degrees, minutes and seconds.

Usage

as_degminsec(object, ...)

# S3 method for class 'numeric'
as_degminsec(
  object,
  ...,
  .fmt = c("decdeg", "degmin", "degminsec"),
  .as_numeric = FALSE
)

as_degmin(object, ...)

# S3 method for class 'numeric'
as_degmin(
  object,
  ...,
  .fmt = c("decdeg", "degmin", "degminsec"),
  .as_numeric = FALSE
)

as_decdeg(object, ...)

# S3 method for class 'numeric'
as_decdeg(
  object,
  ...,
  .fmt = c("decdeg", "degmin", "degminsec"),
  .as_numeric = FALSE
)

Arguments

object

a "coord" object or a numeric vector.

...

further arguments passed to or from other methods.

.fmt

character string indicating the format of object; must be one of "decdeg" (default), "degmin" or "degminsec".

.as_numeric

logical, signifying whether to return a "coord" object or a numeric value; default FALSE, the former.

Value

A "coord" object or numeric value in the desired format.

Details

Converts between coordinates represented in decimal degrees ("decdeg"), integer degrees and decimal minutes ("degmin"), and integer degrees, integer minutes, and decimal seconds ("degminsec"). Works with individual "coord" objects returned using the coord() function, or with vectors of simple numeric values. See "coord" for further details.

See also

Other coord: coord()

Examples

## `"coord"` objects in decimal degrees; in degrees and minutes;
##   and in degrees, minutes, and seconds
(coord_dd <- coord(51.507765, "decdeg"))
#>   51.507765°
(coord_dm <- coord(5130.4659, "degmin"))
#>  51°30.4659' (N/E)
(coord_dms <- coord(513027.95, "degminsec"))
#>  51°30'27.95" (N/E)

## as_degminsec
coord_dd |> as_degminsec()
#>  51°30'27.95" (N/E)
coord_dm |> as_degminsec()
#>  51°30'27.95" (N/E)

## as_degmin
coord_dd |> as_degmin()
#>  51°30.4659' (N/E)
coord_dms |> as_degmin()
#>  51°30.4658' (N/E)

## as_decdeg
coord_dm |> as_decdeg()
#>   51.507765°
coord_dms |> as_decdeg()
#>   51.507764°

## `"latnlon"` objects in decimal degrees; in degrees and minutes;
##   and in degrees, minutes, and seconds
(latnlon_dd <- coord(c(51.507765, -0.127924), "decdeg", "both"))
#>   51.507765° lat    -0.127924° lon
(latnlon_dm <- coord(c(5130.4659, -7.6754), "degmin", "both"))
#>  51°30.4659' N    0°07.6754' W
(latnlon_dms <- coord(c(513027.95, -740.53), "degminsec", "both"))
#>  51°30'27.95" N    0°07'40.53" W

## as_degminsec
latnlon_dd |> as_degminsec()
#>  51°30'27.95" N    0°07'40.53" W
latnlon_dm |> as_degminsec()
#>  51°30'27.95" N    0°07'40.52" W

## as_degmin
latnlon_dd |> as_degmin()
#>  51°30.4659' N    0°07.6754' W
latnlon_dms |> as_degmin()
#>  51°30.4658' N    0°07.6755' W

## as_decdeg
latnlon_dm |> as_decdeg()
#>   51.507765° lat    -0.127923° lon
latnlon_dms |> as_decdeg()
#>   51.507764° lat    -0.127925° lon

## Numeric vectors in decimal degrees; in degrees and minutes;
##   and in degrees, minutes, and seconds
(num_dd <- c(51.507765, 49.546210, 48.107232, 38.889494, 0.000000, -37.111740, -53.104781))
#> [1]  51.50776  49.54621  48.10723  38.88949   0.00000 -37.11174 -53.10478
(num_dm <- c(5130.4659, 4932.7726, 4806.4339, 3853.3696, 0.0000, -3706.7044, -5306.2869))
#> [1]  5130.466  4932.773  4806.434  3853.370     0.000 -3706.704 -5306.287
(num_dms <- c(513027.95, 493246.36, 480626.04, 385322.18, 0.00, -370642.26, -530617.21))
#> [1]  513028.0  493246.4  480626.0  385322.2       0.0 -370642.3 -530617.2

## as_degminsec
num_dd |> as_degminsec(.fmt = "decdeg")
#> [[1]]
#>  51°30'27.95" (N/E)
#> [[2]]
#>  49°32'46.36" (N/E)
#> [[3]]
#>  48°06'26.04" (N/E)
#> [[4]]
#>  38°53'22.18" (N/E)
#> [[5]]
#>   0°00'00.00" (N/E)
#> [[6]]
#>  37°06'42.26" (W/S)
#> [[7]]
#>  53°06'17.21" (W/S)
num_dm |> as_degminsec(.fmt = "degmin")
#> [[1]]
#>  51°30'27.95" (N/E)
#> [[2]]
#>  49°32'46.36" (N/E)
#> [[3]]
#>  48°06'26.03" (N/E)
#> [[4]]
#>  38°53'22.18" (N/E)
#> [[5]]
#>   0°00'00.00" (N/E)
#> [[6]]
#>  37°06'42.26" (W/S)
#> [[7]]
#>  53°06'17.21" (W/S)

num_dd |> as_degminsec(.fmt = "decdeg", .as_numeric = TRUE)
#> [1]  513028.0  493246.4  480626.0  385322.2       0.0 -370642.3 -530617.2
num_dm |> as_degminsec(.fmt = "degmin", .as_numeric = TRUE)
#> [1]  513028.0  493246.4  480626.0  385322.2       0.0 -370642.3 -530617.2

## as_degmin
num_dd |> as_degmin(.fmt = "decdeg")
#> [[1]]
#>  51°30.4659' (N/E)
#> [[2]]
#>  49°32.7726' (N/E)
#> [[3]]
#>  48°06.4339' (N/E)
#> [[4]]
#>  38°53.3696' (N/E)
#> [[5]]
#>   0°00.0000' (N/E)
#> [[6]]
#>  37°06.7044' (W/S)
#> [[7]]
#>  53°06.2869' (W/S)
num_dms |> as_degmin(.fmt = "degminsec")
#> [[1]]
#>  51°30.4658' (N/E)
#> [[2]]
#>  49°32.7727' (N/E)
#> [[3]]
#>  48°06.4340' (N/E)
#> [[4]]
#>  38°53.3697' (N/E)
#> [[5]]
#>   0°00.0000' (N/E)
#> [[6]]
#>  37°06.7043' (W/S)
#> [[7]]
#>  53°06.2868' (W/S)

num_dd |> as_degmin(.fmt = "decdeg", .as_numeric = TRUE)
#> [1]  5130.466  4932.773  4806.434  3853.370     0.000 -3706.704 -5306.287
num_dms |> as_degmin(.fmt = "degminsec", .as_numeric = TRUE)
#> [1]  5130.466  4932.773  4806.434  3853.370     0.000 -3706.704 -5306.287

## as_decdeg
num_dm |> as_decdeg(.fmt = "degmin")
#> [[1]]
#>   51.507765°
#> [[2]]
#>   49.546210°
#> [[3]]
#>   48.107232°
#> [[4]]
#>   38.889493°
#> [[5]]
#>    0.000000°
#> [[6]]
#>  -37.111740°
#> [[7]]
#>  -53.104782°
num_dms |> as_decdeg(.fmt = "degminsec")
#> [[1]]
#>   51.507764°
#> [[2]]
#>   49.546211°
#> [[3]]
#>   48.107233°
#> [[4]]
#>   38.889494°
#> [[5]]
#>    0.000000°
#> [[6]]
#>  -37.111739°
#> [[7]]
#>  -53.104781°

num_dm |> as_decdeg(.fmt = "degmin", .as_numeric = TRUE)
#> [1]  51.50776  49.54621  48.10723  38.88949   0.00000 -37.11174 -53.10478
num_dms |> as_decdeg(.fmt = "degminsec", .as_numeric = TRUE)
#> [1]  51.50776  49.54621  48.10723  38.88949   0.00000 -37.11174 -53.10478

rm(coord_dd, coord_dm, coord_dms, num_dd, num_dm, num_dms)