parzer
parses messy
coordinates
You may get data from a published study or a colleague, and the coordinates may be in some messy character format that you’d like to clean up to have all decimal degree numeric data.
parzer
API:
parse_hemisphere
parse_lat
parse_lon
parse_lon_lat
parse_parts_lat
parse_parts_lon
pz_d
pz_degree
pz_m
pz_minute
pz_s
pz_second
Stable version
Development version
parse_lat("45N54.2356")
#> [1] 45.90393
parse_lat("-45.98739874")
#> [1] -45.9874
parse_lat("40.123°")
#> [1] 40.123
parse_lat("40.123N")
#> [1] 40.123
parse_lat("N45 04.25764")
#> [1] 45.07096
# bad values -> NaN
parse_lat("191.89")
#> Warning in pz_parse_lat(lat): not within -90/90 range, got: 191.89
#> check that you did not invert lon and lat
#> [1] NaN
# many inputs
x <- c("40.123°", "40.123N74.123W", "191.89", 12, "N45 04.25764")
parse_lat(x)
#> Warning in pz_parse_lat(lat): invalid characters, got: 40.123n74.123w
#> Warning in pz_parse_lat(lat): not within -90/90 range, got: 191.89
#> check that you did not invert lon and lat
#> [1] 40.12300 NaN NaN 12.00000 45.07096
# parse_lat("N455698735", "HDDMMmmmmm") # custom formats not ready yet
parse_lon("45W54.2356")
#> [1] -45.90393
parse_lon("-45.98739874")
#> [1] -45.9874
parse_lon("40.123°")
#> [1] 40.123
parse_lon("74.123W")
#> [1] -74.123
parse_lon("W45 04.25764")
#> [1] -45.07096
# bad values
parse_lon("361")
#> Warning in pz_parse_lon(lon): not within -180/360 range, got: 361
#> [1] NaN
# many inputs
x <- c("45W54.2356", "181", 45, 45.234234, "-45.98739874")
parse_lon(x)
#> [1] -45.90393 181.00000 45.00000 45.23423 -45.98740
# parse_lon("N455698735", "HDDMMmmmmm") # custom formats not ready yet
parse_parts_lat("45N54.2356")
#> deg min sec
#> 1 45 54 14.13674
parse_parts_lon("-74.6411133")
#> deg min sec
#> 1 -74 38 28.00784
# many inputs
x <- c("40.123°", "40.123N74.123W", "191.89", 12, "N45 04.25764")
parse_parts_lon(x)
#> deg min sec
#> 1 40 7 22.80395
#> 2 NA NA NaN
#> 3 191 53 23.99783
#> 4 12 0 0.00000
#> 5 NA NA NaN
coords <- c(45.23323, "40:25:6N", "40° 25´ 5.994\" N")
pz_degree(lat = coords)
#> [1] 45 40 40
pz_minute(lat = coords)
#> [1] 13 25 25
pz_second(lat = coords)
#> [1] 59.630119 6.005895 5.992162
coords <- c(15.23323, "40:25:6E", "192° 25´ 5.994\" E")
pz_degree(lon = coords)
#> [1] 15 40 192
pz_minute(lon = coords)
#> [1] 13 25 25
pz_second(lon = coords)
#> [1] 59.626686 6.005895 6.005895