usmap_transform: Convert spatial data to usmap projection

View source: R/transform.R

usmap_transformR Documentation

Convert spatial data to usmap projection

Description

Converting a spatial object of map coordinates will allow those points to line up with the regular usmap plot by applying the same US National Atlas Equal Area projection (including Alaska and Hawaii of course) to those points as well.

The input data is assumed to contain longitude and latitude coordinates by default. If this is not the case, provide an sf::st_crs object to the crs parameter with the appropriate coordinate reference system.

Usage

usmap_transform(data, ...)

## S3 method for class 'sf'
usmap_transform(data, ...)

## S3 method for class 'data.frame'
usmap_transform(data, ..., input_names = c("lon", "lat"), output_names = NULL)

Arguments

data

A data frame containing coordinates in a two column format where the first column represents longitude and the second data frame represents latitude. The names of the data frame column do not matter, just that the order of the columns is kept intact.

...

Additional parameters passed onto sf::st_as_sf. By default, crs = sf::st_crs(4326) is used, implying longitude and latitude coordinates.

input_names

A character vector of length two which specifies the longitude and latitude columns of the input data (the ones that should be transformed), respectively. Only required if the input data is a data.frame object. Defaults to c("lon", "lat").

output_names

Defunct, this parameter is no longer used. The output of this function will have a column named "geometry" with the transformed coordinates. This parameter may be removed in a future version.

Value

An sf object containing the transformed coordinates from the input data frame with the US National Atlas Equal Area projection applied. The transformed columns will be appended to the data frame so that all original columns should remain intact.

Examples

data <- data.frame(
  lon = c(-74.01, -95.36, -118.24, -87.65, -134.42, -157.86),
  lat = c(40.71, 29.76, 34.05, 41.85, 58.30, 21.31),
  pop = c(8398748, 2325502, 3990456, 2705994, 32113, 347397)
)

# Transform data
transformed_data <- usmap_transform(data)

# Plot transformed data on map
library(ggplot2)

plot_usmap() + geom_sf(
  data = transformed_data,
  aes(size = pop),
  color = "red", alpha = 0.5
)


pdil/usmap documentation built on April 3, 2024, 3:58 p.m.