char2dms: Convert character vector to DMS-class object

Description Usage Arguments Details Value Methods Author(s) See Also Examples

Description

These two helper functions convert character vectors and decimal degree vectors to the DMS-class representation of degrees, minutes, and decimal seconds. "DMS" objects cannot contain NAs.

Usage

1
2
char2dms(from, chd = "d", chm = "'", chs = "\"")
dd2dms(dd, NS = FALSE)

Arguments

from

character vector of degree, minute, decimal second data

chd

degree character terminator

chm

minute character terminator

chs

second character terminator

dd

numeric vector of decimal degrees

NS

logical, TRUE for north/south decimal degrees, FALSE for east/west decimal degrees

Details

In char2dms, the input data vector should use a regular format, such as that used in the PROJ.4 library, with a trailing capital (NSWE) indicating compass direction.

Value

Both functions return a "DMS" object.

Methods

from = "DMS", to = "numeric"

coerce a "DMS" object to a "numeric" vector

from = "DMS", to = "character"

coerce a "DMS" object to a "character" vector (the as.character.DMS S3 method is also available)

Author(s)

Roger Bivand Roger.Bivand@nhh.no

See Also

DMS-class

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
data(state)
str(state.center$y)
stateN <- dd2dms(state.center$y, NS=TRUE)
str(attributes(stateN))
ch.stateN <- as.character(stateN)
str(ch.stateN)
stateNa <- char2dms(ch.stateN)
str(attributes(stateNa))
ch.stateN <- as(stateN, "character")
str(ch.stateN)
stateNa <- char2dms(ch.stateN)
str(attributes(stateNa))

Example output

 num [1:50] 32.6 49.2 34.2 34.7 36.5 ...
List of 6
 $ WS   : logi [1:50] FALSE FALSE FALSE FALSE FALSE FALSE ...
 $ deg  : int [1:50] 32 49 34 34 36 38 41 38 27 32 ...
 $ min  : int [1:50] 35 15 13 44 32 40 35 40 52 19 ...
 $ sec  : num [1:50] 24.36 0 9.12 0.96 2.76 ...
 $ NS   : logi TRUE
 $ class: atomic [1:1] DMS
  ..- attr(*, "package")= chr "sp"
 chr [1:50] "32d35'24.36\"N" "49d15'N" "34d13'9.12\"N" "34d44'0.96\"N" ...
List of 6
 $ WS   : logi [1:50] FALSE FALSE FALSE FALSE FALSE FALSE ...
 $ deg  : int [1:50] 32 49 34 34 36 38 41 38 27 32 ...
 $ min  : int [1:50] 35 15 13 44 32 40 35 40 52 19 ...
 $ sec  : num [1:50] 24.36 0 9.12 0.96 2.76 ...
 $ NS   : logi TRUE
 $ class: atomic [1:1] DMS
  ..- attr(*, "package")= chr "sp"
 chr [1:50] "32d35'24.36\"N" "49d15'N" "34d13'9.12\"N" "34d44'0.96\"N" ...
List of 6
 $ WS   : logi [1:50] FALSE FALSE FALSE FALSE FALSE FALSE ...
 $ deg  : int [1:50] 32 49 34 34 36 38 41 38 27 32 ...
 $ min  : int [1:50] 35 15 13 44 32 40 35 40 52 19 ...
 $ sec  : num [1:50] 24.36 0 9.12 0.96 2.76 ...
 $ NS   : logi TRUE
 $ class: atomic [1:1] DMS
  ..- attr(*, "package")= chr "sp"

sp documentation built on Jan. 13, 2021, 12:09 p.m.